课件编号6522770

2020版高考信息技术二轮浙江专用 专题十 矩阵问题课件(24张幻灯片)+学案

日期:2024-05-02 科目:信息技术 类型:高中课件 查看:63次 大小:4977970Byte 来源:二一课件通
预览图 0
2020版,问题,幻灯片,24张,课件,矩阵
    专题十 矩阵问题 (2017·11月浙江省选考)由数组a生成数组b的方法描述如下: 1)将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割; 2)对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中; 3)数组a分割后的剩余元素(个数小于4),直接依序存储到数组b中。 例如n=140时,可依次分割出3个数据块,元素的个数分别为64(8×8)、64(8×8)、9(3×3),剩余元素为3个。 “方阵转换法”过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,从该数字方阵中按列序得到转换后元素的次序。以3×3数据块为例,转换过程如下图所示: 小明依据上述描述设计了如下VB程序。请回答下列问题: (1)当n=120时,分割出的第3个数据块元素个数为_____。 (2)请在划线处填入合适的代码。 Const n = 120 Dim a(1 To n) As Integer Dim b(1 To n) As Integer Private Sub Command1_Click() Dim m As Integer, i As Integer Dim Start As Integer  ′当前未分割数据的第1个元素下标 Dim Left As Integer ———当前未分割数据的个数 Dim pa As Integer  ———数组a的下标 Dim pb As Integer  ———数组b的下标 ′读取n个转换前的数据,依次存储到a(1)、a(2)、……a(n)中,代码略 m = 8 Start = 1 Left = n Do While Left > 3   If Left < m * m Then   m = _____①____   Else pa = Start pb = Start For i = 1 To m * m b(pb) = a(pa) pb = pb + 1 If i Mod m = 0 Then     ____②_____ Else     pa = pa + m End If Next i ____③_____ Start = Start + m * m End If Loop For i = Start To n   b(i) = a(i) Next i ′依次输出转换后数据b(1)、b(2)、……b(n)中,代码略 End Sub 解析 n=120 时,可依次分割出3 个数据块,元素的个数分别为64(8×8)、49(7×7)、4(2×2),剩余元素为3 个。所以第3 个数据块为4 个元素。剩余数量Left < m * m,意味着当前剩余数量不够分割成m×m。下一次尝试m-1方块。例如left=50,m=8,不够分割成8×8,下依次尝试7×7。通过变量i,找出变量i 和下一次数组a 下标之间的关系。通过观察发现每一段pa 的值公差都为3,只需要计算出每一段的首项,该段后面的依次pa+3 即可。分析得出,每一段首项下标 pa=i3+1,后面的依次为pa=pa+3。推广到n 个数据,m×m 方阵中。每一段首项下标 pa=im+start,后面的依次为pa=pa+m。分割之后剩余数量left 减去m*m。 答案 (1)4 (2)①m=m-1 或m=int(sqr(left)) ②pa=start+im或pa=start+i/m 或pa=pa-(m-1)*m+1 或pa=start+(pa-start+1) mod m ③left=left-m*m 1.矩阵中所有数据均存储在一个数组中,从第1列开始先存储一行,接着再存储下一行。 2.一个m行n列的数组,在列表框中输出时,用一个字符串变量表示一行,共循环m次。他是一张二维表。一般来说,用i表示某个元素所处的行,用j表示某个元素所处列。 3.矩阵的问题就是研究存储数组元素下标与他所在行和列的关系。 1.矩阵中某个元素的位置跟他前面有完整行数及所在列数有关,若矩阵的大小为m行n列,矩阵问题就是研究矩阵元素位置(i,j)和数组下标pa对应关系,pa=(i-1)*n+j,表达的含义是该元素处在第i行,说明他前面有i-1个完整行,该元素处在第j列,说明除了完整的行,还有j列是零头。 2.通常用双重循环来遍历整个矩阵,变量i和j表示行和列,也可以用一重循环输出,但此时循环变量表示数组下标。代码如下。 For i = 1 To m  s =" "  For j = 1 To n s = s + a(i - 1) * n + j  Next j  List1.AddItem s Next i For i ... ...

    ~~ 您好,已阅读到文档的结尾了 ~~