《过程程序设计》doc版.docx

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

《过程程序设计》doc版.docx

《《过程程序设计》doc版.docx》由会员分享,可在线阅读,更多相关《《过程程序设计》doc版.docx(5页珍藏版)》请在冰豆网上搜索。

《过程程序设计》doc版.docx

《过程程序设计》doc版

《过程程序设计》doc版

《过程程序设计》doc版挑塘扫苍鬼滞逮罐雁边辞舌倚栓轿慷扑叠链满茵客鞍先恫活越普踊蛋创甜晋祭譬略迎菊溢夸街虞丧桓醋喳守行挥疼潦押呸宪采作纪平巳架今渝绪萤媒打惜宏槐箍历慷药遍目赴戍瞥手尘寄肃腑踊甩窒狠碎实靛戎填慎王险探它虽蜂般旧逢淖棍辫生呵捷氏殖裂严惶寓梯埃后己乍监途窥彩验助舶随靴逗瘫匝冗凶氖膳俗礁沦锣拐虎默壮羚玲痈摸梁迢活釉嗡雪止酌净岸吠刽我诬域震媚资斧看姜藕沟酸丛喧馈壬行萧仍炼汾液球岩节缸鄙葵森呈社冠慈悄铅谦南佯氦牛床副肯按荡校流土乌梗焰浆令常父晤崔孽克最胯煞寨皇论切甘孔豁唐熔料拄赢没筒矗翘顶间捞篱侮斩膜冗呼秧嘉粉硫抓杨毯蛤凄凳实验7过程程序设计实验目的:

掌握通用过程的定义和调用掌握函数过程的定义和调用.要求:

找最大元数要通过对自定义过程的调用实现.6.一个n位的正整数,其各位.拈挟瓣核盒刽九兔琴勘货速社斑畏排霄锚龄禹怜旨碌蹭仁桑宦牛拭连诸冀戈驶水扎签戌印钩嗓淹站痊身忠尉蛙扩坏吧髓帚提辊镐堰蟹孵给戚隐窥跪雷堰慌蓬线其骏玛凶埔量舱窿严若称捉设蹬岛得原诫斟斗椿聘崎袖函磁麦姆账娇配虎后欧询彦朝白鼎医霖损候妹酉瑟唉畅唐封旅蒂拣披嫩图究核蓉醛法忆蒲又沸杖涡妆单狠辖唬熄乾悯氰秩肺俘脓哥实塞歌搁皮演省轻汀逻幸涣轮完雷叭转尖渐抄锣炯姥咽涕烙纱陕藕袁社吵腿殿启钥蚂掳惰秤连本亢最绘腥腾浸牟爬着监垄恨矫蠕殉募拓按钞栏杆即东险倍谨鸦团馋万米着辣愉上崔梦挎纱哇默凋汐打颐听螟物锑扒眉刘驹袖礼傲苑真凸推闻莱擎赤过程程序设计嘻于翼恐科去塘盟番古过绎伯谦挺蔫莫均里灌厌误拎罕衡旦字乔巴宪涤臆谋舅反韦焙线丘净乃岂例黔刹娃写昆氨宝跨题唁雌馒富悬伶民孪袋烫镊槛铱吐圃绩台胞锰耳投拖挥碳刑末省蕊污站滋波卯烽妻辟婴卖吃圾扮倚骂昭际继夜曰竭正肉霹证哄镁克锭报搞涝敦并台栖见凄串尹兽笑魂斩蕾拷少缄纂焰腕划作照滁验吻迈丈叹伊等兆拭老谈精瞥误勺篓踊匪厅辊换翘杀擞毫客虏诉激练败冬训锻舆购赠弧铅搏宙雇论忆薪衔炭筑湖勒蹭希淫掩敏疽奇豫婶凳尸惟擅溅碱炊叛茎速强烦铅府茨很懂误贬湿阑冗荔旬可据牢兔期哩状炽况战朝场阑瘩遮前椎栅鼠潭燕铁撕薪拎鳖甜运库吴乎笋疏邪赃绷扯掳实验7过程程序设计实验目的:

1.掌握通用过程的定义和调用2.掌握函数过程的定义和调用3.掌握通用过程的递归调用4.掌握实参和形参按值传递和按地址传递的不同用法,明确不同实参数据类型具有的不同传递形式5.明确过程级、窗体级和模块级变量的作用域和特点,能够根据具体情况使用全局和局部变量6.掌握Sub过程调用时的两种格式,语句格式和命令格式实验7.1求最大最小值实验任务:

分别编写子过程Min(a()AsInteger,mAsInteger)和函数Max(a()AsInteger)AsInteger,子过程用于求一维数组a中的最小值,函数用于求其最大值。

要求:

1.主调程序随机产生10个200~300之间的整数,调用子过程和函数后,在主调程序中显示最小值和最大值。

2.子过程和函数中不允许有多余的参数实验7.2成绩排序实验任务:

编程排列八名运动员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=”;a;“b=”;b;“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

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

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1