Составить матрицу по правилу - Pascal ABC
Формулировка задачи:
Помогите составить матрицу вида:
11111
01110
00100
01110
11111
Решение задачи: «Составить матрицу по правилу»
textual
Листинг программы
uses crt; const nmax=20; var a:array[1..nmax,1..nmax] of integer; n,i,j:integer; begin repeat write('Размер матрицы до ',nmax,' n='); read(n); until n in [1..nmax]; for i:=1 to n do begin for j:=1 to n do begin if((j>=i)and(j<=n-i+1))or((j<=i)and(j>=n-i+1))then a[i,j]:=1 else a[i,j]:=0; write(a[i,j]:3); end; writeln; end; end.
Объяснение кода листинга программы
- В начале кода используется библиотека crt, которая предоставляет функции для работы с консолью.
- Константа nmax определена как максимальное значение индекса массива a, которое может быть использовано в данном коде. Это значение установлено равным 20.
- Переменная a объявлена как массив целых чисел размером от 1 до nmax на 1 до nmax.
- Переменные n, i и j используются для итерации по матрице a.
- В цикле repeat-until выполняется запрос размера матрицы от пользователя.
- Цикл for i:=1 to n do используется для итерации по строкам матрицы a.
- Цикл for j:=1 to n do используется для итерации по столбцам матрицы a.
- В условии if проверяется, что элемент матрицы с индексами i и j принадлежит диапазону от j>=i до n-i+1 и от j<=i до n-i+1. Если это условие истинно, то переменной a[i,j] присваивается значение 1, иначе - 0.
- После выполнения цикла for j:=1 to n do выводится значение a[i,j] с помощью функции write.
- Выводится символ новой строки с помощью функции writeln.
- Код в блоке end для каждого i завершает итерацию по строке.
- Код в блоке end для всей программы завершает выполнение.