种基本结构程序设计方案ppt课件

上传人:re****.1 文档编号:567505785 上传时间:2024-07-20 格式:PPT 页数:68 大小:937.50KB
返回 下载 相关 举报
种基本结构程序设计方案ppt课件_第1页
第1页 / 共68页
种基本结构程序设计方案ppt课件_第2页
第2页 / 共68页
种基本结构程序设计方案ppt课件_第3页
第3页 / 共68页
种基本结构程序设计方案ppt课件_第4页
第4页 / 共68页
种基本结构程序设计方案ppt课件_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《种基本结构程序设计方案ppt课件》由会员分享,可在线阅读,更多相关《种基本结构程序设计方案ppt课件(68页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章三种根本构造程序设计三种根本构造程序设计本章内容及要求: 1.了解算法概念及算法的表示,掌握用NS流程序表示算法 2. 熟练掌握赋值语句、End语句和注释语句等语句及输入/输出音讯框函数的运用; 3. 熟练掌握行if语句、块if构造、Select Case情况选择构造有运用,掌握选择的嵌套构造; 4. 熟练掌握实现循环构造的For/Next循环构造及Exit For语句、Do/Loop循环构造的运用,掌握多重循环。重点:选择构造及循环构造的实现及其运用重点:选择构造及循环构造的实现及其运用难点:选择的嵌套及多重循环构造难点:选择的嵌套及多重循环构造4.1算法及算法的表示算法及算法的

2、表示4.1.1算法概述算法概述什么是算法:什么是算法:广义地讲:算法是为完成一项义务所该当遵照的一步广义地讲:算法是为完成一项义务所该当遵照的一步一步的规那么的、准确的、无歧义的描画,它的总步数是一步的规那么的、准确的、无歧义的描画,它的总步数是有限的。有限的。狭义地讲:算法是处理一个问题采取的方法和步骤的狭义地讲:算法是处理一个问题采取的方法和步骤的描画。描画。下面经过两个简单的例子加以阐明:下面经过两个简单的例子加以阐明:例例4.1输入三个数,然后输出其中最大的数。输入三个数,然后输出其中最大的数。将三个数依次输入到变量、将三个数依次输入到变量、B、C中,设变量中,设变量MAX存放存放最大

3、数。其算法如下:最大数。其算法如下:例例4.2输入入10个数,打印个数,打印输出其中最大的数。出其中最大的数。算法算法设计如下:如下:1输入入1个数个数,存入存入变量量A中中,将将记录数据个数的数据个数的变量量N赋值为1,即,即N=12将将A存入表示最大存入表示最大值的的变量量Max中,即中,即Max=A3再再输入一个入一个值给A,假,假设AMax那么那么Max=A,否那么否那么Max不不变4让记录数据个数的数据个数的变量添加量添加1,即,即N=N+15判判别N能否小于能否小于10,假,假设成立那么成立那么转到第到第3步步执行,行,否那么否那么转到第到第6步。步。6打印打印输出出max1) 输

4、入A、B、C。2) A与B中大的一个放入MAX中。3) 把C与MAX中大的一个放入MAX中。4) 输出MAX,MAX即为最大数。4.1.2算法的特性算法的特性1有有穷性性2确定性确定性3有有0个或多个个或多个输入入4有一个或多个有一个或多个输出出5有效性有效性4.1.3算法的表示算法的表示一、自然言一、自然言语与与伪代代码表示算法表示算法自然言自然言语:就是指人:就是指人们日常运用的言日常运用的言语,可以是可以是汉语、英、英语或其它言或其它言语。伪代代码:是用介于自然言:是用介于自然言语和和计算机言算机言语之之间的文字和符号包括数学符号来描画的文字和符号包括数学符号来描画算法。算法。例如:例例

5、如:例4.1可用如下的可用如下的伪代代码表示表示Begin算法开算法开场输入入A,B,CIFAB那么那么AMax否那么否那么BMaxIFCMax那么那么CMaxPrintMaxEnd(算法算法终了了)二二用用传统流程流程图表示算法表示算法处置框起止框I/O框判别框流程线衔接点1、传统流程流程图中的根本符号中的根本符号2、三种根本构造的表示、三种根本构造的表示1顺序构造顺序构造条件语句1语句2YN语句1语句22选择构造选择构造条件(a)条件语句组3循环构造循环构造a)当型循环当型循环b)直到循环直到循环YNYN(b)语句组三种根本构造的特点:三种根本构造的特点:1只需一个入口只需一个入口2只需一

