原创vb教程答案第七章.docx
- 文档编号:28803175
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:13
- 大小:16.81KB
原创vb教程答案第七章.docx
《原创vb教程答案第七章.docx》由会员分享,可在线阅读,更多相关《原创vb教程答案第七章.docx(13页珍藏版)》请在冰豆网上搜索。
原创vb教程答案第七章
[原创]vb教程答案第七章
1(略
2(略
3(略
4(
(1)BASIC
(2)626
262
-298
(3)23
47
(4)108
12-10
52
1210
5(编写一个摄氏温度与华氏温度转换的通用过程。
摄氏温度(C)与华氏温度(F)转换的公式
如下:
F=C×9?
5,32
PrivateSubCommand1_Click()
DimcAsSingle,fAsSingle
c=Text1.Text
Callzhh(c,f)
Text2.Text=f
EndSub
PrivateSubzhh(csAsSingle,fsAsSingle)
fs=cs*9/5+32
EndSub
6(编写一个验证一个数是否是素数的通用过程。
PrivateSubForm_Click()
DimnAsInteger,flagAsBoolean
n=InputBox("输入一个整数:
","判断素数")
Callsushu(n,flag)
IfflagThen
MsgBoxStr(n)+"是素数"
Else
MsgBoxStr(n)+"不是素数"
EndIf
EndSub
PrivateSubsushu(mAsInteger,fAsBoolean)
DimiAsInteger
Fori=2ToInt(m/2)
IfmModi=0ThenExitForNexti
Ifi=Int(m/2)+1Then
f=True
Else
f=False
EndIf
EndSub
7(编写程序找出1-100之间的所有孪生素数。
OptionBase1
OptionExplicit
PrivateSubForm_Click()
Dimprime(50)AsInteger,iAsInteger,lprime()AsInteger,ljAsInteger
DimkAsInteger,mAsInteger,jAsInteger
prime
(1)=2
m=1
Fori=3To99Step2
Fork=2ToSqr(i)
IfiModk=0ThenExitFor
Nextk
Ifk>Sqr(i)Then
m=m+1
prime(m)=i
EndIf
Nexti
Callpd(prime,m,lprime,lj)
Fori=1Tolj
Printlprime(i);
IfiMod2=0ThenPrint
Nexti
EndSub
PrivateSubpd(p()AsInteger,nAsInteger,lp()AsInteger,jAsInteger)
DimiAsInteger
Fori=1Ton-1
Ifp(i+1)-p(i)=2ThenReDimPreservelp(j+2)
lp(j+1)=p(i)
lp(j+2)=p(i+1)
j=j+2
EndIf
NextI
EndSub
8(利用随机函数Rnd()生成20个在1~100之间的各不相同的正整数,并在窗体上显示出来。
PrivateSubCommand1_Click()
Dima(19)AsInteger
Calls(a(),19)
EndSub
PrivateSubs(b()AsInteger,nAsInteger)
DimiAsInteger,jAsInteger
Fori=0To19
b(i)=Int(Rnd*100+1)
Forj=0Toi-1
Ifb(i)=b(j)Theni=i-1:
ExitFor
Nextj
Printb(i);
Nexti
EndSub
9(将上面生成的20个首尾相连,找出每相邻四个数之和最大的四个数,并按下面格式打印出来:
n1+n2+n3+n4=sum,其中n1、n2、n3、n4是所求的四个数,sum是这四个数的和。
PrivateSubCommand1_Click()
Dima(19)AsInteger,iAsInteger,jAsInteger,sum1AsInteger,sumAsInteger
Calls(a(),19)
sum1=a
(1)+a
(2)+a(3)+a(4)
j=1
Fori=0To19
sum=a(i)+a((i+1)Mod20)+a((i+2)Mod20)+a((i+3)Mod20)
Ifsum>sum1Thenj=i
Nexti
Printa(j)&"+"&a((j+1)Mod20)&"+"&a((j+2)Mod20)&"+"&a((j+3)Mod20)&"="&
sum
EndSub
PrivateSubs(b()AsInteger,nAsInteger)
DimiAsInteger,jAsInteger
Fori=0Ton
b(i)=Int(Rnd*100+1)
Forj=1Toi-1
Ifb(i)=b(j)Theni=i-1:
ExitFor
Nextj
Printb(i);
Nexti
EndSub
10(利用随机函数rnd()生成25个正整数,分别赋给一个5×5数组的每个元素,然后找出最大元
素的位置,并按A(n1,n2)=M形式打印出来。
OptionBase1
PrivateSubCommand1_Click()DimA(5,5)AsInteger,iAsInteger,jAsInteger,n1AsInteger,n2AsInteger
Fori=1To5
Forj=1To5
A(i,j)=Int(Rnd*100+1)
PrintA(i,j);
Nextj
Nexti
Max=A(1,1):
n1=1:
n2=1
Fori=1To5
Forj=1To5
IfA(i,j)>MaxThen
Max=A(i,j)
n1=i
n2=j
EndIf
Nextj
Nexti
Print"A("&n1&","&n2&")=";MaxEndSub
11(OptionExplicit
PrivateFunctionFab(ByValNAsInteger)AsLong
IfN=1OrN=2Then
Fab=1
Else
Fab=Fab(N-1)+Fab(N-2)
EndIf
EndFunction
PrivateSubForm_Click()
DimNAsInteger,FAsLong
N=InputBox("输入一个正整数")
F=Fab(N)
PrintF
EndSub
12(编写程序,验证一个大于2的偶数可以表示为两个素数之和。
歌德巴赫猜想,见实验9-5PrivateSubCommand1_Click()
DimxAsInteger,iAsInteger,yAsInteger
Do
x=InputBox("请输入一个大于2的偶数")
LoopUntilx>2OrxMod2=0
Ifx=4Then
Print"4=2+2"
Else
i=3
Do
y=x-i
Ifjudge(i)Andjudge(y)Then
PrintStr(x)&"="&Str(i)&"+";Str(y)
ExitDo
Else
i=i+2
EndIf
LoopUntili>y
EndIf
Ifi>yThen
Print"定理不成立"
EndIf
EndSub
PrivateFunctionjudge(nAsInteger)
DimiAsInteger
judge=True
Fori=2Ton-1
IfnModi=0Then
judge=False
ExitFunction
EndIf
Nexti
EndFunction
13(求Armstrong数
PrivateSubForm_Click()
DimnAsInteger,flagAsBoolean
n=InputBox("输入一个正整数n:
")
Callarm(n,flag)
IfflagThen
PrintStr(n)+"是arm数"
Else
PrintStr(n)+"不是arm数"
EndIf
EndSub
PrivateSubarm(mAsInteger,fAsBoolean)
DimiAsInteger,jAsInteger,sAsLong,tAsInteger
j=Len(CStr(m))
Fori=1Toj
t=Mid(m,i,1)
s=s+t^j
Nexti
Ifm=sThen
f=True
Else
f=False
EndIf
EndSub
14(编写一个将N进制数转换成十进制数的通用程序。
见实验9-7
PrivateSubCommand1_Click()
Dims1AsString,nAsInteger,s2AsString
IfText1.Text=""OrText2.Text=""ThenMsgBox"请输入数据"
n=Text1.Text
s1=Text2.Text
s2=zh(s1,n)
Text3.Text=s2
EndSub
PrivateFunctionzh(stAsString,nAsInteger)AsLong
DimpAsLong,iAsInteger,chAsString*1
DimsAsLong
p=n^(Len(st)-1)
Fori=1ToLen(st)
ch=UCase(Mid(st,i,1))
SelectCasech
Case"0"To"9"
s=s+ch*p
Case"A"To"Z"
s=s+(Asc(ch)-55)*p
EndSelect
p=p\n
Nexti
zh=s
EndFunction
15(编写一个裁判评分程序
见实验9-8
Dimcj(5)AsSingle
PrivateSubCommand1_Click()
DimiAsInteger
Fori=0To5
cj(i)=Int((Rnd*7+4)*10)/10
Text1(i)=CStr(cj(i))
Nexti
EndSub
PrivateSubCommand2_Click()
DimmaxAsSingle,minAsSingle,sAsSingle
s=cj(0)
max=cj(0)
min=cj(0)
Fori=1To5
Ifmax Ifmin>cj(i)Thenmin=cj(i) s=s+cj(i) Nexti Text2.Text=CStr((s-max-min)/4) EndSub 16(求数列和 PrivateSubForm_Click() DimnAsInteger,yAsSingle n=InputBox("输入一个n: ") Calljsh(n,y) Printy EndSub PrivateSubjsh(mAsInteger,xAsSingle) DimiAsInteger,tAsLong,sAsSingle Fori=1Tom t=t+2*i s=1/t x=x+s Nexti EndSub 17(求级数和 PrivateFunctionF(nAsInteger)AsLong Ifn=1Orn=2Then F=1 Else F=F(n-1)+F(n-2) EndIf EndFunction PrivateSubCommand1_Click() DimnAsInteger,tAsSingle,sAsSingle x=Text1.Text n=1 Do n=n+1 t=x^F(n)/(F(n-1)*F(n)) s=s+t LoopUntilt<=10^(-5) Text2=Str(s) EndSub 18(编写二分插入排序提示: 参考P109例6-8二分查找程序及P107直接插入算法,两种算法结合起来。 PrivateSubCommand1_Click()DimaAsVariant,leftAsInteger,rightAsInteger DimiAsInteger,jAsInteger,midAsInteger a=Array(5,4,3,1,2)Fori=1To5 Text1=Text1&Str(a(i))Nexti Fori=2To5 left=1 right=i-1 DoWhileleft<=right mid=(right+left)/2 Ifa(i)>a(mid)Then left=mid+1 Else right=mid-1 EndIf Loop temp=a(i) Forp=i-1ToleftStep-1 a(p+1)=a(p) Nextp a(left)=temp Nexti Fori=1ToUBound(a) Text2=Text2&Str(a(i))Nexti EndSub 19(略 20(略
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原创 vb 教程 答案 第七