В одномерном массиве заменить каждое отрицательное число полусуммой его соседей справа и слева - Pascal
Формулировка задачи:
В одномерном массиве A1, A2, ... , An заменить каждое отрицательное число полусуммой его соседей справа и слева. Предполагается, что первое и последнее числа в массиве положительны.
Помогите составить программу в Паскале, пожалуйста!
Решение задачи: «В одномерном массиве заменить каждое отрицательное число полусуммой его соседей справа и слева»
textual
Листинг программы
const m = 100; var a: array[1..m] of real; i, n:integer; t, ti: real; begin repeat write('Количество элементов массива в диапазоне 1..', m, ': '); readln(n) until (n >= 1) and (n <= m); writeln('Введите значения элементов массива:'); for i:=1 to n do repeat write('a[',i,'] = '); readln(a[i]); if ((i = 1) or (i = n)) and (a[i] <= 0) then writeln('Крайние элемент должны быть положительны, повторите ввод.') until ((i > 1) and (i < n)) or (a[i] > 0); writeln('Исходный массив:'); for i := 1 to n do write(a[i]:10:3); 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]:10:3); readln end.
Объяснение кода листинга программы
- Создается переменная
m
со значением 100. - Создается переменная
a
типаarray[1..m] of real
. - Создаются две переменные
i
иn
типаinteger
. - Создается две переменные
t
иti
типаreal
. - Запускается цикл
repeat
, который продолжается до тех пор, пока количество введенных элементовn
удовлетворяет условиям (n >= 1) и (n <= m). - В каждой итерации цикла выводится сообщение с вопросом о количестве элементов массива в диапазоне от 1 до
m
. - Пользователю предлагается ввести значения элементов массива.
- Для каждого элемента массива выполняется цикл
repeat
, который продолжается до тех пор, пока значение элементаa[i]
не будет положительным или не будет введено корректное значение. - Выводится сообщение с вопросом о крайних элементах массива.
- Выводится исходный массив элементов.
- Вычисляется среднее значение соседних элементов для первого элемента массива
a[1]
. - Для каждого элемента массива
a[i]
выполняется циклfor
, который продолжается до тех пор, пока значение элементаa[i]
не станет положительным. - Значение элемента
a[i]
заменяется средним значением соседних элементовa[i+1]
иa[i-1]
. - Выводится результат.
- Выводится сообщение с вопросом о крайних элементах массива.
- Выводится результат.
- Программа завершается и пользователь может ввести новые команды.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д