Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент - 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.
Объяснение кода листинга программы
- Объявлены переменные: a (двумерный массив), q, i, k (циклы), f, g (файлы ввода-вывода), а также строки f, g.
- Открывается файл f для чтения из файла input.txt.
- В цикле с i от 0 до q-1 и с k от 1 до q происходит чтение элементов массива a из файла f.
- Если i равно q-1 и k равно q, то считывается первый элемент массива a[0,0].
- Если k больше q-1, то считывается элемент a[i+1,k-q].
- В противном случае считывается элемент a[i,k].
- Цикл завершается.
- Файл f закрывается.
- Выводится сообщение
Сдвинутый массив:
и в цикле с i от 0 до q-1 происходит вывод элементов массива a. - Каждый элемент выводится в отдельной строке с помощью функции WriteLn.
- Формируется имя файла g и открывается файл g для записи в файл output.txt.
- В цикле с i от 0 до q-1 происходит запись элементов массива a в файл g.
- Каждый элемент записывается в отдельной строке с помощью функции WriteLn.
- Файл g закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д