Задача: Треугольник задан длинами своих сторон: a, b, c. Определить, является ли он тупоугольным, прямоугольным или остроугольным.
Тесты:
угол №1 | угол №2 | угол №3 | Результат | Комментарий |
30 | 60 | 90 | треугольник прямоугольный | тест пройден |
60 | 60 | 60 | треугольникостроугольный равностороннийравнобедренный | тест пройден |
70 | 70 | 40 | треугольникостроугольный равнобедренный | тест пройден |
45 | 90 | 45 | треугольник прямоугольный равнобедренный | тест пройден |
80 | 20 | 80 | треугольникостроугольный равнобедренный | тест пройден |
30 | 120 | 30 | треугольник тупоугольный равнобедренный | тест пройден |
50 | 90 | 150 | треугольник не существует | тест пройден |
120 | 150 | 160 | треугольник не существует | тест пройден |
Код программы:
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 |
#include <iostream> #include <clocale> using std::cout; using std::cin; int main() { setlocale(LC_ALL, ""); int a,b,c; cout<<"Введите значения углов через пробел\n"; cin>>a>>b>>c; if(a+b+c == 180 && a>0 && b>0 && c>0) { if(a<90 && b<90 && c<90) { cout<<"\nТреугольник остроугольный"; if(a==b && b==c && c==60) cout<<"\nТреугольник равносторонний"; } else if(a == 90 || b == 90 || c == 90) cout<<"\nТреугольник прямоугольный"; else cout<<"\nТреугольник тупоугольный"; if(a==b || b==c || a==c) cout<<"\nТреугольник равнобедренный"; } else cout<<"\nТреугольник не существует"; cin.sync(); cin.get(); return 0; } |
Решение задачи:
1) Вводим данные стороны a,b,c;
2) Вводим условия для выполнимости определения треугольников (ограничения для углов):
а) для остроугольных
б) для равносторонних
в) для прямоугольных
г) пишем условие, при котором выполняется для тупоугольных треугольников
д) для равнобедренных
е) если ни одно из условий не выполняется, значит треугольника не существует
Посмотреть и протестировать программу можно на этом сайте: http://ideone.com/uAyr4x