Вставить элемент равный сумме элементов массива перед каждым положительном элементом - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Pascal ABC

Решение задачи: «Вставить элемент равный сумме элементов массива перед каждым положительном элементом»

textual
Листинг программы
const
  nmax = 100;
 
var
  a: array[1..nmax] of integer;
  n, i, j, k: byte;
  s, x: integer;
 
begin
  randomize;
  s := 0;
  repeat
    write('Размер массива до ', nmax div 2, ' n=');
    readln(n);
  until n in [1..nmax div 2];
  writeln('Введите в массив ', n, ' положительных и отрицатедьных целых чисел:');
  for i := 1 to n do
  begin
    write('a[', i, ']=');
    readln(a[i]);
    s := s + a[i];
  end;
  writeln('Сумма: ', s);
  writeln('Исходный массив:');
  for i := 1 to n do
    write(a[i], ' ');
  writeln;
  i := 1;
  while i <= n do
  begin
    if a[i] > 0 then
    begin
      n := n + 1;
      for j := n downto i + 1 do
        a[j] := a[j - 1];
      a[i] := s;
      i := i + 2;
    end
    else i := i + 1;
  end;
  writeln('Массив после вставки суммы:');
  for i := 1 to n do
    write(a[i], ' ');
end.

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

  1. Объявлены переменные: nmax - максимальное количество элементов в массиве, равно 100; a - массив для ввода и обработки данных, размерностью от 1 до nmax; n, i, j, k - булевые переменные для контроля цикла; s, x - переменные для промежуточных расчетов, типа integer;
  2. Выполняется инициализация генератора случайных чисел функцией randomize;
  3. Переменная s инициализируется значением 0, которая будет использоваться для накопления суммы элементов массива;
  4. В цикле repeat-until выполняется запрос на ввод размера массива n от пользователя и повторяется до тех пор, пока n не будет в диапазоне от 1 до nmax/2;
  5. Запрос на ввод n положительных и отрицательных чисел в массив a от пользователя;
  6. Сумма элементов массива вычисляется путем итерации по всем элементам массива и добавления их к переменной s;
  7. Выводится сообщение о сумме элементов массива;
  8. Выводится сообщение об исходном массиве;
  9. Цикл while i <= n выполняет проверку каждого элемента массива a[i] на положительность. Если элемент положительный, то выполняется:
  10. Увеличивается размер массива на 1;
  11. Вставленный элемент равный сумме элементов массива, вычисляется путем итерации от n до i+1 и присваивается каждому элементу a[j] значение a[j-1];
  12. Устанавливается значение a[i] равным s;
  13. Увеличивается значение i на 2;
  14. Если элемент отрицательный, то значение i увеличивается на 1;
  15. Выводится сообщение о массиве после вставки суммы.

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


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

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

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