Решить формулу через оператор for (неясны некоторые моменты задания) - Pascal

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

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

дана формула W(k)=m*v^2/2, где m - масса, v - скорость. Составить алгоритм для получения зависимости W(k) от m, если: v изменяется от v(1) до v(2) с шагом Δv, m изменяется от m(1) до m(2) с шагом Δm. решение через for я несовсем поняла что имеется в виду под получением зависимости w(k) от m немогу понять что делать. всё что получилось:

Решение задачи: «Решить формулу через оператор for (неясны некоторые моменты задания)»

textual
Листинг программы
uses crt;
var v1,v2,v,m1,m2,m,w,dv,dm:real;
    n,k,i,j:integer;
begin
clrscr;
repeat
writeln('Введите диапазон изменения скорости v1>0 v2>v1:');
readln(v1,v2);
until(v1>0)and(v2>v1);
repeat
write('Шаг изменения скорости dv>0 dv<',v2-v1:0:1,' dv=');
readln(dv);
until (dv>0)and(dv<v2-v1);
repeat
writeln('Введите диапазон изменения массы m1>0 m2>m1:');
readln(m1,m2);
until(m1>0)and(m2>m1);
repeat
write('Шаг изменения массы dm>0 dm<',m2-m1:0:1,' dm=');
readln(dm);
until (dm>0)and(dm<m2-m1);
n:=round((v2-v1)/dv)+1;{количество точек на 1 больше чем интервалов}
k:=round((m2-m1)/dm)+1;
for i:=1 to n do
 begin
  v:=v1+dv*(i-1);
  for j:=1 to k do
   begin
    m:=m1+dm*(j-1);
    w:=v*sqr(m)/2;
    writeln('v=',v:5:1,'  m=',m:5:1,'  w=',w:7:3);
   end;
 end;
writeln;
readln
end.

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

  1. Объявлены переменные: v1, v2, v, m1, m2, m, w, dv, dm (реальные), n, k, i, j (целые).
  2. Выполняется блок try до тех пор, пока не будет введено корректное значение для v1 и v2 (больше нуля и v2 больше v1).
  3. Выполняется блок try до тех пор, пока не будет введено корректное значение для dv (больше нуля и меньше v2-v1).
  4. Выполняется блок try до тех пор, пока не будет введено корректное значение для m1 и m2 (больше нуля и m2 больше m1).
  5. Выполняется блок try до тех пор, пока не будет введено корректное значение для dm (больше нуля и меньше m2-m1).
  6. Переменная n инициализируется как округленное значение (вверх) (v2-v1)/dv + 1.
  7. Переменная k инициализируется как округленное значение (вверх) (m2-m1)/dm + 1.
  8. В цикле for i от 1 до n выполняется: 8.1. Переменная v инициализируется как v1 + dv(i-1). 8.2. В цикле for j от 1 до k выполняется: 8.2.1. Переменная m инициализируется как m1 + dm(j-1). 8.2.2. Переменная w инициализируется как v*m/2. 8.2.3. Выводится сообщение 'v=',v:5:1,'  m=',m:5:1,'  w=',w:7:3.
  9. После окончания внутреннего цикла for, выводится сообщение и запрашивается ввод.

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

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