Сдвиг влево на k элементов:
var
a: array [1 .. 100] of integer;
i, r, n, k, j: integer;
begin
read(n, k); { k обозначает величину сдвига }
for i := 1 to n do
read(a[i]);
for i := 1 to k do
begin
for j := 1 to n do
if (j = 1) then
r := a[j]
else
a[j - 1] := a[j];
a[n] := r;
end;
for i := 1 to n do
write(a[i], ' ');
readln
end.Сдвиг на k элементов вправо:
code: # pascal
var
a: array [1 .. 100] of integer;
i, r, n, k, j: integer;
begin
read(n, k); { k обозначает величину сдвига }
for i := 1 to n do
read(a[i]);
for i := 1 to k do
begin
for j := n downto 1 do
if (j = n) then
r := a[n]
else
a[j + 1] := a[j];
a[1] := r;
end;
for i := 1 to n do
write(a[i], ' ');
readln
end.