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