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

Метки и вывод наименьшего угла треугольника - C++

Восстановить пароль Регистрация
 
f0rEsT93
 Аватар для f0rEsT93
1 / 1 / 0
Регистрация: 06.08.2013
Сообщений: 13
26.01.2014, 14:09     Метки и вывод наименьшего угла треугольника #1
Доброго времени суток!
Есть задание: Треугольник задается координатами своих вершин. Среди некоторого количества треугольников указать те, которые являются остроугольными. Найти остроугольный треугольник наиболее близкий к прямоугольному треугольнику. Проверку на наличие у треугольника острых углов организовать во вспомогательном алгоритме.
Вот что мне удалось "набрать"...Прошу строго не пинать.
Листинг:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
using namespace std;
//test on existnce triangle
bool testtriangle(float a, float b, float c){
    bool result;
    if(((a+b)>=c) && ((a+c)>=b) && ((b+c)>=a)){//uslovue na sushestvovanie if (a<(c+b)) and (b<(a+c)) and (c<(a+b))
        result = true;
    }else{
        result = false;
    }
return result;
}
 
int ugol(float a, float b, float c){
    float cos, result=0;
    //int result;
    if(a>c){
        float temp=a;
        a=c;
        c=temp;
        //temp=0;
    }
    if(b>c){
        float temp=b;
        b=c;
        c=temp;
    }
    if((a+b)>c){
        cos=(a*a+b*b-c*c);
        //if(cos>0) result=cos;
        //return result;
    }   
    
    /*if((a+c)>b){
        cos=((a*a+c*c-b*b)/2*a*c);
            if(cos>0){
            result=cos;
        }
    }
    if((b+c)>a){
        cos=((b*b+c*c-a*a)/2*b*c);
            if(cos>0){
            result=cos;
        }
    }*/
    //if(cos>0)result=cos;
return cos;
}
 
bool testing(int cos){
    bool result;
    if(cos>0){
        return result=true;
    }else{
        return result=false;
    }
    return result;
}
 
//main code
int main(){
    float a, b, c, cos, min=180, x,y,z;
    bool test, ugolcos;
    int answer=0;
again:cout<<"Input sides for triangle: ";
        a=0;b=0;c=0;cos=0;
        cin>>a>>b>>c;
        test=testtriangle(a, b, c); //существование треугольника
        if (test==true){
            cos=ugol(a, b, c);//поиск угла
            ugolcos=testing(cos);//проверка на острый угол
            cout<<"Triangle is existence: "<<a<<" "<<b<<" "<<c<<" "<<"\n";
                if(ugolcos==true){
                    if(ugolcos<min){min=cos;}
                    
                }else{
                        cout<<"Ne iavliaetsia ostrim \n";
                        goto again;
                }
                //x=a;y=b;z=c;
                //cout<<"Triangle is existence: "<<x<<" "<<y<<" "<<z<<" "<<"\n";
                cout<<"Minimal ugol is: "<<min<<"\n";
 
            //many triangles
            cout<<"Try again? (1 - yes / 0 - exit) \n";
            cin>>answer;
            if (answer==1){ 
                //a=0;b=0;c=0;cos=0;//reseting parametres
                goto again;
            }
            if (answer==0){
                //break;
                goto endmin;
                //return 0;
            }
            x=a;y=b;z=c;
        }
        //exit if not existence triangle
        if (test==false){
            cout<<"Trinagle not existence... Try again? (1 - yes / 0 - exit) \n";
            cin>>answer;
            if (answer==1){
                cout<<"Triangle is existence: "<<x<<" "<<y<<" "<<z<<" "<<"\n";
                cout<<"Minimal ugol is: "<<min<<"\n";
            //if(answer==1){
                goto again;
            };
            if (answer==0){
                //break;
                goto endmin;
                //return 0;
            }
            
        }
        
endmin:cout<<"Triangle is existence: "<<x<<y<<z<<"\n";
cout<<"Minimal ugol is: "<<min<<"\n";
system("pause");
return 0;
}
Прошу помогите пожалуйста исправить, где ошибка не могу понять ...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2014, 14:09     Метки и вывод наименьшего угла треугольника
Посмотрите здесь:

Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник C++
Написать программу вычисления площади треугольника, если известно длины двух сторон и величина угла между ними. C++
C++ Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным.
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел C++
C++ Даны два угла треугольника (в градусах). Определить существует ли такой треугольник
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 15:44     Метки и вывод наименьшего угла треугольника #2
В чём суть ошибки?

