Напечатать элементы заданной матрицы в заданном порядке - Turbo Pascal
Формулировка задачи:
Решение задачи: «Напечатать элементы заданной матрицы в заданном порядке»
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of integer;
n,i,j:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(50);
write(a[i,j]:3);
end;
writeln;
end;
writeln;
writeln('Вывод матрицы по схеме');
for i:=1 to n do
begin
for j:=1 to n do
if odd(n-i+1) then write(a[n-i+1,n-j+1]:3)
else write(a[n-i+1,j]:3);
writeln;
end;
readln
end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он предназначен для создания и выполнения программ на ПК. В начале кода подключается библиотека crt, которая обеспечивает работу с консолью. Далее определяется константа nmax, которая ограничивает размер матрицы до 10 строк и 10 столбцов. Создается переменная a типа array[1..nmax,1..nmax] of integer, которая представляет собой матрицу размером nmax x nmax. Затем определяются три переменные: n, i и j, которые будут использоваться для итерации по матрице. В цикле повторяется до тех пор, пока n не будет равно одному из значений от 2 до nmax. На каждой итерации пользователю предлагается ввести размер матрицы. После этого выводится сообщение с размером матрицы. Затем происходит итерация по матрице. На каждой итерации заполняются элементы матрицы случайными числами от 1 до 50. После заполнения матрицы выводится сообщение с ее элементами. Далее идет еще один цикл, в котором выводится матрица в определенном порядке. Если n меньше или равно i+1, то выводится элемент (n-i+1,n-j+1). Если n больше i+1, то выводится элемент (i,j). После завершения цикла выводится сообщение с просьбой нажать любую клавишу.