Суббота, 20 Апреля 2024, 16:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Выражение (Как реализовать?)
Выражение
WereWolfДата: Понедельник, 20 Сентября 2010, 11:21 | Сообщение # 1
частый гость
Сейчас нет на сайте
Доброго времени всем!

Помогите реализовать выражение, начал реализовывать, но дошел до последнего действия и получился перегруз оператора POW. Вот выражение которое надо сделать:

Вот мой код, но не могу дописать никак:

Code


#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main()
{
  double x=-4.5;  
  double y=0.75*pow(10,1./4);
  double z=0.845*pow(10,1./2);
  long double c,d,f,g;
  double tang = pow(cs,2)*z;  
     
  c = pow(8+pow(abs(x-y),2)+1,1./3);
  d = c/pow(x,2)+pow(y,2)+2;
  f = d - exp(abs(x-y));
  g = f*pow(tang+1,x);
   cout <<"Otvet:"<<g;
  getch();
  return 0;
  }

PS Реализация на Visual C++ 2010
Cпасибо!


В мире много глюков - и с ними надо жить!!!
JohnJДата: Понедельник, 20 Сентября 2010, 12:18 | Сообщение # 2
участник
Сейчас нет на сайте
Что значит перегруз оператора pow? я не си-программист, поэтому просто интересно smile
Зачем искать u, если оно уже дано в "При"? smile
Если этот просто ответ для cверки, то на php я писал бы так:
$x = -4.5
$y = 0.000075;
$z = 0.00845;
$u = (pow(8 + pow($x - $y, 2) + 1, 1/3) / ($x * $x + $y * $y + 2) - exp(abs($x - $y)) * pow(pow(tan(z), 2) + 1, x);


Сообщение отредактировал JohnJ - Понедельник, 20 Сентября 2010, 12:19
BlooDVlaDДата: Понедельник, 20 Сентября 2010, 12:52 | Сообщение # 3
частый гость
Сейчас нет на сайте
Не объявлена переменная cs. Добавь
Code
double cs = tan(z);
в объявлениях переменных.
И вообще формула рассчитана математически неправильно. Ты вначале от дроби отнимаешь экспоненту, а потом умножаешь это на (tg z...). А надо экспоненту умножить на (tg z...), а потом отнимать от дроби. И в знаменателе дроби пропущены скобки. В общем две ошибки математические и одна в коде. Вот работающий код:
Code
  
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main()
{
   double x=-4.5;   
   double y=0.75*pow(10,1./4);
   double z=0.845*pow(10,1./2);
   long double c,d,f,g;
   double cs = tan(z);
   double tang = pow(cs,2)*z;   
       
   c = pow(8+pow(abs(x-y),2)+1,1./3);
   d = c/(pow(x,2)+pow(y,2)+2);
   f = exp(abs(x-y))*pow(tang+1,x);
   g = d - f;
    cout <<"Otvet:"<<g;
   getch();
   return 0;
   }
DekaSoftДата: Понедельник, 20 Сентября 2010, 12:54 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Quote (WereWolf)

double x=-4.5;
double y=0.75*pow(10,1./4);
double z=0.845*pow(10,1./2)

Вообще бред. pow(10,1./4) - это корень 4-й степени из 10, а не 10 в минус четвертой. biggrin
Напиши просто:

Code

x = -4.5  
y = 0.000075;  
z = 0.00845
  

Ну и предыдущее замечание тоже актуально. Переменной cs нету.


http://dekasoftware.narod.ru
http://www.dekagames.com


Сообщение отредактировал DekaSoft - Понедельник, 20 Сентября 2010, 13:00
BlooDVlaDДата: Понедельник, 20 Сентября 2010, 13:01 | Сообщение # 5
частый гость
Сейчас нет на сайте
Code

double y=0.75*pow(10,(-4));    
double z=0.845*pow(10,(-2))  
WereWolfДата: Понедельник, 20 Сентября 2010, 13:25 | Сообщение # 6
частый гость
Сейчас нет на сайте
Code
#include <iostream>  
#include <conio.h>  
#include <math.h>  
using namespace std;  

int main()  
{  
    double x=-4.5;    
    double y=0.000075;  
    double z=0.00845;  
    long double c,d,f,g;  
    double cs = tan(z);  
    double tang = pow(cs,2)*z;    
         
    c = pow(8+pow(abs(x-y),2)+1,1./3);  
    d = c/(pow(x,2)+pow(y,2)+2);  
    f = exp(abs(x-y))*pow(tang+1,x);  
    g = d - f;  
     cout <<"Otvet:"<<g;  
    getch();  
    return 0;  
    }

Вот получившийся код, только вот ответ: -89.8852 , а должен быть -55.6848


В мире много глюков - и с ними надо жить!!!
DekaSoftДата: Понедельник, 20 Сентября 2010, 19:07 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Quote (WereWolf)
Вот получившийся код, только вот ответ: -89.8852

И это правильный ответ. Проверил на калькуляторе smile prof prof


http://dekasoftware.narod.ru
http://www.dekagames.com


Сообщение отредактировал DekaSoft - Понедельник, 20 Сентября 2010, 19:10
BlooDVlaDДата: Вторник, 21 Сентября 2010, 02:09 | Сообщение # 8
частый гость
Сейчас нет на сайте
Калькулятор надежнее кода angry
WereWolfДата: Вторник, 21 Сентября 2010, 09:46 | Сообщение # 9
частый гость
Сейчас нет на сайте
)))
Так что получается, ошибка в ответе, который давался изначально?


В мире много глюков - и с ними надо жить!!!
Форум игроделов » Программирование » C/C++ » Выражение (Как реализовать?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг