Задача. Треугольник задан величинами своих углов [latex]x[/latex], [latex]y[/latex], [latex]z[/latex] и радиусом описанной окружности [latex]R[/latex].
Найти стороны треугольника.
x | y | z | R | a | b | c | Комментарий |
95 | 36 | 49 | 3 | 5.98 | 3.53 | 4.53 | Тест пройден |
90 | 45 | 45 | 7 | 14 | 9.9 | 9.9 | Тест пройден |
60 | 60 | 60 | 14 | 24.25 | 24.25 | 24.25 | Тест пройден |
47 | 34 | 56 | 9 | Неверное значение углов. |
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 |
#include <stdio.h> #include<math.h> int main(void) { double x, y, z; double R, a, b, c; const double eps=0.01; printf("Введите величину угла x в градусах: \n" ); scanf("%lf", &x); printf("Введите величину угла y в градусах: \n" ); scanf("%lf", &y); printf("Введите величину угла z в градусах: \n" ); scanf("%lf", &z); printf("Введите радиус описанной окружности R: \n"); scanf("%lf", &R); if ( x+y+z>180+eps || x+y+z<180-eps) // Проверка на корректность условия { printf ("Ошибка в условии.Не правильное значение углов. \n"); } else { a=2*R*sin((x/180)*M_PI); b=2*R*sin((y/180)*M_PI); c=2*R*sin((z/180)*M_PI); printf("a=%5.2lf \n" , a); printf("b=%5.2lf \n" , b); printf("c=%5.2lf \n" , c); } return 0; } |
Для решения этой задачи использовалась формулы:
[latex]a=R\sin(x)[/latex] [latex]b=R\sin(y)[/latex] [latex]c=R\sin(z)[/latex]Если при выполнении программы вы зададите некоторое значение углов и при проверке программой окажется , что значение углов больше или меньше 180+»eps» ( eps=0.01 ) , то программа не выполнит поставленную задачу, т.к. в этом случае треугольник существовать не будет.
Для выполнения программы и проверки тестов вы можете воспользоваться этой ссылкой