Свободное падение цветного шара, брошенного горизонтально с определённой скоростью - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Написать программу, реализующую свободное падение цветного шара брошенного горизонтально с определённой скоростью. Скорость задаётся пользователем. начала делать и ступр

Решение задачи: «Свободное падение цветного шара, брошенного горизонтально с определённой скоростью»

textual
Листинг программы
uses graphabc,crt;
const g=9.81;
var v,r,x0,y0:integer;
    tp,t,x,y:real;
begin
repeat
write('v[20..70] v=');
readln(v);
until v in [20..70];
clrscr;
hidecursor;
r:=10;
x0:=r;
y0:=r;
tp:=sqrt(2*(windowheight-2*r)/g); //время полета
lockdrawing;
t:=0;
while t<tp do
 begin
  clearwindow;
  x:=v*t;
  y:=g*t*t/2;
  setbrushcolor(clYellow);
  circle(x0+round(x),y0+round(y),r);
  delay(50);
  t:=t+0.1;
  redraw;
 end;
end.

Объяснение кода листинга программы

  1. В первой строке используется библиотека graphabc и функция crt для создания графического окна.
  2. Константа g равна 9.81, что является ускорением свободного падения.
  3. Переменные v, r, x0, y0 являются целыми числами и представляют начальную скорость, радиус и координаты шара соответственно.
  4. Переменные tp, t, x, y являются числами с плавающей запятой и представляют время полета, текущее время и координаты шара соответственно.
  5. Цикл repeat-until используется для чтения значений переменной v из файла.
  6. Переменная r инициализируется как 10, а x0 и y0 - как 10.
  7. Функция sqrt используется для вычисления квадратного корня из 2(windowheight-2r)/g.
  8. Переменная t инициализируется как 0, а цикл while используется для рисования шара на протяжении времени полета.
  9. В каждой итерации цикла clearwindow очищается окно, x и y вычисляются как v*t, а setbrushcolor используется для установки цвета кисти на желтый.
  10. Функция circle используется для рисования окружности с x0+round(x) в качестве центра и r в качестве радиуса.
  11. Задержка delay(50) используется для задержки отображения окружности.
  12. В конце цикла while значение переменной t увеличивается на 0.1.
  13. Цикл repeat-until завершается, когда значение v не находится в диапазоне от 20 до 70.
  14. Наконец, функция clrscr используется для очистки экрана, а hidecursor — для скрытия курсора.

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы