Каждый отрицательный элемент массива заменить полусуммой соседей - Pascal
Формулировка задачи:
Составить программу. Пусть дан массив из n элементов.Каждый отрицательный элемент замените полусуммой тех двух элементов, которые стоят с ним справа и слева.
Помогите пожалуйста.
Решение задачи: «Каждый отрицательный элемент массива заменить полусуммой соседей»
textual
Листинг программы
const n = 8;
var a: array[1..n] of real;
i: integer;
t, ti: real;
begin
randomize;
for i := 1 to n do
repeat
a[i] := -99 + random(199);
until ((i > 1) and (i < n)) or (a[i] > 0);
writeln('Исходный массив:');
for i := 1 to n do write(a[i]:6:1);
writeln;
t := a[1];
for i := 2 to n - 1 do
begin
ti := a[i];
if a[i] < 0 then a[i] := (t + a[i + 1]) / 2;
t := ti
end;
writeln('Результат:');
for i := 1 to n do write(a[i]:6:1);
readln
end.
Объяснение кода листинга программы
- Объявляется константа
nсо значением 8 - Объявляется массив
aиз 8 элементов типа real (вещественное число). Также объявляются переменныеiиt, tiтипа integer и real соответственно - Генерируются случайные числа от -99 до 99 и записываются в массив
a, при этом гарантируется, что внутренние элементы массива могут быть отрицательными, а первый и последний элементы могут быть любыми числами - Выводится сообщение
Исходный массив:на экран - Выводятся элементы массива
aс форматированием до 1 десятичной цифры после запятой - Значению переменной
tприсваивается значение первого элемента массиваa - Происходит проход по массиву, при этом отрицательные элементы заменяются на их полусумму соседних элементов
- Выводится сообщение
Результат:на экран - Выводятся измененные элементы массива
aс форматированием до 1 десятичной цифры после запятой - Осуществляется ожидание ввода с клавиатуры.