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

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

Восстановить пароль Регистрация
 
bes4etnov
 Аватар для bes4etnov
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 9
19.01.2014, 14:35     "Точность вычислений" или "Элементарная погрешность" #1
Всем привет!

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

Ну так вот.

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

Но иногда возникает проблема с точностью вычислений:
например, когда вводишь координаты 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     "Точность вычислений" или "Элементарная погрешность"
Посмотрите здесь:

C++ Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*".
C++ по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" C++
C++ Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     "Точность вычислений" или "Элементарная погрешность"
Ответ Создать тему
Опции темы

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