Вставка элементов в массив - 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.
Объяснение кода листинга программы
- Создается переменная
nmax
со значением 100. - Используется функция
randomize
, которая инициализирует генератор случайных чисел. - Выводится сообщение с запросом на ввод размера массива от 2 до
nmax
. - Запрашивается ввод размера массива
n
. - Создается переменная
a
типаarray[1..nmax+2]of integer
. - Выводится сообщение «Исходный массив».
- Запускается цикл
for
, который проходит по каждому элементу массиваa
от 1 доn
. - Внутри цикла вычисляется значение
a[i] = -10 + random(21)
. - Выводится значение
a[i]
с указанием позиции элемента. - Если значение
a[i]
меньше 0, то переменнаяip
устанавливается равнойi
. - Если переменная
ip
равна 0, то выводится сообщение «Отрицательных элементов нет» и цикл прерывается командойexit
. - Если переменная
ip
не равна 0, то выводится сообщение «Последний отрицательный=», значениеa[ip]
и позиция элементаip
. - Запрашивается ввод двух целых чисел для вставки.
- Увеличивается значение переменной
n
на 2. - Если переменная
ip
равнаn-2
, то выводится сообщение «Вставка элементов» и значенияx
иy
присваиваются элементамn-1
иn
. - Если переменная
ip
не равнаn-2
, то выполняется циклfor
, который проходит по всем элементам массиваa
отn
доip+3
. - Внутри цикла копируются значения элементов из предыдущего диапазона в текущий диапазон.
- Значение
a[ip+1]
присваиваетсяx
, а значениеa[ip+2]
присваиваетсяy
. - Выводится сообщение «Вставка элементов».
- Запускается цикл
for
, который проходит по каждому элементу массиваa
от 1 доn
. - Выводится значение
a[i]
с указанием позиции элемента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д