Problem

1 /12


什么是矩阵?创作、展示

Theory Click to read/hide

简介 
很多时候,在处理任何信息时,您都必须处理表格数据。现代程序经常使用此类数据。最简单的例子是在棋盘上编程游戏:井字、国际象棋、西洋跳棋等。

在数学中,这种结构被称为矩阵。
 
矩阵是由相同类型的元素(数字、字符串等)组成的矩形表格.)< /div>
Pascal 中的此类数据可以存储和处理为二维数组 - “数组的数组”。
要处理表格中的数据,需要记住每个单元格(cell)的状态。每个单元格都有两个数字:行号和列号。
在矩阵中,每个元素都有两个索引:首先指示行号,然后指示列号。行数和列数从零开始。
例如元素A[1][2]就是位于第二行第三列的元素。

就像普通数组(列表)一样,为了使用矩阵,您需要学习如何创建、输入、处理和显示它们。
 
矩阵创建
任务
在内存中创建一个用零填充的给定大小的矩阵。

要正确创建矩阵,需要强制编译器将内存中的所有字符串创建为不同的对象。
为此,您必须首先创建一个空数组,然后指定矩阵中的行数,然后在循环中使用 setLength() 方法指定每行中的元素数: ñ:= 3 米:= 2 设置长度(A,N); 因为我 := 0 到 N - 1 做   setLength(A[i], M);

 

用任意值填充矩阵
创建矩阵后,您可以用任意值填充它。由于每个元素都有两个索引,所以需要使用嵌套循环 for i := 0 to N 开始 for j := 0 to M 开始 A[i][j] := ...  结尾; 结尾;  
显示矩阵

通常使用两个嵌套循环来处理和显示列表。第一个循环是按行号,第二个循环是按行内的元素。
为了 逐行显示矩阵,一行内用空格分隔数字, 需要编写如下片段:

for i := 0 to length(A) - 1 do begin // length(A) - 返回矩阵 A 中的行数     for j := 0 to length(A[i]) - 1 do // length(A[i]) - 返回字符串 i 中的元素数        写(a[i][j], ' ');    写入(); // 在显示行后换行 结尾;

相同,但不是按索引循环,而是按列表值循环(for循环可以遍历列表(数组)、字符串中的所有元素):

for row in a do begin // 遍历矩阵 a 的所有行     for elem in row do // 遍历行中的所有元素        写(元素,'');    写入(); 结束;

Problem

以棋盘图案填充二进制矩阵(仅由 0 和 1 组成)。左上角应该有一个空元素。
 

输入
输入字符串包含矩阵的空格分隔维度:行数 N 和列数 M ( 1 < = N , ;M <= 100 ).
 

印记 
程序应逐行输出二进制矩阵。
 

例子
<头> <正文>
# 输入 输出
1 4 5 <前> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1