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

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

Войти
Регистрация
Восстановить пароль
 
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
#1

Непонятный вывод значений синуса - C++

24.08.2013, 21:13. Просмотров 591. Ответов 4
Метки нет (Все метки)

Есть вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
using namespace std;
 
const double pi = 3.14159265358979;
 
int main()
{
    cout <<sin(pi) <<endl
         <<sin(2*pi) <<endl
         <<sin(pi/2) <<endl
         <<sin(pi*3/2) <<endl;
    system ("PAUSE");
    return 0;
}
Для значений pi/2 pi*3/2 программа выводит значение синуса нормально (1 и -1 соответственно),но для других значений выводит почему-то некорректно.Выводит конечно результаты близкие к нулю,но с какой-то неточностью что-ли.
Вот почему так выводит?
Миниатюры
Непонятный вывод значений синуса  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 21:13     Непонятный вывод значений синуса
Посмотрите здесь:

Непонятный вывод - C++
У меня есть следующий код функции на С++ void CursorPosition(HWND hWnd, int xPosition, int yPosition, int xCell, int yCell, int sx, int...

Непонятный вывод структуры через функцию - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; struct st { char name; char surname; int...

Вывод значений на экран - C++
Имеется след код: #include &lt;conio.h&gt; using namespace std; int main() { struct Phone { int n_station; int...

Некорректный вывод значений - C++
Подскажите пожалуйста. в label_66 выводится &quot;0000&quot; а в label_65 не выводится &quot;15руб&quot; ошибок нет. куда еще нужно прописать label_65...

Вывод значений в таблицу - C++
Подскажите, что изменить в программе, чтобы значения x и F выводились в таблицу? #include &lt;iostream.h&gt; #include &lt;math.h&gt; int...

вывод значений Enum - C++
вот есть у меня такой enum ColorType { black, white, green, yellow = 13, red, rose = 15 };

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

Одноразовый вывод повторяющихся значений - C++
Задача: Написать шаблонную функцию, котороая будет принимать массивы любого типа const int size=10; int mas={ 1, 2, 3, 4, 1, 2, 3,...

Вывод максимального и минимального значений - C++
Добрый день. Нужно вывести максимальное и минимальное значения на экран. Что нужно прописать для этого в main'e? Функции: template...

Инициализация и вывод значений массива - C++
Задача(ликвидировать мое незнание ) Всем привет! Столкнулся с проблемой, давно у нас не было си,а теперь опять ввели.А я мало, что...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
24.08.2013, 21:22     Непонятный вывод значений синуса #2
Так как константа ПИ у вас задана все-таки с некоторой погрешностью, то он и выводит бесконечные малые величины в экспоненциальной форме, то бишь ваши первые два числа, синус пи и синус два пи == 0, но выводит вам число в минус пятнадцатой степени, что практически 0 и есть.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
24.08.2013, 21:31     Непонятный вывод значений синуса #3
Так будет наглядней:
C++
1
    std::cout << std::setprecision( 20 ) << std::setiosflags( std::ios::fixed ) << sin( 3.14159265358979 ) << std::endl;
Для этого нужно добавить заголовок <iomanip>
-=ЮрА=-
Заблокирован
Автор FAQ
24.08.2013, 21:34     Непонятный вывод значений синуса #4
MicM, scenotaph, 100% прав синус вічисляется с помощью разложений в ряд Тейлора и считается он (синус) для определённой точности разложения, где то до -15 степени как раз Хочешь смотри сам
http://codepad.org/awl2eSE7
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
24.08.2013, 21:43     Непонятный вывод значений синуса #5
C++
1
2
#define _USE_MATH_DEFINES
#include <cmath>
И можешь использовать M_PI
Yandex
Объявления
24.08.2013, 21:43     Непонятный вывод значений синуса
Ответ Создать тему
Опции темы

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