Если в массиве произведение положительных элементов кратно 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.

Объяснение кода листинга программы

  1. Объявлены переменные: a (массив целых чисел), kp, n, i (целые числа), p (длинное целое число).
  2. Пользователю предлагается ввести размерность массива.
  3. Массив a инициализируется указанным размером.
  4. Переменная p инициализируется единицей, kp - нулем.
  5. В цикле от 0 до n-1 происходит чтение элемента массива a[i] и проверка на положительность.
  6. Если элемент положительный, то он умножается на p, увеличивается kp и выполняется переход к следующему элементу.
  7. После цикла проверяется условие: если kp не равно нулю и произведение положительных элементов кратно 5, то выполняется блок кода для увеличения размера массива на 5.
  8. В цикле от n до n+4 происходит запись единицы в новый элемент массива a[i].
  9. В цикле от 0 до n+4 происходит запись элемента массива a[i] в консоль, предварительно обрезая до 4 символов.
  10. Если условие из пункта 7 не выполняется, то выполняется блок кода для уменьшения размера массива на 3.
  11. В цикле от 0 до n - n div 3 - 1 происходит запись элемента массива a[i] в консоль, предварительно обрезая до 4 символов.
  12. Программа ожидает ввода пользователя.
  13. Массив a очищается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы