Массив целых чисел х[1]... х[п] «свернуть в кольцо» и повернуть вправо на К позиций (К может быть больше п).
Заранне спасибо!
program jopa;
uses crt;
type mas=array[1..1000] of integer;
var m:mas;k,tmp,i,n:integer;
begin
clrscr;
writeln('vvedi n');
readln(n);
writeln('vvedi ',n,' elementov massiva');
for i:=1 to n do
readln(m[i]);
writeln('vvedi kolichestvo pozicii sdviga');
readln(k);
for i:=1 to k do
begin
tmp:=n;
for i:=n downto k do
m[i]:=m[i-1];
m[1]:=tmp
end;
for i:=1 to n do
write(m[i]:3);
readln;
end.
program jopa;
uses crt;
type mas=array[1..1000] of integer;
var m:mas;k,tmp,i,n:integer;
begin
clrscr;
writeln('vvedi n');
readln(n);
writeln('vvedi ',n,' elementov massiva');
for i:=1 to n do
readln(m[i]);
writeln('vvedi kolichestvo pozicii sdviga');
readln(k);
for i:=1 to k do
begin
tmp:=n;
for i:=n downto k do
{m[i]:=m[i-1];}
Move(m[2], m[i], (n - 1)* n, of(integer))
m[1]:=tmp;
end;
for i:=1 to n do
write(m[i]:3);
readln;
end.
for j:=1 to n-k do
begin
tmp:=m[n];
Move(m[1], m[i], (n + 1)* n, of(integer))
m[1]:=tmp;
end;
for j:=1 to n-k do
begin
tmp:=m[n];
Move(m[1], m[i], (n + 1)* n, of(integer))
m[1]:=tmp;
end;
for k:=1 to n1 do begin //n1-это сколько сдвигов
j:=a[n];
for i:=n downto 2 do a[i]:=a[i-1];
a[1]:=j
end;
for k:=1 to n1 do begin //n1-это сколько сдвигов
j:=a[n];
for i:=n downto 2 do a[i]:=a[i-1];
a[1]:=j
end;
for j:=1 to n-k do
begin
tmp:=m[n];
Move(m[2], m[i], (n - 1)* n);
m[1]:=tmp;
end;
for j:=1 to k do
begin
tmp:=m[n];
for i:=n downto 2 do
m[i]:=m[i-1];
m[1]:=tmp;
end;
// k = число сдвигов, n = размер массива
for i := 1 to k mod n do begin
tmp := m[n];
Move(m[1], m[2], (n-1)*sizeof(integer));
m[1]:=tmp;
end;
// k = число сдвигов, n = размер массива
for i := 1 to k mod n do begin
tmp := m[n];
Move(m[1], m[2], (n-1)*sizeof(integer));
m[1]:=tmp;
end;
program jopa;
uses crt;
type mas=array[1..1000] of integer;
var m:mas;k,tmp,i,n,n1:integer;
begin
clrscr;
writeln('vvedi n');
readln(n);
writeln('vvedi ',n,' elementov massiva');
for i:=1 to n do
readln(m[i]);
writeln('vvedi kolichestvo pozicii sdviga');
readln(k);
for i := 1 to k mod n do
begin
tmp := m[n];
Move(m[1], m[2], (n-1)*sizeof(integer));
m[1]:=tmp;
end;
for i:=1 to n do
write(m[i]:3);
readln;
end.