Если в массиве произведение положительных элементов кратно 5, то увеличьте количество элементов на 5 - PascalABC.NET
Формулировка задачи:
пользователь вводит размерность массива и его элементы. создать динамический массив с количеством элементов, которые вводит пользователь. если в массиве произведение положительных элементов кратно 5, то увеличьте количество элементов на 5, и новые элементы заполните значениями 1, в противном случае удалить треть последних элементов массива.
не могу решить(
Решение задачи: «Если в массиве произведение положительных элементов кратно 5, то увеличьте количество элементов на 5»
textual
Листинг программы
var
a:array of integer;
kp,n,i:integer;
p:LongInt;
begin
write('Введите размерность массива: '); readln(n);
setlength(a,n);
p:=1;
kp:=0;
for i:=0 to n-1 do
begin
readln(a[i]);
if a[i]>0 then
begin
p:=p*a[i];
inc(kp);
end;
end;
if (kp<>0) and (p mod 5 = 0) then
begin
setlength(a,n+5);
for i:=n to n+4 do
a[i]:=1;
for i:=0 to n+4 do
write(a[i]:4);
end
else
begin
setlength(a,n - n div 3);
for i:=0 to n - n div 3 - 1 do
write(a[i]:4);
end;
readln;
setlength(a,0);
end.
Объяснение кода листинга программы
- Объявлены переменные: a (массив целых чисел), kp, n, i (целые числа), p (длинное целое число).
- Пользователю предлагается ввести размерность массива.
- Массив a инициализируется указанным размером.
- Переменная p инициализируется единицей, kp - нулем.
- В цикле от 0 до n-1 происходит чтение элемента массива a[i] и проверка на положительность.
- Если элемент положительный, то он умножается на p, увеличивается kp и выполняется переход к следующему элементу.
- После цикла проверяется условие: если kp не равно нулю и произведение положительных элементов кратно 5, то выполняется блок кода для увеличения размера массива на 5.
- В цикле от n до n+4 происходит запись единицы в новый элемент массива a[i].
- В цикле от 0 до n+4 происходит запись элемента массива a[i] в консоль, предварительно обрезая до 4 символов.
- Если условие из пункта 7 не выполняется, то выполняется блок кода для уменьшения размера массива на 3.
- В цикле от 0 до n - n div 3 - 1 происходит запись элемента массива a[i] в консоль, предварительно обрезая до 4 символов.
- Программа ожидает ввода пользователя.
- Массив a очищается.