Дан массив размера N. Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей — Pascal(Паскаль)

//--------------------------------------------------------
program test;
var A:array[1..100] of real;
    i,N:integer;
    
    
begin
{Вводим длинну массива}
readln(n);
{Забиваем массив значениеями}
For i:=1 to n do
  readln(A[i]);
{Суть решения: последовательно, начиная со 2 и заканчивая предпоследним 
перебираем элементы, при этом для каждого находим сумму егосамого, предыдущего и последующего 
. делем эту сумму на 3 и присваеваем обрабатываемому элементу}  
{Однако первый и последний элемент приходится обрабатывать ручками, тк деление идёт на 2
и в пративном случаи индекс вылазит за грани массива.}
A[1]:=(A[2]+A[1])/2
For i:=2 to n-1 do
  A[i]:=(A[i-1]+A[i+1]+A[i])/3;
 
A[n]:=(A[n]+A[n-1])/2  
//вывод на печать!
For i:=1 to n do
    writeln(A[i]);
readln;    
end.

Leave a Comment

40 − = 31