Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 15:50   #1
ProgDel
Пользователь
 
Аватар для ProgDel
 
Регистрация: 15.02.2010
Сообщений: 67
Вопрос Несовпадение результатов

Привет всем. Я бьюсь над примерам из учебника. В общем программа должна выдавать два одинаковых ответа расчитывая две разные формулы.
А она хоть убей выдаёт разные результаты. Что делать?
Код:
#include <iostream.h>
#include <math.h>

int main()
{
	short a;
	float z1, z2;
	const float pi = 3.1416;

	cout << "Enter A plase :";
	cin >> a;

	z1 = 2 * pow(2,sin(3 * pi - 2 * a)) * pow(2,cos(5 * pi + 2 * a));

	z2 = 0.25 - 0.25 * sin((5 * pi) / 2 - 8 * a);

	cout << z1 << endl;

	cout << z2 << endl;
	 
	return 0;
}
ProgDel вне форума Ответить с цитированием
Старый 30.10.2010, 16:04   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
pow(x, y)
это x^y, а не y^x. Как я понимаю, вы хотели в формуле использовать квадраты синуса и косинуса, а не 2 в степени синус/косинус.
Кстати, для квадратов вообще, на мой взгляд, проще писать так:
Код:
z1 = 2 * (sin(3 * pi - 2 * a) * sin(3 * pi - 2 * a)) * (cos(5 * pi + 2 * a) * cos(5 * pi + 2 * a));
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 30.10.2010, 16:10   #3
ProgDel
Пользователь
 
Аватар для ProgDel
 
Регистрация: 15.02.2010
Сообщений: 67
По умолчанию

Гром благодарю за помощь! Ты прав! Всё работает как надо!

А теперь я решаю такую же задачу, но с другими формулами. Видимо записал выражение неправильно! Но как его записать правильно незнаю!
Код:
#include <iostream.h>
#include <math.h>

int main()
{
	short a;
	double z1, z2;
	
	cout << "Enter A plase :";
	cin >> a;

	z1 = sin(2 * a) + sin(5 * a) - sin(3 * a) / (cos(a) - cos(3 * a) + cos(5 * a));

	z2 = tan(3 * a);

	cout << z1 << endl;

	cout << z2 << endl;
	 
	return 0;
}

Последний раз редактировалось Stilet; 31.10.2010 в 17:53.
ProgDel вне форума Ответить с цитированием
Старый 30.10.2010, 17:47   #4
davinci
 
Регистрация: 30.10.2010
Сообщений: 7
По умолчанию

Вопросик: А зачем объявлена константа pi, если она не используется?
davinci вне форума Ответить с цитированием
Старый 30.10.2010, 18:07   #5
ProgDel
Пользователь
 
Аватар для ProgDel
 
Регистрация: 15.02.2010
Сообщений: 67
По умолчанию

Да верно это я лишка написал. Но и без этой константы дело не двигаеться.
ProgDel вне форума Ответить с цитированием
Старый 30.10.2010, 19:27   #6
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

лень вникать и проверять, но наверное тут:
Код:
z1 = ( sin(2 * a) + sin(5 * a) - sin(3 * a) ) / (cos(a) - cos(3 * a) + cos(5 * a));
а может и так:
Код:
z1 = ( sin(a) + sin(5 * a) - sin(3 * a) ) / (cos(a) - cos(3 * a) + cos(5 * a));

Последний раз редактировалось coinkrsk; 30.10.2010 в 19:30.
coinkrsk вне форума Ответить с цитированием
Старый 31.10.2010, 07:59   #7
ProgDel
Пользователь
 
Аватар для ProgDel
 
Регистрация: 15.02.2010
Сообщений: 67
По умолчанию

Нет я эти скобки куда только не ставил. И всё бестолку. Результаты не одинаковы.
ProgDel вне форума Ответить с цитированием
Старый 31.10.2010, 10:17   #8
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

напиши само выражения, которое нужно вычислить
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 31.10.2010, 12:45   #9
ProgDel
Пользователь
 
Аватар для ProgDel
 
Регистрация: 15.02.2010
Сообщений: 67
По умолчанию

z1 = sin2a + sin5a - sin3a / cosa - cos3a + cos5a
ProgDel вне форума Ответить с цитированием
Старый 31.10.2010, 12:47   #10
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

при таком подходе
Код:
	z1 = (sin(a) + sin(5 * a) - sin(3 * a)) / (cos(a) - cos(3 * a) + cos(5 * a));
действительно все совпадает.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несовпадение типов String и Duble Droid БД в Delphi 2 21.05.2010 13:19
Несовпадение типов данных IraPr Microsoft Office Access 4 02.05.2010 13:56
Несовпадение типов (Delphi) VadEr Помощь студентам 8 30.11.2009 18:22
Несовпадение типов ILOR Помощь студентам 5 26.11.2008 13:56
Несовпадение с датой RoZi Помощь студентам 26 28.11.2007 13:05