1. Изучите теоретический материал, представленный в текстовом файле и в § 8.4
2. В вашей папке на Google диске создайте папку Урок 12 (в нее нужно будет копировать все файлы, полученные в результате выполнения заданий данного урока).
Пример. Тело брошено с начальной скоростью V0 м/с под углом α° к горизонту. Составить программу, которая демонстрирует полет тела, вычисляет высоту, дальность и время полёта. Выберем систему отсчета и зададим начальные условия: t=0; x(0)=0, y(0)=0. Движение тела, брошенного с начальной скоростью под углом к горизонту, описывается системой уравнений:
Угол для функций синус и косинус должен быть задан в радианах.
Задание 1. Снаряд вылетает из орудия с начальной скоростью 60 м/с под углом 60° к горизонту. Разберите и выполните на компьютере программу, которая имитирует полет снаряда, вычисляет высоту, дальность и время полета и выводит результаты на экран.
program polet_tela;
Uses crt,GraphABC;
Const
x0=100; y0=500; {начало координат}
k=2; {экранный множитель}
a=pi/3; {угол бросания}
v0=60; {скорость снаряда}
g=9.81; {ускорение свободного падение}
var
x1, y1: integer; {экранные координаты}
x, y: real; {физические координаты}
ym: real; {максимальная высота}
t: real; {время}
begin
SetWindowSize(800,600);
Line(x0,y0,800,y0); {ось X}
Line(x0,y0,x0,0); {ось Y}
{Рисование пушки}
Line(0,580,80,500);
LineTo(100,520);
LineTo(20,600);
LineTo(0,580);
FloodFill(50,550, CLGray);
SetBrushColor(CLBlack);
Circle(70,580,20);
{Полет снаряда}
t:=0; ym:=y;
While y>=0 do
begin
SetBrushColor(ClWhite);
SetPenColor(ClWhite);
Circle(x1,y1,10); {стирание снаряда в прежнем положении}
t:=t+0.05; {задание приращения времени}
x:=v0 * t * cos(a); {вычисление физических координат}
y:=v0*t*sin(a)-g*t*t/2;
if y>ym then
ym:=y; {нахождение максимума координаты y}
x1:=Round(x0+k*x); {переход к экранным координатам}
y1:=Round(y0-k*y);
SetBrushColor(CLBlack);
SetPenColor(CLBlack);
Circle(x1,y1,10); {рисование в новом положении}
sleep(30);
end;
writeln('Время полета = ',t:5:1, ' с');
writeln('Дальность полета = ',x:5:2, ' м');
writeln('Высота полета = ',ym:5:2, ' м');
end.
Задание 2. Снаряд вылетает из орудия с начальной скоростью 55 м/с под углом 45° к горизонту. Попадет ли снаряд в стену высотой L м, находящуюся на расстоянии 200 м от орудия? Составьте программу, которая рисует стену заданной высоты на заданном расстоянии (с учетом масштаба) и имитирует полет снаряда. Высоту стены L ввести с клавиатуры. Если снаряд попал в стену, прервать «полет» и выдать на экран сообщение «Снаряд попал в стену». Если снаряд не попал в стену, выдать на экран данные о времени, дальности и высоте полета.
Фрагменты демонстрации полета снаряда при высоте стены 150 м оказаны на рисунке.
Задание 3. Равнодействующая всех сил, действующих на тело, равна нулю. Составьте программу, демонстрирующую равномерное движение бруска вниз по наклонной плоскости.
Задание 4. Составьте программу, демонстрирующую движение вагона вверх по наклонной плоскости с постоянной скоростью.
3. Выполните задания по теме урока. Созданные файлы программ для заданий №1 - №4, и файлы результатов выполнения программы в виде принскинов экрана скопируйте в папку Урок 12.