Max=a(i,j)
row=i
col=j
EndIf
Nextj
Nexti
Print"最大数为:
";Max;"行为:
";row;"列为:
";col
第3题
'方法1
Dima(1To10)'定义a数组存放10个数据
Fori=1To10'数组a赋值
a(i)=Int(Rnd()*100)
Nexti
Fori=1To10'输出数组a
Printa(i);
Nexti
Print
'数组元素数值交换
Fori=1To5
t=a(i)
a(i)=a(11-i)
a(11-i)=t
Nexti
Fori=1To10'输出交换后a数组各元素值
Printa(i);
Nexti
Print
'方法2
Dima(1To10)'定义a数组存放10个数据
Fori=1To10'数组a赋值
a(i)=Int(Rnd()*100)
Printa(i);'输出数组a
Nexti
Print
'数组元素数值交换
Fori=1To5
t=a(i)
a(i)=a(11-i)
a(11-i)=t
Nexti
Fori=1To10'输出交换后a数组各元素值
Printa(i);
Nexti
Print
'方法3
Dima(1To10)'定义a数组存放10个数据
Fori=1To10'数组a赋值
a(i)=Val(InputBox("输入数据"))
Printa(i);'输出数组a
Nexti
Print
'数组元素数值交换
Fori=1To5
t=a(i)
a(i)=a(11-i)
a(11-i)=t
Nexti
Fori=1To10'输出交换后a数组各元素值
Printa(i);
Nexti
Print
'方法4任意多个元素值交换
Dima()
n=Val(InputBox("输入数据个数"))
ReDima(1Ton)'定义a数组存放n个数据
Fori=1Ton'数组a赋值
a(i)=Int(Rnd()*100)
Printa(i);'输出数组a
Nexti
Print
'数组元素数值交换
Fori=1Ton\2
t=a(i)
a(i)=a(11-i)
a(11-i)=t
Nexti
Fori=1Ton'输出交换后a数组各元素值
Printa(i);
Nexti
Print
第4题
'方法1
Dima(0To10)AsInteger'定义a数组存放各分数段统计结果
n=Val(InputBox("输入学生人数"))
Fori=1Ton'数组a赋值
score=Val(InputBox("输入学生成绩"))
Printscore;
Ifscore<60Then
a(5)=a(5)+1
ElseIfscore<=69Then
a(6)=a(6)+1
ElseIfscore<=79Then
a(7)=a(7)+1
ElseIfscore<=89Then
a(8)=a(8)+1
ElseIfscore<=100Then
a(9)=a(9)+1
EndIf
Nexti
Print
Print"输出各分数段统计结果如下:
"
Print"<60人数";a(5)
Print"60~69人数";a(6)
Print"70~79人数";a(7)
Print"80~89人数";a(8)
Print"90~100人数";a(9)
'方法2
Dima(0To10)AsInteger'定义a数组存放各分数段统计结果
n=Val(InputBox("输入学生人数"))
Fori=1Ton'数组a赋值
score=Val(InputBox("输入学生成绩"))
Printscore;
m=score\10'构造m与数组a元素下标对应
Ifm<6Then
a(5)=a(5)+1
ElseIfm<7Then
a(6)=a(6)+1
ElseIfscore<8Then
a(7)=a(7)+1
ElseIfscore<9Then
a(8)=a(8)+1
ElseIfscore<=10Then
a(9)=a(9)+1
EndIf
Nexti
Print
Print"输出各分数段统计结果如下:
"
Print"<60人数";a(5)
Print"60~69人数";a(6)
Print"70~79人数";a(7)
Print"80~89人数";a(8)
Print"90~100人数";a(9)
'方法3
Dima(0To10)AsInteger'定义a数组存放各分数段统计结果
n=Val(InputBox("输入学生人数"))
Fori=1Ton'数组a赋值
score=Val(InputBox("输入学生成绩"))
Printscore;
m=score\10'构造m与数组a元素下标对应
a(m)=a(m)+1'm对应的分数段数组元素累加
Nexti
Fori=0To5'<60分的分数段数组元素累加
s=s+a(i)
Nexti
Print
Print"输出各分数段统计结果如下:
"
Print"<60人数";s
Print"60~69人数";a(6)
Print"70~79人数";a(7)
Print"80~89人数";a(8)
Print"90~100人数";a(9)
第5题
身份证号码数字编码表
'方法1
DimIDAsString'定义ID存放身份证号码
Dima(0To16)'定义a数组存放身份证号码数字
Dimw()'定义w数组存放加权因子
Dimy()'定义y数组存放第18位编码表校验码
w=Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)'a数组赋值
y=Array(1,0,x,9,8,7,6,5,4,3,2)'b数组赋值
ID=InputBox("输入身份证号码")
n=Len(ID)'计算身份证号码长度
Fori=1Ton'输出数组a
Char=Mid(ID,i,1)'获得身份证号码每一位字符
a(i-1)=Val(Char)'将身份证号码字符转化为数值
s=s+a(i-1)*w(i-1)'计算权求和sum(ai*wi)
Nexti
y18=sMod11'计算模y=mod(s,11)
Printy(y18)'输出校验码
第6题
Dima(1To30)AsLong'定义a数组存放数列各项
a
(1)=1
a
(2)=1
Fori=3To30'计算数列各项
a(i)=a(i-1)+a(i-2)
Nexti
Fori=1To30'输出数列各项
Printa(i);
Nexti
第7题
Dima(1To15)AsString'定义a数组存放产生的字符
a
(1)=Chr(Int(Rnd()*(90-65+1)+65))'产生第一个字符
Fori=2To15'产生其它的字符,比较相同后重新产生
a(i)=Chr(Int(Rnd()*(90-65+1)+65))'产生一个新的字符,
Forj=1Toi-1'新产生的字符与其前产生的字符比较
Ifa(i)=a(j)Then'若与其前产生的字符相同
i=i-1'则i值减1,达到重新产生的目的
ExitFor
EndIf
Nextj
Nexti
Fori=1To15'输出数组
Printa(i);
Nexti
Print
第8题
Dima()'定义a数组存放数据
n=Val(InputBox("数组大小"))'输入数组大小
ReDima(1Ton)'定义实际数组大小
Fori=1Ton
a(i)=Int(Rnd()*100)'数组赋值
Nexti
Fori=1Ton'数组输出
Printa(i);
Nexti
Print
x=Val(InputBox("插入数组的位置"))
y=Val(InputBox("输入插入的数据"))
n=n+1'计算新数组大小
ReDimPreservea(1Ton)'重新定义新数组大小,保留原数组元素值
Fori=nTox+1Step-1'从后向前,数组元素值依次后移
a(i)=a(i-1)'数组元素值后移动1位
Nexti
a(x)=y'将数据插入到指定的数组元素
Fori=1Ton'数组输出
Printa(i);
Nexti
Print
第9题
Dima()'定义a数组存放数据
n=Val(InputBox("数组大小"))'输入数组大小
ReDima(1Ton)'定义实际数组大小
Fori=1Ton
a(i)=Int(Rnd()*100)'数组赋值
Nexti
Fori=1Ton'数组输出
Printa(i);
Nexti
Print
y=Val(InputBox("输入删除的数据"))
p=0'默认删除的数不在数组中
Fori=1Ton'查找删除的数是否在数组中
Ifa(i)=yThen'若删除的数在数组中存在
p=1'则标记p为1
m=i'记录删除的数在数组中的位置m(下标)
ExitFor'结束查找
EndIf
Nexti
Ifp=1Then'若删除的数在数组中存在,则进行删除
n=n-1'重新设定数组元素个数
Fori=mTon'从m位置处,数组元素值依次前移
a(i)=a(i+1)'数组元素值前移动1位
Nexti
ReDimPreservea(1Ton)'重新定义新数组大小,保留原数组元素值
EndIf
Fori=1Ton'数组输出赋值
Printa(i);
Nexti
Print
第10题
'方法1
Dima()'定义a数组用于存放m*n矩阵数据
m=Val(InputBox("输入行数没m"))
n=Val(InputBox("输入列数n"))
ReDima(1Tom,1Ton)
Fori=1Tom'数组a赋值
Forj=1Ton
a(i,j)=Int(Rnd()*100)
Nextj
Nexti
Fori=1Tom'输出a数组
Forj=1Ton
Printa(i,j);
Nextj
Print
Nexti
Print
s1=0's1存放所有元素的和
Fori=1Tom'求所有元素的和
Forj=1Ton
s1=s1+a(i,j)'所有元素累加
Nextj
Nexti
s2=0's2存放非四周的所有元素和
Fori=2Tom-1'求除去四周的所有元素的和
Forj=2Ton-1
s2=s2+a(i,j)'非四周元素累加
Nextj
Nexti
s=s1-s2'求四周元素的和
Print"四周元素和为:
";s
'方法2
Dima()'定义a数组用于存放m*n矩阵数据
m=Val(InputBox("输入行数没m"))
n=Val(InputBox("输入列数n"))
ReDima(1Tom,1Ton)
Fori=1Tom'数组a赋值
Forj=1Ton
a(i,j)=Int(Rnd()*100)
Nextj
Nexti
Fori=1Tom'输出a数组
Forj=1Ton
Printa(i,j);
Nextj
Print
Nexti
Print
s1=0's1存放第一行所有元素的和
s2=0's2存放最后一行所有元素的和
Forj=1Ton'求第一行、最后一行元素的和
s1=s1+a(1,j)'第一行所有元素累加
s2=s2+a(m,j)'最后一行所有元素累加
Nextj
s3=0's3存放第一列、最后一列元素和
Fori=2Tom-1'求第一列、最后一列除去第一行、最后一行元素的和
s3=s3+a(i,1)+a(i,n)'第一列、最后一列元素累加
Nexti
s=s1+s2+s3'求四周元素和
Print"四周元素和为:
";s,s1,s2,s3
第11题
'方法1定义a、b分别存放运动员号码、成绩
Dima()'定义a数组号码
Dimb()'定义b数组存放成绩
a=Array("011","095","041","070","008","009","021","061","006","004")'a数组赋值
b=Array(12.4,11.1,13.4,12.1,12.4,10.4,14.4,15.1,15.4,11.4)'b数组赋值
n=UBound(a)'计算数组长度
Fori=0Ton'输出数组a,b
Printa(i);b(i)
Nexti
'比较交换法排序
Fori=0Ton-1
Forj=i+1Ton
Ifb(i)>b(j)Then
t=b(i):
b(i)=b(j):
b(j)=t'成绩交换
s=a(i):
a(i)=a(j):
a(j)=s'对应的号码交换
EndIf
Nextj
Nexti
Print"排序后成绩为:
"
Fori=0Ton'输出数组a,b
Printa(i);b(i)
Nexti
'方法2选择法排序,定义a、b分别存放运动员号码、成绩
Dima()'定义a数组号码
Dimb()'定义b数组存放成绩
a=Array("011","095","041","070","008","009","021","061","006","004")'a数组赋值
b=Array(12.4,11.1,13.4,12.1,12.4,10.4,14.4,15.1,15.4,11.4)'b数组赋值
n=UBound(a)'计算数组长度
Fori=0Ton'输出数组a,b
Printa(i);b(i)
Nexti
'选择法排序
Fori=0Ton-1
k=i
Forj=i+1Ton
Ifb(k)>b(j)Then
k=j
EndIf
Nextj
t=b(i):
b(i)=b(k):
b(k)=t'成绩交换
s=a(i):
a(i)=a(k):
a(k)=s'对应的号码交换
Nexti
Print"排序后成绩为:
"
Fori=0Ton'输出数组a,b
Printa(i);b(i)
Nexti
'方法3选择法排序,定义a数组为自定义数据类型,数组元素存放运动员号码与成绩
PrivateTypesport'自定义数据类型,ID存放运动员号码、score存放运动员成绩
idAsString*3'定义运动员号码字段
scoreAsSingle'定义运动员成绩字段
EndType
PrivateSubCommand1_Click()
Dima(1To10)Assport'定义a数组为自定义类型
DimsAssport'定义s变量自定义类型
n=3'UBound(a)'计算数组长度
Fori=1Ton'数组a元素赋值
a(i).id=InputBox("输入第"&i&"个号码")
a(i).score=Val(InputBox("输入第"&i&"个成绩"))
Nexti
Print"排序前成绩为:
"
Fori=1Ton'输出数组a元素值
Printa(i).id;a(i).score
Nexti
'比较交换法排序
Fori=1Ton-1
k=i
Forj=i+1Ton
Ifa(k).id>a(j).idThen
k=j
EndIf
Nextj
s=a(i):
a(i)=a(k):
a(k)=s'a数组元素值交换
Nexti
Print"排序后成绩为:
"
Fori=1Ton'输出数组a
Printa(i).id