Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
#1

Проверить правильность вычисления по формулам - C++

15.03.2014, 19:04. Просмотров 820. Ответов 22
Метки нет (Все метки)

Правильно я записал формулы?
Вернее я точно знаю что нет, где ошибка?))
C++
1
2
3
4
5
6
7
{
        u=sqrt(sqrt((-q/2)+sqrt(d)));
        v=(-p)/(3*u);
        y1=u+v;
        y2=((-u+v)/2)+((sqrt(3)*(u-v))/2);
        y3=((-u+v)/2)-((sqrt(3)*(u-v))/2);
    }
http://www.cyberforum.ru/cgi-bin/latex.cgi?u=\sqrt[3]{(\frac{-q}{2})+\sqrt{d}}
http://www.cyberforum.ru/cgi-bin/latex.cgi?v=\frac{-p}{3u}
y1=u+v
http://www.cyberforum.ru/cgi-bin/latex.cgi?y2=\frac{u+v}{-2}+\frac{\sqrt{3}(u-v)}{2}
http://www.cyberforum.ru/cgi-bin/latex.cgi?y3=\frac{u+v}{-2}-\frac{\sqrt{3}(u-v)}{2}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 19:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить правильность вычисления по формулам (C++):

Вычисления по формулам - C++
Здраствуйте.Рещите задачку пожалуйста,Я Си только начал,нужен токо этот пример остальное я сам по этой задачке... Вычислить значение...

Вычисления по формулам - C++
Верна ли запись в 20 строке, если функция имеет вид y=((e^x-2.7)+3)/x+1.3 #include <conio.h> //для функции _getch #include...

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

Вычисления по известным формулам - C++
Составить программу вычисления значения функции y=\frac{{a}^{2}+10}{\sqrt{{a}^{2}+1}} при любом значении а

Программа вычисления значения Y по математическим формулам - C++
Вот задача: y = |b-1|+tg^5(c+a) если (-1 < x < 1); y = cos ln^2 x+x^8 если (x >= 1); y = a^-10 в остальных случаях! А это...

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

22
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
15.03.2014, 21:50 #16
не, это для 27
1
ValeryS
Модератор
6781 / 5189 / 495
Регистрация: 14.02.2011
Сообщений: 17,411
15.03.2014, 21:52 #17
Цитата Сообщение от saden Посмотреть сообщение
а сколько должно быть?
4,3267487109222251469649149323403(калькулятор сказал)
4.9 это уже близко к 5 а 53=125
сейчас загружу компилятор и проверю
1
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
15.03.2014, 22:03  [ТС] #18
Цитата Сообщение от ValeryS Посмотреть сообщение
4,3267487109222251469649149323403(калькулятор сказал)
4.9 это уже близко к 5 а 53=125
сейчас загружу компилятор и проверю
Да все норм, я наночь глядя ступил с 81... надо было 27 писать)))

Добавлено через 7 минут
в итоге все равно пишет y1= "nan"

Добавлено через 1 минуту
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <math.h>
#include <cmath>
 
using namespace std;
 
int main()
{
    float a, b, c, p, q, y1, y2, y3, d, u, v, r, fi;
    cout << "This program unleashes the cubic equation\n";
    cout << "Enter a factor - a:\n";
    cin >> a;
    cout << "Enter a factor - b:\n";
    cin >> b;
    cout << "Enter a factor - c:\n";
    cin >> c;
    cout << "x^3+" << a << "x^2+" << b << "x+" << c << "=0\n";
    p=b-(a*a/3);
    q=((2*(a*a*a))/27)-((a*b)/3)+c;
    d=((p*p*p)/27)+((q*q)/4);
    if (d>0)
    {
        u=pow(((-q/2)+sqrt(d)),1.0/3.0);
        v=(-p)/(3*u);
        y1=u+v;
        y2=((-u+v)/2)+((sqrt(3)*(u-v))/2);
        y3=((-u+v)/2)-((sqrt(3)*(u-v))/2);
    }
    if (d==0)
    {
        y1=(3*q)/p;
        y2=y3=((-3)*q)/2*p;
    }
    if (d<0)
    {
        r=sqrt(((-p)*p*p)/27);
        fi=acos((-q)/2*r);
        y1=2*pow((r),1.0/3.0)*cos(fi/3);
        y1=2*pow((r),1.0/3.0)*cos((fi+2*M_PI)/3);
        y1=2*pow((r),1.0/3.0)*cos((fi+4*M_PI)/3);
    }
    cout << y1;
}
вот код программы
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
15.03.2014, 22:08 #19
в математике корень от отрицательного числа считается неопределенным. Даже нечетного порядка.

