IT-School

Современное образование в IT сфере

1. Изучите теоретический материал, представленный в текстовом файле и в § 8.4

2. В вашей папке на Google диске создайте папку Урок 12 (в нее нужно будет копировать все файлы, полученные в результате выполнения заданий данного урока).


Пример. Тело брошено с начальной скоростью Vм/с под углом α° к горизонту. Составить программу, которая демонстрирует полет тела, вычисляет высоту, дальность и время полёта. Выберем систему отсчета и зададим начальные условия: t=0; x(0)=0, y(0)=0. Движение тела, брошенного с начальной скоростью под углом к горизонту, описывается системой уравнений:

pic11 12 1

Угол для функций синус и косинус должен быть задан в радианах.

Задание 1. Снаряд вылетает из орудия с начальной скоростью 60 м/с под углом 60° к горизонту. Разберите и выполните на компьютере программу, которая имитирует полет снаряда, вычисляет высоту, дальность и время полета и выводит результаты на экран.

pic11 12 2

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 м оказаны на рисунке.

pic11 12 3

 

Задание 3. Равнодействующая всех сил, действующих на тело, равна нулю. Составьте программу, демонстрирующую равномерное движение бруска вниз по наклонной плоскости.

pic11 12 4

 

Задание 4. Составьте программу, демонстрирующую движение вагона вверх по наклонной плоскости с постоянной скоростью.

pic11 12 5


3. Выполните задания по теме урока. Созданные файлы программ для заданий №1 - №4, и файлы результатов выполнения программы в виде принскинов экрана скопируйте в папку Урок 12.