Добавлено через 2 минуты
Почему ugol возвращает int?

Добавлено через 4 минуты
Почему bool ugolcos сравнивается с float min?
f0rEsT93
 Аватар для f0rEsT93
1 / 1 / 0
Регистрация: 06.08.2013
Сообщений: 13
26.01.2014, 15:46  [ТС]     Метки и вывод наименьшего угла треугольника #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
В чём суть ошибки?
при вводе 1 2 3 ошибка возникает, торопился завтра надо сдавать вот и невнимательно напечатал ..

Добавлено через 1 минуту
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Почему bool ugolcos сравнивается с float min?
исправил на if(cos<min)
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 15:50     Метки и вывод наименьшего угла треугольника #4
Почему в програме активно используются булевы переменные, но им присваивается только true либо false?

Добавлено через 3 минуты
А разве у минимального угла косинус минимален? Сравни косинус 60ти гр. и косинус 120ти
f0rEsT93
 Аватар для f0rEsT93
1 / 1 / 0
Регистрация: 06.08.2013
Сообщений: 13
26.01.2014, 15:56  [ТС]     Метки и вывод наименьшего угла треугольника #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Почему в програме активно используются булевы переменные, но им присваивается только true либо false?
я начал недавно изучение Си... вернее проходить мы начали... только показали пару примеров и все... ..да и в последний раз я около полу года, года сидел за Pascal ABC....
оффтоп..встречные парочка вопросов: 1-можно ли исправить как то код, не много ли придется править; 2- можете ли посоветовать какие набудь толковые самоучители...?

Добавлено через 3 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А разве у минимального угла косинус минимален? Сравни косинус 60ти гр. и косинус 120ти
я только sqrt(3)/2 нашел для 60 - поставил значение 90 вместо 180 ... хотя знаю , что не правильно, можете исправленные участки показать?...или хотя бы показать...подтолкнуть в нужном направлении? код снова писать придется? или половина правильного в этом етсь?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2014, 16:12     Метки и вывод наименьшего угла треугольника #6
Косинус 60гр это 0.5 !
И косинус убывающая функция! (т.е. Для минимального угла надо искать макс. Косинус)

Егэ по математике как сдавать будешь?!
Программу целиком не напишу, сижу на форуме с мобильника!
f0rEsT93
 Аватар для f0rEsT93
1 / 1 / 0
Регистрация: 06.08.2013
Сообщений: 13
26.01.2014, 16:15  [ТС]     Метки и вывод наименьшего угла треугольника #7
спасибо за ответ, очень признателен...
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
сижу на форуме с мобильника!
если будет возможность, буду благодарен за код ....
AndrSlav
44 / 44 / 6
Регистрация: 20.12.2013
Сообщений: 241
26.01.2014, 16:27     Метки и вывод наименьшего угла треугольника #8
Цитата Сообщение от f0rEsT93 Посмотреть сообщение
Треугольник задается координатами своих вершин.
Цитата Сообщение от f0rEsT93 Посмотреть сообщение
again:cout<<"Input sides for triangle: ";
Какое-то несоответствие, вроде. Если координаты вводятся, то их 6 или 9 должно быть, а не 3 для треугольника.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2014, 17:06     Метки и вывод наименьшего угла треугольника
Еще ссылки по теме:

Определить номер строки и столбца наименьшего из элементов верхнего треугольника. C++
C++ Найти (в градусах, минутах и секундах) все угла треугольника, вершины которого заданы координатами (x1, y1), (x2, y2), (x3, y3)
Рассчитать квадрат синуса угла, значение угла вводится с клавиатуры в градусах C++

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

Или воспользуйтесь поиском по форуму:
f0rEsT93
 Аватар для f0rEsT93
1 / 1 / 0
Регистрация: 06.08.2013
Сообщений: 13
26.01.2014, 17:06  [ТС]     Метки и вывод наименьшего угла треугольника #9
Цитата Сообщение от AndrSlav Посмотреть сообщение
Какое-то несоответствие, вроде. Если координаты вводятся, то их 6 или 9 должно быть, а не 3 для треугольника.
возможно и так. Мне уже не успеть все переписать, но я был бы рад хотя бы части кода
Yandex
Объявления
26.01.2014, 17:06     Метки и вывод наименьшего угла треугольника
Ответ Создать тему
Опции темы

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