Заменить каждый элемент массива на сумму предыдущего и последующего элемента - PascalABC.NET
Формулировка задачи:
Дан массив размера N. Заменить каждый элемент(кроме крайних) массива на сумму предыдущего и последующего элемента. Без вспомогательного массива.
Например:
исх массив:
5 4 3 9 2 1
рез:
5 8 13 5 10 1
Решение задачи: «Заменить каждый элемент массива на сумму предыдущего и последующего элемента»
textual
Листинг программы
var a : array [1..6] of integer = (5,4,3,9,2,1); begin WriteLn(a); var p := a[1]; for var i := 2 to 5 do begin var pp := a[i]; a[i] := p + a[i+1]; p := pp; end; WriteLn(a); end.
Объяснение кода листинга программы
В данном коде задача состоит в замене каждого элемента массива на сумму предыдущего и последующего элемента.
- Создается массив
aразмером 6, инициализированный значениями (5,4,3,9,2,1). - Выводится на экран содержимое массива
a. - Переменная
pинициализируется значением первого элемента массиваa(т.е.pстановится равной 5). - В цикле от 2 до 5 (т.е. для элементов массива с индексами от 2 до 4) выполняются следующие действия:
- Переменная
ppинициализируется значением текущего элемента массива (т.е.ppстановится равной 4). - Значение текущего элемента массива заменяется на сумму значения переменной
pи следующего элемента массива (т.е.a[i]становится равным 5+4). - Значение переменной
pзаменяется на значение переменнойpp(т.е.pстановится равным 4).
- Переменная
- Выводится на экран обновленное содержимое массива
a.