6、个出口只需一个出口3不存在死不存在死语句句4不存在死循不存在死循环例:例:例例4.2输入入10个数,打印个数,打印输出其中的最大的数的流程出其中的最大的数的流程图从从10个数中选出最大的数的流程图个数中选出最大的数的流程图NMaxMax =A输入A开场再输入给AN=N+1打印Max终了YNNY4.1.4用用NS流程流程图表示算法表示算法将全部算法写在一个矩形框内,在矩形内还可包含其将全部算法写在一个矩形框内,在矩形内还可包含其它从属于它的框它从属于它的框三种根本构造的三种根本构造的NS图表示:表示:语句A语句B语句A语句B条件YN1、顺序构造、顺序构造2、选择构造、选择构造语句组3循环构造循环

7、构造a)当型循环当型循环b)直到循环直到循环当条件成立语句组直到当条件成立例:例:画出从画出从10个数中个数中选出最大的数的出最大的数的NS流程流程图(a)(b)传统流程图NMaxMax =A输入A开场再输入给AN=N+1打印Max终了YNNY输入A当NMaxYN输入APrivateSubForm_Click()Dima%,max%,i%a=Val(InputBox(A=?)max=aFori=1To10a=Val(InputBox(A=?)IfamaxThenmax=aNextiPrintMax=;maxEndSub 最后需求阐明的是:上面引见的算法表示是给人看的,即是为协助程序开发人员阅读

8、、编写程序而设计的一种辅助工具,程序那么必需符一计算机言语的语法规那么。 下面是例4.2的计算机 程序,即为用计算机言语表示算法:4.1.6构造化程序设计方法补充构造化程序设计方法补充一、用计算机处理问题的过程一、用计算机处理问题的过程提出、分提出、分析析问题确定算确定算法模型法模型设计算法算法编写写程序程序调试程序程序分析分析输出出结果果正确正确合理合理终了了不正确不正确二、构造化程序二、构造化程序设计思想思想自自顶向下、逐向下、逐渐细化、模化、模块化化自自顶向下:先从全局、整体向下:先从全局、整体设计逐逐渐细化:将一个化:将一个问题分解成几个分解成几个较小的小的问题处理理模模块化:化:将一

9、个大将一个大义务分解成假分解成假设干个干个较小小的部分,的部分,每每个部分承当一定功能,称个部分承当一定功能,称为“功功能模能模块例:例:给100个整数,打印个整数,打印输出其中的素数出其中的素数S1NS流程流程图输入入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让x1,x2,x100中的中的非素非素变为0S3S2输入输入xi当当i=100i=i+1i=1S1细化细化xi0当当i=100i=i+1i=1YN打印打印xiS3细化细化S1NS流程流程图输入入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让x1

10、,x100中中的非素的非素变为0S3S2S2细化细化判别判别xi能否是素数,能否是素数,假设不是那么将假设不是那么将xi=0当当i=100i=i+1i=1S21r=0rxi/2S21细化细化输入入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让x1,x100中的非素中的非素变为0细化后的流程图细化后的流程图输入输入xi当当i=100i=i+1i=1当当ixi/2i=i+1xi0当当i=100i=1YN打印打印xii=i+14.2顺序构造顺序构造4.2.1 4.2.1 赋值语句句 方式方式: : 变量名表达式量名表达式 对象象. .属性表达式属性表达式

11、 功能:功能: 将表达式的将表达式的值赋值给变量名或指量名或指定定对象的属性。象的属性。 普通用于普通用于给变量量赋值或或对控控件件设定属性定属性值. . 例:例: sRate!=0.1 sRate!=0.1 Text1.Text Text1.Text 欢迎运迎运用用Visual Basic 6.0Visual Basic 6.0阐明:明: 1 1 执行行过程:先求表达式的程:先求表达式的值,然后将,然后将值赋值给左左边的的变量。量。 2 2 右右边的表达式可以是的表达式可以是变量、常量、函数量、常量、函数调用等特殊的表达式。用等特殊的表达式。 3 3 不要将不要将“了解了解为数学上的等号:数

12、学上的等号: A=A+1 A=A+1 是表示将是表示将A A单元元的的值加后以放回到加后以放回到A A单元。元。执行过程如右图执行过程如右图4赋值符号“=左边一定只能是变量名或对象的属性援用,不能是常量、符号常量、表达式。 下面的赋值语句都是错的:5=X 左边是常量。Abs(X)=20 左边是函数调用,即是表达式。 5. 赋值符号“=两边的数据类型普通要求应一致。 4.2.2数据的数据的输出出Print方法方法Print方法的普通格式: 对象名.Print,|;阐明:明:对象象名名.可可以以是是窗窗体体名名、图片片框框名名,也也可可是是立立刻刻窗窗口口“Debug。假假设省省略略对象象,那那么

13、么表表示示在在当当前前窗窗体体上上输出出。在在2.3节窗窗体体对象象的的方方法法中中对Print方方法法做做了了详细的的引引见。用用Print方方法法在在图片片框框和和立立刻刻窗窗口口对象象中中输出出与与在在窗窗体体对象中象中输出完全一出完全一样。4.2.3用用户交互函数和交互函数和过程程1.InputBox函数函数变量名量名=InputBox$(,)其中其中:提示提示提示信息提示信息,标题标题区区显示示,缺省缺省输入区缺省入区缺省值。例如,要在屏幕上例如,要在屏幕上显示如下的示如下的对话框框:例如:有以下例如:有以下语句如下句如下:Dimx%x=Val(InputBox(“请输入一个数入一个

14、数,“输入框入框,100)语句句执行后翻开如下行后翻开如下对话框。框。缺省值标题题提示2.MsgBox函数和函数和MsgBox过程程函数方式函数方式:变量量%=MsgBox(提示提示,按按钮图标+缺省按缺省按钮+方式方式,标题)过程方式程方式:MsgBox提示提示,按按钮图标+缺省按缺省按钮+方式方式,标题图标标题提示信息命令按钮阐明:明:“标题和和“提示与提示与InputBox函数中函数中对应的参数一的参数一样;“按按钮图标+缺省按缺省按钮+方式是整型表达式,决方式是整型表达式,决议信息框按信息框按钮数目、出如今信息框上的数目、出如今信息框上的图标类型及操作方型及操作方式式(见表表4.1)假

15、假设程序中需求前往程序中需求前往值,那么运用函数,否那么可,那么运用函数,否那么可调用用过程。程。按按钮及及图标值如下如下:根据用根据用户所所选按按钮,函数前,函数前往往1717的整数的整数值,其含,其含义如下表如下表: :表表4.2)4.2)4.2.4 注释语句 其语法格式为:Rem 或 阐明:1. 指要包括的任何注释文本。在Rem关键字和注释内容之间要加一个空格。可以用一个英文单引号“来替代Rem关键字。2. 假设在其他语句行后面运用Rem关键字,必需用冒号(:)与语句隔开。假设用英文单引号“,那么在其他语句行后面不用加冒号(:)。例如:Const PI=3.1415925 符号常量PIS

16、=PI*r*r : Rem计算圆的面积4.3选择构造构造1.IfThen语句句(单分支构分支构造造)IfThen语句句块EndIf或或IfThen例例:知两个数知两个数x和和y,比,比较它它们的大的大小,小,使得使得x大于大于y.IfxyThent=x:x=y:y=tEndIf或或IfxyThent=x:x=y:y=t2. IfThenElse语句(双分支构造) If Then Else End If If Then Else 例如:例如:输出出x,y两个中两个中值较大的一个大的一个值。IFXYThenPrintXElsePrintYEndIf也可以写成如下的也可以写成如下的单行方式:行方式:

17、IFXYThenPrintXElsePrintY 双分支选择构造执行过程 例例4.3设计一个求解一元二次方程的程序设计一个求解一元二次方程的程序3.IfThenElseIf语句句(多分支构造多分支构造)方式方式:IfThenElseIfThenElse语句句块n+1EndIf例例4.4:输入一学生成果,入一学生成果,评定其等定其等级。方法是:。方法是:90100分分为“优秀,秀,8089分分为“良好,良好,7079分分为“中等,中等,6069分分为“及格,及格,60分以分以为“不合格不合格执行过程运用IF语句实现的程序段如下:If x=90 thenPrint 优秀ElseIf x=80 Th

18、enPrint 良好ElseIf x=70 ThenPrint 中等ElseIf x=60 ThenPrint 及格ElsePrint 不及格End If4.3.2SelectCase语句情况句情况语句句方式:方式:SelectCase变量或表达式量或表达式Case表达式列表表达式列表1语句句块1Case表达式列表表达式列表2语句句块2CaseElse语句句块n+1EndSelect:与:与同同类型的下面四种型的下面四种方式之一:方式之一:表达式表达式例例:A+5一一组枚枚举表达式表达式(用逗号分隔用逗号分隔)2,4,6,8表达式表达式1To表达式表达式260to100Is关系运算符表达式关系

19、运算符表达式Is60数值型或字符串表达式例如:将例例如:将例4.3运用运用selectcase.语句来句来实现的程序段如下:的程序段如下:SelectCasexCase90to100Print优秀秀Case80to89Print良好良好Case70to79Print中等中等Case60to69Print及格及格CaseElsePrint不及格不及格EndSelect补充例题:设计一个由计算机来当小学低年级学生算术教师的补充例题:设计一个由计算机来当小学低年级学生算术教师的VB运用程序,要求给出一系列的两个运用程序,要求给出一系列的两个110数的四那么运算的算数的四那么运算的算术题,学生输入该题

20、的答案,计算机根据学生的答案判别正确术题,学生输入该题的答案,计算机根据学生的答案判别正确与否,并给出成果,单击终了命令按钮,退出运用程序。与否,并给出成果,单击终了命令按钮,退出运用程序。分析分析:产生产生110操作数,可经过操作数,可经过Int(10*Rnd+1)实现实现4.3.3选择构造的嵌套构造的嵌套在在IF语句的句的Then分支和分支和Else分支中可以完好地嵌套另一分支中可以完好地嵌套另一IF语句或句或SelectCase语句,同句,同样SelectCase语句每一个句每一个Case分支中分支中都可嵌套另一都可嵌套另一IF语句或另一句或另一SelectCase语句。下面是两种正确句

21、。下面是两种正确的嵌套方式:的嵌套方式:1IFThen.IFThenElse.EndIf.Else.IFThen.Else.EndIf.EndIF2IFThen.SelectCaseCaseIFThenElse.EndIfCase.EndSelect.EndIF留留意意:只只需需在在一一个个分分支支内内嵌嵌套套,不不出出现现交交叉叉,满满足足构构造造规规那那么么,其其嵌嵌套套的的方方式式将将有有很很多多种种,嵌嵌套套层层次次也也可可以以恣恣意意多多。对对于于多多层层IF嵌嵌套套构构造造中中,要要特特别别留留意意IF与与Else的的配配对对关关系系,一一个个Else必必需需与与IF配配结结,配配

22、对对的的原原那那么么是是:在在写写含含有有多多层层嵌嵌套套的的程程序序时时,建建议议运运用用缩缩进进对对齐齐方方式式,这这样样容容易易阅阅读读和维护。和维护。例例4.5 设计一个用户身份验证程序,运转界面如以下图所示。 4.4 4.4 循循环构造构造1. For1. For循循环语句句 ( (普通用于循普通用于循环次数知次数知) )方式方式 For For 循循环变量初量初值 to to 终值 Step Step 步步长 语句句块Exit ForExit For 语句句块 Next Next 循循环变量量循环体 0 初值终值 =1 时,可省略终值=0 死循环步长步长循环次数循环次数例例:For

23、I=2To13Step3PrintI,NextIPrint“I=“,I循环执行次数循环执行次数输出输出I的值分别为的值分别为:25811出了循环输出为出了循环输出为:I=14例4.6 编程计算:S=1+2+3+100Dim S%, I%S=0 累加前变量S为0For I=1 to 100 S=S+INext IPrint S=,S 当N=100N=N+1打印SS=0,N=1S=S+N例4-5的算法流程图方式方式1:当型循:当型循环DoWhile|Until语句句块ExitDo语句句块Loop4.4.2DoLoop循循环语句句方式方式2:(直到循直到循环Do语句句块ExitDo语句句块LoopW

24、hile|Until条 件语句块语句块TFExit Do条 件语句块语句块TFExit DoDoUntilLoop执行行过程程DoLoopUntil执行行过程程阐明:明:1当当运运用用While构构成成循循环时,当当条条件件为“真真,那那么么反反复复执行行循循环体体,当当条条件件为“假假,那么退出循那么退出循环。2当当运运用用Until构构成成循循环时,当当条条件件为“假假,那那么么反反复复执行行循循环体体,直直到到条条件件成成立立,即即为“真真时,那么退出循,那么退出循环。3在在循循环体体内内普普通通应有有一一个个专门用用来来改改动条条件件表表达达式式中中变量量的的语句句,以以使使随随着着循

25、循环的的执行行,条条件件趋于于不不成成立立或或成成立,最后到达退出循立,最后到达退出循环。4语句句ExitDo的的作作用用是是退退出出它它所所在在的的循循环构构造造,它它只只能能用用在在DO/Loop构构造造中中,并并且且经常常是是同同选择构构造造一一同同出出如如今今循循环构造中,用来构造中,用来实现当当满足某一条件足某一条件时提早退出循提早退出循环。4.4.3WhileWend语句句运用格式如下:运用格式如下:WhileWend阐 明明 : 该 语 句句 的的 功功 能能 与与 Do While .Loop实现的循的循环完全一完全一样。例:用doLoop语句改写前面的例题4.5例例4.8求两

26、个整数的最大公约数、最小公倍数求两个整数的最大公约数、最小公倍数Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m: m=n: n=t r=m mod n Do While (r 0) m=n n=r r= m mod n LoopPrint 最大公约数=, n Print 最小公倍数=, nm/n 算法运用转碾除法,流程图如右,实现的程序代码如下:4.4.4循循环的嵌套的嵌套多重循多重循环构造构造假假设在一个循在一个循环内完好地包含另一个循内完好地包含另一个循环构造,构造,那么称那么称为多重循多重循

27、环,或循,或循环嵌套,嵌套的嵌套,嵌套的层数可数可以根据需求而定,嵌套一以根据需求而定,嵌套一层称称为二重循二重循环,嵌套,嵌套二二层称称为三重循三重循环。上面引上面引见的几种循的几种循环控制构造可以相互嵌套,控制构造可以相互嵌套,下面是几种常下面是几种常见的二重嵌套方式:的二重嵌套方式:1For I=. . For J=. . Next J . Next I2For I=. . Do While/Until . . Loop . Next I3Do While. . For J=. . Next J . Loop4Do While/Until. . Do While/Until . . Lo

28、op . Loop例如:打印九九乘法表例如:打印九九乘法表.Fori=1To9Forj=1To9se=i&j&=&i*jPicture1.PrintTab(j-1)*9+1);se;NextjPicture1.PrintNexti对于循环的嵌套,要留意以下事项:对于循环的嵌套,要留意以下事项:(1)内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2)外循环必需完全包含内循环,不能交叉;外循环必需完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转不能从循环体外转向循环体内,也不能从外循环转向内循环向内循环.正正确确错错误误Fori=1To10Forj=

