第7章 数组例题汇总以及上机作业

上传人:伴*** 文档编号:243064105 上传时间:2024-09-14 格式:PPT 页数:23 大小:222.50KB
返回 下载 相关 举报
第7章 数组例题汇总以及上机作业_第1页
第1页 / 共23页
第7章 数组例题汇总以及上机作业_第2页
第2页 / 共23页
第7章 数组例题汇总以及上机作业_第3页
第3页 / 共23页
点击查看更多>>
资源描述
,第,7,章 数 组,1,本章上机,本章所有作业题,上机验证或编制调试,实验,8,的案例,3,杨輝三角,讲过的典型例题上机验证,第七章 数 组,1,),.,可通过循环给数组元素赋初值,For i = 1 To 10 A,数组的每个元素值为,1,A(i)=1,Next i,2,),.,数组的输入,输入,10,个数,并存入到数组,A,中,For i = 1 To 10,A(i) =Val( InputBox(“,输入,A(” & i & “),的值,”,) ),Next i,上机一:编程完成一维数组的基本操作,-,输入输出及求最值,3,),.,求数组中最大元素及所在下标,Dim Max As Integer, iMax As Integer,Max = A(1): iMax = 1,For i = 2 To 10,If A(i) Max Then,Max = A(i),iMax = i,End If,Next i,Print A( A(iMax),编程:,将数组元素倒置,For i =1 To 102,t=A(i),A(i)=A(10-i+1),A(10-i+1)=t,Next I,(演示),Option Explicit,Const NUM = 60 ,声明代表班上学生人数的符号常量,Private Sub,Form_Click,(),Dim,a(NUM,) As Integer, i As Integer,Dim Sum As Integer, Aver As Single, N As Integer,Sum = 0 ,给,Sum,赋初值,For i = 1 To NUM ,输入学生成绩,并求和,a(i,) =,Val(InputBox,(,输入第,( & i & ),学生的成绩,),Sum =,Sum,+,a(i,),Next i,Aver = Sum / NUM,N = 0,For i = 1 To NUM ,统计高于平均成绩的人数,If,a(i,) Aver Then N = N + 1,Next i,Print ,全班平均成绩:, & Aver & ,共有, & N & ,高于平均成绩,End Sub,编程求某班,60,个学生某门课程考试的平均成绩及高于平均成绩的学生人数。,在,上题,中编程统计,09,,,1019,,,2029,,,.8089,,,9099,分数段及,100,分的学生人。,另用数组,bn,来存各分数段的人数,并用,bn(0),存,09,分的人数,,bn(1),存,1019,分的人数,,bn(9),存,9099,分的人数,,bn(10),存,100,分的人数。,Option Explicit,Const NUM = 60 ,声明代表班上学生人数的符号常量,Private Sub,Form_Click,(),Dim,a(NUM,) As Integer, i As Integer,Dim bn(0 To 10) As Integer, k As Integer,For i = 1 To NUM ,输入学生成绩,并求和,a(i,) =,InputBox,(,输入第,( & i & ),学生的成绩,),Print,a(i,);,k =,Int(a(i,) / 10),bn(k,) =,bn(k,) + 1,Next i,Print,For i = 0 To 9 ,打印输出各分数段的学生人数,Print (i * 10) & & (i * 10 + 9) & ,的学生人数,: &,bn(i,),Next i,Print Tab(10); 100,学生人数,: &,bn(i,),End Sub,For i = 1 To n - 1,p = i,For j = i + 1 To n,If a(p) a(j) Then p = j,Next j,t = a(i): a(i) = a(p): a(p) = t,Next i,选择法排序(,升序,)的,VB,程序,:,思考:如果按,降序,排,程序如何修改?,第五章 数 组,编程 对,一维数组的数据排序,习题,用随机函数产生,50,个,10,100,的随机整数,并按由小到大的顺序打印出来。,Option Explicit,Option Base 1,Private Sub,Form_Click,(),Dim i As Integer, j As Integer, t As Integer, p As Integer,Const N = 50,Dim,a(N,) As Integer,Print ,排序前数据,:,For i = 1 To N,产生,10,,,99,之间的随机整数,a(i,) =,Int(Rnd,* 90) + 10,Print,a(i,);,If i Mod 10 = 0 Then Print,每行打印,10,个元素,Next i,Print,For i = 1 To N 1,排序,p = i,For j = i + 1 To N,If,a(p,) ,a(j,) Then p = j,Next j,t =,a(i,):,a(i,) =,a(p,):,a(p,) = t,交换数据,Next i,Print ,排序后数据,:,For i = 1 To N,Print,a(i,);,If i Mod 10 = 0 Then Print ,打印换行,Next i,End Sub,For i = 1 To n - 1,For j = 1 To n-i,If a(j) a(j+1) Then,t=a(j): a(j)=a(j+1):a(j+1)=t,End if,Next j,Next i,冒泡法排序(升序)程序,:,演示,第五章 数 组,一维数组的应用,数据排序,二维数组数据的输入,Const N=4, M=5, L=6,Dim a(1 to N,1 to M) As Integer, i%, j%,k%,1,),.,给二维数组,a,输入数据的程序段如下:,For i=1 to 4,For j=1 to 5,A(i,j)=,Val(InputBox(a,(,& I &, & j & ,),=?),Next j,Next i,求最大元素及其所在的行和列,用变量,max,存放最大值,,row,col,存放最大值所在行列号,Max = a(1, 1): row = 1: Col = 1,For i = 1 To N,For j = 1 To M,If a(i, j) a(row, Col) Then,Max = a(i, j),row = i,Col = j,End If,Next j,Next i,Print ,最大元素是,; Max,Print,在第, & row & ,行,; ,第, & Col & ,列,矩阵的转置,方阵的转置的程序代码如下:,For i =,2,To,For j =,1,To I-1,Temp=a(i,j),a(i, j) = a(j, i),a(j, i)=Temp,Next j,Next i,设,A,是,M*N,的矩阵,要重新定义一个,N*M,的二级数组,B,,将,A,转置得到,B,的程序代码如下:,For i =,To,For j =,To N,b(j,i) = a(i,j),Next j,Next i,习题,通过输入对话框输入一批正整数,将其中的偶数以每行,10,个输出。,动态数组,Option Explicit,Private Sub,Form_Click,(),Dim a() As Integer ,声明可变数组,Dim,os,%, n%, i%,n =,Val(InputBox,(,输入一个,输入,-1,结束,),Do While n -1 ,当输入,-1,时结束,If n Mod 2 = 0 Then ,判断是不是偶数,os,=,os,+ 1,ReDim,Preserve,a(os,) ,重新定义数组,a,的大小,并存持原来的值,a(os,) = n,End If,n =,Val(InputBox,(,输入一个,输入,-1,结束,),Loop,Print ,输入的偶数有:,For i = 1 To,os,Print,a(i,); Spc(2);,If i Mod 10 = 0 Then Print ,输出,10,个数据后换行,Next i,Print,End Sub,习题,在一个文本框中,输入多个用“,”分隔的整数,按回车键后,将各数据按升序打印输出在窗体上。程序运行情况如图所示。,动态数组,Private Sub Text1_KeyPress(KeyAscii As Integer),If,KeyAscii,= 13 Then,Dim i%, j%, p%, n%, m%, t%,Dim b() As Integer, a() As String,将文本框输入的文本,以,为分隔符分离字符子串存入数组,a,的各元素中,a = Split(Text1.Text, ,),n =,LBound(a,): m =,UBound(a,),ReDim,b(n,To m),For i = n To m ,将数组,a,中的数字字符串转化成数字存入数组,b,中,b(i,) =,Val(a(i,),Next i,For i = n To m - 1 ,排序,p = i,For j = i + 1 To m,If,b(p,) ,b(j,) Then p = j,Next j,t =,b(i,):,b(i,) =,b(p,):,b(p,) = t,Next i,For i = n To m ,将排序后的数据输出到窗体上,Print,b(i,);,Next i,End If,End Sub,大量数据的输入和处理,例,7-9,输入一个,45,的二维整数数组,输出数组元素的平均值及该数组。,Private Sub Form_Click(),Dim A(1 To 4,,,1 To 5) As Integer, i As Integer, j As Integer,Dim Average As Integer, Sum As Integer,Sum=0,For i=1 To 4,按行依次输入各元素值,For j=1 To 5,A(i, j)=Val(InputBox(,请输入,A( & Str(i) & ,,, & Str(j) & ),的值,),Sum=Sum+A(i,j),Next j,Next i,Average=Sum/20,求平均值,Print ,数组元素的平均值是:,; Average,For i=1 To 4,按行输出各元素值,For j=1 To,5,Print A(i, j);,Next j,Print,Next i,End Sub,寻找最大值或最小值,例,7-10,求数组中最大元素和所在下标及各元素之和。,部分程序代码如下:,Dim Max As Integer, iMax As Integer, sum As Integer,.,Max = a(1): iMax = 1: sum = a(1),For i = 2 To 10,sum = sum + a(i),If a(i) Max Then,Max = a(i),iMax = i,End If,Next i,数组排序,排序是将一组数按递增或递减的次序重新排列。常用的排序算法有选择法、冒泡法、插入法和合并排序等。,1.,选择法排序,选择法是在每一轮排序时找最小(递增顺序)数的下标,出了内循环(一轮排序结束),再交换最小数的位置。,例,7-11,选择排序法的应用。,2.,冒泡法排序,冒泡法在每一轮排序时将相邻的数比较,当次序不对就交换位置,出了内循环,最小数已冒出。,例,7-12,冒泡法排序法的应用。,数组中元素的插入和删除操作,1.,插入,例,7-14,设有一按升序排列的有,n,个元素的数组,a,(数组元素均为整数),现要将一个数“,11”,插入其中后仍保持其有序。,解题算法描述如下:,(,1,)查找插入位置,k(1kn-1),;,(,2,)从,n-1,到,k,逐一往后移动一个位置,将第,k,个元素的位置腾出;,(,3,)将数据插入,。,程序代码如下:,Private Sub Command1_Click(),Dim a%(1 To 10), i%, k%,Print ,插入前:,;,For i,1 To 9,a(i),2 * i,Print,a(i,),;,Next i,For k,1 To 9,If 11 ,a(k,) Then Exit For,Next k,For i,9 To k Step,1,a(i,1),a(i,),Next i,a(k,),11,Print: Print,Print ,插入后:,;,For i,1 To 10,Print,a(i,),;,Next i,End Sub,程序的运行结果如下图,:,2.,删除,删除算法的步骤如下:,(,1,)查找欲删除的元素所在位置,k,;,(,2,)从,k+1,到,n,个位置开始逐个向前移动;,(,3,)将数组元素个数减,1,。,相关代码如下:,Dim a(),ReDim a(1 To n),For i,k,1 To n,a(i,1),a(i),Next i,ReDim Preserve a(1 To n,1),交换数组中各元素,交换数组中的各元素,实际上是找下标之间的规律,在数组操作时经常使用。,例,7-15,交换的要求是将数组第,1,个元素与最后一个元素交换,第,2,个元素与倒数第,2,个元素交换,以此类推。结果如图所示。,程序代码如下:,Option Base 1,Private Sub Form_Click(),Dim a(),a,Array(a,,,b,,,c,,,d,,,e,,,f,,,g,,,h,,,i,,,j),Print ,交换前:,;,For i,1 To 10,Print a(i); ,;,Next i,For i,1 To 10 2,t,a(i),a(i),a(10,i,1),a(10,i,1),t,Next i,Print: Print: Print ,交换后:,;,For i,1 To 10,Print a(i); ,;,Next i,End Sub,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!