Заполнить матрицу n на n следующим образом - Turbo Pascal
Формулировка задачи:
заполнить матрицу n на n следующим образом
не могу придумать формулу для заполнения
Решение задачи: «Заполнить матрицу n на n следующим образом»
textual
Листинг программы
const nmax=20; var a:array[1..nmax,1..nmax] of integer; m,n,i,j:integer; begin repeat write('Количество строк четное число от 2 до ',nmax,' m='); readln(m); until (m in [2..nmax])and(m mod 2=0); repeat write('Количество столбцов четное число от 2 до ',nmax,' n='); readln(n); until (n in [2..nmax])and(n mod 2=0); for i:=1 to m do for j:=1 to n do a[i,j]:=0; i:=1; while i<m do begin for j:=1 to n do if (i+j-2)mod 4=0 then begin a[i,j]:=1; a[i+1,j]:=1; a[i,j+1]:=1; a[i+1,j+1]:=1; end; i:=i+2; end; for i:=1 to m do begin for j:=1 to n do write(a[i,j]:3); writeln; end; readln end.
Объяснение кода листинга программы
Данный код на Turbo Pascal выполняет следующие действия:
- Объявляет переменные
nmax
,a
,m
,n
,i
иj
для хранения значений, связанных с матрицей. - Запрашивает у пользователя количество строк и столбцов матрицы, проверяя, что они находятся в допустимом диапазоне от 2 до
nmax
. - Инициализирует матрицу
a
нулями. - Использует два вложенных цикла
for
для заполнения матрицыa
. Внешний цикл проходит по строкам, а внутренний - по столбцам. Если текущая строка и столбец удовлетворяют определенному условию (четность и отсутствие повторяющихся элементов), то соответствующие ячейки матрицыa
устанавливаются в 1. - Выводит заполненную матрицу
a
в консоль, используя три вложенных циклаfor
. Каждый внутренний цикл выводит значение ячейки матрицыa
в текущей строке и столбце. - Запрашивает у пользователя, хочет ли он просмотреть еще одну матрицу, и завершает программу в зависимости от ответа пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д