Помогите написать программу ** языке Паскаль или в PascalABC, нахождение кинетической...

0 голосов
83 просмотров

Помогите написать программу на языке Паскаль или в PascalABC, нахождение кинетической энергии ( формула из физики) скорость 15, масса 12


Информатика (41 баллов) | 83 просмотров
Дан 1 ответ
0 голосов

Объяснение:

uses GraphABC,Events,Utils;                 //необходимые библиотеки подключены

var pr,px,py,kx,ky,ku,pc,s: integer;          //переменные: положение ракетки, координаты мяча, коэффициенты отражения, положение ракетки компьютера

 

procedure KeyDown(Key: integer);           //процедура обработки нажтия клавиши

begin

 case Key of

VK_Up: if pr>10 then pr:=pr-10;           //если вверх, и если ракетка не достигла края экрана, сместить координаты ракетки на 10 вверх

VK_Down: if pr

 end;

end;

 

procedure Pm;                             //процедура определения координат мячика

begin

if px

  begin

  kx:=kx*(-1);                //если достиг стенки левой - поменять коэффициент смещения по х на противоположный

  s:=random(2);

  if s=1 then ky:=ky*(-1);

  end;

if (py<10) or (py>490) then ky:=ky*(-1);  //если достиг стенки верхней или нижней - поменять коэффициент смещения на противоположный

if px>590 then                            //если достиг правой (игрока) стенки, проверяем

  if (py>pr-20) and (py

  begin                                 //иначе

  showmessage('Вы упустили мячик!');    //выводим сообщение

  inc(ku);                              //увеличиваем счетчик упущенных мячей

  px:=15;                               //возвращаем мяч в исходную позицию у противоположной стенки

  py:=250;

  end;

px:=px+kx;                               //смещаем координаты на коэффициенты смещения

py:=py+ky;

end;

 

begin

lockdrawing;                            //запрет прорисовки в окне (мигание убираем)

setwindowsize(600,500);                 //размер окна

kx:=5; ky:=1; px:=15; py:=250; pr:=250; //задаем координаты смещения и позицию мяча

repeat                                  //цикл с постусловием

 clearwindow;                          //очистить окно

 setbrushcolor(clgreen);               //цвет кисти зеленый

 rectangle(5,5,595,495);               //прямоугольник - поле

 Pm;                                   //процедура определения координат мяча

 setbrushcolor(clwhite);               //цвет кисти - белый

 circle(px,py,10);                     //мяч

 OnKeyDown:=KeyDown;                   //процедура нажатия клавиши

 pc:=py;                               //ракетка противника следует за мячом неотступно...

 setbrushcolor(clblack);               //цвет кисти - черный

 rectangle(592,pr-20,597,pr+20);       //ракетки

 rectangle(3,pc-20,8,pc+20);

 sleep(25);                             //задержка

 redraw;                               //перерисовка

until ku=5;                             //цикл повторяется до 5 пропущенных мячей

end.

(20 баллов)