数组实验课练习题.ppt
程序设计程序设计1 1、生生成成一一个个一一维维数数组组(10(10个个数数组组元元素素依依次次为为:1515、2323、7272、4343、9696、2323、3 3、6565、8888、17)17),写写程程序序求求出出这这个个数数组组中中的的最最大大值值、最最小小值值和和平平均均值值,并并输输出出在在窗窗体体上上。将将最最大大值值,最最小小值值,平平均均值值分分别存入变量别存入变量Max,Min,AverMax,Min,Aver中中,平均值保留整数部分。平均值保留整数部分。、求求二二维维数数组组中中最最大大元元素素及及其其所所在在的的行行和和列列并并将将最最大大值值存存入入变变量量MaxMax中中,将将最最大大值值的的行行位位置置存存入入rowrow中中,列列位位置置存存入入变变量量columncolumn中。中。3 3、在窗体上打印数列、在窗体上打印数列2/12/1,3/23/2,5/35/3,8/5,13/88/5,13/8的前的前1010项和,项和,将和保存在变量将和保存在变量s s中。中。、求、求、求、求3 3 3 3行行行行3 3 3 3列的矩阵主对角线元素和副对角线之和。列的矩阵主对角线元素和副对角线之和。列的矩阵主对角线元素和副对角线之和。列的矩阵主对角线元素和副对角线之和。编程:在窗体上打印数列编程:在窗体上打印数列2/12/1,3/23/2,5/35/3,8/5,13/88/5,13/8的前的前1010项和,将和保存在变量项和,将和保存在变量s s中。中。Private Sub Form_Click()Dim f(1 To 11)As Long f(1)=1 f(2)=2:s=2 print cstr(f(2)&/&cstr(f(1)For i=3 To 11 f(i)=f(i-1)+f(i-2)s=s+f(i)/f(i-1)print cstr(f(i)&/&cstr(f(i-1)Next i Print sEnd Sub、下面的程序实现、下面的程序实现:从键盘输入一个数字,将其插入一个有序数组中,插入后的:从键盘输入一个数字,将其插入一个有序数组中,插入后的数组仍保持有序。数组仍保持有序。Private Sub Form_Click()Dim a(10)As Integer,x As IntegerFor i=1 To 8 a(i)=2*i 1 :Print a(i);Next iPrintx=InputBox(请输入要插入的整数请输入要插入的整数)*SPACE*【?】i=8Do While a(i)x*SPACE*【?】i=i-1Loop*SPACE*If i 0 Then【?】Else a(1)=xFor i=1 To 9 Print a(i);Next iEnd Sub、本程序用于实现:从键盘接收一数字,判断其是否在数组中,如果在数组中则将、本程序用于实现:从键盘接收一数字,判断其是否在数组中,如果在数组中则将其删除,否则显示该数字不在数组中。其删除,否则显示该数字不在数组中。Private Sub Form_Click()Dim a(10)As Integer,x As IntegerFor i=1 To 10 a(i)=Int(Rnd*90)+10:Print a(i);Next ix=InputBox(请输入要删除的整数请输入要删除的整数)For i=1 To 10*SPACE*If a(i)=x Then【?】Next i*SPACE*If【?】Then For k=i To 9*SPACE*【?】Next k Print 删除后的数组删除后的数组:For i=1 To 9 Print a(i);Next i Else:Print 该数字不在数组中该数字不在数组中End IfEnd Sub、下面的程序段用于删除数组中指定位置的数字,如果位置错误给出提示,否则分、下面的程序段用于删除数组中指定位置的数字,如果位置错误给出提示,否则分别显示删除前后的数组元素别显示删除前后的数组元素Private Sub Form_Click()Dim a(10)As Integer,x As IntegerDim i as integer,k as integerFor i=1 To 10 a(i)=Int(Rnd*90)+10 Print a(i);Next iPrintx=InputBox(请输入要删除第几位数字请输入要删除第几位数字)*FOUND*If x 0 Then For k=x+1 To 10*FOUND*a(k+1)=a(k)Next k Print 删除后的数组删除后的数组:For i=1 To 9 Print a(i);Next i*FOUND*End If Print 删除位置错误删除位置错误End IfEnd Sub、下面程序运行后单击窗体,输出结果为、下面程序运行后单击窗体,输出结果为1234。Private Sub Form_Click()Dim aa=Array(1,2,3,4)j=1*SPACE*For i=【?】s=s+a(i)*j*SPACE*j=【?】Next i*SPACE*Print【?】End Sub、题目:以下程序段用于输出杨辉三角:、题目:以下程序段用于输出杨辉三角:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 1Private Sub Form_Click()Const n=10Dim arr(n,n)As IntegerFor I=1 To n arr(I,I)=1*SPACE*【?】Next IFor I=3 To n For j=2 To I-1*SPACE*arr(i,j)=【?】Next jNext IFor I=1 To n For j=1 To I*SPACE*【?】Next j PrintNext IEnd Sub、编程求一个、编程求一个m*n矩阵中最大元素及其所在的行列号。矩阵中最大元素及其所在的行列号。Private Sub Form_Click()Dim A()As Integer,max As Integer Dim M As Integer,N As Integer Dim i As Integer,j As Integer Dim col As Integer,row As Integer M=InputBox(输入矩阵的行数:输入矩阵的行数:)N=InputBox(输入矩阵的列数:输入矩阵的列数:)ReDim A(M,N)As Integer For i=1 To M For j=1 To N A(i,j)=InputBox(输入数组元素输入数组元素:)Next j Next i*FOUND*max=A(0,0)For i=1 To M For j=1 To N If max a(j+1)Then x=a(j):a(j)=a(j+1):a(j+1)=x*SPACE*【?】End If Next j*SPACE*If work Then【?】Next iFor i=1 To n Print a(i);Next iEnd Sub、随机生成、随机生成10个数存入数组中,并将数组排序后输出个数存入数组中,并将数组排序后输出Private Sub Command1_Click()Dim a(10)As Integer Dim i,j,t As IntegerFor i=1 To 10 *SPACE*a(i)=CInt(10【?】Rnd+1)Next For i=1 To 9 *SPACE*For j=【?】To 10 *SPACE*If a(i)【?】Then t=a(i):a(i)=a(j):a(j)=t End If Next j Next i For i=1 To 10 Print a(i)Next End Sub、下面程序段将、下面程序段将7个随机整数从小到大排序个随机整数从小到大排序Private Sub Form_Click()Dim t%,m%,n%,w%,a(7)as integerFor m=1 To 7 a(m)=Int(10+Rnd()*90)Print a(m);Next m PrintFor m=1 To 6 t=m*FOUND*For n=2 To 7*FOUND*If a(t)a(n)Then n=t Next n*FOUND*If t=m Then w=a(m):a(m)=a(t):a(t)=w End If Next mFor m=1 To 7:Print a(m):Next mEnd Sub*SPACE*【?】End If Next j*SPACE*If work Then【?】Next iFor i=1 To n Print a(i);Next iEnd Sub