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

Формула - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
29.11.2011, 18:10     Формула #1
Ребята помогите пожалуйста, преобразовать формулу в с++

Формула

делаю так:

C++
1
z=(M_PI*x)*pow(sin(M_PI*y+1*M_PI/180),2)+pow((exp(x-y))*pow(sin(x*x*x* M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))cos(x+23)
выдает ошибку

 Комментарий модератора 
Избегайте использования слишком большого количества смайлов в сообщениях в тематических разделах форума, а также "кричащего" выделения текста. Это никаким образом не ускорит решение вашей проблемы.
правила форума
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 18:10     Формула
Посмотрите здесь:

C++ Формула
C++ Формула
C++ Формула
C++ Формула на с++
C++ формула в С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.11.2011, 18:13     Формула #2
Цитата Сообщение от Ultrasonic Посмотреть сообщение
выдает ошибку
какую ошибку?
SleepMaster
 Аватар для SleepMaster
40 / 40 / 1
Регистрация: 26.11.2011
Сообщений: 80
29.11.2011, 18:18     Формула #3
Ultrasonic,
В конце круглая скобка пропущена
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
29.11.2011, 18:18     Формула #4
Ultrasonic, скорее всего из-за pow. Многие компиляторы на него ругаются...
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
29.11.2011, 18:21     Формула #5
Цитата Сообщение от Вася1q Посмотреть сообщение
Ultrasonic, скорее всего из-за pow. Многие компиляторы на него ругаются...
Вася1q, очень интересное замечание. А может, ты просто не умеешь его готовить?
чего еще интересного расскажешь?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2011, 18:23     Формула #6
Ultrasonic, Во-первых делайте по частям
Во-вторых закрывающей скобки не хватает и знака умножить
SleepMaster
 Аватар для SleepMaster
40 / 40 / 1
Регистрация: 26.11.2011
Сообщений: 80
29.11.2011, 18:24     Формула #7
Держи, у меня всё работает:
C++
1
2
z=(M_PI*x)*pow(sin(M_PI*y+1*M_PI/180),2)+pow((exp(x-y))\
*pow(sin(x*x*x*M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))*cos(x+23));
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2011, 18:24     Формула #8
Цитата Сообщение от Вася1q Посмотреть сообщение
Многие компиляторы на него ругаются...
Они ругаются на программиста, который не может ее правильно вызвать
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
29.11.2011, 18:53  [ТС]     Формула #9
Цитата Сообщение от SleepMaster Посмотреть сообщение
Держи, у меня всё работает:
C++
1
2
z=(M_PI*x)*pow(sin(M_PI*y+1*M_PI/180),2)+pow((exp(x-y))\
*pow(sin(x*x*x*M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))*cos(x+23));
Вот так уже компилируется и запускается но считает не правильно,
при
x = 1.215 y = -1.517
должно быть z = -2.4317e + 00

вот весь код, может еще ошибка где то?

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
29
#include<iostream>
#include<iomanip>
#include<math.h>
#include<stdio.h>
#define M_PI 3.13159
 
using namespace std;
 
 void main()
{
 float x,y,z;
  for(int i=0;i<3;i++)
 
   {cout<< "x=";
    cin>> x;
    cout<< "y=";
    cin>> y;
 
    z=(M_PI*x)*pow(sin(M_PI*y+1*M_PI/180),2)+pow((exp(x-y))
        *pow(sin(x*x*x*M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))*cos(x+23));
 
    cout<< "For x= " << x << " and y= "<< y << endl;
    cout.setf(ios::scientific,ios::floatfield);
    cout<< "Result z= " << setprecision(4) << z << endl << endl;
    cout.setf(0,ios::floatfield);
   }
  cout<< "End Programm. Press Enter" << endl;
  getchar();
}
SleepMaster
 Аватар для SleepMaster
40 / 40 / 1
Регистрация: 26.11.2011
Сообщений: 80
29.11.2011, 19:19     Формула #10
C++
1
2
z=M_PI*x*pow(sin((M_PI*y+1)*M_PI/180), 2.0)+pow((exp(x-y))\
*pow(sin(x*x*x*M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))*cos(x+23));
Дальше не знаю. Пофиксил первое слагаемое.
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
29.11.2011, 23:21  [ТС]     Формула #11
Цитата Сообщение от SleepMaster Посмотреть сообщение
C++
1
2
z=M_PI*x*pow(sin((M_PI*y+1)*M_PI/180), 2.0)+pow((exp(x-y))\
*pow(sin(x*x*x*M_PI/180),2),1.0/3)*(log10(fabs(tan(x/y)))/sin(log(fabs(x)))*cos(x+23));
Дальше не знаю. Пофиксил первое слагаемое.
Все равно не правильно,
получается:
Z=2.6921e-002

а должно быть:
Z=-2.4317e+00

при:
X=1.215
Y=-1.517

но все равно спасибо огромное за помощь!
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 14:59     Формула #12
C++
1
2
3
z = pi * x * pow(sin(pi * y + 1), 2.0) +
    pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log(fabs(tan(x / y))) /
    sin(log(fabs(x))) * cos(x + 1);
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
30.11.2011, 16:18  [ТС]     Формула #13
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
3
z = pi * x * pow(sin(pi * y + 1), 2.0) +
    pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log(fabs(tan(x / y))) /
    sin(log(fabs(x))) * cos(x + 1);
так в borland получается:
z=1.0682e+00

VS ругается на второй pow вот отсюда
C++
1
pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3)
error C2666: pow: для 6 перегрузок есть подобные преобразования
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 16:48     Формула #14
сделай x типа double (не в формуле)
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
30.11.2011, 17:01  [ТС]     Формула #15
Цитата Сообщение от accept Посмотреть сообщение
сделай x типа double (не в формуле)
ошибка в VS пропала, но результат z не изменился.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 23:12     Формула #16
а нужно что ?
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
30.11.2011, 23:42  [ТС]     Формула #17
должно быть:
Z=-2.4317e+00

