Циклические перестановки в одномерных массивах - Pascal ABC (14610)

Формулировка задачи:

Ввести одномерный массив А , в котором число элементов кратно К , вывести его. Разбить массив на К равных частей, внутри каждой из областей осуществить циклический сдвиг элементов влево.

Код к задаче: «Циклические перестановки в одномерных массивах - Pascal ABC (14610)»

textual
var a:array[1..100] of integer;
    n,k,i,j,x:integer;
begin
randomize;
repeat
write('Введите натураьное число от 2 до 10 k=');
readln(k);
until k in [2..10];
repeat
write('Введите размер массива, натуральное число меньше 101, кратное ',k);
readln(n);
until (n in [2..100])and(n mod k=0);
writeln('Исходный массив');
for i:=1 to n do
 begin
  a[i]:=random(100);
  write(a[i]:4);
 end;
writeln;
for i:=1 to k do
 begin
  x:=a[(i-1)*k+1];
  for j:=(i-1)*k+1 to k*i-1 do
  a[j]:=a[j+1];
  a[k*i]:=x;
 end;
writeln('Сдвиги');
for i:=1 to n do
write(a[i]:4);
end.

11   голосов, оценка 3.818 из 5


СОХРАНИТЬ ССЫЛКУ