《过程程序设计》doc版Word文档下载推荐.docx

上传人:b****4 文档编号:8315208 上传时间:2023-05-11 格式:DOCX 页数:5 大小:20.79KB
下载 相关 举报
《过程程序设计》doc版Word文档下载推荐.docx_第1页
第1页 / 共5页
《过程程序设计》doc版Word文档下载推荐.docx_第2页
第2页 / 共5页
《过程程序设计》doc版Word文档下载推荐.docx_第3页
第3页 / 共5页
《过程程序设计》doc版Word文档下载推荐.docx_第4页
第4页 / 共5页
《过程程序设计》doc版Word文档下载推荐.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《过程程序设计》doc版Word文档下载推荐.docx

《《过程程序设计》doc版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《过程程序设计》doc版Word文档下载推荐.docx(5页珍藏版)》请在冰点文库上搜索。

《过程程序设计》doc版Word文档下载推荐.docx

编程排列八名运动员100米径赛成绩的名次。

当成绩相同时,运动员的名次相同。

1至8号运动员的成绩分别为:

12.12,11.25,11.13,10.89,14.09,13.56,12.01,11.13。

提示:

本题的解决难点并不在排序,我们可以很轻松地用冒泡排序法或选择排序法进行成绩从小(快)到大(慢)的排列。

问题是排序后的成绩对应于哪一个运动员,恐怕用一维数组是无法记录的。

因此我们可以定义一个二维数组cj(8,2)AsSingle,其中第一列存放运动员的成绩,第二列存放成绩对应的运动员号。

排序针对数组的第一列进行,产生交换时不仅要交换第一列的数组元素,还要交换对应的第二列的数组元素,这样运动员的编号就能跟着成绩“跑”了。

在输出名次时也要注意成绩相同名次相同的问题,在这里名次并非简单地和一维下标一致。

所以应该定义两个变量p和j,p表示名次,j表示有几个人(从1到8)。

当没有重复成绩时,p和j一样(1-8名);

当有重复成绩时,p值就不变,保持前一个人的名次,直到出现不同成绩,p值又与j值一样了。

名次的计算还有其他方法,这里只介绍了这种较为简单的算法。

图7-2成绩的输入图7-1成绩的输出实验步骤:

1.按照图7-1进行界面设计,运动员成绩在列表框1的List属性中输入,如图7-2所示,排名结果在列表框2中输出。

2.完善程序:

OptionExplicitPrivateSubCommand1_Click()Dimcj(8,2)AsSingleDimiAsInteger,kAsIntegerDimproAsStringList2.ClearFori=1To8cj(i,1)=List1.从列表框中取出运动员的成绩cj(i,2)=iNextiCallSort(cj)CallOutPut(cj)EndSubPrivateSubSort(cj()AsSingle)DimtempAsSingle,iAsInteger,jAsInteger填入一段排序程序代码。

注意交换运动员____________________成绩的同时,也要交换运动员的号码。

EndSubPrivateSubOutPut(cj()AsSingle)DimjAsInteger,pAsIntegerp=1List2.AddItem“第1名:

“&

cj(1,2)&

“号成绩:

cj(1,1)Forj=2To8IfThenList2.AddItem“第“&

p&

“名:

cj(j,2)&

cj(j,1)NextjEndSubPrivateSubcmdExit_Click()EndEndSub3.保存文件,调试运行。

实验7.3删除字符串实验任务:

编一子过程DeleStr(s1,s2),将字符串s1中出现的s2子字符串删去,结果还是存放在s1中。

例如:

s1=“12345678AAABBDFGl2345“,s2=“234“,结果:

s1=“15678AAABBDFGl5“提示:

1.在s1字符串找s2的子字符串,可利用InStr()函数,要考虑到s1中可能存在多个或不存在s2字符串,用DoWhileInstr(s1,s2)>

0循环结构来实现。

2.若在s1中找到s2字符串,则通过Left()、Mid()函数的调用实现删除s1中存在的s2字符串,然后再返回判断现在的s1内是否还包含s2。

实验7.4逆序输出实验任务:

编程将任意一个四位正整数逆序输出出来。

如输入1234,输出为4321。

要求编写过程Judge(参数自定)判断输入是否为四位的正整数,如果不是要求重新输入;

过程Rever实现逆序组合。

该题可以采用两种解决方法。

方法一、将正整数按位拆成单个数字后逆序组合。

如四位正整数x的千位数a为:

x\1000,百位数b为:

x\100-a*10,以此类推获得十位数c和个位数d。

那么逆序数为:

图7-3逆序数d*1000+c*100+b*10+a。

方法二、可以将正整数当成字符串处理,用mid函数将字符串分解后重新组合即可。

实验步骤:

1.在窗体上放置两个Label控件、两个TextBox控件和两个CommandButton控件,如图7-3所示。

2.属性设置控件名称属性名称属性值标签框1NameLblInputCaption请输入四位正整数标签框2NameLblReverCaption逆序数为文本框1NameTxtInputText空文本框2NameTxtReverText空命令按钮1NameCmdReverCaption逆序转换命令按钮2NameCmdExitCaption退出3.完善程序PrivateSubcmdExit_Click()EndEndSubPrivateSubcmdRever_Click()方法二DimyAsString,sAsStringDimflagAsIntegers=txtInput.TextCallJudge(s,flag)Ifflag=1ThenCallRever(s,y)txtRever.Text=yElseMsgBox(“数据错误,请重新输入!

“)txtInput.Text=““txtInput.SetFocusEndIfEndSubPrivateSubJudge(sAsString,flagAsInteger)DimiAsInteger_____________Fori=1To4IfMid(s,i,1)>

