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."
Алгоритм линейный, протокол работы такой:
Введите значение переменных a и b:
24
-85
c= -61
d= -122
d= -119
d= -118
Значение выражения равно -118
Если чертежник в точке 0;0, то:
использовать Чертежник
алг
нач
поднять перо
сместиться в точку (2, 1)
опустить перо
сместиться в точку (2, 3)
сместиться в точку (1, 2)
поднять перо
сместиться в точку (3, 3)
опустить перо
сместиться в точку (4, 3)
сместиться в точку (4, 2)
сместиться в точку (3, 1)
сместиться в точку (4, 1)
поднять перо
сместиться в точку (5, 3)
опустить перо
сместиться в точку (6, 3)
сместиться в точку (5, 2)
сместиться в точку (6, 2)
сместиться в точку (5, 1)
кон
var
i:integer;
s:string;
const
glas=['Й','У','Е','Ы','А','О','Э','Я','И','Ю'];
beginwrite ('Vvedite predlohenie: ');
readln (s);
i:=1;
while i<=length (s) do
begin
if ((i=1) or (s[i-1]=' ')) and (s[i] in glas) then
begin
while not ((s[i] in ['.',',',';','!','?',':',' '])) and (i<=length (s)) do
begin
write (s[i]);
i:=i+1;
end;
writeln;
end;
i:=i+1;
end;
readln;
end.