Массив NxN заполнить 0 и 1 - Pascal ABC

Формулировка задачи:

Нужна помощь по заполнению массива таким образом:
сетка
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
код для заполнения одномерного массива (одной строки) я написать смог:
program apert;
var mas:array[0..15] of integer;
i,k,l:integer;
begin
cls;
k:=0;
l:=0;
for i:=0 to 15 do begin
    while k<=3 do begin
      while l<=1 do begin
            mas[i]:=1;
            l:=l+1;
            i:=i+1;
      end;
    l:=0;
    k:=k+1;
    i:=i+2;
  end;
end;
for i:=0 to 15 do begin
write(mas[i]:2);
end;
end.
А вот как теперь произвести такое же заполнение для массива NxN не получается((
program apert;
var mas:array[0..15,0..15] of integer;
i,k,l,j,m,n:integer;
begin
cls;
k:=0;
l:=0;
m:=0;
n:=0;
for i:=0 to 15 do begin
while m<=3 do begin
  while n<=1 do begin
for j:=0 to 15 do begin
    while k<=3 do begin
      while l<=1 do begin
            mas[i,j]:=1;
            l:=l+1;
            j:=j+1;
      end;
    l:=0;
    k:=k+1;
    j:=j+2;
    end;
end;
  n:=n+1;
  i:=i+1;
  end;
n:=0;
m:=m+1;
i:=i+2;
end;
end;
for i:=0 to 15 do begin
for j:=0 to 15 do begin
write(mas[i,j]:2);
end;
writeln;
end;
end.
возвращает вот это:
сетка
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Пошагово отследить программу не получается( Добавлено через 13 минут нашел ошибку: после выполнения внутренних while не обнулил их счетчики))
program apert;
var mas:array[0..15,0..15] of integer;
i,k,l,j,m,n:integer;
begin
cls;
k:=0;
l:=0;
m:=0;
n:=0;
for i:=0 to 15 do begin
while m<=3 do begin
  while n<=1 do begin
for j:=0 to 15 do begin
    while k<=3 do begin
      while l<=1 do begin
            mas[i,j]:=1;
            l:=l+1;
            j:=j+1;
      end;
    l:=0;
    k:=k+1;
    j:=j+2;
    end;
end;
  k:=0;
  l:=0;
  n:=n+1;
  i:=i+1;
  end;
n:=0;
m:=m+1;
i:=i+2;
end;
end;
for i:=0 to 15 do begin
for j:=0 to 15 do begin
write(mas[i,j]);
end;
writeln;
end;
end.

Код к задаче: «Массив NxN заполнить 0 и 1 - Pascal ABC»

textual
program apert;
const maxn=50;
var
  mas:array[0..maxn-1,0..maxn-1] of integer;
  i,j,n:integer;
begin
  repeat
    Write('input n'); ReadLn(n);
  until (n>=1) and (n<=maxn);
  
  for i:=0 to n-1 do
    for j:=0 to n-1 do
      if ((i mod 4)>1) or ((j mod 4)>1) then mas[i,j]:=0
      else mas[i,j]:=1;
      
      
  // вывод массива
  WriteLn;
  for i:=0 to n-1 do begin
    for j:=0 to n-1 do Write(mas[i,j]:2);
    WriteLn;
  end;
  
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 4.250 из 5


СДЕЛАЙТЕ РЕПОСТ