Помогите, пожалуйста, исправить ошибку. Процедура должна выполнять сдвиг элементов массива вправо на 1 ячейку. Но пишет "ошибка времени выполнения: Индекс находился вне границ массива. "
Вот пример программы, которая сдвигает элементы массива вправо на одну позицию:
program ShiftingRight;
var
a: array[0..9] of integer;
i, temp: integer;
begin
for i := 0 to 9 do
a := i;
writeln('Original array:'
for i := 0 to 9 do
write(a, ' '
temp := a[0];
for i := 1 to 9 do
a[i-1] := a;
a[9] := temp;
writeln;
writeln('Shifted array:'
for i := 0 to 9 do
write(a, ' '
end.
В этой программе мы сначала заполняем массив числами от 0 до 9, а затем сдвигаем элементы вправо, перемещая последний элемент в первую позицию.
Пожалуйста имейте ввиду, что этот пользователь забанен
uses crt; // сдвиг массива вправо на К элементов
const n=10;
k=2;
var x: array [1..n] of integer;
y,i,j: integer;
begin
for i:=1 to n do x:=2*i;
for j:=1 to k do begin
y:=x[n];
for i:=n downto 2 do x:=x[i-1];
x[1]:=y;
end;
for i:=1 to n do write(x:4);
readln;
end.