begin Write('Введите через пробел девять целых чисел в порядке возрастания: '); for i := 1 to n - 1 do Read(a[i]); Write('Введите целое число для вставки: '); Read(k); {Определим позицию для вставки} i := 1; while (k > a[i]) and (i < n) do i := i + 1; {Выполним сдвиг бОльших элементов вправо} for j := n - 1 downto i do a[j + 1] := a[j]; {Осуществим вставку} a[i] := k; {Контрольный вывод} Writeln('Результирующий массив'); for i := 1 to n do Write(a[i], ' ') end.
Тестовые решения: Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 25 Результирующий массив 3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 0 Результирующий массив 0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24 Введите целое число для вставки: 13 Результирующий массив 3 6 8 10 13 14 15 17 19 24
Чтобы упростить программу, будем выводить команды типа "сделай ЕДИНИЦА", где ЕДИНИЦА и ДЕВЯТЬ - процедуры. Описание процедуры: процедура <имя процедуры> нач <тело процедуры> кон
процедура ЕДИНИЦА нач поворот шаг шаг шаг шаг поворот поворот прыжок прыжок прыжок прыжок поворот кон
n = 10;
var
i, k, j: integer;
a: array[1..n] of integer;
begin
Write('Введите через пробел девять целых чисел в порядке возрастания: ');
for i := 1 to n - 1 do Read(a[i]);
Write('Введите целое число для вставки: '); Read(k);
{Определим позицию для вставки}
i := 1;
while (k > a[i]) and (i < n) do i := i + 1;
{Выполним сдвиг бОльших элементов вправо}
for j := n - 1 downto i do a[j + 1] := a[j];
{Осуществим вставку}
a[i] := k;
{Контрольный вывод}
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовые решения:
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 25
Результирующий массив
3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 0
Результирующий массив
0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 13
Результирующий массив
3 6 8 10 13 14 15 17 19 24
Описание процедуры:
процедура <имя процедуры>
нач
<тело процедуры>
кон
процедура ЕДИНИЦА
нач
поворот шаг шаг шаг шаг
поворот поворот
прыжок прыжок прыжок прыжок
поворот
кон
процедура ДЕВЯТЬ
нач
шаг поворот шаг шаг шаг
шаг поворот шаг поворот шаг
шаг поворот шаг поворот поворот поворот
прыжок прыжок поворот
кон
тело программы: программа Число 1919
нач
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
кон