Problem

1 /12


O que é uma matriz? Criação, exibição

Theory Click to read/hide

Introdução 
Muitas vezes, ao trabalhar com qualquer informação, você precisa lidar com dados tabulares. Os programas modernos geralmente trabalham com esses dados. O exemplo mais simples é programar jogos em um tabuleiro de xadrez: jogo da velha, xadrez, damas, etc.

Em matemática, tais estruturas são chamadas de matrizes.
 
Uma matriz é uma tabela retangular composta de elementos do mesmo tipo (números, strings, etc. .)< /div>
Tais dados em Pascal podem ser armazenados e processados ​​como arrays bidimensionais - "arrays de arrays".
Para processar os dados da tabela, é necessário lembrar o estado de cada célula (célula). Cada célula tem dois números: um número de linha e um número de coluna.
Na matriz, cada elemento possui dois índices: primeiro é indicado o número da linha, depois o número da coluna. A numeração de linhas e colunas começa do zero.
Por exemplo, o elemento A[1][2] é o elemento localizado na segunda linha e na terceira coluna.

Assim como nos arrays (listas) comuns, para trabalhar com matrizes é preciso aprender a criá-las, inseri-las, processá-las e exibi-las.
 
Criação de matrizes
Tarefa
Cria na memória uma matriz do tamanho dado preenchida com zeros.

Para criar uma matriz corretamente, você precisa forçar o compilador a criar todas as strings na memória como objetos diferentes.
Para fazer isso, você deve primeiro criar uma matriz vazia, especificar o número de linhas na matriz e, em seguida, especificar o número de elementos em cada linha usando o método setLength() em um loop: N:= 3 M := 2 setLength(A, N); para i := 0 a N - 1 faça   setLength(A[i], M);

 

Preenchendo uma matriz com valores arbitrários
Depois de criar uma matriz, você pode preenchê-la com valores arbitrários. Como cada elemento possui dois índices, é necessário usar loops aninhados para i := 0 a N comece para j := 0 a M começar A[i][j] := ...   fim; fim;  
Exibindo a matriz

Dois loops aninhados geralmente são usados ​​para processar e exibir a lista. O primeiro ciclo é pelo número da linha, o segundo ciclo é pelos elementos dentro da linha.
Para exibir a matriz linha por linha, separando os números com espaços dentro de uma linha, você precisa escrever o seguinte fragmento:

for i := 0 to length(A) - 1 do begin // length(A) - retorna o número de linhas na matriz A     for j := 0 to length(A[i]) - 1 do // length(A[i]) - retorna o número de elementos na string i         escreva(a[i][j], ' ');     escrevaln(); // faz uma nova linha depois que a linha é exibida fim;

O mesmo, mas não por índice, mas por valores de lista (o loop for pode iterar sobre todos os elementos da lista (array), string):

for row in a do begin // iterar sobre todas as linhas da matriz a     for elem in row do // faz um loop por todos os elementos na linha         escreva(elem, ' ');     escrevaln(); fim;

Problem

Preencha uma matriz binária (consistindo apenas de zeros e uns) em um padrão quadriculado. Deve haver um elemento nulo no canto superior esquerdo.
 

Entrada
A string de entrada contém dimensões da matriz separadas por espaços: o número de linhas N e o número de colunas M ( 1 < = N ,  ;M <= 100 ).
 

Impressão 
O programa deve gerar a matriz binária linha por linha.
 

Exemplos
# Entrada Saída
1 4 5 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1