Циклический сдвиг влево на одну позицию элементов заданного одномерного массива - PascalABC.NET
Формулировка задачи:
Помогите плиз.
Разработать процедуру , которая осуществляет циклический сдвиг влево на одну позицию элементов заданного одномерного массива целых чисел ( первый элемент становится последним) . Параметры процедуры - имя массива и количество элементов. На основе разработанной процедуры циклически сдвинуть влево на 3 элемента введен с клавиатуры массив целых чисел. Напечатать результат смещения.
Решение задачи: «Циклический сдвиг влево на одну позицию элементов заданного одномерного массива»
textual
Листинг программы
procedure shift(a : array of Integer);
begin
for var i := 1 to a.Length-1 do
Swap(a[i-1], a[i]);
end;
begin
var a : array of Integer;
SetLength(a, ReadLnInteger('Размер массива n='));
for var i := 1 to a.Length do
a[i-1] := ReadLnInteger('a[' + i.ToString + '] =');
WriteLn('Исходный массив: a = ', a);
shift(a);shift(a);shift(a);
WriteLn(' Новый массив: a = ', a);
end.
Объяснение кода листинга программы
- Объявляется процедура с именем
shift, которая принимает в качестве параметра одномерный массивaтипа Integer. - Внутри процедуры объявляется цикл
for, который выполняется от i = 1 до a.Length-1. - Внутри цикла происходит обмен значениями элементов массива
aс помощью функцииSwap. - Значениями аргументов функции
Swapявляютсяa[i-1]иa[i]. - После выполнения цикла, процедура
shiftзавершается. - Объявляется переменная
aтипа array of Integer. - С помощью функции
SetLengthустанавливается длина массиваaравной значению, введенному пользователем. - В цикле
forпроисходит заполнение массиваaзначениями, которые вводит пользователь. - Выводится сообщение исходного массива
a. - Три раза вызывается процедура
shift, которая сдвигает элементы массиваaвлево на одну позицию. - Выводится сообщение нового массива
a. - Код завершается.