“9“OrMid(s,i,1)b(q),则c(r)=b(q);

r=r+1;

q=q+1②a(p)b(q)Thenc(r)=b(q)r=r+1q=q+1ElseIfa(p)1Thenx=x/gcdvalue约分y=y/gcdvalueEndIfEndSubPrivateSubCommand1_Click()lowtermnum,den命令格式调用Sub(约分)过程Text3.Text=CStr(den)Text4.Text=CStr(num)EndSubPrivateSubCommand2_Click()填写一段代码,将四个文本框清空,Text1聚焦EndSubPrivateSubCommand3_Click()UnloadMeEndSubPrivateSubText1_Change()den=Val(Text1.Text)分子赋给共用变量denEndSubPrivateSubText2_Change()num=Val(Text2.Text)分母赋给共用变量numEndSub3.保存文件,调试运行思考:

如果约分后是假分数,如何将结果转换为代分数?

试一试。

实验7.10判断素数实验任务:

编写函数IsPrime(aAsInteger)AsBoolean,功能为对给定的整型参数进行素数判断。

要求在Command1_Click()事件过程中,随机产生10个3位正整数,利用IsPrime函数对这10个数进行验证,并输出如下类似结果:

“101是素数”或“110不是素数”。

习题7习题7.1选择题1.在过程定义中用()表示形参的传值。

(A)Var(B)ByDef(C)ByVal(D)Value2.若已编写了一个Sort子过程,在该工程中有多个窗体,为了方便地调用Sort子过程,应该将过程放在()中。

A.窗体模块B.标准模块C.类模块D.工程3.在过程中定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用()关键字在过程中定义局部变量。

A.DimB.PrivateC.PublicD.Static4.设有如下说明:

PublicSubFl(n%)…n=3*n+4…EndSubPrivateSubCommand1_Click()Dimn%,m%n=3m=4调用F1语句…EndSub则在Command1_Click事件中有效的调用语句是()。

(A)F1n+m(B)F1m(C)F15(D)F1m+55.下面子过程语句说明合法的是()。

(A)Subfl(ByValn%())(B)Subfl(n%)AsInteger(C)Functionfl%(fl%)(D)Functionfl(ByValn%)6.要想从子过程调用后返回两个结果,下面子过程语句说明合法的是()。

(A)Subf2(ByValn%,ByValm%)(B)Subfl(n%,ByValm%)(C)Subf1(n%,m%)(D)Subfl(ByValn%,m%)7.下面过程运行后显示的结果是()。

PublicSubFl(n%,ByValm%)PrivateSubCommand1_Click()n=nMod10Dimx%,y%m=m\10x=12:

y=34EndSubCallFl(x,y)Printx,yEndSub(A)234(B)1234(C)23(D)1238.如下程序,运行的结果是()。

PrivateSubCommand1_Click()Printpl(3,7)EndSubPublicFunctionpl!

(x!

,n%)Ifn=0Thenp1=1ElseIfnMod2=1Thenp1=x*p1(x,n\2)Elsep1=p1(x,n\2)\xEndIfEndIfEndFunction(A)18(B)7(C)14(D)279.如下程序,运行的结果是()。

Dima%,b%,c%PubllicSubp1(x%,y%)Dimc%X=2*x:

y=y+2:

C=x+yEndSubPublicSubp2(x%,ByValy%)Dimc%x=2*x:

y=y+2:

C=x+yEndSubPrivateSubCommand1_Click()a=2:

b=4:

c=6Callp1(a,b)Print“a=”;

a;

“b=”;

b;

“C=”;

cCallp2(a,b)Print“a=”;

“c=”;

cEndSub(A)a=2b=4c=6(B)a=4b=6c=10a=4b=6C=10a=8b=8c=16(C)a=4b=6c=6(D)a=4b=6c=14a=8b=6c=6a=8b=8c=610.如下程序,运行的结果是()。

PublicSubProc(a%())Statici%DOa(i)=a(i)+a(i十1)i=i+1LoopWhilei“8“ThenChar=Char&

Mid(St,I,1)ElseJ=J+1ReDimPreserveData(J)Data(J)=CharChar=““EndIfNextICallConver(Data,Char)PrintCharEndSub

(2)OptionExplicitPrivateSubCommand1_Click()DimnAsInteger,iAsIntegern=2Fori=9To1Step-1Callsub2(i,n)Printi,nNextiEndSubPrivateSubsub2(xAsInteger,yAsInteger)StaticnAsIntegerDimiAsIntegerFori=3To1Step-1n=n+xx=x-1Nextiy=y+nEndSub(3)OptionExplicitPrivateSubCommand1_Click()DimaAsIntegera=2CallSub1(a)EndSubPrivateSubSub1(xAsInteger)x=x*2+1IfxOptionExplicitOptionBase1PrivateSubForm_Click()Dima(5)AsInteger,iAsInteger,jAsIntegerFori=1To5a(i)=2*i-1NextiPrintForj=1Toi-2Callsub1(a(j),j)PrintjNextjEndSubPublicSubsub1(xAsInteger,pAsIn

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2