




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,新编VisualBasic程序设计教程,2,第4章算法基础与VB基本语句,4.1算法基础1、概念解决某个问题所使用的方法和步骤。亦称算法设计2、算法分类1)数值计算算法。例:四则运算、求微积分2)非数值计算算法。例:数据的查找、分类、排序3、算法描述流程框图、流程图举例:求2个学生的平均成绩。其中学生A为95分,B为70分。方法:1)将95分赋予变量A,70分赋予变量B2)A加B的值除以2,结果赋予变量C3)打印输出C值,3,根据以上题意绘出流程图:图形说明:,开始,A=95,B=70,C=(A+B)/2,输出C,结束,流程的起点与终点数据处理数据的输入/输出条件判断一个特定过程流程线流程图上与其它部分相连的点,4,4、基本算法结构,A,B,A,B,e,True,False,A,A,e,False,False,True,True,e,循环结构,循环结构,顺序结构,分支结构,循环体,当型循环当条件e成立,继续执行A,直到型循环反复执行A,直到条件满足为止,5,4.2赋值语句与InputBox、MsgBox函数4.2.1赋值语句LET变量名(或属性名)=表达式LETa=8将数值8赋予变量aa=8k1=“Madeinchina”C=(x+y)/6Text1.Fout.Size=18,仍举上例:求2个学生的平均成绩。其中A为98分,B为70分。,PrivateSubCmd1_Click()DimAasIntegerDimBasIntegerDimCasIntegerA=95B=70C=(A+B)/2PrintCEndSub,6,4.2.2InputBox函数功能:建立输入对话框,用来接受用户通过键盘输入的数据。格式:变量名=InputBox(提示用文字信息,对话框标题,预设用户编辑框内的缺省值),X,Y,帮助文件名,帮助主题号)举例:在用户界面上设置一个按钮,当按下按钮时出现一个输入对话框,在用户编辑框内输入数据后,按对话框“确定”按钮,窗体上显示该数据。,7,OptionExplicitPrivateSubCommand1_Click()DimwordAsStringword=InputBox(请输入需在窗体中显示的内容:,_输入对话框,江南大学纺织服装学院)PrintwordEndSub4.2.3MsgBox函数功能:建立消息框,显示简短消息,并要求用户作出响应。格式:abc=MsgBox(Prompt,Button,Title,H,C,提示用文字信息,对话框标题,数值常量c1+c2+c3+c4,下转:第4章VB教材举例1(4.2.2),换行:chr(13)+chr(10),8,举例1:窗体中设置一个文本框,一个按钮。当按下按钮时,出现一个消息框,应答后按要求操作。(参见P62表4-2(a、b、c、d),9,OptionExplicitPrivateSubCommand1_Click()DimabcAsStringIfText1.Text=Thenabc=MsgBox(您没有在文本框中输入任何内容_,1+48+0+0,提示消息)ElsePrint很好!您已经输入内容了。EndIfEndSub,下转:第4章VB教材举例2(4.2.3-1),10,举例2:在关闭应用程序时,系统常常会弹出一个消息框提示用户是否真的退出程序。利用MsgBox函数的返回值可实现此操作。(参见P63表4-3),11,OptionExplicitPrivateSubCmd1_Click()Label1.Caption=谢谢!EndSubPrivateSubCmd2_Click()DimtangAsStringtang=MsgBox(是否真的要退出程序?,4+32,提示)Iftang=6ThenEnd6是Yes的返回值EndSub,下转:第4章VB教材举例3(4.2.3-2),12,4.3分支结构与分支结构语句4.3.1If-Then-Else-EndIf结构语句功能:根据条件e具有分支判断功能格式:IfeThenA组语句ElseB组语句EndIf,A,B,e,True,False,分支结构,X,A,B,e,13,举例:从键盘输入一个数X,如果X=0,则打印该数;如果X=0ThenPrint“x=”;xA组语句Elsex=abs(x)Print“x=-”;xB组语句EndIfEndSubPrivateSubCommand2_Click()DimtangAsStringtang=MsgBox(是否真的要退出程序?,4+32,提示)Iftang=6ThenEndEndSub,下转:第4章VB教材举例4(4.3.1-1),15,除上述标准格式外,还有不对称分支和多分支。,A,e,True,False,不对称分支结构,IfeThen例:,PrivateSubCmd2_Click()DimxAsIntegerx=InputBox(“请输入X的值:”,_输入X,0)Ifx=0ThenPrintxEndSub,16,多分支结构,格式:If表达式1Then语句块1ElseIf表达式2Then语句块2ElseIf表达式3Then语句块3EndIf,17,举例:P66例4-2一个多分支的示例程序(流程图见P66图4-11),OptionExplicitPrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)Ifx1ThenText2.Text=这是小于1的数ElseIfx20Is=“P”,19,OptionExplicitPrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)SelectCasexCaseIs1Text2.Text=这是小于1的数Case1To10Text2.Text=这是1到10之间的数CaseElseText2.Text=这是大于10的数EndSelectEndSubPrivateSubCommand2_Click()EndEndSub,仍以上例:P66例4-2一个多分支的示例程序,下转:第4章VB教材举例6(4.3.2),20,注意Is比较运算符和使用在SelectCase语句中的Is关键字并不相同:,Is作为比较运算符:用来比较两个对象的引用变量;语法:result=object1Isobject2;说明:如果object1和object2两者引用相同的对象,则result为True;否则,result为False。Is作为selectcase中的关键字:使用Is关键字时,则可以配合比较运算符(除Is和Like之外)来指定一个数值范围。如果没有提供,则Is关键字会被自动插入。,21,4.4循环结构与循环结构语句循环:对某一操作重复执行类型:当型循环与直到型循环,A,False,True,e,当型循环,循环体,当型循环当条件e成立,继续执行A,4.4.1Do-Loop语句应用场合:若事先不知道循环次数,使用该语句格式:条件成立,DoWhilee做循环ExitDoLoop特征:先判别,再循环,说明:ExitDo功能为直接退出循环,不执行下面的语句段。常用形式:IfeThenExitDo,A,22,举例:P68例4-3采用欧几里得算法求解二个自然数的最大公约数的程序,求最大公约数可使用“辗转相除法”例如24与16,先将24被16除,得余数8(求余运算)。之后将原来的除数16作为下一次的被除数,将上一次得到的余数(8)作为除数,二者相除后得余数0。此时最后一次的除数8就是所求的最大公约数。,23,归纳:欧几里得算法是:如果有二个数m,n,将大数m作为被除数,小数作为除数,相除后余数为r。若r=0,则将nm,将rn,再进行新的一轮除法运算(即以新的m作被除数,n作除数),得到新的r。重复以上过程直到r=0为止。此时n就是最大公约数。,画画流程吧?(欧几里得算法流程图),24,Text3.Text=CStr(m)输出最大公约数EndIfEndSubPrivateSubCommand2_Click()Text1.Text=Text2.Text=Text3.Text=Text1.SetFocus将文本框1设为焦点EndSubPrivateSubCommand3_Click()EndEndSub,OptionExplicitPrivateSubCommand1_Click()Dimm,n,r,aAsLongm=Val(Text1.Text)取数据Mn=Val(Text2.Text)取数据Nr=m*n假设r的开始值为m*n_(实际上不可能的,为何需要这一句?)Ifm0当r不等于0,进行循环r=mModnm=nn=rLoop,下转:第4章VB教材举例7(4.4.1),25,也可以换一种算法:使用普通数学中分步求公因子,且各因子相乘的方法求得最大公约数。,2,2416,128,2,64,2,32,T=2*2*2=8,2,120180,6090,2,3045,3,1015,T=2*2*3*5=60,5,23,即从取数值2开始,将该数作为除数,对二个被除数分别作除法运算,若能同时除尽(即Mod运算结果为0),则将该数赋予变量T并作连乘。反复使用2作除法运算,当2不能同时整除二数时,则换,26,数值3,依次类推,直至二个被除数不能同时整除时为止。公约数T=2*。,IfmnThena=m:m=n:n=at=1Fori=2TonForj=1TonIf(mModi)=0And(nModi)=0Thent=t*im=m/in=n/iEndIfNextNextText3.Text=CStr(t)输出最大公约数,2,2416,128,2,64,2,32,从2开始尝试公约数,每个公约数可能的整除次数,27,当型循环除上述格式外,还有另一种格式:DoExitDoLoopWhilee特征:先执行一次循环,然后再作条件判别,根据判别结果执行下一次循环。,A,仍举上例:求最大公约数,OptionExplicitPrivateSubCommand1_Click()Dimm,n,r,aAsLongm=Val(Text1.Text)取数据Mn=Val(Text2.Text)取数据Nr=m*n假设r的开始值为m*n_(实际上不可能的,实际上也可不要?)Ifm0当r不等于0,进行循环,仍转:第4章VB教材举例7(4.4.1),28,A,e,False,True,以上介绍了Do-Loop语句的当型循环形式。下面介绍Do-Loop语句的直到型循环:,直到型循环反复执行A,直到条件满足为止换言之,条件不满足继续循环,格式:DoExitDoLoopUntile条件不成立,做循环,特征:先执行一次循环,然后再作条件判别,根据判别结果执行下一次循环。,仍举上例例4-3求二个自然数的最大公约数,29,直到型循环除上述格式外,还有另一种格式:,DoUntile条件不成立,做循环ExitDoLoop,下转:第4章VB教材举例8(4.4.1-2),OptionExplicitPrivateSubCommand1_Click()Dimm,n,r,aAsLongm=Val(Text1.Text)取数据Mn=Val(Text2.Text)取数据Nr=m*n假设r的开始值为m*n_(实际上不可能的)Ifm1Orn=AAndMid_(s,i,1)=ZThent=t*;j;=;i*j;NextjPrintPrintNextiEndSub,39,下转:第4章VB教材举例12(4.4.3-1),40,举例:设计一模拟摇奖程序。要求是:100个人中签,由机器自动随机产生1000个1100间的数据,确定第1000个随机数为中签人的得奖号。预备知识:随机数的产生Rnd(x)若X0或不置X值,随机序列的下一个随机数试在立即窗口中操作验证:Rnd(X)讨论:1)产生的随机数总是在(0,1)区间内。2)X的值影响Rnd生成随机数的方式。3)采用Randomize语句初始化随机数生成器,可从系统计时器获得随机数种子。,41,若要生成某个范围内的随机整数,可使用以下表达式:Int(随机数整数范围的上限-下限+1)*Rnd+随机数整数范围的下限)举例:现要产生166之间的随机整数,试写出表达式。Int(66-1+1)*Rnd+1)或:Int(66*Rnd+1)举例:现要产生1100之间的随机整数,试写出表达式。Int(100*Rnd+1),试在立即窗口中操作验证:Int(X*Rnd+1),现完成模拟摇奖程序。由机器自动随机产生1000个1100间的数据,确定第1000个随机数为中签人的得奖号。,42,PrivateS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 极地科考船涂料项目可行性研究报告
- 防汛应急培训基本知识课件
- DB65T 4083.4-2017 双语教育资源库 第4部分:功能要求
- 大数据分析市场分析与应用
- 膳食纤维改性-洞察及研究
- 广告合同(期刊上刊登)(样式一)5篇
- 名阳补充协议3篇
- 捐建餐厅协议书7篇
- 建设工程借款合同模板常用版4篇
- 部队夏天安全知识培训课件
- DB31/T 968.1-2016全过程信用管理要求第1部分:数据清单编制指南
- 河海大学2019-2020学年第一学期《概率论与数理统计》试卷(A卷)
- 钢材代储协议书
- 高中拔尖创新人才培养模式的探索与实践研究
- 《智慧物业管理系统》课件
- 《医疗体检质量控制》课件
- 《高血压患者饮食指导》课件
- 《综合用药培训精粹》课件
- 赌博的课件教学课件
- 降低导管滑脱发生率PDCA项目
- 数据安全风险监测和预警管理流程
评论
0/150
提交评论