Я считаю, что в начальный момент времени каретка находится под любой ячейкой с меткой. Предлагаю такой алгоритм: представим, что по обе стороны от массива есть по пузырьку, и они начинают двигаться навстречу друг другу. Встретятся они в средней ячейке.
<em>// PascalABC.NET 3.2, сборка 1367 от 20.12.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a,b:integer;
Write('Введите a и b: '); Read(a,b);
Writeln('П=',Range(a,b).Aggregate(BigInteger(1),(m,n)->m*n))
end.
<u>Пример</u>
Введите a и b: 13 57
П=84607064997021339293398188869165201400121387478093188300800000000000
Var P,S,t,g:real;begin write('введите массу стола '); read(t); S:=100; g:=10; P:=(g*t)/S;write('давление на пол, создаваеммое столом равно ',P);end.
Б. Т.к. не указан ни диск, ни путь конкретный.