Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент - 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
Листинг программы
Var a: array [,] of integer;
    q,i,k: integer;
    f,g: text;
 
Begin 
  assign(f,'input.txt');
  reset(f);
  readln(f,q);
  a:= new integer[q,q];
  For i:=0 to q-1 do
    For k:=1 to q do
     begin
      if (i=q-1) and (k=q) then read(f,a[0,0]) else
       if k > q-1 then read(f,a[i+1,k-q]) else
         read(f,a[i,k]);
     end; 
  close(f);
  Writeln('Сдвинутый массив:');
  For i:=0 to q-1 do
    begin
      For k:=0 to q-1 do
        Write(a[i,k]:4);
      WriteLn;
    end;
  assign(g,'output.txt');
  rewrite(g);
  For i:=0 to q-1 do
    begin
      For k:=0 to q-1 do
        Write(g,a[i,k],' ');
      WriteLn(g);
    end;
  close(g);
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
Похожие ответы