ответ зависит от того чему равно n. Если предположить что n равно количеству элементов в массиве, то n = 7.
for i := 1 to n div 2 do
(значения i будут изменяться от 1 до 3 (div - целочисленное деление; n div 2 = 3), т.е. цикл выполнится 3 раза)
Операции в цикле
r := a[i] ( переменной r присваивается значение элемента массива с индексом (под номером) i)
a[i] := a[n - i + 1] (элементу массива с индексом (под номером) i присваивается значение элемента массива индекс (номер) которого рассчитывается по формуле n - i +1)
a[n - i + 1] := r (элементу массива индекс (номер) которого рассчитывается по формуле n - i +1 присваивается звание переменной r)
То есть происходит обмен значений элементов массива с индексом i и n - i + 1.
Рассмотрим операции в цикле подставляя значения i.
i = 1
r := a[1] = 10
a[1] := a[7 - 1 + 1] = a[7] = 20
a[7] := r = 10
i = 2
r := a[2] = 12
a[2] := a[7 - 2 + 1] = a[6] = 15
a[6] := r = 12
i = 3
r := a[3] = 5
a[3] := a[7 - 3 + 1] = a[5] = 4
a[5] := r = 5
После окончания цикла элементы массива будут равны
//Я просто опишу метод записи матрицы const n=100; var ar:array of array of integer; ars:array of array of string; i:integer;
procedure complection(var ar:array of array of integer;var ars:array of array of string); var i,j:integer; begin; for i:=1 to n do begin; for j:=1 to n do begin; ar[i,j]:=random(9); str(ar[i,j],ars[i,j]); end; end; end;
procedure burning(ars:array of array of string); var i,j:integer; t:text; begin; assign(t,'text.txt'); rewrite(t); for i:=1 to n do begin; writeln(t,' '); for j:=1 to n do write(t,ars[i,j],' '); end; end;
begin; randomize; setlength(ar,n+1); setlength(ars,n+1); for i:=1 to n do begin; setlength(ar[i],n+1); setlength(ars[i],n+1); end; complection(ar,ars); burning(ars); end.
a[1] = 20
a[2] = 15
a[3] = 4
a[4] = 8
a[5] = 5
a[6] = 12
a[7] = 10
Объяснение:
ответ зависит от того чему равно n. Если предположить что n равно количеству элементов в массиве, то n = 7.
for i := 1 to n div 2 do
(значения i будут изменяться от 1 до 3 (div - целочисленное деление; n div 2 = 3), т.е. цикл выполнится 3 раза)
Операции в цикле
r := a[i] ( переменной r присваивается значение элемента массива с индексом (под номером) i)
a[i] := a[n - i + 1] (элементу массива с индексом (под номером) i присваивается значение элемента массива индекс (номер) которого рассчитывается по формуле n - i +1)
a[n - i + 1] := r (элементу массива индекс (номер) которого рассчитывается по формуле n - i +1 присваивается звание переменной r)
То есть происходит обмен значений элементов массива с индексом i и n - i + 1.
Рассмотрим операции в цикле подставляя значения i.
i = 1
r := a[1] = 10
a[1] := a[7 - 1 + 1] = a[7] = 20
a[7] := r = 10
i = 2
r := a[2] = 12
a[2] := a[7 - 2 + 1] = a[6] = 15
a[6] := r = 12
i = 3
r := a[3] = 5
a[3] := a[7 - 3 + 1] = a[5] = 4
a[5] := r = 5
После окончания цикла элементы массива будут равны
a[1] = 20
a[2] = 15
a[3] = 4
a[4] = 8 (остаётся без изменений)
a[5] = 5
a[6] = 12
a[7] = 10
const n=100;
var ar:array of array of integer;
ars:array of array of string;
i:integer;
procedure complection(var ar:array of array of integer;var ars:array of array of string);
var
i,j:integer;
begin;
for i:=1 to n do
begin;
for j:=1 to n do
begin;
ar[i,j]:=random(9);
str(ar[i,j],ars[i,j]);
end;
end;
end;
procedure burning(ars:array of array of string);
var
i,j:integer;
t:text;
begin;
assign(t,'text.txt');
rewrite(t);
for i:=1 to n do
begin;
writeln(t,' ');
for j:=1 to n do
write(t,ars[i,j],' ');
end;
end;
begin;
randomize;
setlength(ar,n+1);
setlength(ars,n+1);
for i:=1 to n do
begin;
setlength(ar[i],n+1);
setlength(ars[i],n+1);
end;
complection(ar,ars);
burning(ars);
end.