Найти уравнение скорости движения тела и положение тела как функцию от времени - Turbo Pascal

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

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

здравствуйте, помогите пожалуйста) Найти уравнение скорости движения тела и положение тела как функцию от времени. Входные данные: v(0)=2м/с; s(0)=0м. Определить положение. скорость и ускорение на отрезке времени t=[0;5] с шагом 1 с. Построить графики s(t), v(t), a(t).

Решение задачи: «Найти уравнение скорости движения тела и положение тела как функцию от времени»

textual
Листинг программы
  1. uses crt,graph;
  2. const v0=2;
  3.       s0=0;
  4. function a(k:byte;t:real):real;
  5. begin
  6. a:=k*cos(t);
  7. end;
  8. function v(k:byte;t:real):real;
  9. var u:real;
  10. begin
  11. u:=a(k,t);
  12. v:=v0+u*t;
  13. end;
  14. function s(k:byte;t:real):real;
  15. var u:real;
  16. begin
  17. u:=a(k,t);
  18. s:=s0+v0*t+u*t*t/2;
  19. end;
  20. var k,i,x0,y0,x1,x2:integer;
  21.     t,u,max,mx,my:real;
  22.     st:string;
  23. begin
  24. clrscr;
  25. writeln('Значения x,v,a при k=[1..3] t=[0..5]');
  26. for k:=1 to 3 do
  27.  begin
  28.   t:=0;
  29.   while t<=5 do
  30.    begin
  31.     write('k=',k,' t=',t:0:0,' x=',s(k,t):5:2,' v=',v(k,t):5:2,' a=',a(k,t):5:2);
  32.     writeln;
  33.     t:=t+1;
  34.   end;
  35.  end;
  36. write('Нажмите Enter для перехода в графический режим');
  37. readln;
  38. k:=0;
  39. initgraph(k,i,'');
  40. x0:=50;
  41. y0:=getmaxY div 2;
  42. x1:=0;
  43. x2:=5;{интервал по Х}
  44. t:=x1;
  45. {построим графики при к=2, иначе нужно строить 9 графиков}
  46. max:=a(2,t);
  47. while t<=x2 do
  48.  begin
  49.   if abs(a(2,t))>max then max:=abs(a(2,t));
  50.   if abs(v(2,t))>max then max:=abs(v(2,t));
  51.   if abs(s(2,t))>max then max:=abs(s(2,t));
  52.   t:=t+0.1;
  53.  end;
  54. mx:=(getmaxX-x0-30)/x2;{масштаб по Х}
  55. my:=(y0-20)/max;
  56. settextstyle(0,0,1);
  57. line(0,y0,getmaxX,y0);{оси}
  58. line(x0,0,x0,getmaxY);
  59. for i:=1 to trunc(max)+1 do{максимальное количество засечек в одну сторону}
  60.  begin
  61.   line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));{засечки на оси У}
  62.   line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
  63.   {подпись оси У}
  64.   str(i,st);
  65.   outtextXY(x0-35,y0-round(i*my),st);{соответственно засечкам}
  66.   outtextXY(x0-40,y0+round(i*my),'-'+st);
  67.   line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); {засечки на оси Х}
  68.   {подпись оси Х}
  69.   outtextXY(x0+round(i*mx)+5,y0+10,st);
  70.  end;
  71. {центр}
  72. outtextXY(x0-15,y0+10,'0');
  73. {подписи концов осей}
  74. outtextXY(getmaxX-10,y0-10,'X');
  75. outtextXY(x0+5,10, 'Y');
  76. {графики}
  77. t:=x1;
  78. setcolor(12);{при k=2}
  79. while t<=x2 do
  80.  begin
  81.   if t=x1 then moveto(x0+round(t*mx),y0-round(s(2,t)*my))
  82.   else lineto(x0+round(t*mx),y0-round(s(2,t)*my));
  83.   t:=t+0.1;
  84.  end;
  85. t:=x1;
  86. setcolor(13);
  87. while t<=x2 do
  88.  begin
  89.   if t=x1 then moveto(x0+round(t*mx),y0-round(v(2,t)*my))
  90.   else lineto(x0+round(t*mx),y0-round(v(2,t)*my));
  91.   t:=t+0.1;
  92.  end;
  93. t:=x1;
  94. setcolor(14);
  95. while t<=x2 do
  96.  begin
  97.   if t=x1 then moveto(x0+round(t*mx),y0-round(a(2,t)*my))
  98.   else lineto(x0+round(t*mx),y0-round(a(2,t)*my));
  99.   t:=t+0.1;
  100.  end;
  101. {название}
  102. setcolor(15);
  103. outtextXY(100,10,'k=2  t=[0..5]');
  104. setcolor(12);
  105. outtextXY(100,30,'s(k,t)=s0+v0*y+a*t^2/2');
  106. setcolor(13);
  107. outtextXY(100,50,'v(k,t)=v0+a*t');
  108. setcolor(14);
  109. outtextXY(100,70,'a(k,t)=k*cos(t)');
  110. readln
  111. end.

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

В данном коде используется функция a, которая вычисляет скорость движения тела как функцию от времени. Функция v вычисляет положение тела как функцию от времени, а функция s вычисляет ускорение тела как функцию от времени. Для построения графика используются функции line и outtextXY. Функция line используется для построения линий на графике, а функция outtextXY используется для вывода текста на график. В цикле while происходит построение графика для каждого значения k. При этом используются различные цвета для отображения различных функций. Также в коде присутствуют строки с текстом, которые выводятся на график. Они используются для подписи осей и названия графика. В конце кода происходит вывод названия графика и некоторых формул, описывающих зависимости функций от времени.

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


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

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

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

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

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

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