- 0
- 0
- 约1.13万字
- 约 53页
- 2026-01-22 发布于广东
- 举报
*************吕萍丽—第7章过程编程实现5!+4!+3!+2!+1!Privatesubform_click()Dimsumasinteger,IasintegerFori=5to1step-1sum=sum+fact(i)NextIPrint“sum=“;sumEndsubPrivatefunctionfact(nAsInteger)asintegerfact=1dowhilen0fact=fact*nn=n-1loopEndfunction吕萍丽—第7章过程分析过程主调程序是:PrivateSubForm_Click()做for循环:第一趟:i=5sum=sum+fact(5)这是一个函数调用语句,此时控制转移到函数过程中进入到函数过程中,n是形参,接收地址的,此时n的值为5.开始做do循环:吕萍丽—第7章过程第一趟do循环:fact=1*5n=5-1=4第二趟do循环:fact=1*5*4n=4-1=3第三趟do循环:fact=1*5*4*3n=3-1=2第四趟do循环:fact=1*5*4*3*2n=2-1=1第五趟do循环:fact=1*5*4*3*2*1n=1-1=0结束do循环,函数过程结束,要返回值120到主调程序的断点处即.sum=0+120=120.吕萍丽—第7章过程此时n=0,则它的实参i=0。导致for循环结束,转去执行next下面的语句即打印sum=120,没有实现预期的效果。吕萍丽—第7章过程解决方法:方法一:改形参:传地址改成传值方法二:改实参:把实参改成表达式表达式既可以是算术表达式也可以给变量加括号比如,Fact((i)),此时实参i就变成了表达式,就失去了地址,只能传自己的数值给形参。吕萍丽—第7章过程重要考点真题再现1.用语句PrivateSubConvert(YAsInteger)定义的Sub过程时,以下不是按值传递的语句是()A.CallConvert((X))B.CallConvert(X*1)C.Convert(X)D.ConvertXD吕萍丽—第7章过程重要说明:对于按地址传递的形参,如果在过程调用时与之结合的实参是一个常数或者表达式,那么VB会用”按值传递”的方法来处理它,而且实参的数据类型没有必要和形参一致,只要相容(即:VB可以自动转换的,比如数字字符串就可以自动转换为数字)即可;而实参如果是变量那么形实的数据类型必须完全一致。吕萍丽—第7章过程参数数据类型转换的例子PrivateSubForm_Click()DimSasSingleS=125.5CallConvert((S),”12.5”)EndPrivateSubConvert(InxAsInteger,SingAsSingle)Inx=Inx*2Sing=Sing+23Print“Inx=”;Inx,”sing=”;SingEnd12612.5吕萍丽—第7章过程参数数据类型转换的例子PrivateSubForm_Click()DimSasSingleS=125.5CallConvert((S),”123a”)EndPrivateSubConvert(InxAsInteger,SingAsSingle)Inx=Inx*2Sing=Sing+23Print“Inx+”;Inx,”sing=”;SingEndsub不能转成单精度类型不匹配吕萍丽—第7章过程若在应用程序中用privatesubsub1(xasinteger,yassingle)定义了子程序sub1,调用程序中的变量I,j均为integer,则正确的调用子程序sub1的语句
您可能关注的文档
最近下载
- (2026春新版)苏教版二年级数学下册全册教案.docx
- 2025年海南事业单位联考考试笔试试题(含答案).pdf
- 榕兴冷氢化项目精馏装置缓冲罐技术协议.doc VIP
- 2026年人教版英语三年级上册寒假作业每日一练共30天(含答案).docx VIP
- VDA6.3 2016过程审核-(标准表格).xls VIP
- (高清版)DB33∕T 1134-2017 静钻根植桩基础技术规程 .pdf VIP
- 多晶硅冷氢化项目精馏系统屏蔽泵设备采购技术协议.doc VIP
- 安徽财经大学《中国近现代史纲要》2019-2020学年期末试卷.pdf VIP
- 会计师事务所司法会计鉴定业务风险管理:挑战与应对策略.docx
- 产前筛查中的伦理审查制度.docx VIP
原创力文档

文档评论(0)