Получить матрицу по образцу - Pascal (80294)
Формулировка задачи:
Дано натуральное число n. n от 3 до 10.
нужно получить квадратную матрицу вида n*n
n n-1 n-2 n-3 ... 1 n-1 n n-1 n-2 ... 2 n-2 n-1 n n-1 3 n-3 n-2 n-1 n ... 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 4 .... n
Решение задачи: «Получить матрицу по образцу»
textual
Листинг программы
var a:array[1..20,1..20] of byte;
n,i,j:byte;
begin
repeat
write('Размер матрицы от 2 до 20 n=');
readln(n);
until n in [1..20];
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=n-abs(i-j);
write(a[i,j]:3);
end;
writeln;
end;
end.
Объяснение кода листинга программы
- Создается переменная массива
aразмером 20x20. - Создается переменная
nдля хранения размера матрицы, и переменныеiиjдля итерации по матрице. - Выполняется цикл повторения, в котором пользователю предлагается ввести размер матрицы от 2 до 20.
- Ввод пользователя сохраняется в переменной
n. - Если введенное значение
nнаходится в диапазоне от 1 до 20, цикл повторения завершается. - Выполняется внешний цикл от 1 до
n. - Для каждого значения
iвнутренний цикл выполняется от 1 доn. - В каждой итерации в ячейку массива
aзаписывается значениеnминус модуль разностиiиj. - Значение в ячейке
a[i, j]выводится на экран с шириной поля в 3 символа. - После завершения внутреннего цикла выводится переход на новую строку.
- Процедура завершается.