Циклические перестановки в одномерных массивах - 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.

Объяснение кода листинга программы

  1. Создается переменная a типа array[1..100] of integer;, которая будет представлять собой одномерный массив целых чисел размером от 1 до 100.
  2. Создаются переменные n, k, i, j, x типа integer;, которые будут использоваться для выполнения различных операций.
  3. С помощью функции randomize и repeat...until задается начальное значение переменной k - вводится натуральное число от 2 до 10.
  4. С помощью функции repeat...until задается начальное значение переменной n - вводится размер массива, натуральное число меньше 101, кратное k.
  5. Выполняется цикл for i:=1 to n do, в котором для каждого индекса i создается элемент массива a[i] и выводится его значение.
  6. Выполняется цикл for i:=1 to k do, в котором для каждого индекса i выполняется сдвиг элементов массива a. Сначала с помощью цикла for j:=1 to (i-1)*k+1 do сдвигаются все элементы массива a на один шаг влево, а затем в конце присваивается значение x элемента с индексом k*i.
  7. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  8. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  9. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  10. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  11. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  12. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  13. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  14. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  15. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  16. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  17. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  18. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].
  19. Выполняется цикл for i:=1 to n do, в котором выводится значение элемента массива a[i].
  20. Выполняется цикл for i:=1 to k do, в котором выводится значение элемента массива a[i].

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы