Моделирование брошенного тела - Turbo Pascal

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

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

Промоделировать полёт брошенного тела под углом к горизонту Нашла программу, но она не работает, найдите ошибку
Листинг программы
  1. program stone;
  2. uses graph;
  3. const BoundX=70;
  4. BoundY=70;
  5. g=9.8;
  6. rad=3.1415/180;
  7. var KX, KY,LX,LY:integer;
  8. HX, HY,DX,DY,HT:real;
  9. XM,YM:integer;
  10. x,y,x0,y0:integer;
  11. i,gr,gm:integer;
  12. v0,alfa:real;
  13. xi,yi:real;
  14. Bmax,Hmax,Tmax:real;
  15. t:real;
  16. Xmax,Ymax:real;
  17. R:real;
  18. S:string[8];
  19. PROCEDURE FXY(T,V0,ALF:REAL; VAR X,Y:REAL);
  20. BEGIN
  21. X:=V0*COS(ALF*RAD)*T;
  22. Y:=V0*SIN(ALF*RAD)*T-G*T*T/2;
  23. END;
  24. BEGIN
  25. WRITE('Введите начальную скоpость ');
  26. readln(v0);
  27. WRITE('Введите угол бpоска ');
  28. readln(alfa);
  29. gr:=detect;
  30. initgraph(gr,gm, ' ');
  31.  
  32. XM:=GetMaxX; YM:=GetMaxY;
  33. KX:=XM+1-2*BoundX; KY:=YM+1-2*BoundY;
  34.  
  35. R:=sin(alfa*rad);
  36. Bmax:=v0*v0*sin(2*alfa*rad)/g;
  37. Xmax:=v0*v0/g;
  38. Hmax:=v0*v0*r*r/(2*g);
  39. Ymax:=v0*v0/(2*g);
  40. Tmax:=2*v0*r/g;
  41. hx:=Xmax/(kx-1);
  42. hy:=Ymax/(ky-1);
  43. lx:= kx div 10; ly:=ky div 10;
  44. dx:=Xmax/10; dy:=Ymax/10;
  45. ht:=Tmax/100;
  46.  
  47. SetBkColor(Cyan);
  48. SetColor(Blue);
  49.  
  50. LINE(BoundX,BoundY,BoundX, YM-BoundY);
  51. x0:=BoundX; y0:=BoundY;
  52. x:=XM-BoundX; y:=y0;
  53. LINE(BoundX,YM-BoundY,XM-BoundX, YM-BoundY);
  54.  
  55. x:=0; y:=ym-boundY;
  56. for i:=0 to 10 do
  57. begin
  58. STR ((dy*i):8:2,s);
  59. OutTextXY(x,y,s);
  60. y:=y-ly;
  61. end;
  62. x:=BoundX div 2; y:=ym-BoundY div 2;
  63. for i:=0 to 10 do
  64. begin
  65. STR ((dx*i):8:2,s);
  66. OutTextXY(x,y,s);
  67. x:=x+lx;
  68. end;
  69. STR(Bmax:8:2,s);
  70. OutTextXY(BoundX+20,5, 'Дальность полета: '+s);
  71. STR(Hmax:8:2,s);
  72. OutTextXY(BoundX+20,15, 'Высота подьема: '+s);
  73.  
  74. SetColor(LightRed);
  75.  
  76. t:=0;
  77. x0:=BoundX;
  78. y0:=ym-boundY;
  79. while (t<Tmax) do
  80. begin
  81. t:=t+ht;
  82. FXY(t,v0,alfa,xi,yi);
  83. x:=BoundX+round(xi/hx);
  84. y:=ym-BoundY-round(yi/hy);
  85. line(x0,y0,x,y);
  86. x0:=x;
  87. y0:=y;
  88. end;
  89. readln;
  90. closegraph;
  91. end.

Решение задачи: «Моделирование брошенного тела»

textual
Листинг программы
  1. vx:= vx+ax*dt;
  2. vy:= vy+ay*dt;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы