41数组一一维数组应用例题 例45产生10个整数到数组中,将其顺序颠倒后输出 Private Sub Form Click Const Length=10: Dim D( Length)As Integer, 1%, Temp ForI=1 To Length给数组赋值并输出 D()=14+I: Print d(①D; Next I D(1)与D(0)交换 Print: Print 换行 ForI=1 To Length/2交换 D(2)与D(9)交换 Temp=D() DO=D(Length-I+ 1) D()与D(10-+1) D(Length-I+ 1)=Temp Next I 与Form1 ForI=1 To Length交换后输出15161718192021222324 Print D(); 24232221201918171615 Next I End Sub 返回目录
4.1 数组-一维数组应用例题 [例4.5] 产生10个整数到数组中,将其顺序颠倒后输出 Private Sub Form_Click() ConstLength = 10 : Dim D(Length) As Integer, I%, Temp% For I = 1 To Length '给数组赋值并输出 D(I) = 14 + I : Print D(I); Next I Print: Print '换行 For I = 1 To Length / 2 '交换 Temp = D(I) D(I) = D(Length - I + 1) D(Length - I + 1) = Temp Next I For I = 1 To Length '交换后输出 Print D(I); Next I End Sub 返回目录 D(1)与D(10)交换 D(2)与D(9)交换 … … D(I)与D(10-I+1)
41数组一一维数组应用例题 例481产生100个不重复的3位随机整数, 并按每行7列的格式输出 Private Sub Form Click Dim Data(100)As Integer, 1%,J%o Randomize timer'设置随机化种子,保证每组数据不重复 ForI=1To100循环产生100个数据 Data()=Int(Rndo* 900)+100 ForJ=1ToI-1'与已经产生的数据比较 If data(=Data(J)Then'数据已存在则舍弃,重新产生 I=I-1 Exit for‘提前退出数据比较的循环 End if Next J # Next I 返回目录
4.1 数组-一维数组应用例题 [例4.8] 产生100个不重复的3位随机整数, 并按每行7列的格式输出 Private Sub Form_Click() Dim Data(100) AsInteger, I%, J% RandomizeTimer '设置随机化种子,保证每组数据不重复 For I = 1 To 100 '循环产生100个数据 Data(I) = Int(Rnd() * 900) + 100 For J = 1 To I – 1 '与已经产生的数据比较 If Data(I) = Data(J)Then '数据已存在则舍弃,重新产生 I = I - 1 Exit For '提前退出数据比较的循环 End If Next J Next I 返回目录
41数组一一维数组应用例题 产生100个3位随机整数 268867390953687765166 750555910706925262417 I=1:J=1 224376921727756923280 780135796550520387954 269120147816777334810 Do While l<=100 533332375297773137512 552934701402861287219 ForJ=1To7每行打印7列 340401238382931106514 711299263983311509 If>100 Then Exit For 755718504715196455142 979293419606540775809 Print Data D; 460840519771516169661 779310654728735194172 I=I+1 395996690568922963627 Next j Print'打印换行 Loop End Sub Fori=1 To 100 Print Data) IfI Mod 7=0 Then print Next I 返回目录
4.1 数组-一维数组应用例题 I = 1 : J = 1 Do While I <= 100 For J = 1 To 7 '每行打印7列 If I > 100 Then Exit For Print Data(I); I = I + 1 Next J Print '打印换行 Loop End Sub 返回目录 For I = 1 To 100 Print Data(I); If I Mod 7 = 0 Then Print Next I
41数组一一维数组应用例题 例4.10统计成绩分布 Private Sub Form Click Dim N(10)As Integer, I As Integer, X As Integer Const m= 10 Forl= l to m X= InputBox('"请输入"+Str(+"个学生的成绩 X=Int(X/10)也可写成X=X10 N(X)=N(X)+1 统计全班成装分布|口x 100--1001 Next I 90--991 Print100;"-"’;100;N(10) 793 Forl=9 To o Step-1 60 692 Print10*1;"-";10*I+9;N(① 40 490 30--390 Next I End sub 10--190 返回目录
4.1 数组-一维数组应用例题 [例4.10] 统计成绩分布 Private Sub Form_Click() Dim N(10) As Integer, I As Integer, X As Integer Const m = 10 For I = 1 To m X = InputBox("请输入" + Str(I) + "个学生的成绩") X = Int(X / 10) '也可写成X=X\10 N(X) = N(X) + 1 Next I Print 100; "--"; 100; N(10) For I = 9 To 0 Step -1 Print 10 * I; "--"; 10 * I + 9; N(I) Next I End Sub 返回目录
41数组一排序问题 1.选择法排序(N个数据升序) 1)先假设第1个数据最小,依次同第2、第3、…、第N个数据 进行比较,一旦第1个数据大于其它值则交换。这样,第1 轮比较完毕,找出了最小数据作为第1个数据。 2)以第2个数据为最小数据,依次同第3、第4 第N个数 据进行比较,若第2个数据大于其它值则交换。这样,第2 轮交换完毕,则找出第二小的数据作为第2个数据。 3)依此类推,第N-1轮比较将找出第N-1小的数据,剩下的 个数据就是最大数,排列在最后。以6个数据为例: 原始序列:30,20,10,90,50,60 第1轮比较结果:10|30,20,90,50,60 第2轮比较结果:10,20|30,90,50,60 第3轮比较结果:10,20,3090,50,60 第4轮比较结果:10,20,30,50190,60 返回目录 第5轮比较结果:10,20,30,50,60190
4.1 数组-排序问题 1. 选择法排序(N个数据升序) 1)先假设第1个数据最小,依次同第2、第3、…、第N个数据 进行比较,一旦第1个数据大于其它值则交换。这样,第1 轮比较完毕,找出了最小数据作为第1个数据。 2)以第2个数据为最小数据,依次同第3、第4、…、第N个数 据进行比较,若第2个数据大于其它值则交换。这样,第2 轮交换完毕,则找出第二小的数据作为第2个数据。 3)依此类推,第N-1轮比较将找出第N-1小的数据,剩下的一 个数据就是最大数,排列在最后。以6个数据为例: 返回目录 原始序列:30, 20, 10, 90, 50, 60 第1轮比较结果:10 | 30, 20, 90, 50, 60 第2轮比较结果:10,20 | 30, 90, 50, 60 第3轮比较结果:10,20, 30 | 90, 50, 60 第4轮比较结果:10,20, 30, 50 | 90, 60 第5轮比较结果:10, 20, 30, 50, 60 | 90