29、1To20NextiNextjFori=1To10Fori=1To20NextiNextiFori=1To10Forj=1To20NextjNextiFori=1To10NextiFori=1To10Nexti4.4.5几种循环语句比较几种循环语句比较4.4.6循环构造与选择构造的嵌套循环构造与选择构造的嵌套 在循环构造中可以完好嵌套选择构造即整个选择构造都属于循环体。在选择构造中嵌套循环构造时,那么要求整个循环构造必需完好地嵌套在一个分支内,一个循环构造不允许出如今两个或两个以上的分支内。 1For I= IF Then End IF Next I6 IF Then For I= End I

30、F Next I5Select Case For I= Case Case Next I End Select3For I= IF Then Next I End IF2IF Then For I= Next I End IF4For I= Select Case Case Case End Select Next I4.5 4.5 其它控制语句其它控制语句 4.5.1 Goto 4.5.1 Goto 语句语句 方式方式: Go To : Go To 标号标号| |行号行号 作用是无条件地转移到标号或行号指定的作用是无条件地转移到标号或行号指定的那行语句那行语句. . 标号是一个字符序列标号是

31、一个字符序列, ,行号是一行号是一个数字序列。个数字序列。 4.5.2Exit语句语句Exit 语句用于退出 Do.Loop、For.Next、Function或Sub代码块。 对应的运用格式为:Exit Do、Exit For、Exit Function、Exit Sub。分别表示退出DO循环、For循环、函数过程、子过程。例如: 下面的例子是运用 Exit 语句退出 For.Next 循环、Do.Loop 循环及子过程。Private Sub Form_Click()Dim I%, Num% Do While True 建立无穷循环。 For I = 1 To 100 循环 100 次。

