//多维数组
//传递数组参数
/*例如:99乘法表就是二维数组
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=1 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81分析思路:
仔细的看 你会发现 第一个数据只有一行 1*1=1 然后换行会变成多加一个数据
比如
1*1=1 第一行一个数据
1*2=2 2*2=4 第二行两个数据
1*3=3 2*3=6 3*3=9 第三行三个数据
1*4=4 2*4=8 3*4=12 4*4=16 第四行四个数据
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 第五行五个数据
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 第六行六个数据
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 第七行七个数据
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 第八行八个数据
1*9=1 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 第九行九个数据
1:在仔细看你还会发现 *前第一个数一直都是有几个数据就从1到几 比如
第一行 1*1=1 *前只有1
第二行 1*2=2 2*2=4 *前从1增到2
第五行 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 *前从1增加5
第九行 1*9=1 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 *前从1增加9
2:然后你在仔细的看*后的那个数 一行里有几个数据他的值就是几 而且是整行不变的
比如
1*1=1 第一行一个数据 因为就一个数据有点看不出来 所以他在整行的*后都是1
1*3=3 2*3=6 3*3=9 第三行三个数据 因为有三个数据所以他在整行的*后都是3
在比如
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 第七行七个数据 因为七个数据所以他在
整行*后都是7
在比如
1*9=1 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 第九行九个数据 因为九个
数据,所以他在整行的*后都是9
由此我们是不是可以得到一个节论: 在没换行的时候 他的数据是不变的 不管有多少数据
在*后永远是几个数据的数 的那个数
3:=号后面的 我相信上过小学的也都知道 就是 *号前后两个数相乘的结果值
好了我们发现了三个规率 那我们要让他用程序来实现乘法表 就可以这样做
1:在换行之前不变的数 我们就让他用外循环来实现 而那个从1一直增加到有几行就加几的数我们用
内循环来现实 原因很简单 我们的思路是先处理一行完了在能处理第二行 对吧 而行里的数据
有一个没次都增加一个数据 而且值也是从1到原来数据+1这样变化 比如 第二行 1*2=2 2*2=4
所以我们需要先处理完这个数据 才能在换行处理下一个对吧
第三个数就简单了 就是两个数的积的值 我们用一个二维数据来存这个数
*/
Dim 数据(9, 9) //定义一个有100个元素的二维数组用来存放两个数的积的值For i = 1 To 9 Step 1//上面说了这介外循环用来处理那个只有换行才变的数
//因为有9行所以循环9次 而且每次换行数据都是原来数增加1For j = 1 To i Step 1//上面说了每换一行就会增加一个数据而且是从1开始的 而且
//数据也是从1开到第几行就是几的数
//所以我们的循环次数是不固定的 那为什么设置成 TO i 呢
//原因很简单 因为有几行就说明外循环处理了几行 那么I的值就
//等于几了 比如我们处理第三行三个数据 我们只要循环三次就可以了
数据(i, j) = i * j
内容 = 内容&j & "*" & i & "=" & 数据(i, j)&" "
NextTracePrint 内容
内容 = " "
Next
/*用遍历给数组赋上两个数的积的值 这里我们分析一下 因为乘法表里没有0 所以我们从1开始
开始i和j都等于1执行起来就是这样的语句
数据(1, 1) = 1 * 1
困为I等于1 J的循环次数是I所以内循环就结束了 我们也处理完了第一行第一个数据 接着第二行
也就是外循环 的I变成2了 内循环的次数也就变成2次了
i=2 j=1 结果语句就变成
数据(2.1) =2*1了 因为我们要显示的是1*2这样的,所以需要在程序的内容里把J跟I的值互换一个
所以就得到 1*2 在接着I的值等于2 J的值也等于2了 是不是就得到2*2了 因为to I是2循环结束两
个字据也都处理完了 以此类推是不是就把等外循环结果就把所有数据都处理了
我们的题目是让他显示一个上面的表
所以我们 用个变量来显示这样表
内容 = 内容&j & "*" & i & "=" & 数据(i, j)&" " 这里就是等于1*1=1
第二循环的时候 直然就等于 1*2=2 2*2=4 这样的啦, 一直到第九行就得到了上面的表了。
这里需要注意的是 我们显示换第一行表以后 要把内容的值清了,不完就变成
1*1=1 1*2=2 2*2=4 这样了, 因为内容等于内容 这个内容 如果不清的话是有数据的
*/