Из TurboPascal переделать в PascalAbc - Pascal ABC
Формулировка задачи:
Переделать в PascalAbc
Решение задачи: «Из TurboPascal переделать в PascalAbc»
textual
Листинг программы
uses graphABC; const g=9.8; w=0.1; dt=0.01; L=98; var gl,w1,x0,x10,y0,y10,ak,xp,yp,x1p,y1p:real; x,x1,y,y1,k1,k2,k3,k4,l1,l2,l3,l4,w2:real; begin setwindowsize(600,500); centerwindow; gl:=g/l-w*w; w2:=2*w; x:=0; y:=0; repeat x0:=x; x10:=x1; y0:=y; y10:=y1; k1:=dt*(-gl*x0+w2*y10); l1:=dt*(-gl*y0-w2*x10); xp:=x0+dt*x10/2+dt*k1/8; x1p:=x10+k2/2; yp:=y0+dt*y10/2+dt*l1/8; y1p:=y10+11/2; k2:=dt*(-gl*xp+w2*y1p); l2:=dt*(-gl*yp-w2*x1p); xp:=x0+dt*x10/2+dt*k1/8; x1p:=x10+k2/2; yp:=y0+dt*y10/2+dt*l1/8; y1p:=y10+l2/2; k3:=dt*(-gl*xp+w2*y1p); l3:=dt*(-gl*yp-w2*x1p); xp:=x0+dt*x10+dt*k3/2; x1p:=y10+k3; yp:=y0+dt*y10+dt*l3/2; y1p:=y10+l3; k4:=dt*(-gl*xp+w2*x1p); l4:=dt*(-gl*yp-w2*x1p); ak:=x10+(k1+k2+k3)/6; x1:=ak+(k2+k3+k4)/6; x:=x0+dt*ak; ak:=y10+(l1+l2+l3)/6; y1:=ak+(l2+l3+l4)/6; y:=y0+dt*ak; SetPixel(round(x*75),windowheight div 2-round(y*75),clBlack); until(windowheight div 2-round(y*75)=250)and(round(x*75)=300); end.
Объяснение кода листинга программы
- Используется библиотека graphABC.
- Константы: g=9.8, w=0.1, dt=0.01, L=98.
- Переменные: gl, w1, x0, x10, y0, y10, ak,xp,yp,x1p,y1p:real; x,x1,y,y1,k1,k2,k3,k4,l1,l2,l3,l4,w2:real;
- Устанавливается размер окна.
- Вычисляется значение gl.
- Вычисляется значение w2.
- Инициализируются переменные x, y, k1, k2, k3, k4, l1, l2, l3, l4, w2.
- Запускается цикл повторения.
- В каждой итерации цикла вычисляются значения x0, x10, y0, y10, k1, l1, xp, yp, x1p, y1p.
- Вычисляются значения k2, l2, k3, l3, k4, l4.
- Вычисляются значения ak, x1, x0, y1, y0, x1p, y1p.
- Вычисляются значения x1, x0, y1, y0, xp, yp.
- Устанавливаются цвета пикселей.
- Остановка цикла при выполнении условия окончания движения (округленные значения y и x равны 300 и 250 соответственно).
- Остановка программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д