Поменять местами отрезки массива - Pascal ABC
Формулировка задачи:
Есть массив состоящий из n элементов.Массив разделили на 2 неравных отрезка(не сказано какой из них больше).Количество элементов в первом отрезке - m.
Как поменять отрезки местами(второй отрезок в начало,а первый на место второго) без использования доп массива?
Решение задачи: «Поменять местами отрезки массива»
textual
Листинг программы
uses crt; const max=100; var a:array[1..max] of integer; n,i,j,m:byte; x:integer; begin clrscr; randomize; repeat write('Размер массива n='); readln(n); until n in [1..max]; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(20)+1; write(a[i],' '); end; writeln; writeln; repeat write('Введите индекс для разделения массива от 2 до ',n-1,' m='); readln(m); until m in [2..n-1]; if m<n div 2 then for i:=1 to m do begin x:=a[1]; for j:=1 to n-1 do a[j]:=a[j+1]; a[n]:=x; end else for i:=1 to n-m do begin x:=a[n]; for j:=n downto 2 do a[j]:=a[j-1]; a[1]:=x; end; writeln('Перестановка частей масива:'); for i:=1 to n do write(a[i],' '); readln end.
Объяснение кода листинга программы
- Объявление переменных:
- a: массив для хранения чисел (array[1..max] of integer);
- n, i, j, m: переменные для проведения операций (byte);
- x: временная переменная (integer).
- Инициализация массива случайными числами с помощью функции random(20)+1.
- Ввод размера массива от пользователя.
- Вывод исходного массива на экран.
- Ввод индекса для разделения массива от 2 до n-1.
- Проверка, если m меньше n/2, то выполнить перестановку элементов слева от разделителя.
- Если m больше или равно n/2, то выполнить перестановку элементов справа от разделителя.
- Вывод переставленного массива на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д