Свободное падение цветного шара, брошенного горизонтально с определённой скоростью - 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.
Объяснение кода листинга программы
- В первой строке используется библиотека graphabc и функция crt для создания графического окна.
- Константа g равна 9.81, что является ускорением свободного падения.
- Переменные v, r, x0, y0 являются целыми числами и представляют начальную скорость, радиус и координаты шара соответственно.
- Переменные tp, t, x, y являются числами с плавающей запятой и представляют время полета, текущее время и координаты шара соответственно.
- Цикл repeat-until используется для чтения значений переменной v из файла.
- Переменная r инициализируется как 10, а x0 и y0 - как 10.
- Функция sqrt используется для вычисления квадратного корня из 2(windowheight-2r)/g.
- Переменная t инициализируется как 0, а цикл while используется для рисования шара на протяжении времени полета.
- В каждой итерации цикла clearwindow очищается окно, x и y вычисляются как v*t, а setbrushcolor используется для установки цвета кисти на желтый.
- Функция circle используется для рисования окружности с x0+round(x) в качестве центра и r в качестве радиуса.
- Задержка delay(50) используется для задержки отображения окружности.
- В конце цикла while значение переменной t увеличивается на 0.1.
- Цикл repeat-until завершается, когда значение v не находится в диапазоне от 20 до 70.
- Наконец, функция clrscr используется для очистки экрана, а hidecursor — для скрытия курсора.