Не могу сказать, реализовано ли это в библиотеках С++, но попробуйте разделить отрицательные значения через if

Добавлено через 1 минуту
кстати, судя по коду d может быть отрицательным, а от него берецца квадратный корень

Добавлено через 1 минуту
Не, виноват, не досмотрел...
Проверяй знаки, пока на примете р
0
ValeryS
Модератор
6781 / 5189 / 495
Регистрация: 14.02.2011
Сообщений: 17,411
15.03.2014, 22:14 #20
итак VS 2008
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <math.h>
 
int main()
{
double a=81;
a=pow((a),1.0/3.0);
std::cout << a;
 return 0;
}
ответ 4.32675
не знаю откуда у тебя
Цитата Сообщение от andreyananas Посмотреть сообщение
выбивает 4.9347...
взялось

Добавлено через 3 минуты
Цитата Сообщение от andreyananas Посмотреть сообщение
в итоге все равно пишет y1= "nan"
пройди в Дебагере по шагам
или выводи на экран все промежуточные вычисления
есть подозрение что
Цитата Сообщение от andreyananas Посмотреть сообщение
d=((p*p*p)/27)+((q*q)/4);
отрицательное
а от него корень берется
"nan" в переводе на русский язык невозможное число

Добавлено через 2 минуты
Цитата Сообщение от andreyananas Посмотреть сообщение
float a, b, c, p, q, y1, y2, y3, d, u, v, r, fi;
поменяй на double
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
15.03.2014, 22:21  [ТС] #21
Цитата Сообщение от ValeryS Посмотреть сообщение
ответ 4.32675
не знаю откуда у тебя
Сообщение от andreyananas
выбивает 4.9347...
взялось
та я после точки отпонта написал, просто был уверен что должно быть 3))))

Добавлено через 28 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
поменяй на double
пробовал(

Добавлено через 55 секунд
вообще я d выводил после вычисления, все норм
так же норм с - u
а вот - v уже выбивает nan

Добавлено через 2 минуты
C++
1
v=(-p)/(3*u);
вот это выбивает nan
правильно ли записан минус p ?
0
ValeryS
Модератор
6781 / 5189 / 495
Регистрация: 14.02.2011
Сообщений: 17,411
15.03.2014, 22:32 #22
ввел 25 15 2
и нарвался вот на это
q=1034.4074074074074
(-q)/2*r= -267571.49944421428
разумеется
C++
1
fi=acos((-q)/2*r);
не может взяться
у него аргумент от -1 до 1
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
15.03.2014, 22:58  [ТС] #23
так что же делать?
0
15.03.2014, 22:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2014, 22:58
Привет! Вот еще темы с ответами:

Создать программу для вычисления Y и Z по заданным формулам - C++
Помогите пожалуйста,знаю что простенько,но не понимаю,а если можно то и объясните... y=sin(x/2+a(в 3й степени)) z= cos(квадрат)(x/2 +...

Проверить правильность задания №2 - C++
Дано трехзначное число N. Проверить, будет ли сумма его цифр четным числом. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Проверить код на правильность - C++
Здравствуйте! Помогите пожалуйста проверить код на правильность,т.к. почему-то не компилируется. Задача: Известно кол-во очков, набранных...

Проверить код на правильность - C++
Ребят написала код но не уверена что правильно.К сожалению Как проверить не знаю. проверьте пожалуйста заранее благодарю! #include...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

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