СРОЧНО паскаль. Помогите, пожалуйста, в чем моя ошибка, почему у меня работает только с первой четверкой, а дальше не идет ?

Приложения:

Ответы

Ответ дал: BobbyFresnel
0

Ответ:

const

 N = 8;

var

 a: array[1..N] of integer;

 i, j, k: integer;

begin

 for i := 1 to N do

   readln(a[i]);

 for i := 1 to N div 4 do

 begin

   k := 0;

   for j := 4 * i - 3 to 4 * i do

     k := k + a[j];

   k := k div 4;

   for j := 4 * i - 3 to 4 * i do

     a[j] := k

 end;

 for i := 1 to N do

   writeln(a[i])

end.


BobbyFresnel: Что именно объяснить?
BobbyFresnel: k это среднее
BobbyFresnel: Из задания в точности неясно, нужно ли помещать результат назад в массив, поэтому на всякий случай сделан цикл с a[i]:=k
BobbyFresnel: Если помещать не хотите, выбросьте эти этот цикл, переставьте end перед ним в предпоследнюю строку, а оставшийся цикл запишите for i:=1 to 4 do
BobbyFresnel: И в нем выводиnе значение k
Oliviya16: Нет, с заменой ясно. Почему такой цикл вводите: for j := 4 * i - 3 to 4 * i do?
Oliviya16: И почему N div 4 в данном цикле : for i := 1 to N div 4 do?
BobbyFresnel: Потому что группируются 4 элемента. Вы попробуйте выполнить алгоритм по шагам (клавишей F8) и посмотрите, как значения меняются.
BobbyFresnel: Это универсальный подход. Представьте, что требуется получать средние по десяти элементам. Будуте расписывать вручную сумму всех десяти? А тут просто 4 на 10 заменить, тройку на 9.
Oliviya16: Поняла, спасибо большое
Вас заинтересует