СУММ=<u>D2+D3+D4</u>=16;
СРЗНАЧ=(D1+<u>D2+D3+D4</u>)/4=5; (D1+16)/4=5; D1=20-16;<em> D1=4</em>
называется этот текст гипертекст
Вот: 1. самый короткий путь равен 16; 2. 22; 3. 21
if M[a, 4+1-a] < M[min, min]
then min := M[a, 4+1-a]
- у тебя в матрице рандомные числа максимум до 10, ты назначаешь их в min и max, а потом эти min и max пытаешься использовать как индексы.
Заведи отдельные переменные для сохранения индексов, например imin и imax и пользуйся ими, например как-то так:
for a := 1 to 4 do
if M[a, 4+1-a] < M[imin, imin]
then begin
min := M[a, 4+1-a];
imin := a;
end
По поводу параметра цикла не уверен, возможно в Pascal.ABC есть какие-то особенности по сравнению с обычным паскалем. Нашел вот такое:
"Описание параметра цикла for в заголовке цикла соблюдает принцип локальности: переменная описывается в том месте, где она впервые понадобилась
begin
for i: integer := 1 to 9 do
write(i,' ');
// Здесь переменная i не доступна!
for var i := 9 downto 1 do // описание с автоопределением типа
write(i,' ');
end."