Заполнить матрицу 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 выполняет следующие действия:

  1. Объявляет переменные nmax, a, m, n, i и j для хранения значений, связанных с матрицей.
  2. Запрашивает у пользователя количество строк и столбцов матрицы, проверяя, что они находятся в допустимом диапазоне от 2 до nmax.
  3. Инициализирует матрицу a нулями.
  4. Использует два вложенных цикла for для заполнения матрицы a. Внешний цикл проходит по строкам, а внутренний - по столбцам. Если текущая строка и столбец удовлетворяют определенному условию (четность и отсутствие повторяющихся элементов), то соответствующие ячейки матрицы a устанавливаются в 1.
  5. Выводит заполненную матрицу a в консоль, используя три вложенных цикла for. Каждый внутренний цикл выводит значение ячейки матрицы a в текущей строке и столбце.
  6. Запрашивает у пользователя, хочет ли он просмотреть еще одну матрицу, и завершает программу в зависимости от ответа пользователя.

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы