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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
#1

Неправильный результат - C++

12.01.2011, 18:27. Просмотров 1039. Ответов 9
Метки нет (Все метки)

1)В результате выдаёт -1.#J. Как это исправить?
2)Подскажите пожалуйста как задавать число пи, мне нужно присвоить его переменной pi.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <math.h>
#include <conio.h>
 
void main()
{
    float pi=1;
    float x=-pi,s=0,xk=pi,xh=pi/10;
    do
    {
        s+=log((x+1)/(2*x-1))/(x/(tan(x)+sin(2*x)));
        x+=xh;
    }
    while (x<=xk);
    printf("Summa=%6.2f\n",s);
    _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 18:27     Неправильный результат
Посмотрите здесь:

C++ Ветвления. Дает неправильный результат
Неправильный результат выполнения программы C++
Алгоритм Флойда-Уоршелла (результат работы неправильный) C++
C++ Неправильный результат
C++ Неправильный результат char
C++ Программа для подсчета калорий выдает неправильный результат
C++ Почему в выходной файл выводит неправильный результат?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
12.01.2011, 18:35     Неправильный результат #2
Цитата Сообщение от Predvestnik Посмотреть сообщение
1)В результате выдаёт -1.#J. Как это исправить?
Ваша программа пытается вычислить логарифм от 0 (оно равно -бесконечности).
Цитата Сообщение от Predvestnik Посмотреть сообщение
2)Подскажите пожалуйста как задавать число пи, мне нужно присвоить его переменной pi.
C
1
2
3
4
5
...
#define _USE_MATH_DEFINES
#include <math.h>
.....
float pi=M_PI;
Учтите, что логарифм от "минус чего-то" - вообще неопределенно.
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
12.01.2011, 18:46  [ТС]     Неправильный результат #3
Теперь вообще не компилируется, я ж правильно написал всё чтоб пи подставить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <math.h>
#include <conio.h>
#define _USE_MATH_DEFINES
 
void main()
{
    float pi=M_PI;
    float x=-pi,s=0,xk=pi,xh=pi/10;
    do
    {
        s+=log((x+1)/(2*x-1))/(x/(tan(x)+sin(2*x)));
        x+=xh;
    }
    while (x<=xk);
    printf("Summa=%6.2f\n",s);
    _getch();
}
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.01.2011, 19:02     Неправильный результат #4
Ошибки компиляции не забывайте прикладывать. На первый взгляд должно компилироваться в VSC++
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
12.01.2011, 20:02  [ТС]     Неправильный результат #5
error C2065: 'M_PI' : undeclared identifier
warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
1>
1>Build FAILED.

вот ошибки

Добавлено через 33 минуты
если я правильно понял то M_PI принимает за неизвестную переменную...
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.01.2011, 20:18     Неправильный результат #6
Predvestnik, попробуйте так

C
1
#define pi 3.14159
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
12.01.2011, 20:29  [ТС]     Неправильный результат #7
в таком случае и если просто присвоить переменной значение 3.14159 выдаёт -1.#J., на другом интервале всё работает а с этим запара получилась:/
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.01.2011, 20:46     Неправильный результат #8
Predvestnik, Вам же написали во втором посте!!!!
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
12.01.2011, 20:46     Неправильный результат #9
Predvestnik, я Вам так показывал:
C
1
2
#define _USE_MATH_DEFINES
#include <math.h>
Вы делаете так:
C
1
2
#include <math.h>
#define _USE_MATH_DEFINES
И вот почему ругается на M_PI.

Цитата Сообщение от Predvestnik Посмотреть сообщение
выдаёт -1.#J.
Цитата Сообщение от Евгений М. Посмотреть сообщение
Учтите, что логарифм от "минус чего-то" - вообще неопределенно.
Теперь смотрите, что вычисляется в первом цикле.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2011, 21:19     Неправильный результат
Еще ссылки по теме:

C++ Найти максимальный элемент массива: неправильный результат, почему?
Неправильный результат при возведении числа в степень C++
Произведение четных чисел до n (неправильный результат) C++
Почему при ввводе маленьких чисел результат неправильный? C++
C++ Метод Ньютона (касательных), программа выдает неправильный результат

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

Или воспользуйтесь поиском по форуму:
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
12.01.2011, 21:19  [ТС]     Неправильный результат #10
спасибо теперь понял и простите за тупость только начал делфи учить а тут с, и опять всё с нуля учить....
Yandex
Объявления
12.01.2011, 21:19     Неправильный результат
Ответ Создать тему
Опции темы

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