Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент - PascalABC.NET

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

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

Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент. (Последний элемент строки становится первым элементом следующей, последний элемент последней строки - первым элементом первой строки). Входные данные: Во входном потоке в первой строке задано целое число N (0 < N <= 100) - размерность массива квадратного A (N - число строк и столбцов). В последующих N строках записано по N целых чисел - элементы массива. Значения элементов массива по модулю не превышают 32000. Выходные данные: В выходной поток вывести значения элементов полученного массива в виде таблицы. Элементы строк массива перечислять через пробел. Пример входного файла (input.txt): 3 1 2 3 4 3 2 5 6 7 Пример выходного файла (output.txt): 7 1 2 3 4 3 2 5 6

Решение задачи: «Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент»

textual
Листинг программы
  1. Var a: array [,] of integer;
  2.     q,i,k: integer;
  3.     f,g: text;
  4.  
  5. Begin
  6.   assign(f,'input.txt');
  7.   reset(f);
  8.   readln(f,q);
  9.   a:= new integer[q,q];
  10.   For i:=0 to q-1 do
  11.     For k:=1 to q do
  12.      begin
  13.       if (i=q-1) and (k=q) then read(f,a[0,0]) else
  14.        if k > q-1 then read(f,a[i+1,k-q]) else
  15.          read(f,a[i,k]);
  16.      end;
  17.   close(f);
  18.   Writeln('Сдвинутый массив:');
  19.   For i:=0 to q-1 do
  20.     begin
  21.       For k:=0 to q-1 do
  22.         Write(a[i,k]:4);
  23.       WriteLn;
  24.     end;
  25.   assign(g,'output.txt');
  26.   rewrite(g);
  27.   For i:=0 to q-1 do
  28.     begin
  29.       For k:=0 to q-1 do
  30.         Write(g,a[i,k],' ');
  31.       WriteLn(g);
  32.     end;
  33.   close(g);
  34. End.

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

  1. Объявлены переменные: a (двумерный массив), q, i, k (циклы), f, g (файлы ввода-вывода), а также строки f, g.
  2. Открывается файл f для чтения из файла input.txt.
  3. В цикле с i от 0 до q-1 и с k от 1 до q происходит чтение элементов массива a из файла f.
  4. Если i равно q-1 и k равно q, то считывается первый элемент массива a[0,0].
  5. Если k больше q-1, то считывается элемент a[i+1,k-q].
  6. В противном случае считывается элемент a[i,k].
  7. Цикл завершается.
  8. Файл f закрывается.
  9. Выводится сообщение Сдвинутый массив: и в цикле с i от 0 до q-1 происходит вывод элементов массива a.
  10. Каждый элемент выводится в отдельной строке с помощью функции WriteLn.
  11. Формируется имя файла g и открывается файл g для записи в файл output.txt.
  12. В цикле с i от 0 до q-1 происходит запись элементов массива a в файл g.
  13. Каждый элемент записывается в отдельной строке с помощью функции WriteLn.
  14. Файл g закрывается.

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


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

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

15   голосов , оценка 4.267 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы