В упорядоченный по неубыванию массив чисел вставить заданное число - Pascal ABC
Формулировка задачи:
В упорядоченный по неубыванию массив чисел вставить заданное число так, чтобы упорядоченность сохранилась, и удалить два первых элемента массива.
Решение задачи: «В упорядоченный по неубыванию массив чисел вставить заданное число»
textual
Листинг программы
var a:array[1..51] of real; n,i,j,k:integer; b:real; begin randomize; repeat write('Введите размер массива от 2 до 50 n='); readln(n); until n in [2..50]; a[1]:=3*random; for i:=2 to n do a[i]:=a[i-1]+3*random; writeln('Исходный массив;'); for i:=1 to n do write(a[i]:5:1); writeln; write('Введите число b='); readln(b); n:=n+1; if b>=a[n-1] then a[n]:=b else begin i:=1; k:=0; while(i<n)and(k=0) do if a[i]>=b then k:=i else inc(i); for j:=n downto k+1 do a[j]:=a[j-1]; a[k]:=b; end; writeln('Вставка элемента:'); for i:=1 to n do write(a[i]:5:1); writeln; writeln('Удаление двух первых элементов:'); n:=n-2; for i:=1 to n do begin a[i]:=a[i+2]; write(a[i]:5:1); end; end.
Объяснение кода листинга программы
- Создается переменная
a
типаarray[1..51] of real
. Это означает, что мы создаем массив из 51 элемента, каждый из которых является числом с плавающей точкой. - Задаются три переменные
n
,i
,j
иk
типаinteger
. Они будут использоваться для управления циклом. - Задается переменная
b
типаreal
. Она будет использоваться для хранения введенного пользователем числа. - Начинается цикл
repeat
, который будет повторяться до тех пор, покаn
не будет в диапазоне от 2 до 50. - Внутри цикла
repeat
запрашивается у пользователя размер массиваn
. - Создается массив
a
с размеромn
. - Заполняется массив
a
случайными числами, причем каждое следующее число в массиве получается путем добавления к предыдущему числу трех случайных чисел. - Выводится исходный массив
a
. - Запрашивается у пользователя число
b
. - Увеличивается значение переменной
n
на 1. - Если
b
больше или равно последнему элементу массиваa
, тоa[n]
присваивается значениеb
. - Иначе, инициализируются переменные
i
иk
равными 1 и 0 соответственно. - Запускается цикл
while
, который будет повторяться до тех пор, покаi
меньшеn
иk
равно 0. - Если
a[i]
больше или равноb
, тоk
присваивается значениеi
. - Иначе, увеличивается значение
i
на 1. - Для каждого элемента
j
отn
доk+1
включительно, присваивается значениеa[j]
элементуa[k]
. - Значению
a[k]
присваивается значениеb
. - Выводится сообщение о вставке элемента в массив
a
. - Выводится массив
a
. - Запрашивается у пользователя, нужно ли удалить два первых элемента массива.
- Уменьшается значение
n
на 2. - Для каждого элемента
i
от 1 доn
включительно, присваивается значениеa[i]
элементуa[i+2]
. - Выводится сообщение об удалении двух первых элементов массива.
- Выводится массив
a
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д