ответ зависит от того чему равно 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
После окончания цикла элементы массива будут равны
1) Набираем 8ми литровый кувшин 2) отливаем 3 литра в 3х литровый и сливаем из него воду 3) в 8ми литровом осталось 5л воды, сливаем снова в 3х литровый, и в 8ми литровом осталось 2 литра воды. 4) выливаем из 3х литрового воду, и переливаем в него 2 литра, оставшиеся в 8литровом кувшине. 5)Снова наполняем 8ми литровый кувшин, и доливаем из него воду в 3х литровый кувшин, так как в 3х литровом налито 2 литра - там не хватает одного литра, значит отлив из 8ми литрового литр в нем останется 7 литров :)
Var a:array of integer; i,n:integer; begin //Заполняем массив сл. числами и выводим //Нумерация массива с 0 write('Число элементов массива ');readln(n); setlength(a,n); for i:=0 to n-1 do begin a[i]:=random(41)-20; write(a[i]:4); end; writeln; //Вывод номеров четных элементов for i:=0 to n-1 do if a[i] mod 2 = 0 then writeln(a[i]:4, ' номер: ',i ); 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