• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Вопрос: Программа не верно вычисляет выражение

  • Автор темы Alex069
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alex069

#1
Задача должна выдать на экран ответ h=4.23655 , а у меня выдает h=4.23194!
при условии
x=3.251
y=0.325
z=0.466*10[sup]-4[/sup]
или я возможно гдето допустил ошибку!!
C++:
#include<iostream.h>
#include<math.h>
int main()
{
double x, y, z, a, b, c, h; // Объявление переменных
cout << "Vvedite x: "; // Ввод значений x, y и z
cin >> x;
cout << "Vvedite y: ";
cin >> y;
cout << "Vvedite z: ";
cin >> z;
a=pow(2.0,pow(y,x))+pow(pow(3.0,x),y);
b=y*(atan(z)-1/3.);

c=fabs(x)+1.0/pow(2,y)+1;

h=a-b/c;

cout<<"Result h="<<h<< endl;
return 0; 
}
 

Вложения

  • 43.3 КБ Просмотры: 33

lazybiz

Well-known member
03.11.2010
1 339
0
#2
Проверяй.
C++:
#include <iostream.h>
#include <math.h>

int main()
{
double	x, y, z, s; // Объявление переменных
cout << "Vvedite x: "; // Ввод значений x, y и z
cin >> x;
cout << "Vvedite y: ";
cin >> y;
cout << "Vvedite z: ";
cin >> z;

s = pow( 2, pow( y, x ) ) + pow( pow( 3, x ), y ) - ((y * (atan( z ) - 1.0 / 3) ) / (fabs( x ) + 1.0 / (y * y + 1) ));
cout << "Result s = " << s << endl;

return 0; 
}
 
A

Alex069

#3
Спасибо всё верно!!!! Тока не пойму в чём тогда у меня была проблема!!!??? Впринципи записано у меня также!!!!!
Токо разбито на несколько частей(а,б,с)
 
M

Miller85

#4
Разве задержку в конце не надо?

Ты 2y не правильно перевел в конце... Надо y*y+1 и pow не надо
 

lazybiz

Well-known member
03.11.2010
1 339
0
#5
Alex069
А хз, возможно вот здесь: b=y*(atan(z)-1/3.);
Попробуй написать: b=y*(atan(z)-1.0/3.0);

Miller85
> Разве задержку в конце не надо?
А что, это повлияет на результат?

Добавлено: Miller85
> Надо y*y+1 и pow не надо
Ты немного опоздал...
 
M

Miller85

#6
Да нет...Просто у меня не кажет результат без неё:)


Добавлено: Ну дак что...:))
 

DarkKnight

Well-known member
01.08.2010
653
0
#8
C++:
		c=fabs(x)+1.0/pow(2,y)+1; //Вот сюда посмотри
//тут же y^2 но не 2^y, ну и скобочки забыл тебе же 1 нужно поделить на сумму а у тебя получается 1/y^2 и только потом +1
Добавлено: вот:
C++:
c=fabs(x)+1.0/(pow(y,2.0)+1);
Ну и как уже lazybiz и Miller85 сказали, что pow при квадрате не используют, но ошибкой это конечно не является... ;-)
 
Статус
Закрыто для дальнейших ответов.