32、Num = Int(Rnd * 100) 生成一个099的随机数。 Select Case Num Case 10: Exit For 退出 For.Next 循环。 Case 50: Exit Do 退出 Do.Loop 循环。 Case 64: Exit Sub 退出子过程。 End Select Next I LoopEnd Sub4.5.3End语句语句方式:方式:End功能:终了一个程序的运转。功能:终了一个程序的运转。在在VisualBasic中还有多种方式的中还有多种方式的End语句,语句,用于终了一个程序块或过程。用于终了一个程序块或过程。其方式有:其方式有:EndIfEndS

33、electEndTypeEndWithEndSubEndFunction等等它们与对应的语句配对运用。它们与对应的语句配对运用。4.5.4暂停语句暂停语句Stop语句用来暂停程序的执行,相当于在事件代码中语句用来暂停程序的执行,相当于在事件代码中设置断点。设置断点。语法格式为:语法格式为:Stop阐明:阐明:1.Stop语句的主要作用是把解释程序置为中断语句的主要作用是把解释程序置为中断(Break)方方式,以便对程序进展检查和调试。可以在程序的任何地方式,以便对程序进展检查和调试。可以在程序的任何地方放置放置Stop语句,当执行语句,当执行Stop语句时,系统将自动翻开立刻语句时,系统将自动

