Циклический сдвиг влево на одну позицию элементов заданного одномерного массива - 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
. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д