Элементарное знакомство с языком С/С++. Разработка программы для расчета результатов полета снаряда, страница 3

-  R – радиус описанной окружности;

-  r – радиус вписанной окружности.

Разработать программу для расчета по трем заданным параметрам всех остальных (по вариантам входных данных).

Вариант 3.

Дано:  c, a, b

;    ;   ;    ;    ;

;      ;           ;

.

Решение.

 


                                                                                         A

                                                                                         B

c                                                               

                                                                                         C

                                                                                         C0

                      A0                                                              s

double                                                                       

                                                                                         R                double

r

B0                                                               h

                                                                                          p

                                                                                         a

                                                                                          b

Хотя переменных довольно много, но, по сути, алгоритм вычислений очень простой, без ветвлений и циклов, так что составлять блок-схему в этом случае не обязательно.  Углы в градусах альфа, бета и гамма обозначены соответственно A0, B0 и C0. Углы в радианах A, B и C; s – площадь треугольника, a, b, c, p, R и r – соответствуют обозначениям в условии задачи. Все переменные типа double.

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main ()

{

double a,b,c,A,B,C,Ao,Bo,Co,p,s,h,R,r;

cout<<"Vvedite storonu treugolnika c = ";   //чтобы пользователю программы было

cin>>c;                                                           // проще понять, что требуется ввести,

cout<<"Vvedite ugol treugol'nika v gradusah Ao = ";         //на экран выведены

cin>>Ao;                                                    // пояснения рядом с идентификаторами

cout<<"Vvedite ugol treugol'nika v gradusah Bo = ";

cin>>Bo;

A=Ao*M_PI/180; //так как С работает с радианами, мы переводим введенные

B=Bo*M_PI/180;        //значения углов в радианы для дальнейших расчетов

Co=180-Ao-Bo;

C=Co*M_PI/180;

a=c*sin(A)/sin(C);

b=c*sin(B)/sin(C);

h=a*sin(B);

p=(a+b+c)/2;

s=c*h/2;

R=a*b*c/(4*s);

r=2*s/(a+b+c);

cout<<"Ugol alpha v radianah = "<<A<<endl;

cout<<"Ugol betta v radianah = "<<B<<endl;

cout<<"Ugol gamma v radianah = "<<C<<endl;

cout<<"Ugol gamma v gradusah = "<<Co<<endl;

cout<<"Plosh'ad' treugol'nika = "<<s<<endl;

cout<<"Radius opisannoi okrugnosti = "<<R<<endl;

cout<<"Radius vpisannoi okrugnosti = "<<r<<endl;

cout<<"Visota k storone c = "<<h<<endl;

cout<<"Poluperimetr = "<<p<<endl;

cout<<"Storona a = "<<a<<endl;

cout<<"Storona b = "<<b<<endl;

getch();

clrscr();

}

Результаты исполнения программы.

Входной набор 1: 

c = 15

Ao = 30

Bo = 65

Результат:

A = 0.523599

B = 1.134464

C = 1.48353

Co = 85

s = 51.174548

R = 7.528649

r = 2.829262

h = 6.823273

p = 18.087597

a = 7.528649

b = 13.646546

Входной набор 2: 

c = 10

Ao = 45

Bo = 45

Результат:

A = 0.785398

B = 0.785398

C = 1.570796

Co = 90

s = 25

R = 5

r = 2.071068

h = 5

p = 12.071068

a = 7.071068

b = 7.071068

Входной набор 3: 

c = 70

Ao = 60

Bo = 60

Результат:

A = 1.047198

B = 1.047198

C = 1.047198

Co = 60

s = 2121.762239

R = 40.414519

r = 20.207259

h = 60.621778

p = 105

a = 70

b = 70

Вывод.

В этой задаче я выработала навыки работы с большим количеством переменных, и поняла принцип работы в С с углами в градусах и радианах.