при:
X=1.215
Y=-1.517
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
01.12.2011, 00:21     Формула #18
C++
1
2
3
z = pi * x * pow(sin(pi * y + 1), 2.0) + 
    pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log(fabs(tan(x / y))) /
    sin(log(fabs(x))) * cos(x + 23 * pi / 180);
Python
1
2
3
4
5
6
7
8
9
10
>>> from math import *
>>> x, y = 1.215, -1.517
>>> z = pi * x * pow(sin(pi * y + 1), 2.0) + \
...     pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log(fabs(tan(x / y))) / \
...     sin(log(fabs(x))) * cos(x + 23 * pi / 180);
>>> z
1.2859386947195863
>>> 23 * pi / 180
0.40142572795869574
>>>
либо у тебя формула неправильная, либо у тебя ожидаемый ответ неправильный, либо происходит переполнение при вычислениях
Ultrasonic
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 8
01.12.2011, 01:07  [ТС]     Формула #19
Формула
Все проверил по несколько раз, вот так задачка.
Пойду к преподу, пусть объясняет в чем дело.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 01:23     Формула
Еще ссылки по теме:

Формула C++
Формула! C++
C++ Формула С++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
01.12.2011, 01:23     Формула #20
подожди
lg - log10

Добавлено через 2 минуты
C++
1
2
3
z = pi * x * pow(sin(pi * y + 1), 2.0) + 
    pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log10(fabs(tan(x / y))) /
    sin(log(fabs(x))) * cos(x + 23 * pi / 180);
Python
1
2
3
4
5
6
7
8
>> from math import *
>>> x, y = 1.215, -1.517
>>> z = pi * x * pow(sin(pi * y + 1), 2.0) + \
...     pow(exp(x - y) * pow(sin(pow(x, 3.0)), 2.0), 1.0 / 3) * log10(fabs(tan(x / y))) / \
...     sin(log(fabs(x))) * cos(x + 23 * pi / 180);
>>> z
1.2960624619853003
>>>
заносил в числителе всё под корень
записывал ln как lg
не подходят
Yandex
Объявления
01.12.2011, 01:23     Формула
Ответ Создать тему
Опции темы

Текущее время: 00:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru