Требуется переставить часть последовательности натуральных чисел от a до b в обратном порядке, а затем от c

Требуется переставить часть последовательности натуральных чисел от a до b в обратном порядке, а затем от c до d. Входные данные - натуральные числа n, a, b, c, d. Требуется вывести полученную последовательность. Примеры: Входные данные: 9 2 5 6 9 Выходные данные: 1 5 4 3 2 9 8 7 6 Входные данные: 9 3 6 5 8 Выходные данные: 1 2 6 5 8 7 3 4 9 Напишите программу на PascalABC.
Ивановна

Ивановна

Конечно, я могу помочь вам с этой задачей на языке PascalABC. Вот решение:

pascal
program ReverseSequence;
var
n, a, b, c, d, i: integer;

begin
// Вводим значения n, a, b, c, d
readln(n, a, b, c, d);

// Создаем массив для хранения последовательности
var sequence: array[1..100] of integer;

// Заполняем последовательность числами от 1 до n
for i := 1 to n do
sequence[i] := i;

// Переставляем часть последовательности от a до b в обратном порядке
for i := a to (a + b) div 2 do
begin
var temp := sequence[i];
sequence[i] := sequence[a + b - i];
sequence[a + b - i] := temp;
end;

// Переставляем часть последовательности от c до d в обратном порядке
for i := c to (c + d) div 2 do
begin
var temp := sequence[i];
sequence[i] := sequence[c + d - i];
sequence[c + d - i] := temp;
end;

// Выводим полученную последовательность
for i := 1 to n do
write(sequence[i], " ");
end.


Эта программа сначала создает массив `sequence`, в котором будут храниться числа от 1 до n. Затем она переставляет часть последовательности от a до b в обратном порядке, используя временную переменную `temp`, и аналогично переставляет часть последовательности от c до d. В конце программа выводит полученную последовательность чисел.

Вы можете скопировать и вставить этот код в PascalABC и запустить программу, чтобы проверить ее работу.
Знаешь ответ?
Задать вопрос
Привет!
hello