Вставка элементов в массив - Pascal ABC (14878)

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

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

Вставить после последнего отрицательного элемента, два элемента которые равны значениям предварительно введенным пользователем.

Решение задачи: «Вставка элементов в массив»

textual
Листинг программы
uses crt;
const nmax=100;
var n,i,j,x,y,ip:integer;
    a:array[1..nmax+2]of integer;
begin
randomize;
repeat
write('Размер массива от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходный массив');
for i := 1 to n do
 begin
  a[i]:=-10+random(21);
  write(a[i]:4);
 end;
writeln;
ip:=0;
i:=n;
while(i>=1)and(ip=0)do
if a[i]<0 then ip:=i
else i:=i-1;
if ip=0 then
 begin
  writeln('Отрицательных элементов нет');
  exit
 end;
writeln('Последний отрицательный=',a[ip],' в позиции ',ip);
writeln('Введите 2 целых числа для вставки');
readln(x,y);
n:=n+2;
if ip=n-2 then
 begin
  a[n-1]:=x;
  a[n]:=y;
 end
else
 begin
  for i:=1 to 2 do
  for j:=n downto ip+3 do
  a[j]:=a[j-1];
  a[ip+1]:=x;
  a[ip+2]:=y;
 end;
writeln('Вставка элементов');
for i:=1 to n do
write(a[i]:4)
end.

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

  1. Создается переменная nmax со значением 100.
  2. Используется функция randomize, которая инициализирует генератор случайных чисел.
  3. Выводится сообщение с запросом на ввод размера массива от 2 до nmax.
  4. Запрашивается ввод размера массива n.
  5. Создается переменная a типа array[1..nmax+2]of integer.
  6. Выводится сообщение «Исходный массив».
  7. Запускается цикл for, который проходит по каждому элементу массива a от 1 до n.
  8. Внутри цикла вычисляется значение a[i] = -10 + random(21).
  9. Выводится значение a[i] с указанием позиции элемента.
  10. Если значение a[i] меньше 0, то переменная ip устанавливается равной i.
  11. Если переменная ip равна 0, то выводится сообщение «Отрицательных элементов нет» и цикл прерывается командой exit.
  12. Если переменная ip не равна 0, то выводится сообщение «Последний отрицательный=», значение a[ip] и позиция элемента ip.
  13. Запрашивается ввод двух целых чисел для вставки.
  14. Увеличивается значение переменной n на 2.
  15. Если переменная ip равна n-2, то выводится сообщение «Вставка элементов» и значения x и y присваиваются элементам n-1 и n.
  16. Если переменная ip не равна n-2, то выполняется цикл for, который проходит по всем элементам массива a от n до ip+3.
  17. Внутри цикла копируются значения элементов из предыдущего диапазона в текущий диапазон.
  18. Значение a[ip+1] присваивается x, а значение a[ip+2] присваивается y.
  19. Выводится сообщение «Вставка элементов».
  20. Запускается цикл for, который проходит по каждому элементу массива a от 1 до n.
  21. Выводится значение a[i] с указанием позиции элемента.

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


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

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

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