34、翻开立刻窗口。窗口。2.与与End语句不同。语句不同。4.5.5With.EndWith语句语句方式:方式:With对象名对象名语句块语句块EndWith阐明:阐明:With语句可以对某个对象执行一系列的语句,而语句可以对某个对象执行一系列的语句,而不用反复指出对象的称号。不用反复指出对象的称号。例如,要改动一个对象的多个属性,可以在例如,要改动一个对象的多个属性,可以在With控制控制构造中加上属性的赋值语句,这时候只是援用对象一次而不构造中加上属性的赋值语句,这时候只是援用对象一次而不是在每个属性赋值时都要援用它。下面的例子显示了如何运是在每个属性赋值时都要援用它。下面的例子显示了如何运用

35、用With语句来给同一个对象的几个属性赋值。语句来给同一个对象的几个属性赋值。例例如如,需需求求对对同同一一对对象象设设置置几几个个属属性性。途途径径之之一一是是运运用用多多条条语句。语句。PrivateSubForm_Load()Command1.Caption=退出退出(E&xit)Command1.Top=500Command1.Left=4500Command1.Enabled=TrueEndSub运用运用With.EndWith语句,上面程序的代码如下。语句,上面程序的代码如下。PrivateSubForm_Load()WithCommand1.Caption=退出退出(E&xit)

