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

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

Войти
Регистрация
Восстановить пароль
 
bes4etnov
 Аватар для bes4etnov
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 9
#1

"Точность вычислений" или "Элементарная погрешность" - C++

19.01.2014, 14:35. Просмотров 310. Ответов 5
Метки нет (Все метки)

Всем привет!

Решаю задачку (Задача А - во вложениях), где даны координаты вершин треугольника, и нужно найти наибольший угол в нем.

Ну так вот.

Это код моей программы. Она работает правильно.

Но иногда возникает проблема с точностью вычислений:
например, когда вводишь координаты 0;0, 2;2, 4;4 (лежат на одной прямой), то вместо 180 программа выводит очень необычный ответ: 179.9999987926.

В чем дело, я так и не понял.
В интернете ничего дельного не нашел...

Возможно, это как-то связано с функциями sqrt() и acos().

Как вы думаете, в чем проблема?
Вложения
Тип файла: pdf problems.pdf (154.4 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 14:35     "Точность вычислений" или "Элементарная погрешность"
Посмотрите здесь:

Определить "Y" с точностью до члена ряда меньшего "e"(допустим: 0.001) C++
C++ Проверить, есть ли в слове приставка "пре" или "пре".
C++ Вычисление суммы позиций на которых в слове Х стоят буквы "в" и "п"
"И" ведет себя как "ИЛИ" C++
Сгенерировать число "1" или "2" C++
C++ Проверить утверждение "результатами вычислений по формуле х^2+х+17, при 0 <=х <= 15, являются простые числа"
Перебрать все слова длиной не более n, составленные из букв "а" и "b" C++
Error C2361: пропуск инициализации "Height" из-за метки "default" C++
Что применить "\n" или "endl"? C++
C++ Ошибка в Eclipse "Type Program "make" not found in PATH"
Во введённой строке требуется поменять все буквы "а" на "i", и наоборот C++
C++ Найти угол одной точки "A" в соотношении к точке "B" в градусах

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korep
 Аватар для korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 566
19.01.2014, 14:42     "Точность вычислений" или "Элементарная погрешность" #2
это не проблема, а результат округлений в ответах, например 1/3 запишется как 0.3333 и при обратном действии вернет 0.9999
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
19.01.2014, 15:02     "Точность вычислений" или "Элементарная погрешность" #3
Цитата Сообщение от bes4etnov Посмотреть сообщение
то вместо 180 программа выводит очень необычный ответ: 179.9999987926
Нет ничего необычного, эти функции(тот же acos()) расчитываются до определенной точности, где-то до -15 степени.
bes4etnov
 Аватар для bes4etnov
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 9
19.01.2014, 15:10  [ТС]     "Точность вычислений" или "Элементарная погрешность" #4
И как же быть?? Желательно, чтобы программа выводила правильный ответ)

Может быть есть какой-нибудь способ??
korep
 Аватар для korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 566
19.01.2014, 15:13     "Точность вычислений" или "Элементарная погрешность" #5
округляйте до нужного знака
bes4etnov
 Аватар для bes4etnov
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 9
19.01.2014, 15:26  [ТС]     "Точность вычислений" или "Элементарная погрешность" #6
Хех) В данной задаче точность равна 10^-8. То есть ответ программы считается неверным))
Yandex
Объявления
19.01.2014, 15:26     "Точность вычислений" или "Элементарная погрешность"
Ответ Создать тему
Опции темы

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