Сдвинуть массив циклически на один элемент влево - Turbo Pascal

Узнай цену своей работы

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

Дан массив целых чисел.Сдвинуть его циклически на один элемент влево

Решение задачи: «Сдвинуть массив циклически на один элемент влево»

textual
Листинг программы
uses crt;
const n=10;
var a,b:array[1..n] of integer;
i,j,k,r:integer;
BEGIN
clrscr;
 
 for i:=1 to n do
  a[i]:=random(10)+3;
 
 for i:=1 to n do
  write(a[i]:4);
 writeln;
  write('На сколько хотите сдвинуть :');
  read(k);
  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;
 writeln;
 writeln;
  for i:=1 to n do
   write(a[i]:4);
 
readkey;
END.

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

  1. Создаётся массив a типа array[1..n] of integer, где n - это константа, равная 10.
  2. Заполняется циклом for i:=1 to n do - a[i]:=random(10)+3;. Здесь используется функция random(10)+3, которая генерирует случайное число от 0 до 9 и добавляет к нему 3, чтобы получить число в диапазоне от 3 до 9. Это число затем присваивается элементу массива a[i].
  3. Выводится содержимое массива с помощью цикла for i:=1 to n do write(a[i]:4); и функции writeln.
  4. Пользователю предлагается ввести, на сколько он хочет сдвинуть массив. Введенное значение сохраняется в переменной k.
  5. Используется цикл for i:=1 to k do - begin - a[j-1]:=a[j]; - a[n]:=r;. Здесь происходит сдвиг элементов массива. Если индекс элемента равен 1, то его значение присваивается переменной r, если индекс больше 1, то значение элемента присваивается предыдущему элементу. Значение последнего элемента массива (a[n]), которое было сдвинуто в начало массива, присваивается переменной r.
  6. Выводится содержимое массива с помощью цикла for i:=1 to n do write(a[i]:4; и функции writeln.
  7. Выводится сообщение readkey;, чтобы пользователь мог нажать любую клавишу, прежде чем программа завершится.

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

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