36、.Top=500.Left=4500.Enabled=TrueEndWithEndSub4.6运用程序运用程序举例例4.6.1素数与哥德巴赫猜素数与哥德巴赫猜测例例4.10判别一个给定的整数能否为素数。判别一个给定的整数能否为素数。算算法法思思绪:素素数数指指除除了了能能被被1和和本本身身外外,不不能能被被其其他他整整数数整整除除的的自自然然数数。判判别整整数数N是是不不是是素素数数的的根根本本方方法法是是:将将N分分别除除以以2,3,N-1,假假设都都不不能能整整除除,那那么么N为素素数数。由由于于N=Sqr(N)*Sqr(N),所所以以,当当N能能被被大大于于等等于于Sqr(N)的的整整数

37、数整整除除时,一一定定存存在在一一个个小小于于等等于于Sqr(N)的的整整数数,使使N能能被被它它整整除除,因因此此只只需需判判别N能能否否被被2,3,Sqr(N)整除即可。整除即可。算法流程算法流程图如下:如下:DimN%,I%,K%N=Val(InputBox(N=?)K=Int(Sqr(N)ForI=2ToKIfNModI=0ThenExitForNextIIfIKThenPrintN;是素数是素数ElsePrintN;不是素数不是素数EndIf例例4.11编一程序验证哥德巴赫猜测:一个大于等于编一程序验证哥德巴赫猜测:一个大于等于6的偶数的偶数可以表示为两个素数之和。例如:可以表示为两

38、个素数之和。例如: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所所示示。将将程程序序代代码写到窗体的单击事件中。码写到窗体的单击事件中。实现上面算法的程序代码如下:Private Sub Form_Click()

39、 Dim N%, N1%, N2%, I%, K1%, K2% N=Val(InputBox(输入大于6的偶数) For N1 = 3 To N 2 Step 2 K1 = Int(Sqr(N1) For I = 2 To K1 判别N1能否是素数 If N1 Mod I = 0 Then Exit For Next I If I K1 Then 假设N1为素数,将N分解为N1+N2 N2 = N - N1 K2 = Int(Sqr(N2) For I = 2 To K2 判别N2能否是素数 If N2 Mod I = 0 Then Exit For Next I If I K2 Then 假

40、设N2也为素数,那么打印输出 Print N & = & N1 & + & N2 End If End If Next N1End Sub4.6.2字符串处置字符串处置例例4.12统计文本框中英文文本框中英文单词的个数。的个数。算法算法设计1从从文文本本字字符符串串的的左左边开开场,取取出出一一个个字字符符;设逻辑量量WT表表示示所所取取字字符符能能否否是是单词内内的的字字符符,初初值设为False。2假假设所所取取字字符符不不是是“空空格格、“逗逗号号、“分分号号或或“感感慨慨号号等等单词的的分分隔隔符符,再再判判别WT能能否否为True,假假设WT不不为True,那那么么表表示示新新单词的

41、的开开场,让单词数数Nw=Nw+1;让WT=True。3假假设所所取取字字符符是是“空空格格、“逗逗号号、“分分号号或或“感感慨慨号号等等单词的的分分隔隔符符,那那么么表表示示字字符符不不是是单词内内字字符符,让WT=False。4再再依依次次取取下下一一个个字字符符,反反复复23步步直直到到文文本本终了。了。例例4.13字符的加密和解密字符的加密和解密加密算法是:加密算法是:将每个字母将每个字母C加或减一序数加或减一序数K,即用它后的第,即用它后的第K个字个字母替代,母替代,变换式公式:式公式:c=chr(Asc(c)+k)例如:例如:设序数序数k为5,这时AF,af,BG当加序数后的字母超

42、越当加序数后的字母超越Z或或z那么那么c=Chr(Asc(c)+k-26)例如:例如:YouaregoodDtzfwjltti解密算法:解密解密算法:解密为加密的逆加密的逆过程程将每个字母将每个字母C减或加一序数减或加一序数K,即,即c=chr(Asc(c)-k),例如:序数例如:序数k为5,这时ZU,zu,YT当加序数后的字母小于当加序数后的字母小于A或或a那么那么c=Chr(Asc(c)-k+26) 迭代法在数学上也称“递推法,凡是由一给定的初值,经过某一算法公式可求得新值,再由新值按照同样的算法又可求得另一个新值,这样经过有限次即可求得其解。4.6.3迭代法迭代法例例4.14用迭代法求某个数的平方根。用迭代法求某个数的平方根。知求平方根的迭代公式为:知求平方根的迭代公式为:算法思想如下:算法思想如下:设平方根的解平方根的解为x,可假定一个初,可假定一个初值x0=a/2(估估计值),根据迭代公式得到一个新的根据迭代公式得到一个新的值x1,这个新个新值x1比初比初值x0更更接近要求的接近要求的值x;再以新;再以新值作作为初初值,即:,即:x1x0,重新,重新按原来的方法求按原来的方法求x1,反复,反复这一一过程直到程直到|x1-x0|(某一某一给定定的精度的精度)。此。此时可将可将x1作作为问题的解。的解。程序代码见教材Pg.103

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号