Сдвиг вправо через процедуры в массивах - Pascal ABC
Формулировка задачи:
Добрый вечер!
Помогите, пожалуйста!
Даны три целочисленных массива длиной n, m, l (заполняются случайными целыми числами). В первом массиве осуществить циклический сдвиг вправо на a позиций, во втором на b, в третьем на c.
Нужно сделать через процедуры
Заранее благодарю
Решение задачи: «Сдвиг вправо через процедуры в массивах»
textual
Листинг программы
type Mas = array[1..100] of integer;
procedure sdvig (var t:mas;x:integer);
var i,r:integer;
begin
r:=t[x];
for i:=x downto 2 do
t[i]:=t[i-1];
t[1]:=r;
end;
procedure vvod(var t:mas;var x:integer;c:char);
var i:integer;
begin
repeat
writeln('Введите количество элементов массива ',c,' от 2 до 100');
readln(x);
until x in [2..100];
for i:=1 to x do
t[i]:= random(50);
end;
procedure vyvod(var t:mas;x:integer;s:string);
var i:integer;
begin
writeln(s);
for i:=1 to x do
write(t[i]:4);
writeln;
end;
var a,b,c:mas;
n,m,l:integer;
begin
vvod(a,n,'A');
vyvod(a,n,'Исходный массив А');
sdvig(a,n);
vyvod(a,n,'Массив А после сдвига');
vvod(b,m,'B');
vyvod(b,m,'Исходный массив B');
sdvig(b,m);
vyvod(b,m,'Массив B после сдвига');
vvod(c,l,'C');
vyvod(c,l,'Исходный массив C');
sdvig(c,l);
vyvod(c,l,'Массив C после сдвига');
end.
Объяснение кода листинга программы
- Создается тип Mas, который представляет собой массив целых чисел размером от 1 до 100.
- Создается процедура sdvig, которая принимает в качестве параметров переменную t (массив) и x (индекс элемента, с которого нужно начать сдвиг), и выполняет сдвиг элементов массива вправо. Внутри процедуры используются две переменные i и r для отслеживания текущего индекса и нового значения элемента соответственно.
- Создается процедура vvod, которая принимает в качестве параметров переменную t (массив), переменную x (количество элементов, которые нужно ввести) и символ c (тип элемента). Процедура повторяет запрос количества элементов и вводит случайные значения для каждого из указанных элементов.
- Создается процедура vyvod, которая принимает в качестве параметров переменную t (массив), x (количество элементов, которые нужно вывести) и строку s (текст, который нужно вывести). Процедура выводит значения элементов массива по указанному индексу.
- Создается переменная a, b и c, которые представляют собой массивы.
- Выполняется ввод исходных значений массивов a, b и c.
- Выполняется сдвиг элементов массива a на позицию n с помощью процедуры sdvig.
- Выполняется вывод исходного и после сдвига значений массива a.
- Выполняется ввод исходных значений массивов b и c.
- Выполняется сдвиг элементов массива b на позицию m с помощью процедуры sdvig.
- Выполняется вывод исходного и после сдвига значений массива b.
- Выполняется ввод исходных значений массива c.
- Выполняется сдвиг элементов массива c на позицию l с помощью процедуры sdvig.
- Выполняется вывод исходного и после сдвига значений массива c.
- Программа завершается.