首页 vb基本程序结构

vb基本程序结构

举报
开通vip

vb基本程序结构第六章基本程序结构本章内容及要求:1.了解算法概念及算法的表示,掌握用N—S流程序表示算法2.熟练掌握赋值语句、End语句和注释语句等语句及输入/输出消息框函数的使用;3.熟练掌握行if语句、块if结构、SelectCase情况选择结构有使用,掌握选择的嵌套结构;4.熟练掌握实现循环结构的For/Next循环结构及ExitFor语句、Do/Loop循环结构的使用,掌握多重循环。重点:选择结构及循环结构的实现及其应用难点:选择的嵌套及多重循环结构6.1算法及算法的表示6.1.1算法概述什么是算法:广义地讲...

vb基本程序结构
第六章基本程序结构本章内容及要求:1.了解算法概念及算法的表示,掌握用N—S流程序表示算法2.熟练掌握赋值语句、End语句和注释语句等语句及输入/输出消息框 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 的使用;3.熟练掌握行if语句、块if结构、SelectCase情况选择结构有使用,掌握选择的嵌套结构;4.熟练掌握实现循环结构的For/Next循环结构及ExitFor语句、Do/Loop循环结构的使用,掌握多重循环。重点:选择结构及循环结构的实现及其应用难点:选择的嵌套及多重循环结构6.1算法及算法的表示6.1.1算法概述什么是算法:广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。狭义地讲:算法是解决一个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 采取的方法和步骤的描述。下面通过两个简单的例子加以说明:例6.1输入三个数,然后输出其中最大的数。将三个数依次输入到变量A、B、C中,设变量MAX存放最大数。其算法如下:例6.2输入10个数,打印输出其中最大的数。算法设计如下:(1)输入1个数,存入变量A中,将 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 数据个数的变量N赋值为1,即N=1(2)将A存入表示最大值的变量Max中,即Max=A(3)再输入一个值给A,如果A>Max则Max=A,否则Max不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步。(6)打印输出max1)输入A、B、C。2)A与B中大的一个放入MAX中。3)把C与MAX中大的一个放入MAX中。4)输出MAX,MAX即为最大数。6.1.2算法的特性 有穷性 确定性 有0个或多个输入 有一个或多个输出 有效性6.1.3算法的表示一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。例如:例6.1可用如下的伪代码表示Begin(算法开始)输入A,B,CIFA>B则A→Max否则B→MaxIFC>Max则C→MaxPrintMaxEnd(算法结束)二、用传统流程图表示算法处理框起止框I/O框判断框流程线连接点1、传统流程图中的基本符号2、三种基本结构的传统表示(1)顺序结构条件语句1语句2YN语句1语句2(2)选择结构条件(a)条件语句组(3)循环结构a)当型循环b)直到循环YNYN(b)语句组三种基本结构的特点:(1)只有一个入口(2)只有一个出口(3)不存在死语句(4)不存在死循环例:例6.2输入10个数,打印输出其中的最大的数的流程图从10个数中选出最大的数的流程图N<10Max=AN=1A>MaxMax=A输入A开始再输入给AN=N+1打印Max结束YNNY6.1.4用N—S流程图表示算法将全部算法写在一个矩形框内,在矩形内还可包含其它从属于它的框三种基本结构的N—S图表示:语句A语句B语句A语句B条件YN1、顺序结构2、选择结构语句组(3)循环结构a)当型循环b)直到循环当条件成立语句组直到当条件成立例:画出从10个数中选出最大的数的N—S流程图(a)(b)传统流程图N<10Max=AN=1A>MaxMax=A输入A开始再输入给AN=N+1打印Max结束YNNY输入A当N<=10Max=AN=N+1打印Max输入AN—S流程图A>=MaxYNPrivateSubForm_Click()Dima%,max%,i%max=aFori=1To10a=Val(InputBox("A=?"))Ifa>maxThenmax=aNextiPrint"Max=";maxEndSub最后需要说明的是:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,程序则必须符一计算机语言的语法规则。下面是例6.2的计算机程序,即为用计算机语言表示算法:6.1.5结构化程序设计方法(补充)(一)用计算机解决问题的过程(二)结构化程序设计思想自顶向下、逐步细化、模块化自顶向下:先从全局、整体设计逐步细化:将一个问题分解成几个较小的问题解决模块化:将一个大任务分解成若干个较小的部分,每个部分承担一定功能,称为“功能模块”例:给100个整数,打印输出其中的素数S1N—S流程图S3S2S1N—S流程图S3S2S21细化后的流程图6.2顺序结构6.2.1赋值语句形式:变量名=表达式对象.属性=表达式功能:将表达式的值赋值给变量名或指定对象的属性。一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1Text1.Text="欢迎使用VisualBasic6.0”说明:1.执行过程:先求表达式的值,然后将值赋值给左边的变量。2.右边表达式可以是变量、常量、函数调用等特殊的表达式。3.不要将“=”理解为数学上的等号:A=A+1是表示将A单元的值加1后以放回到A单元。执行过程如右图4.赋值符号“=”左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。下面的赋值语句都是错的:5=X'左边是常量。Abs(X)=20'左边是函数调用,即是表达式。5.赋值符号“=”两边的数据类型一般要求应一致。具体规则(P77)6.2.2注释语句其语法格式为:Rem<注释内容>或'<注释内容>说明:1.<注释内容>指要包括的任何注释文本。在Rem关键字和注释内容之间要加一个空格。可以用一个英文单引号“'”来代替Rem关键字。2.如果在其他语句行后面使用Rem关键字,必需用冒号(:)与语句隔开。若用英文单引号“'”,则在其他语句行后面不必加冒号(:)。例如:ConstPI=3.1415925'符号常量PIS=PI*r*r :Rem计算圆的面积6.3选择结构1.If…Then语句(单分支结构)If<表达式>Then语句块EndIf或If<表达式>Then<语句>例:已知两个数x和y,比较它们的大小,使得x大于y.Ifx<yThent=x:x=y:y=tEndIf或Ifx<yThent=x:x=y:y=t_962543529.doc���������������������������¼Í1�-�3�-�8���½Áö¸ýÊ»½»»ý¹Ì³���(���(���(���t���y���x����2.If…Then…Else语句(双分支结构)If<表达式>Then<语句块1>Else<语句块2>EndIfIf<表达式>Then<语句1>Else<语句2>例如:输出x,y两个中值较大的一个值。IFX>YThenPrintXElsePrintYEndIf也可以写成如下的单行形式:IFX>YThenPrintXElsePrintY双分支选择结构执行过程3.If…Then…ElseIf语句(多分支结构)形式:If<表达式1>Then <语句块1> ElseIf<表达式2>Then <语句块2> … [Else 语句块n+1] EndIf例:输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”执行过程使用IF语句实现的程序段如下:Ifx>=90then Print"优秀"ElseIfx>=80Then Print"良好"ElseIfx>=70Then Print"中等"ElseIfx>=60Then Print"及格"Else Print"不及格"EndIf6.3.2SelectCase语句(条件分支)形式: SelectCase变量或表达式 Case表达式列表1 语句块1 Case表达式列表2 语句块2 … [CaseElse 语句块n+1] EndSelect<表达式列表>:与<变量或表达式>同类型的下面四种形式之一:表达式A+5一组枚举表达式(用逗号分隔)2,4,6,8表达式1To表达式2 60to100 Is关系运算符表达式Is<60数值型或字符串表达式将例6.3使用selectcase…..语句来实现的程序段如下:SelectCasexCase90to100Print"优秀"Case80to89Print"良好"Case70to79Print"中等"Case60to69Print"及格"CaseElsePrint"不及格"EndSelect补充例题:设计一个由计算机来当小学低年级学生算术老师的VB应用程序,要求给出一系列的两个1~10数的四则运算的算术题,学生输入该题的 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 ,计算机根据学生的答案判断正确与否,并给出成绩,单击结束命令按钮,退出应用程序。分析:产生1~10操作数,可通过Int(10*Rnd+1)实现6.3.3选择结构的嵌套在IF语句的Then分支和Else分支中可以完整地嵌套另一IF语句或SelectCase语句,同样SelectCase语句每一个Case分支中都可嵌套另一IF语句或另一SelectCase语句。下面是两种正确的嵌套形式:(1)IF<条件1>Then…..if<条件2>Then……Else…..EndIf….Else….IF<条件3>Then…..Else…..EndIf…..EndIF(2)IF<条件1>Then…..SelectCase…Case……IF<条件1>Then……Else…..EndIf……Case….…..EndSelect….EndIF注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。6.4循环结构1.For循环语句(一般用于循环次数已知)形式For循环变量=初值to终值[Step步长] 语句块 [ExitFor] 语句块Next循环变量图1-3-13For循环语句循环变量得初值循环变量在终值内语句块ExitFor语句块循环变量加步长TF循环次数例:ForI=2To13Step3PrintI,NextIPrint“I=“,I循环执行次数输出I的值分别为:25811出了循环输出为:I=14例6.5编程计算:S=1+2+3+…+100DimS%,I%S=0'累加前变量S为0ForI=1to100S=S+INextIPrint"S=",S当N<=100N=N+1打印SS=0,N=1S=S+N例4-5的算法流程图形式1:(当型循环)Do{While|Until}<条件>语句块[ExitDo]语句块Loop6.4.2Do…Loop循环语句条件FTFTExitDo语句块语句块ExitDo语句块语句块表达式列表1图1-3-16Do…LoopWhileDoWhile…Loop执行过程形式2:(直到循环) Do 语句块 [ExitDo] 语句块 Loop{While|Until}<条件>表达式列表1FTFTExitDo语句块语句块ExitDo语句块语句块条件Do…LoopWhile的执行过程图1-3-15DoWhile…LoopDoUntil…Loop执行过程Do…LoopUntil执行过程说明:(1)当使用While<条件>构成循环时,当条件为“真”则反复执行循环体,当条件为“假”,则退出循环。(2)当使用Until<条件>构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。(4)语句ExitDo的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。6.4.3While…Wend语句使用格式如下:While<条件><循环块>Wend说明:该语句的功能与DoWhile<条件>….Loop实现的循环完全相同。例:用do…Loop语句改写前面的例题6.5例6.7求两个整数的最大公约数、最小公倍数Dimn%,m%,nm%,r%m=Val(InputBox("m="))n=Val(InputBox("n="))nm=n*mIfm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopPrint"最大公约数=",nPrint"最小公倍数=",nm/n算法使用转碾除法,流程图如右,实现的程序代码如下:6.4.4循环的嵌套——多重循环结构如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..Loop例如:打印九九乘法表.Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内循环.正确 错误Forii=1To10Forjj=1To20… Nextii NextjjForii=1To10Forii=1To20… Nextii NextiiForii=1To10Forjj=1To20… NextjjNextiiForii=1To10…NextiiForii=1To10…Nextii6.4.5几种循环语句比较For....toNextDowhile/until....Loopdo....LoopWhile/until...循环类型当型循环当型循环直到循环循环控制条件循环变量大于或小于终值条件成立/不成立执行循环条件成立/不成立执行循环循环变量初值在FOR语句行中在DO之前在DO之前使循环结束For语句中无需专门语句必须用专门语句必须使用专门语句使用场合循环次数容易确定循环/结束控制条件易给出循环/结束控制条件易给出6.4.6循环结构与选择结构的嵌套在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。(1)ForI=…………IF…Then……EndIF……NextI(6)IF…Then……ForI=…………EndIF……NextI(5)SelectCase……ForI=…………Case…………Case…………NextI………EndSelect(3)ForI=…………IF…Then……NextI……EndIF(2)IF…Then……ForI=…………NextI……EndIF0(4)ForI=…………SelectCase…Case…………Case…………EndSelect……NextI×××6.5其它控制语句6.5.1Goto语句形式:GoTo{标号|行号}作用是无条件地转移到标号或行号指定的那行语句.标号是一个字符序列,行号是一个数字序列。例求100以内的素数判别某数m是否为素数最简单的方法是:对于m从i=2,3,…,m-1判别m能否被i整除,只要有一个能整除,m不是素数,否则m是素数。Form=2To100Fori=2Tom-1If(mModi)=0ThenGoToNotNextMNextiPrintmNotNextM:Nextm6.5.2Exit语句Exit语句用于退出Do...Loop、For...Next、Function或Sub代码块。对应的使用格式为:ExitDo、ExitFor、ExitFunction、ExitSub。分别表示退出DO循环、For循环、函数过程、子过程。例如:下面的例子是使用Exit语句退出For...Next循环、Do...Loop循环及子过程。PrivateSubForm_Click()DimI%,Num%Do'建立无穷循环。ForI=1To100'循环100次。Num=Int(Rnd*100)'生成一个0~99的随机数。SelectCaseNumCase10:ExitFor'退出For...Next循环。Case50:ExitDo'退出Do...Loop循环。Case64:ExitSub'退出子过程。EndSelectNextILoopEndSub6.5.3End语句形式:End功能:结束一个程序的运行。在VisualBasic中还有多种形式的End语句,用于结束一个程序块或过程。其形式有:EndIfEndSelectEndTypeEndWithEndSubEndFunction等它们与对应的语句配对使用。6.5.4暂停语句Stop语句用来暂停程序的执行,相当于在事件代码中设置断点。语法格式为:Stop说明:1.Stop语句的主要作用是把解释程序置为中断(Break)模式,以便对程序进行检查和调试。可以在程序的任何地方放置Stop语句,当执行Stop语句时,系统将自动打开立即窗口。2.与End语句不同。6.5.5With...EndWith语句形式:With对象名语句块EndWith说明:With语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在With控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使用With语句来给同一个对象的几个属性赋值。例如,需要对同一对象设置几个属性。途径之一是使用多条语句。PrivateSubForm_Load()Command1.Caption="退出(E&xit)"Command1.Top=500Command1.Left=4500Command1.Enabled=TrueEndSub使用With...EndWith语句,上面程序的代码如下。PrivateSubForm_Load()WithCommand1.Caption="OK".Top=500.Left=4500.Enabled=TrueEndWithEndSub6.6应用程序举例6.6.1素数与哥德巴赫猜想判断一个给定的整数是否为素数。算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数N是不是素数的基本方法是:将N分别除以2,3,…,N-1,若都不能整除,则N为素数。因为N=Sqr(N)*Sqr(N),所以,当N能被大于等于Sqr(N)的整数整除时,一定存在一个小于等于Sqr(N)的整数,使N能被它整除,因此只要判断N能否被2,3,…,Sqr(N)整除即可。算法流程图如下:DimN%,I%,K%N=Val(InputBox("N=?"))K=Int(Sqr(N))ForI=2ToKIfNModI=0ThenExitForNextIIfI>KThenPrintN;"是素数"ElsePrintN;"不是素数"EndIf验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和。例如:6=3+38=3+510=3+7算法设计:设N为大于等于6的任一偶数,将其分解为N1和N2两个数,使用N1+N2=N,分别判断N1和N2是否为素数,若都是,则为一组解。若N1不是素数,就不必再检查N2是否素数。先从N1=3开始,直到N1=N/2为止。算法流程图如图4-29所示。将程序代码写到窗体的单击事件中。实现上面算法的程序代码如下:PrivateSubForm_Click()DimN%,N1%,N2%,I%,K1%,K2%N=Val(InputBox("输入大于6的偶数"))ForN1=3ToN\2Step2K1=Int(Sqr(N1))ForI=2ToK1'判断N1是否是素数IfN1ModI=0ThenExitForNextIIfI>K1Then'如果N1为素数,将N分解为N1+N2N2=N-N1K2=Int(Sqr(N2))ForI=2ToK2'判断N2是否是素数IfN2ModI=0ThenExitForNextIIfI>K2Then'如果N2也为素数,则打印输出PrintN&"="&N1&"+"&N2EndIfEndIfNextN1EndSub6.6.2字符串处理例6.12统计文本框中英文单词的个数。 算法设计(1)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符是否是单词内的字符,初值设为False。(2)若所取字符不是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,再判断WT是否为True,若WT不为True,则表示新单词的开始,让单词数Nw=Nw+1;让WT=True。(3)若所取字符是“空格”、“逗号”、“分号”或“感叹号”等单词的分隔符,则表示字符不是单词内字符,让WT=False。(4)再依次取下一个字符,重复(2)(3)步直到文本结束。例6.13字符的加密和解密加密算法是:将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式:c=chr(Asc(c)+k)例如:设序数k为5,这时"A"→"F","a"→"f","B"→"G"…当加序数后的字母超过"Z"或"z"则c=Chr(Asc(c)+k-26)例如:Youaregood→Dtzfwjltti解密算法:解密为加密的逆过程将每个字母C减(或加)一序数K,即c=chr(Asc(c)-k),例如:序数k为5,这时"Z"→"U","z"→"u","Y"→"T"…当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k+26)迭代法在数学上也称“递推法”,凡是由一给定的初值,通过某一算法(公式)可求得新值,再由新值按照同样的算法又可求得另一个新值,这样经过有限次即可求得其解。6.6.3迭代法例6.14用迭代法求某个数的平方根。已知求平方根的迭代公式为:算法思想如下:设平方根的解为x,可假定一个初值x0=a/2(估计值),根据迭代公式得到一个新的值x1,这个新值x1比初值x0更接近要求的值x;再以新值作为初值,即:x1→x0,重新按原来的方法求x1,重复这一过程直到|x1-x0|<ε(某一给定的精度)。此时可将x1作为问题的解。作业:课后选择、程序阅读做在 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
本文档为【vb基本程序结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
百里登峰
暂无简介~
格式:ppt
大小:770KB
软件:PowerPoint
页数:0
分类:
上传时间:2020-10-29
浏览量:3