Выполнить циклический сдвиг всех элементов заданного двухмерного массива вправо на один элемент - 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 закрывается.