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