Изменить массив, вычеркнув из него все элементы, кратные сумме своих соседей справа и слева - PascalABC.NET
Формулировка задачи:
Заполнить пропуски.
Дан линейный массив. Изменить массив, вычеркнув из него все элементы, кратные сумме своих соседей справа и слева.
Решение задачи: «Изменить массив, вычеркнув из него все элементы, кратные сумме своих соседей справа и слева»
textual
Листинг программы
Type LinMass = array [1..100] of Integer;
Var A : LinMass;
N, i, j : Integer;
begin
Write('Количество элементов массива от 3 до 100 n=');
ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] ');
ReadLn(A[i]);
End;
i:=2;
while i < n do
if A[i] mod (A[i-1]+A[i+1]) = 0 then
begin
for j:=i to n-1 do
A[j]:=A[j+1];
n:=n-1;
end
else i:= i+1;
For I := 1 To n Do write(a[i],' ');
end.
Объяснение кода листинга программы
В этом коде:
- Объявляется тип массива
LinMassи переменнаяAэтого типа. - Задаётся количество элементов массива от 3 до 100 и записывается в переменную
N. - С помощью цикла
Forпроисходит ввод элементов массива с помощью функцииReadLn(). - Переменная
iинициализируется значением 2, а затем в циклеwhileпроверяется, являются ли элементы массива, кратными сумме своих соседей справа и слева. Если это так, то с помощью циклаforэлементы сдвигаются вправо, уменьшается значение переменнойnна единицу и циклwhileпрерывается. Если это не так, то переменнаяiувеличивается на единицу. - С помощью цикла
Forи функцииwrite()выводятся элементы массива через пробел.