Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
#1

Функции пользователя. Где ошибка? - C++

19.12.2012, 15:11. Просмотров 313. Ответов 7
Метки нет (Все метки)

Вот код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
//  Определение функции F
float F(float x)
{
    return pow((sqrt(x)+1),1/2);
}
// Определение функции G
float G(float x)
{
    return pow((x-1),1/3);
}
 
void main() 
{  
    float a,b,res;
    setlocale(LC_ALL,"Russian");
    cout << "a = ";  
    cin >> a;
    cout << "b = ";  
    cin >> b;
    res = F(a)+F(b)/G(a+b)*G(a-b);
    cout << "Выражение = " << res << endl;
    getch();
}
При любых значениях а и b выводит ответ 2.

Где ошибка?

Спасибо!
Миниатюры
Функции пользователя. Где ошибка?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции пользователя. Где ошибка? (C++):

где ошибка?функции с++ - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; using namespace std; double geron(double a,double...

Использование функции fgets, где ошибка? - C++
Все привет. В чем может быть ошибка, уже долго сижу и не понимаю. Я сперва со строки беру значение и заношу в файл, затем я хочу вытянуть...

Подскажите, где ошибка в функции strdel - C++
void strdel1( char *s, int p, int k) { int l = strlen(s); if ( p &gt;= l || k==0) return; if ( p+k &gt;= l) { s = 0; return;...

Программа считывает строку, делит ее на слова и выводит в порядке убывания длины слов (Ох,функции.Где ошибка?) - C++
Помогите найти в чем ошибка, две ночи с красными глазами сижу =-O . Программа считывает строку, делит ее на слова и выводит в порядке...

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил) - C++
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в полярных координатах. Написать функцию для...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
19.12.2012, 15:17 #2
Цитата Сообщение от InSperrO Посмотреть сообщение
return pow((sqrt(x)+1),1/2);
здесь ошибка. 1/2 это всегда ноль потому что при делении двух целых чисел дробная часть просто отбрасывается
C++
1
return pow((sqrt(x)+1),1.0/2.0);
или так:
C++
1
return pow((sqrt(x)+1),1.0/2);
или так:
C++
1
return pow((sqrt(x)+1),1/2.0);
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
19.12.2012, 15:29  [ТС] #3
Да, я так пробовал.

Но выходит ошибка функции pow. И отладка проходит с ошибками.

Как ее можно решить?
Миниатюры
Функции пользователя. Где ошибка?  
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
19.12.2012, 15:35 #4
C++
1
return sqrt(pow(x, 2)+1));
Или будем придумывать велосипед?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.12.2012, 15:38 #5
Цитата Сообщение от InSperrO Посмотреть сообщение
return pow((sqrt(x)+1),1/2);
Цитата Сообщение от InSperrO Посмотреть сообщение
return pow((x-1),1/3);
Зачем в одной программе два разных ноля и зачем его вообще шифровать? Напиши уж
C++
1
return pow((x-1),0);
и
C++
1
return pow((sqrt(x)+1),0);
, это будет читабельней. Да и быстрей, как минимум на этапе компиляции.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
19.12.2012, 15:50 #6
вот так можно. т.е. все аргументы функции pow() сделать float
C++
1
2
3
4
float F(float x)
{
    return pow((sqrt(x)+1), float(1)/2);
}
и функцию G тоже переделать:
C++
1
2
3
4
float G(float x)
{
    return pow((x-1),float(1)/3);
}
Добавлено через 2 минуты
Цитата Сообщение от InSperrO Посмотреть сообщение
Но выходит ошибка функции pow. И отладка проходит с ошибками.
эта ошибка из-за того, что первый аргумент имеет тип float а второй double
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
19.12.2012, 15:57  [ТС] #7
Всем, кто помог решить проблему, огромное спасибо!

Сейчас, кажется, все правильно. Проверю еще раз.

Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
эта ошибка из-за того, что первый аргумент имеет тип float а второй double
Действительно.

Спасибо!
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.12.2012, 16:07 #8
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
return pow((sqrt(x)+1), float(1)/2);
Нафига?
C++
1
 return pow((sqrt(x)+1), 1.0f/2);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 16:07
Привет! Вот еще темы с ответами:

Вычислить где значение функции меняет знак(отделение корней функции) - C++
Имеется следующая функция f(x)=sqrt(4*x+7)-3*cos(x) Нужно написать программу, где будет выводится таблица, где будет видно при каком...

функции пользователя - C++
дано натуральное число n. определить , если это возможно, пару х,у таких натуральных чисел, что n=x^2+y^2. помогите решить задачу на турбо...

Функции пользователя - C++
Вычисление Y(x) и S(x) реализовать в виде функций. Продемонстрировать два способа передачи аргументов в вызываемые функции: по значению и...

Функции пользователя на TC - C++
Помогите пожайлуйста! Дано натуральное число N. Определить, если это возможно, пару x,y таких натуральных чисел, что N=x^2+y^2. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.12.2012, 16:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru