В упорядоченный по неубыванию массив чисел вставить заданное число - 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.

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

  1. Создается переменная a типа array[1..51] of real. Это означает, что мы создаем массив из 51 элемента, каждый из которых является числом с плавающей точкой.
  2. Задаются три переменные n, i, j и k типа integer. Они будут использоваться для управления циклом.
  3. Задается переменная b типа real. Она будет использоваться для хранения введенного пользователем числа.
  4. Начинается цикл repeat, который будет повторяться до тех пор, пока n не будет в диапазоне от 2 до 50.
  5. Внутри цикла repeat запрашивается у пользователя размер массива n.
  6. Создается массив a с размером n.
  7. Заполняется массив a случайными числами, причем каждое следующее число в массиве получается путем добавления к предыдущему числу трех случайных чисел.
  8. Выводится исходный массив a.
  9. Запрашивается у пользователя число b.
  10. Увеличивается значение переменной n на 1.
  11. Если b больше или равно последнему элементу массива a, то a[n] присваивается значение b.
  12. Иначе, инициализируются переменные i и k равными 1 и 0 соответственно.
  13. Запускается цикл while, который будет повторяться до тех пор, пока i меньше n и k равно 0.
  14. Если a[i] больше или равно b, то k присваивается значение i.
  15. Иначе, увеличивается значение i на 1.
  16. Для каждого элемента j от n до k+1 включительно, присваивается значение a[j] элементу a[k].
  17. Значению a[k] присваивается значение b.
  18. Выводится сообщение о вставке элемента в массив a.
  19. Выводится массив a.
  20. Запрашивается у пользователя, нужно ли удалить два первых элемента массива.
  21. Уменьшается значение n на 2.
  22. Для каждого элемента i от 1 до n включительно, присваивается значение a[i] элементу a[i+2].
  23. Выводится сообщение об удалении двух первых элементов массива.
  24. Выводится массив a.

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


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

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

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