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

Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=... - C++

Восстановить пароль Регистрация
 
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
01.10.2010, 12:52     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=... #1
Дано вещественное Х. Составить программу вычисления у=f(x), если
f(x)=sqrt(1/(2*PI*x))*pow((ln(sin(x)))/(sin(2*x)+cos(x)),1/3)
Я ее пытался решить, получилось:
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
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
    float x,y,a,r;
    const float PI=3.1415;
    printf("input x=");
    scanf("%f",&x);
    
    a=1./3;
    r=(log(sin(x))/(sin(2*x)+cos(x)));
    
    if 
        ((x!=0)&&(sin(x)>0)&&(sin(2*x)+cos(x)!=0)&&(x<=PI)&&(x>=(-1)*PI))
        {
            y=sqrt(1/(2*PI*x))*pow(r,a);
    
            printf("y=%f",y);
        }
    else 
        printf("x not valid");
    getch();
}
но программа считает правильно только при x>=1.6, а при меньших значениях выдает -1#IND0... Прошу помочь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2010, 12:52     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=...
Посмотрите здесь:

C++ Составить программу для вычисления суммы данного ряда для указанного значения аргумента х, если известно количество N членов ряда.
C++ Дано вещественное число N(>0). Если N - нечетное число, то вывести произведение 1*3*...*N, если N - четное число, то вывести произведение 2*4*...*N
C++ Дано вещественное число и натуральное число. Вычисления.
C++ Дано вещественное x. Вычислить z = f( x ), не получается составить код
C++ Составить программу для вычисления среднего балла студентов, если количество студентов и оценки вводятся с клавиатуры.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
01.10.2010, 13:47     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=... #2
pow(r,a) - тут ghb при x>=1.6 похоже будет вычисляться кубический корень из отрицательного числа. Поэтому выдаёт ошибку. Не знаю, правильный вариант, или нет - я попробовал брать корень из модуля числа и добавлять знак:

C++
1
y=sqrt(1/(2*PI*x))*(r/fabs(r))*(pow(fabs(r),a));
Как пример:
C++
1
2
3
const float b = -27.0;
cout<<pow(b,1./3)<<endl; // не работает
cout<< (b/fabs(b))*(pow(fabs(b),1./3))<<endl; //  работает
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
01.10.2010, 14:03     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=... #3
dihlofos,
А что, разве кубический корень из отрицательного числа не определён?

Добавлено через 3 минуты
А, ну да, там же всё это дело через Ньютона считается... Туплю.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
01.10.2010, 14:04     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=... #4
silent_1991, определён, но как его с помощью pow вычислить?

Добавлено через 27 секунд
Ну вот, и я о том же)
Yandex
Объявления
01.10.2010, 14:04     Дано вещественное Х. Составить программу вычисления у=f(x), если f(x)=...
Ответ Создать тему
Опции темы

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