多维数组及传递数组参数

多维数组及传递数组参数_第1张图片

//多维数组

//传递数组参数

/*例如: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次 而且每次换行数据都是原来数增加1

 For j = 1 To i Step 1//上面说了每换一行就会增加一个数据而且是从1开始的 而且
                      //数据也是从1开到第几行就是几的数
                      //所以我们的循环次数是不固定的 那为什么设置成 TO i 呢
                      //原因很简单 因为有几行就说明外循环处理了几行 那么I的值就
                      //等于几了 比如我们处理第三行三个数据  我们只要循环三次就可以了
   
   
  数据(i, j) = i * j  
                      
 内容 = 内容&j & "*" & i & "=" & 数据(i, j)&" "
     
     
 Next    

TracePrint 内容

内容 = " "

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 这样了, 因为内容等于内容  这个内容 如果不清的话是有数据的
 
                     
                     
                     
                     
                     
                     
                     
                     
*/
                     

你可能感兴趣的:(按键脚本)