Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
zverek
2 / 1 / 0
Регистрация: 18.04.2012
Сообщений: 22
#1

-1.#IND "Отрицательная неопределённость" - C++

01.08.2013, 12:06. Просмотров 1327. Ответов 6
Метки нет (Все метки)

Здравствуйте.

1) Что такое "Отрицательная неопределённость"?
2) Почему она появляется на этих входных данных
18.716839 40.852752
66.147248 -4.083161
111.083161 43.347248
вот в этой "программе"?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <cstdio>
#include <iostream>
#include <cmath>
#define pi  3.14159265358979323846
 
struct point{
    double x;
    double y;};
 
double area_sq(point A, point B, point C)
{
    return (A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y))*(A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y))/4;
};
 
double length_sq(point A, point B)
{
    return (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y);
};
 
int main()
{
    FILE *in, *out;
    in = freopen("input.txt", "r", stdin);
    out = freopen("output.txt", "w", stdout);
 
    point A, B, C;
 
    std::cin>>A.x>>A.y
            >>B.x>>B.y  
            >>C.x>>C.y;
 
    double  a=length_sq(A, B), 
            b=length_sq(B, C), 
            c=length_sq(C, A), 
            S=area_sq(A, B, C),
            R=(a*b*c)/(16*S);   
    
    printf("Стороны a, b, c и радиус (всё в квадрате):\n%f\n%f\n%f\n%f\n", a, b, c, R);
    
    double  angle_a=acos(1-a/(2*R))*180/pi, 
            angle_b=acos(1-b/(2*R))*180/pi,
            angle_d=acos(1-c/(2*R))*180/pi; 
 
        
    printf("Значения cos данных углов:\n%f\n%f\n%f\n", 1-a/(2*R), 1-b/(2*R), 1-c/(2*R));    
    printf("Cами углы в градусах\n%f\n%f\n%f", angle_a, angle_b, angle_d); 
 
    fclose(in); fclose(out);
}
На выходе имеем вот что:
Стороны a, b, c и радиус (всё в квадрате):
4268.879975
4268.879975
8537.759950
2134.439988
Значения cos данных углов:
-0.000000
-0.000000
-1.000000
Cами углы в градусах
90.000000
90.000000
-1.#IND00
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 12:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос -1.#IND "Отрицательная неопределённость" (C++):

Странный ответ ="-1.#IND" что такое? - C++
Нахожу сумму по формуле S=∑_(i=0)^10▒〖(-1)〗^(i+1)/i! Ответ не однозначный... помогите в чем ошибка? // applicationB-task2-zadacha3.cpp:...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Один и тот же результат "-1.#IND" - C++
выдает один и тот же результат... можно как-то исправить? const int N=100; double calculate(int myArray) { double sum = 0, j = 0,...

Функция возвращает "-1.#IND" - C++
Прогал задачку по вычматам, на выходе получаю символ &quot;-1.#IND&quot;. Вроде, это бесконечность. Подскажите, пожалуйста, в чем ошибка? Прога...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

6
nonedark2008
933 / 672 / 148
Регистрация: 28.07.2012
Сообщений: 1,837
01.08.2013, 12:16 #2
zverek, где ты видел треугольник, у которого сумма углов > 180? А так, из-за погрешности наверняка acos считается для значения за пределами [-1, 1]
0
zverek
2 / 1 / 0
Регистрация: 18.04.2012
Сообщений: 22
01.08.2013, 12:21  [ТС] #3
nonedark2008, никто такой треугольник не увидит. Это углы "хорд" в описанной окружности данного треугольника (хордами являются стороны треугольника). А значение вычисляемое
1-c/(2*R)
равно ровно -1.
0
nonedark2008
933 / 672 / 148
Регистрация: 28.07.2012
Сообщений: 1,837
01.08.2013, 12:26 #4
Цитата Сообщение от zverek Посмотреть сообщение
равно ровно -1.
А ты уверен, что не -1.00000000000001 ????
0
zverek
2 / 1 / 0
Регистрация: 18.04.2012
Сообщений: 22
01.08.2013, 12:28  [ТС] #5
nonedark2008, проверил, не уверен.
-1.00000000000000040000
0
nonedark2008
933 / 672 / 148
Регистрация: 28.07.2012
Сообщений: 1,837
01.08.2013, 12:39 #6
zverek, ну вот и проблема нашлась. Сделай проверку на границах, если значение входит в промежуток [-1 - eps; -1 + eps] то присваивай ему значение -1. Также с единицей.

Добавлено через 3 минуты
Хотя может не прокатить, делай значение чуть больше -1 и будет счастье.
0
zverek
2 / 1 / 0
Регистрация: 18.04.2012
Сообщений: 22
01.08.2013, 12:39  [ТС] #7
Спасибо) Второй вопрос разобрали. А первый?)
0
01.08.2013, 12:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 12:39
Привет! Вот еще темы с ответами:

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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