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

3.  Разработать программу для выполнения следующего расчета:

Дано:              x, y, z – double.

Вычислить:   ;          .

Решение.

 


x

a

double           y                                                                    double

b

z

Для удобства чтения программы идентификаторы переменных выбраны в соответствии с обозначениями, используемыми в условии задачи. Тип данных на входе и на выходе вещественный – double.

Поскольку цель задачи – выполнить расчет по приведенной формуле, то нет необходимости в составлении алгоритма в словесно-описательной форме.

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main ()

{

double x,y,z,a,b;

cout<<"x=";

cin>>x;

cout<<"y=";

cin>>y;

cout<<"z=";

cin>>z;

a=((1+pow(sin(x+y),2))/2+abs(x-2*x/(1+x*x*y*y)))+x;

b=pow(atan(1/z),2);

clrscr();

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

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

getch();

}         

Алгоритм выполнения задачи аналогичен двум предыдущим.

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

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

x=1

y=2

z=3

Результат:

a=1.509957

b=0.103523

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

x=45

y=7

z=89

Результат:

a=89.986717

b=0.000126

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

x=80

y=78

z=74

Результат:

a=159.816668

b=0.000183

Вывод.

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

Задание 4.

4.  Разработать программу для расчета результатов полета снаряда, пущенного с начальной скоростью  под углом  по отношению к горизонту. Программа должна рассчитывать дальность  и высоту полета снаряда , а также время его полета . Расчет проводится по формулам:

;                ;                  ;

где      ;       ;

 - ускорение свободного падения.

Решение.

 


                                                                                                  h

                                V0          

double                                                                       l       double

                                  a

t

Начальную скорость я обозначила V0, угол альфа – a, высоту – h, дальность полета – l, и время полета t. Так же в задаче присутствуют промежуточные переменные, все типа double: проекция скорость на ось х - Vx, проекция скорости на ось ординат - Vy, и одна константа, это ускорение свободного падения – g. Сначала рассчитываются промежуточные значения скоростей, которые потом подставляются в главные формулы.

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main ()

{

double V0,a,l,h,t,Vx,Vy; //описание данных, их типа

cout<<"Vvedite nachalnuy skorost' V0=";                           //ввод данных с клавиатуры

cin>>V0;                                                                    //и присваивание этих значений

cout<<"Vvedite ugol a=";                                                        //переменным

cin>>a;

const double g=9.81; //введение константы

Vx=V0*cos(a*3.14/180); Vy=V0*sin(a*3.14/180); //расчет промежуточных значений

t=2*Vy/g;

l=Vx*t;

h=0.5*(Vy*t-g*pow((t/2),2)); //расчет t, l и h

clrscr();

cout<<"h="<<h<<endl;

cout<<"l="<<l<<endl;

cout<<"t="<<t<<endl;

getch();

}

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

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

V0=60

a=60

Результат:

h=137.530294

l=318.002128

t=10.590334

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

V0=20

a=70

Результат:

h=17.994369

l=26.248157

t=3.830706

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

V0=120

a=30

Результат:

h=183.317545

l=1270.840131

t=12.226792

Вывод.

В этой задаче мы научились вводить константы и промежуточные переменные.

Задание 5.

5.  Дан произвольный треугольник ABC, для которого определен следующий набор характерных параметров:

 - стороны треугольника;

 - углы в градусах;

- углы в радианах;

 - высота, опущенная на сторону c;

-  S – площадь;

-  p – полупериметр треугольника:;