VB程序设计概述4.1结构化程序设计ppt课件

上传人:夏** 文档编号:591314125 上传时间:2024-09-17 格式:PPT 页数:88 大小:1.08MB
返回 下载 相关 举报
VB程序设计概述4.1结构化程序设计ppt课件_第1页
第1页 / 共88页
VB程序设计概述4.1结构化程序设计ppt课件_第2页
第2页 / 共88页
VB程序设计概述4.1结构化程序设计ppt课件_第3页
第3页 / 共88页
VB程序设计概述4.1结构化程序设计ppt课件_第4页
第4页 / 共88页
VB程序设计概述4.1结构化程序设计ppt课件_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《VB程序设计概述4.1结构化程序设计ppt课件》由会员分享,可在线阅读,更多相关《VB程序设计概述4.1结构化程序设计ppt课件(88页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 VB 程序程序设计概述概述4.1 4.1 构造化程序构造化程序构造化程序构造化程序设计设计4.2 4.2 顺顺序构造序构造序构造序构造4.4 4.4 循循循循环环构造构造构造构造4.3 4.3 选择选择构造构造构造构造4.5 4.5 综综合运用程序合运用程序合运用程序合运用程序举举例例例例;4.1 4.1 构造化程序设计构造化程序设计构造化程序设计构造化程序设计l l程序程序程序程序设计设计方法方法方法方法阅历阅历了手工了手工了手工了手工编编程、构造化程序程、构造化程序程、构造化程序程、构造化程序设计设计方法方法方法方法和面向和面向和面向和面向对对象的程序象的程序象的程序象的程序

2、设计设计方法几个方法几个方法几个方法几个阶阶段。段。段。段。l lVBVBVBVB作作作作为为一种面向一种面向一种面向一种面向对对象的程序象的程序象的程序象的程序设计设计言言言言语语,既承,既承,既承,既承继继了构造了构造了构造了构造化程序化程序化程序化程序设计设计的的的的优优点,又采用了面向点,又采用了面向点,又采用了面向点,又采用了面向对对象、事件象、事件象、事件象、事件驱动驱动的的的的编编程机制。就整个工程来程机制。就整个工程来程机制。就整个工程来程机制。就整个工程来说说,它是由,它是由,它是由,它是由许许多面向多面向多面向多面向对对象的象的象的象的事件事件事件事件过过程程程程组组成的,

3、程序运成的,程序运成的,程序运成的,程序运转过转过程中程中程中程中经过经过触触触触发发事件,事件,事件,事件,驱驱动执动执行相行相行相行相应应的事件的事件的事件的事件过过程来程来程来程来实现实现程序程序程序程序员员的意的意的意的意图图。;4.1.1 4.1.1 算法及其表示算法及其表示算法及其表示算法及其表示l l 算法是算法是算法是算法是处处理理理理问题问题的方法和步的方法和步的方法和步的方法和步骤骤。要用。要用。要用。要用计计算机来算机来算机来算机来处处理一个理一个理一个理一个实实践践践践问题问题,编编程程程程时时,首先要,首先要,首先要,首先要设计处设计处理理理理这这个个个个问题问题的算

4、法方的算法方的算法方的算法方法和步法和步法和步法和步骤骤。l l例例例例 将两个将两个将两个将两个变变量量量量x x x x和和和和y y y y的的的的值进值进展交展交展交展交换换,设设x = 10x = 10x = 10x = 10,y = 20y = 20y = 20y = 20。l l 分析:分析:分析:分析:变变量是存量是存量是存量是存储单储单元的代名元的代名元的代名元的代名词词,存,存,存,存储储器可以反复地器可以反复地器可以反复地器可以反复地“读读,“写,假写,假写,假写,假设设直接交直接交直接交直接交换换,即,即,即,即x = y : y = xx = y : y = xx =

5、 y : y = xx = y : y = x,那么,那么,那么,那么x x x x原来的原来的原来的原来的值值被覆盖其被覆盖其被覆盖其被覆盖其结结果果果果x x x x和和和和y y y y的的的的值值都是都是都是都是20202020。在此可借助一个。在此可借助一个。在此可借助一个。在此可借助一个中中中中间变间变量量量量t t t t作作作作为为一个一个一个一个暂时暂时的的的的“容器。算法容器。算法容器。算法容器。算法为为:l l步步步步骤骤1 1 1 1:将:将:将:将x x x x的的的的值暂值暂存在存在存在存在t t t t中;中;中;中;l l步步步步骤骤2 2 2 2:将:将:将:

6、将y y y y的的的的值值存入存入存入存入x x x x中;中;中;中;l l步步步步骤骤3 3 3 3:将:将:将:将t t t t的的的的值值存入存入存入存入y y y y中。中。中。中。; 算法的几种表示方法:算法的几种表示方法:算法的几种表示方法:算法的几种表示方法: 自然言自然言自然言自然言语语、伪伪代代代代码码、PADPAD图图、流程、流程、流程、流程图图、N-SN-S构造流程构造流程构造流程构造流程图图等等。等等。等等。等等。流程流程流程流程图图也称也称也称也称为为框框框框图图,它是用一些几何,它是用一些几何,它是用一些几何,它是用一些几何图图形、形、形、形、流向流向流向流向线

7、线和文字和文字和文字和文字阐阐明来表示各种明来表示各种明来表示各种明来表示各种类类型的操作。常型的操作。常型的操作。常型的操作。常用的几种用的几种用的几种用的几种图图符如下符如下符如下符如下图图。4.1.1 4.1.1 算法及其表示算法及其表示算法及其表示算法及其表示;表示义务的开场或终了表示义务的开场或终了表示义务中的命令序列表示义务中的命令序列表示义务执行的走向表示义务执行的走向表示对条件进展判别表示对条件进展判别2衔接点衔接点处置框处置框;开开开开 始始始始翻开电脑翻开电脑翻开电脑翻开电脑翻开翻开翻开翻开 IE IE键入键入键入键入 sohu sohu按按按按 Enter Enter 键

8、键键键结结结结 束束束束开开开开 始始始始星期六天晴?星期六天晴?星期六天晴?星期六天晴?结结结结 束束束束去烧烤去烧烤去烧烤去烧烤Y Y去自习去自习去自习去自习N N 来看两个小例子:来看两个小例子:;4.1.2 4.1.2 构造化程序设计构造化程序设计构造化程序设计构造化程序设计l l构造化程序构造化程序构造化程序构造化程序设计设计根本思想之一:任何程序都可以采用根本思想之一:任何程序都可以采用根本思想之一:任何程序都可以采用根本思想之一:任何程序都可以采用顺顺序、序、序、序、选择选择、循、循、循、循环环三种根本构造来构造。三种根本构造来构造。三种根本构造来构造。三种根本构造来构造。这这三

9、种构造三种构造三种构造三种构造可以恣意可以恣意可以恣意可以恣意组组合、嵌套,构造各种复合、嵌套,构造各种复合、嵌套,构造各种复合、嵌套,构造各种复杂杂的程序。根本构的程序。根本构的程序。根本构的程序。根本构造只需一个入口和一个出口。造只需一个入口和一个出口。造只需一个入口和一个出口。造只需一个入口和一个出口。l l1 1 1 1、顺顺序构造:程序流程按照一个方向序构造:程序流程按照一个方向序构造:程序流程按照一个方向序构造:程序流程按照一个方向进进展,依次展,依次展,依次展,依次执执行行行行各各各各语语句。句。句。句。l l2 2 2 2、选择选择构造:程序流程出构造:程序流程出构造:程序流程

10、出构造:程序流程出现现一个或多个分支,按一定一个或多个分支,按一定一个或多个分支,按一定一个或多个分支,按一定的条件的条件的条件的条件选择选择其中之一其中之一其中之一其中之一执执行,也叫分支构造。中行,也叫分支构造。中行,也叫分支构造。中行,也叫分支构造。中间间可以可以可以可以有两条或多条分支。有两条或多条分支。有两条或多条分支。有两条或多条分支。;4.1.2 4.1.2 构造化程序设计构造化程序设计构造化程序设计构造化程序设计l l3 3 3 3、循、循、循、循环环环环构造:程序流程按一定的条件反复多次构造:程序流程按一定的条件反复多次构造:程序流程按一定的条件反复多次构造:程序流程按一定的

11、条件反复多次执执执执行行行行一段程序一段程序一段程序一段程序 循循循循环环环环体体体体 。循。循。循。循环环环环构造按退出循构造按退出循构造按退出循构造按退出循环环环环的条件可分的条件可分的条件可分的条件可分为为为为当型当型当型当型 WhileWhileWhileWhile 循循循循环环环环构造和直到型构造和直到型构造和直到型构造和直到型 UntilUntilUntilUntil 循循循循环环环环构造。构造。构造。构造。有效的循有效的循有效的循有效的循环环环环只允只允只允只允许许许许有限次的反复。有限次的反复。有限次的反复。有限次的反复。l l当型循当型循当型循当型循环环环环: : : :条件

12、成立条件成立条件成立条件成立时执时执时执时执行循行循行循行循环环环环体,条件不成立体,条件不成立体,条件不成立体,条件不成立时时时时退退退退出循出循出循出循环环环环;l l直到型循直到型循直到型循直到型循环环环环: : : :条件不成立条件不成立条件不成立条件不成立时执时执时执时执行循行循行循行循环环环环体,条件成立体,条件成立体,条件成立体,条件成立时时时时退出循退出循退出循退出循环环环环。当当当当型型型型循循循循环环直直直直到到到到循循循循环环;4.1.2 4.1.2 构造化程序设计构造化程序设计构造化程序设计构造化程序设计三种根本构造有如下共同特点:三种根本构造有如下共同特点:三种根本构

13、造有如下共同特点:三种根本构造有如下共同特点:只需一个入口,一个出口。只需一个入口,一个出口。只需一个入口,一个出口。只需一个入口,一个出口。无死无死无死无死语语句,所句,所句,所句,所谓谓“死死死死语语句是指一直句是指一直句是指一直句是指一直执执行不到的行不到的行不到的行不到的语语句。句。句。句。 无死循无死循无死循无死循环环,即循,即循,即循,即循环环次数是有限的。次数是有限的。次数是有限的。次数是有限的。;4.2 4.2 顺序构造顺序构造顺序构造顺序构造l l顺顺序构造是一种最序构造是一种最序构造是一种最序构造是一种最简单简单的算法构造,也是程序的算法构造,也是程序的算法构造,也是程序的

14、算法构造,也是程序设计设计中中中中最最最最简单简单、最常用得根本构造。其特点是:算法的每一、最常用得根本构造。其特点是:算法的每一、最常用得根本构造。其特点是:算法的每一、最常用得根本构造。其特点是:算法的每一个操作按照各自出个操作按照各自出个操作按照各自出个操作按照各自出现现的先后的先后的先后的先后顺顺序从上到下序从上到下序从上到下序从上到下线线性性性性执执行。行。行。行。 l l用程序用程序用程序用程序处处置置置置实实践践践践问题时问题时,经经常需求用常需求用常需求用常需求用户输户输入数据或要入数据或要入数据或要入数据或要求程序求程序求程序求程序输输出数据。下面引出数据。下面引出数据。下面

15、引出数据。下面引见见几个几个几个几个语语句,并由它句,并由它句,并由它句,并由它们组们组成成成成顺顺序构造。序构造。序构造。序构造。这这些些些些语语句包括句包括句包括句包括赋值语赋值语句、句、句、句、输输入入入入输输出出出出语语句等。句等。句等。句等。;4.2.1 4.2.1 赋值语赋值语赋值语赋值语句句句句格式:目的操作符源操作符格式:目的操作符源操作符格式:目的操作符源操作符格式:目的操作符源操作符功能:把源操作符的功能:把源操作符的功能:把源操作符的功能:把源操作符的值赋给值赋给目的操作符。目的操作符。目的操作符。目的操作符。 源源源源 操操操操 作作作作 符符符符 :变变量、表达式、常

16、量及量、表达式、常量及量、表达式、常量及量、表达式、常量及带带有属性的有属性的有属性的有属性的对对象象象象 目的操作符:目的操作符:目的操作符:目的操作符:变变量和量和量和量和带带有属性的有属性的有属性的有属性的对对象象象象 = = :赋值赋值号号号号 例:例:例:例: Data Data1515 Text1.text=Str(Data) Text1.text=Str(Data) x=x+2 x=x+2 S$=“Welcome S$=“Welcome;注注 意:意:1赋值语句兼有句兼有计算和算和赋值双重功能;双重功能;2 “是是赋值号,与数学上的等号意号,与数学上的等号意义不同;不同;3“目的

17、操作符和目的操作符和“源操作符的数据源操作符的数据类型通常要求型通常要求一致,但一致,但VB 提供的提供的对某些数据某些数据类型的自型的自动转换机制,机制,可可强迫迫变量量转换为适当的数据适当的数据类型。型。赋值赋值兼容与数据溢出兼容与数据溢出兼容与数据溢出兼容与数据溢出;4.2.4 4.2.4 注注注注释释释释、暂暂暂暂停与程序停与程序停与程序停与程序终终终终了了了了格式:格式:格式:格式: 注注注注释释内容内容内容内容 或或或或 Rem Rem 注注注注释释内容内容内容内容 1 1注注注注释语释语句是非句是非句是非句是非执执行行行行语语句。句。句。句。 2 2任何字符均可放在注任何字符均可

18、放在注任何字符均可放在注任何字符均可放在注释语释语句中作句中作句中作句中作为为注注注注释释内容。内容。内容。内容。 例如:例如:例如:例如: This is a test statement This is a test statement Rem Rem 计计算算算算圆圆的周的周的周的周长长 a=3:b=4:c=5 a,b,c a=3:b=4:c=5 a,b,c为为三角形的三角形的三角形的三角形的边边注注注注释语释语句句句句;暂暂停停停停语语句句句句格式:格式:格式:格式:StopStop阐阐明:明:明:明: 1 1可放置在可放置在可放置在可放置在过过程中的任何地方,相当于在程序代程中的任何

19、地方,相当于在程序代程中的任何地方,相当于在程序代程中的任何地方,相当于在程序代码码中中中中设设置断点,置断点,置断点,置断点,类类似于似于似于似于执执行行行行“ “运运运运转转菜菜菜菜单单中的中的中的中的“ “中断命令。中断命令。中断命令。中断命令。 2 2执执行行行行StopStop语语句句句句时时,系,系,系,系统统将自将自将自将自动动翻开翻开翻开翻开“ “立刻窗口,立刻窗口,立刻窗口,立刻窗口,方便程序方便程序方便程序方便程序员调试员调试跟踪程序。跟踪程序。跟踪程序。跟踪程序。 3 3程序程序程序程序调试终调试终了后,生成可了后,生成可了后,生成可了后,生成可执执行文件之前,行文件之前

20、,行文件之前,行文件之前,应删应删除代除代除代除代码码中的一切中的一切中的一切中的一切StopStop语语句。句。句。句。;终终了了了了语语句句句句格式:格式:格式:格式:EndEnd功能:通常用来功能:通常用来功能:通常用来功能:通常用来终终了一个程序的了一个程序的了一个程序的了一个程序的执执行。行。行。行。在不同在不同在不同在不同环环境下的其他用途:境下的其他用途:境下的其他用途:境下的其他用途:End SubEnd Sub:终终了一个了一个了一个了一个SubSub过过程;程;程;程;End FunctionEnd Function:终终了一个了一个了一个了一个FunctionFuncti

21、on过过程;程;程;程;End IfEnd If:终终了一个了一个了一个了一个If If 语语句句句句块块;End TypeEnd Type:终终了了了了记录类记录类型的定型的定型的定型的定义义;End SelectEnd Select:终终了情况了情况了情况了情况语语句。句。句。句。;4.2.2 4.2.2 数据数据数据数据输输输输入入入入InputBox InputBox 函数函数函数函数格式:格式:格式:格式:Inputbox$Inputbox$promptprompt,titletitle,defaultdefault ,xposxpos,yposypos,helpfilehelpfi

22、le,contextcontext参数参数参数参数阐阐明:明:明:明: 1 1xposxpos:指定:指定:指定:指定对话对话框的左框的左框的左框的左边边与屏幕左与屏幕左与屏幕左与屏幕左边边的的的的间间隔;隔;隔;隔; 2 2yposypos:指定:指定:指定:指定对话对话框的上框的上框的上框的上边边与屏幕上与屏幕上与屏幕上与屏幕上边边的的的的间间隔;隔;隔;隔; 3 3helpfilehelpfile:字字字字符符符符串串串串表表表表达达达达式式式式,识识别别协协助助助助文文文文件件件件,用用用用该该文文文文件件件件为对话为对话框提供上下文相关的框提供上下文相关的框提供上下文相关的框提供上下

23、文相关的协协助;助;助;助; 4 4contextcontext:数数数数值值表表表表达达达达式式式式,由由由由协协助助助助文文文文件件件件的的的的作作作作者者者者指指指指定定定定给给某某某某个个个个协协助助助助主主主主题题的的的的协协助助助助上上上上下下下下文文文文编编号号号号,它它它它与与与与 Helpfile Helpfile 参参参参数数数数必必必必需需需需同同同同时时提供或省略;提供或省略;提供或省略;提供或省略;;Inputbox$Inputbox$ promptprompt,titletitle,defaultdefault 1 1 promptprompt:对话对话对话对话框中

24、的提示音框中的提示音框中的提示音框中的提示音讯讯讯讯字符串表达式;字符串表达式;字符串表达式;字符串表达式; 2 2 titletitle:对话对话对话对话框框框框标题栏标题栏标题栏标题栏中的字符串表达式;中的字符串表达式;中的字符串表达式;中的字符串表达式; 3 3 defaultdefault:文本框中的字符串表达式,在无其它:文本框中的字符串表达式,在无其它:文本框中的字符串表达式,在无其它:文本框中的字符串表达式,在无其它输输输输入入入入时时时时作作作作为为为为缺省缺省缺省缺省值值值值;假;假;假;假设设设设省略省略省略省略defaultdefault,那么文本框,那么文本框,那么文本

25、框,那么文本框为为为为空。空。空。空。标 题提提 示示字符串字符串用户输入用户输入区默许值区默许值;【例】【例】【例】【例】 设计设计设计设计一个程序,由用一个程序,由用一个程序,由用一个程序,由用户输户输户输户输入一个入一个入一个入一个华华华华氏温度氏温度氏温度氏温度F F,程序可将其,程序可将其,程序可将其,程序可将其转转转转换为摄换为摄换为摄换为摄氏温度氏温度氏温度氏温度C C。转换转换转换转换公式公式公式公式为为为为C C5/9*(F5/9*(F32)32)Private Sub Command1_Click( ) End SubPrivate Sub Command2_Click(

26、) EndEnd Sub Dim F As Long, C As LongF Val(InputBox(请输请输入入华华氏温度氏温度, 例例4-1)C 5 / 9 * (F - 32)Text1.Text FText2.Text C华氏氏摄氏温度互氏温度互换;4.2.3 4.2.3 数据数据数据数据输输输输出出出出Print Print 方法方法方法方法格式:格式:格式:格式: 对对象名象名象名象名. Print . Print 表达式表表达式表表达式表表达式表 阐阐明:明:明:明: 1 1“ “对对象名可以是窗体、立刻窗口、象名可以是窗体、立刻窗口、象名可以是窗体、立刻窗口、象名可以是窗体、

27、立刻窗口、图图片框、打印机等片框、打印机等片框、打印机等片框、打印机等的称号的称号的称号的称号Name Name 属性,假属性,假属性,假属性,假设设省略省略省略省略对对象名在当前窗体上象名在当前窗体上象名在当前窗体上象名在当前窗体上输输出;出;出;出; 2 2“ “表达式表是一个或多个表达式,可表达式表是一个或多个表达式,可表达式表是一个或多个表达式,可表达式表是一个或多个表达式,可为为数数数数值值表达式表达式表达式表达式求出表达式的求出表达式的求出表达式的求出表达式的值值然后然后然后然后输输出或字符串原出或字符串原出或字符串原出或字符串原样输样输出。如假出。如假出。如假出。如假设设省略,省

28、略,省略,省略,那么那么那么那么输输出一空行;出一空行;出一空行;出一空行; 3 3多个表达式之多个表达式之多个表达式之多个表达式之间间可以用以下分隔符隔开:可以用以下分隔符隔开:可以用以下分隔符隔开:可以用以下分隔符隔开: “ “ ,:,:,:,:规规范范范范输输出格式,每出格式,每出格式,每出格式,每 14 14 列作列作列作列作为为一个一个一个一个输输出区段出区段出区段出区段 “ “ ;“ “:紧紧凑格式凑格式凑格式凑格式输输出出出出4 4 当当当当输输出数出数出数出数值值数据数据数据数据时时,数,数,数,数值值的前面有一个符号位,后面有一的前面有一个符号位,后面有一的前面有一个符号位,

29、后面有一的前面有一个符号位,后面有一个空格,而字符串前后都没有空格。个空格,而字符串前后都没有空格。个空格,而字符串前后都没有空格。个空格,而字符串前后都没有空格。 ;1218161519151614 14 列列列列为为为为1 1个个个个输输输输出区出区出区出区;与与与与 Print Print 方法有关的函数方法有关的函数方法有关的函数方法有关的函数Tab (n)Tab (n)功能:与功能:与功能:与功能:与 Print Print 方法一同运用,在参数方法一同运用,在参数方法一同运用,在参数方法一同运用,在参数 n n 指定的位指定的位指定的位指定的位置置置置输输输输出其后的出其后的出其后

30、的出其后的 表达式的表达式的表达式的表达式的值值值值。阐阐阐阐明:明:明:明: 1 1 n n 是数是数是数是数值值值值表达式,表达式,表达式,表达式,值为值为值为值为整数,假整数,假整数,假整数,假设设设设省略,那省略,那省略,那省略,那么将么将么将么将输输输输出点挪出点挪出点挪出点挪动动动动到下一个到下一个到下一个到下一个输输输输出区出区出区出区 每个每个每个每个输输输输出区占出区占出区占出区占 14 14 列列列列 的起点;的起点;的起点;的起点; 2 2 假假假假设设设设 n n 小于小于小于小于1 1,那么,那么,那么,那么 tab tab 将将将将输输输输出位置挪出位置挪出位置挪出

31、位置挪动动动动到到到到第第第第1 1列;列;列;列; 3 3 一个一个一个一个print print 方法中运用多个方法中运用多个方法中运用多个方法中运用多个TabTab函数函数函数函数时时时时,每个,每个,每个,每个TabTab函数函数函数函数对应对应对应对应一个一个一个一个输输输输出出出出项项项项,各,各,各,各项项项项之之之之间间间间用分号隔开。用分号隔开。用分号隔开。用分号隔开。 如:如:如:如:Print Tab(10); “GoodPrint Tab(10); “Good; tab(26); ; tab(26); MorningMorning ;SpcSpc n n 功能:与功能:

32、与功能:与功能:与 Print Print 方法一同运用,使光方法一同运用,使光方法一同运用,使光方法一同运用,使光标标标标从当前位置跳从当前位置跳从当前位置跳从当前位置跳过过过过 n n 个空格,个空格,个空格,个空格,对输对输对输对输出出出出进进进进展定位。展定位。展定位。展定位。留意:留意:留意:留意: 1 1Tab Tab 函数中的函数中的函数中的函数中的 n n :相:相:相:相对对于屏幕最左端第于屏幕最左端第于屏幕最左端第于屏幕最左端第 1 1 列而列而列而列而言的列号;言的列号;言的列号;言的列号; 2 2Spc Spc 函数中的函数中的函数中的函数中的 n n :相:相:相:相

33、对对于前一于前一于前一于前一输输出出出出项项的最后的最后的最后的最后 1 1 个字符所在列而言跳个字符所在列而言跳个字符所在列而言跳个字符所在列而言跳过过的空格数。的空格数。的空格数。的空格数。Tab函数与函数与Spc函数的比函数的比较较;415201016;Format$Format$ 数数数数值值值值表达式,格式字符串表达式,格式字符串表达式,格式字符串表达式,格式字符串 功能:使数功能:使数功能:使数功能:使数值值值值表达式的表达式的表达式的表达式的值值值值按按按按“ “格式字符串制定格式字符串制定格式字符串制定格式字符串制定的某种格的某种格的某种格的某种格 式式式式输输输输出。出。出。

34、出。 1 1 数数数数值值值值格式化格式化格式化格式化输输输输出:出:出:出:见见见见 P61 P61 表表表表4 42 2 2 2 日期和日期和日期和日期和时间时间时间时间格式化格式化格式化格式化输输输输出:出:出:出:见见见见 P61 P61 表表表表4 43 3 ;例例例例 Print Format(12345.6, “#,#.# Print Format(12345.6, “#,#.#) ) 输输出:出:出:出:12,345.612,345.6;例例例例 Print Format(Now, “yyyy Print Format(Now, “yyyy年年年年mm月月月月dddd日日日日h

35、h:mmhh:mm) ) 输输出:出:出:出:20072007年年年年4 4月月月月1212日日日日;MsgBox MsgBox 函数和函数和函数和函数和 MsgBox MsgBox 语语语语句句句句 格式:格式:格式:格式: MsgBox(msg MsgBox(msg,typetype,title)title) MsgBox MsgBox 函数函数函数函数 标 题提提 示示字符串字符串由由Type指指定的按钮定的按钮数目、形数目、形式和图标式和图标; MsgBox MsgBox函数的前往函数的前往函数的前往函数的前往值值是是是是 1 17 7 的整数或相的整数或相的整数或相的整数或相应应的符

36、的符的符的符号常量,分号常量,分号常量,分号常量,分别对应别对应7 7种命令按种命令按种命令按种命令按钮钮见见P63P63表表表表4 45 5。函。函。函。函数功能是,根据接数功能是,根据接数功能是,根据接数功能是,根据接纳纳到的用到的用到的用到的用户户呼呼呼呼应应信息,决信息,决信息,决信息,决议议程序下一程序下一程序下一程序下一步步步步进进展的操作。展的操作。展的操作。展的操作。MsgBox(msg, type , title )参数参数阐阐明:明: 1 msg:对话对话框提示音框提示音讯讯字符串;字符串; 2 type:整数:整数值值或字符常量,用来控制在或字符常量,用来控制在对话对话框

37、内框内显显示的按示的按钮钮、图标图标的种的种类类及数量;及数量; 见见P63表表44 3 title:对话对话框的框的标题标题字符串。字符串。; MsgBox 语句语句格式:格式:格式:格式: MsgBox Msg$ MsgBox Msg$ ,typetype,titletitle阐阐明:明:明:明: 1 1各参数的含各参数的含各参数的含各参数的含义义及作用与及作用与及作用与及作用与MsgBoxMsgBox函数一函数一函数一函数一样样; 2 2但但但但MsgBoxMsgBox语语句句句句没没没没有有有有前前前前往往往往值值,它它它它仅仅是是是是一一一一个个个个简简单单语语句句句句,因因因因此常

38、被用于此常被用于此常被用于此常被用于简单简单的信息的信息的信息的信息显显示。示。示。示。 由由由由 MsgBox MsgBox 函函函函数数数数或或或或 MsgBox MsgBox 语语句句句句所所所所显显示示示示的的的的对对话话框框框框有有有有一一一一个个个个共共共共同同同同特特特特点点点点:在在在在出出出出现现对对话话框框框框后后后后,用用用用户户必必必必需需需需作作作作出出出出选选择择,否否否否那么不能那么不能那么不能那么不能执执行其他任何操作。行其他任何操作。行其他任何操作。行其他任何操作。 Msgbox;4.3 4.3 选择选择构造构造构造构造特点:根据特点:根据特点:根据特点:根据

39、给给定的条件能否定的条件能否定的条件能否定的条件能否满满足,来决足,来决足,来决足,来决议议下一步所要下一步所要下一步所要下一步所要执执行的操作。行的操作。行的操作。行的操作。【例】假【例】假设星期天天晴,我星期天天晴,我们就去就去浏阳河阳河边烧烤;否那么烤;否那么,我我们就在教室自就在教室自习。?三种方式:三种方式:三种方式:三种方式: 单单行构造、行构造、行构造、行构造、块块构造、多分支构造情况构造、多分支构造情况构造、多分支构造情况构造、多分支构造情况语语句句句句;4.3.1 4.3.1 单单行构造条件行构造条件行构造条件行构造条件语语句句句句【例】假设星期天天晴,我们就去浏阳河边烧烤;

40、否那么,我们就在教室自习。if条条 件件then语句句1语句句2else 格式:格式:格式:格式: If If Then Then Else Else 2 其中,其中,其中,其中,“ “条件通常是关系表达式或条件通常是关系表达式或条件通常是关系表达式或条件通常是关系表达式或逻辑逻辑表达式;表达式;表达式;表达式;“ “语语句句句句1 1和和和和“ “语语句句句句2 2可以是可以是可以是可以是简单简单句或复合句;句或复合句;句或复合句;句或复合句;ElseElse子句子句子句子句为为可可可可选选项项。;条条 件件条条 件件语句语句 序列序列1True语句语句 1True下一个语句下一个语句Fal

41、se下一个语句下一个语句语句语句 2Else 功能:无功能:无功能:无功能:无ELSEELSE选项选项 条件取条件取条件取条件取值为值为“ “真,真,真,真,执执行行行行语语句序列句序列句序列句序列1 1; 条件取条件取条件取条件取值为值为“ “假,假,假,假,语语句序列句序列句序列句序列1 1就不就不就不就不执执行。行。行。行。 有有有有ELSEELSE选项选项 条件取条件取条件取条件取值为值为“ “真,真,真,真,执执行行行行语语句句句句1 1; 条件取条件取条件取条件取值为值为“ “假,假,假,假,执执行行行行语语句句句句2 2。; 留意:留意:留意:留意:1 1格式中的格式中的格式中的

42、格式中的If If、ThenThen、Else Else 是关是关是关是关键键字,并且一字,并且一字,并且一字,并且一定要配定要配定要配定要配对对运用;运用;运用;运用;2 2条件一定要是一个条件一定要是一个条件一定要是一个条件一定要是一个逻辑逻辑表达式,也就是表达式,也就是表达式,也就是表达式,也就是说说条件条件条件条件的的的的结结果果果果 一定要是真一定要是真一定要是真一定要是真值值或假或假或假或假值值;3 3语语句是条件判句是条件判句是条件判句是条件判别别之后需求之后需求之后需求之后需求执执行的命令,它可以行的命令,它可以行的命令,它可以行的命令,它可以是一条命令,也可以是一是一条命令,

43、也可以是一是一条命令,也可以是一是一条命令,也可以是一组组命令。命令。命令。命令。; 【例】试编一个程序,要求输入恣意两个数,然后把它们按照从【例】试编一个程序,要求输入恣意两个数,然后把它们按照从大到小的顺序输出。大到小的顺序输出。开开 始始给给 a、b 赋值赋值ab?依次输出依次输出 a、b 值值N依次输出依次输出b、a的值的值YDim A,B As SingleDim A,B As Singlea=InputBox(“a=InputBox(“请输请输请输请输入入入入a a的的的的值值值值: ) )b=InputBox(“b=InputBox(“请输请输请输请输入入入入b b的的的的值值值

44、值:) )If ab Then print b;a Else print a;bIf a60 Then Text2 =及格及格 Else Text2 =不不及格及格End sub; 简单简单的的的的选择选择构造可以运用构造可以运用构造可以运用构造可以运用 IIf( ) IIf( )函数函数函数函数实现实现。格式:格式:格式:格式:IIfIIf条件,条件,条件,条件,TrueTrue部分,部分,部分,部分,FalseFalse部分部分部分部分功能:当功能:当功能:当功能:当“ “条件条件条件条件为为真真真真时时,函数前往,函数前往,函数前往,函数前往值为值为TrueTrue部分的部分的部分的部分

45、的值值 当当当当“ “条件条件条件条件为为假假假假时时,函数前往,函数前往,函数前往,函数前往值为值为FalseFalse部分的部分的部分的部分的值值 阐阐明:明:明:明: 1 1条件是条件是条件是条件是逻辑逻辑表达式或关系表达式;表达式或关系表达式;表达式或关系表达式;表达式或关系表达式; 2 2TrueTrue部分和部分和部分和部分和FalseFalse部分是表达式,它部分是表达式,它部分是表达式,它部分是表达式,它们们的前往的前往的前往的前往值值必需与必需与必需与必需与结结果果果果变变量量量量类类型一致。型一致。型一致。型一致。 If x1 Then y1 Else y1/ xIIfx1

46、,1,1/ xIIF函数运用函数运用;4.3.2 4.3.2 块块构造条件构造条件构造条件构造条件语语句句句句命令格式:命令格式:命令格式:命令格式:If If Then 1 Then 1 ElseIf ElseIf Then 2 Then 2 Else Else n End If End If 功能:假功能:假功能:假功能:假设设“ “条件条件条件条件1 1成立,成立,成立,成立,执执行行行行“ “语语句句句句块块1 1;否那么假;否那么假;否那么假;否那么假设设“ “条件条件条件条件2 2成立,成立,成立,成立,执执行行行行“ “语语句句句句块块2 2;假假假假设设上述条件上述条件上述条件

47、上述条件均不成立,均不成立,均不成立,均不成立,执执行行行行“ “语语句句句句块块n n。留意:留意:留意:留意: 1 1嵌套运用嵌套运用嵌套运用嵌套运用单单行或行或行或行或块块嵌套嵌套嵌套嵌套时时,If If 命令不命令不命令不命令不得交叉;得交叉;得交叉;得交叉; 2 2遵照就近配遵照就近配遵照就近配遵照就近配对对原那么。原那么。原那么。原那么。;【例】【例】输入系数入系数 a,b 和和c,求二次,求二次 方程方程 ax2+bx+c=0 的的实根。根。开开开开 始始始始输入输入输入输入 a a,b b,c c d d b 2b 24ac4ac d 0 d 0 d d 0 0N N x xb

48、/2ab/2a输出输出输出输出 x xY Y输出此方输出此方输出此方输出此方程无实根程无实根程无实根程无实根N N结结结结 束束束束输出输出输出输出 x1 x1,x2x2Y Y x1 x1b b d d /2a/2a x2 x2b b d d /2a/2a ;Private Sub Command1_Click( )Private Sub Command1_Click( ) End SubEnd SubDim a!, b!, c!, d!, x1!, x2!, x!Dim a!, b!, c!, d!, x1!, x2!, x!a a Val(InputBox(“ Val(InputBox(“

49、请输请输请输请输入系数入系数入系数入系数 a:) a:)b b Val(InputBox(“ Val(InputBox(“请输请输请输请输入系数入系数入系数入系数 b:) b:)c c Val(InputBox(“ Val(InputBox(“请输请输请输请输入系数入系数入系数入系数 c:) c:)d d b * b b * b 4 * a * c 4 * a * cIf d 0 ThenIf d 0 Then x1 x1 ( (b + Sqr(d) / (2 * a)b + Sqr(d) / (2 * a) x2 x2 ( (b b Sqr(d) / (2 * a)Sqr(d) / (2 *

50、 a) Print x1 Print x1; x1, x2; x1, x2; x2; x2Else Else If d If d 0 Then 0 Then x x b / (2 * a) b / (2 * a) Print x Print x; x; x Else Print Else Print 此方程无此方程无此方程无此方程无实实实实根根根根 End If End IfEnd IfEnd If程序代程序代程序代程序代码码:语句块语句块 1语句块语句块 2语句块语句块 3; 例例 编程求符号函数程求符号函数sgn(x)的的值。 程序代程序代码如下:如下:Private Sub Comman

51、d1_Click() x = Val(Text1.Text) If x 0 Then Text2.Text = 1 ElseIf x = 0 Then Text2.Text = 0 Else Text2.Text = -1 End IfEnd Sub 用用户界面界面;单单行方式行方式行方式行方式IfIfIfIf语语句与多行方式的句与多行方式的句与多行方式的句与多行方式的IfIfIfIf语语句的区句的区句的区句的区别别。前者适用于前者适用于前者适用于前者适用于简单简单的二叉分支的情况,后者适用于多分支的情的二叉分支的情况,后者适用于多分支的情的二叉分支的情况,后者适用于多分支的情的二叉分支的情况

52、,后者适用于多分支的情况。前者可以改写况。前者可以改写况。前者可以改写况。前者可以改写为为后者的方式。后者的方式。后者的方式。后者的方式。前者必需写在一行中;后者必需写成多行,并且在关前者必需写在一行中;后者必需写成多行,并且在关前者必需写在一行中;后者必需写成多行,并且在关前者必需写在一行中;后者必需写成多行,并且在关键键字字字字“Then“Then“Then“Then后面必需回后面必需回后面必需回后面必需回车车。后者必需是后者必需是后者必需是后者必需是IfIfIfIf开开开开头头,End IfEnd IfEnd IfEnd If终终了,两者必需成了,两者必需成了,两者必需成了,两者必需成对

53、对出出出出现现。但是,。但是,。但是,。但是,前者没有前者没有前者没有前者没有End IfEnd IfEnd IfEnd If。后者中后者中后者中后者中“ElseIf“ElseIf“ElseIf“ElseIf是一个关是一个关是一个关是一个关键键字,不能写成字,不能写成字,不能写成字,不能写成“Else If“Else If“Else If“Else If。在多行方式的在多行方式的在多行方式的在多行方式的IfIfIfIf语语句中,代句中,代句中,代句中,代码码的排版引荐运用的排版引荐运用的排版引荐运用的排版引荐运用缩进缩进方式,方式,方式,方式,这这样样不不不不仅仅有利于有利于有利于有利于阅读阅

54、读程序,也有利于程序,也有利于程序,也有利于程序,也有利于发现错发现错、排除、排除、排除、排除错误错误。;4.3.3 4.3.3 情况情况情况情况语语句句句句Select Case Case Case Case Else End Select表达式表列表达式表列 1语句块语句块 1YEnd Select 之后的下一条语句之后的下一条语句N其其 它?它?N表达式表列表达式表列 2N语句块语句块 nY语句块语句块 2Y;功能:根据功能:根据功能:根据功能:根据“ “测试测试表达式的表达式的表达式的表达式的值值,从多个,从多个,从多个,从多个语语句句句句块块中中中中选择选择符符符符合条件的一个合条件

55、的一个合条件的一个合条件的一个语语句句句句块执块执行。行。行。行。( ( 最多只最多只最多只最多只选择执选择执行其中一个命行其中一个命行其中一个命行其中一个命令序列令序列令序列令序列 ) )“表达式表列的方式:表达式表列的方式:1 , 测试表达式的表达式的值与其中之一一与其中之一一样,就,就执行行该Case子句子句中的中的语句句块;例;例 Case 2,4,6,8,102 To 当当测试表达式的表达式的值落在表达式落在表达式 1和表达式和表达式 2之之间含本含本身,那么身,那么执行行该 Case 子句中的子句中的语句句块;表达式;表达式1 表表达式达式2例例 Case 2 To 103Is 当

56、当测试表达式的表达式的值满足足“关系表达式指定条件关系表达式指定条件时,执行行该 Case 子句中的子句中的语句句块。;Private Sub Command1_Click()Private Sub Command1_Click()Select Case Val(Text1.Text) Select Case Val(Text1.Text) Case Is 0 Case Is 0 Text2.text = Text2.text = 不合理的成果不合理的成果不合理的成果不合理的成果“ “ Case Is 60 Case Is 60 Text2.text = Text2.text = 不及格不及格

57、不及格不及格 Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 Text2.text = Text2.text = 及格及格及格及格 Case 70 To 89 Case 70 To 89 Text2.text = Text2.text = 良好良好良好良好 Case Is = 100 Case Is 终值?终值?循环变量循环变量步长循环变量循环变量步长执行循环体执行循环体N(a) 步长为正数For-Next 循环的逻辑流程开开 始始(b) 步长为负数循环变量初值循环变

58、量初值循环变量循环变量10 i 10,转转到到到到 ,否那么,否那么,否那么,否那么执执行循行循行循行循环环体;体;体;体; i i 添加一个步添加一个步添加一个步添加一个步长值长值,即,即,即,即 i i i i1 1; 前往前往前往前往 继续执继续执行;行;行;行; 执执行行行行 Next Next 后面的后面的后面的后面的语语句。句。句。句。 循环变量是 i, 循环初值是 1, 循环终值是 10, 步长为正值 1, 循环体包含两个语句: tti Print t!思索:!思索:!思索:!思索:这这个循个循个循个循环环构造完成什么构造完成什么构造完成什么构造完成什么 程序功能?程序功能?程序

59、功能?程序功能?; 1 1 For For 语语句和句和句和句和 Next Next 语语句必需成句必需成句必需成句必需成对对出出出出现现,且,且,且,且 For For 语语句句句句必需在必需在必需在必需在 Next Next 语语句之前。句之前。句之前。句之前。 2 2 For For 循循循循环环方便方便方便方便实现对实现对一个一个一个一个语语句序列句序列句序列句序列执执行固定次数行固定次数行固定次数行固定次数的循的循的循的循环环,其循,其循,其循,其循环环次数的次数的次数的次数的计计算公式算公式算公式算公式为为: 循循循循环环次数次数次数次数IntInt终值终值初初初初值值/ /步步步

60、步长长1 1。 程序程序程序程序设计设计留意点:留意点:留意点:留意点:;【例】【例】试求求 n!n 为自然数。自然数。 分析:根据数学知识,自然数 n 的阶乘为: n!123n 2! 3n (n1) ! n 也就是说,一个自然数 n 的阶乘,即从 1 开场延续地乘以下一个自然数,直到 n 为止,亦即等于该自然数与前一个自然数的阶乘的乘积。;Private Sub Form_Click( ) Dim N As Integer NInputBox(“Enter N:) Result1 For i1 To N ResultResult * i Next i Print N;!;Result End

61、 SubVB VB 程序如下:程序如下:程序如下:程序如下:; 【例】每只公【例】每只公鸡价价值 5 个个钱,每只母,每只母鸡价价值 3 个个钱,每每 3 只小只小鸡价价值 1 个个钱。现有有 100 个个钱想想买 100 只只鸡,问公公鸡、母、母鸡、小、小鸡各各应买几只?几只? 据题意,设 x, y,z 分别为公鸡、母鸡、小鸡的数目,那么可得到不定方程组:5x3yz/3100xyz100 所以,用 VB 程序处理百钱买百鸡问题的过程,就是编程求解下面方程组的过程。; 那么,对于上述方程组进展求解,就是要找到一切那些同时满足两个方程的参数 x,y,z 值的组合,即在某个参数值确定的情况下,分别

62、断定另两个参数与之组合能否满足等式要求。逐个进展反复操作即断定显然符合运用循环的条件。 然而这里遇到一个问题,虽然曾经知道程序中间需要用到循环构造,然而仅仅依托前面学习的单重循环(即程序中只用一层循环也无法实现问题的解答,由于方程参数有 3 个。 因此,许多时候遇到类似的复杂问题,要实现求解,就必需用到更复杂的循环构造,即多重循环。这就是在程序设计中运用循环的嵌套。; 4 For 循环进展嵌套运用时,有根本要求:每个循环必需有一个独一的变量名作为循环变量;内层循环的Next语句必需放在外层循环的 Next语句之前,内外循环不得相互骑跨。下例所示嵌套错误:For j1 To 5 For i 2

63、To 8 Next j Next i骑跨骑跨; For-Next For-Next 循循环环的嵌套方式有以下三种:的嵌套方式有以下三种: 普通方式:For I1= For I2= For I3= Next I3 Next I2Next I1省略Next后的 参数:For I1= For I2= For I3= Next NextNext内外层循环终 点一样时:For I1= For I2= For I3= Next I3,I2,I1; 这样一来,可用循环嵌套来处理百钱买百鸡问题,再次分析题意及方程组:5x3yz/3100xyz1001各层循环的循环变量初值与终值为 1 和 100 ;2循环中步

64、长为 1 ;3循环体的内容,就是判别符合方程等式的各组 x, y,z 值的语句。 显然,各种鸡最多可买的数量为 100 ,所以方程变量 x,y,z 的取值范围就是1100。所以: 由此确定了 For 循环中各组成部分,可以进展代码编写。;据此,据此,据此,据此,编编写写写写 VB VB 程序如下:程序如下:程序如下:程序如下:Private Sub Form_Click( )Private Sub Form_Click( )End Sub End Sub 显然,这个三重循环构造显然,这个三重循环构造简单明晰,但程序效率极低,简单明晰,但程序效率极低,由于需求执行的循环次数为:由于需求执行的循环

65、次数为: 1001001001,000,000 现实上,稍加分析发现,每现实上,稍加分析发现,每重循环都执行重循环都执行 100 次没有必要。次没有必要。由于由于100 钱最多能买钱最多能买 20 只公鸡,只公鸡,即在最外层循环最多能执行即在最外层循环最多能执行 20 次,以此类推,可修正程序以减次,以此类推,可修正程序以减少循环执行次数!少循环执行次数!For x1 To 100 For y1 To 100 For z1 To 100 Sumxyz RSum5*x3*yz/3 If (Sum100) And (RSum100) Then Print x,y,z End If Next z N

66、ext yNext x;修正后的修正后的修正后的修正后的 VB VB 程序如下:程序如下:程序如下:程序如下:Private Sub Form_Click( )Private Sub Form_Click( )End Sub End Sub 循环次循环次数大大减少!数大大减少! 留意到程序中依然存在三重循环嵌套,需求对程序进一步优化以缩短程序运转时间,提高效率!For x0 To 20 For y0 To 34x For z0 To 100 Sumxyz RSum5*x3*yz/3 If (Sum100) And (RSum100) Then Print x,y,z End If Next z

67、 Next yNext x;优优化后的化后的化后的化后的 VB VB 程序如下:程序如下:程序如下:程序如下:Private Sub Form_Click( )Private Sub Form_Click( )End Sub End Sub 运用一个数值表达式,运用一个数值表达式,省去最内层循环,使三重省去最内层循环,使三重循环变为二重循环!循环变为二重循环! 不运用中间变量,直不运用中间变量,直接把条件列入接把条件列入 If 语句,提语句,提高程序代码质量。高程序代码质量。For x0 To 20 For y0 To 34-x z100xy If 5*x3*yz/3100 Then Prin

68、t x,y,z End If Next yNext x; 5运用 Exit For 语句可以实如今循环变量到达终值前便退出循环,并允许一次或多次地出如今循环体中的任何位置。但它仅能退出所在的最内层循环,如上例:For i1 to 100 For j1 to 100 Print ij; If i*j5000 Then Exit For Next jNext i ; 6For 循环中的“循环体是可选项,当该项默许时,执行 “空循环 ,在实践运用中可实现暂停操作。当循环终了时,暂停也相应终了。 在某特定条件得到满足的情况下,按规定的次数重复执行一个语句序列。 For For 循循循循环实现环实现的程

69、序功能:的程序功能:的程序功能:的程序功能:;4.4.2 While 4.4.2 While 循循循循环环构造构造构造构造功能:当功能:当给定条件定条件为 True 时,执行循行循环体。体。阐明:明:1先先测试“条件,再决条件,再决议能否能否执行循行循环; 2循循环体中体中应含有含有对“条件的修正操作,使循条件的修正操作,使循环体能正常体能正常终了;了;否那么,会构成死循否那么,会构成死循环; 3循循环可嵌套,不可嵌套,不许交叉,每个交叉,每个 Wend 和最近的和最近的 While 相匹配。相匹配。开开 始始计算算“条件条件值条件条件为“真真吗结结 束束N循循 环环 体体Y格式:格式: Wh

70、ile 条件条件 循循环体体 Wend;【例】【例】 小小红今年今年12岁,她父,她父亲比她大比她大30岁,编程程计算出她父算出她父亲在几年后在几年后比她年比她年龄大一倍,那大一倍,那时父女的年父女的年龄各各为多少?多少?Dim age As Integerage 12While age * 2 age + 30 age age + 1WendPrint “经过经过; age 12; _ “年,小年,小红红父女的年父女的年龄龄分分别别是:是: ; _ age + 30; 和和; agePrivate Sub Command1_Click( ) End Sub;4.4.3 Do 4.4.3 Do

71、 循循循循环环构造程序构造程序构造程序构造程序设计设计格式格式1: Do While | Until Exit Do Loop格式格式2: Do Exit Do Loop While | Until Do WhileLoop流流 程程 图图计算算“条件条件值条件条件 “真真吗循环体循环体YN开开 始始结结 束束NYDoLoop While流流 程程 图图开开 始始结结 束束计算算“条件条件值循环体循环体条件条件 “真真吗YNDoLoop Until流流 程程 图图开开 始始结结 束束计算算“条件条件值循环体循环体条件条件 “真真吗Do UntilLoop流流 程程 图图NY开开 始始结结 束束

72、计算算“条件条件值循环体循环体条件条件 “真真吗;Private Sub Command1_Click( ) End Sub【例】【例】 编写程序,对恣意输入的正整数编写程序,对恣意输入的正整数 n(n=3) 判别其能否为素数。判别其能否为素数。Dim n%, i%, k%n = Val(InputBox(“请输入一个正整数 (3):)i = 2k = Intn / 2Do While i k Then Print n; “是素数! Else Print n; “不是素数!k=int(sqr(n)k=int(sqr(n);【例】【例】 输入两个正整数,求它们的最大公约数。输入两个正整数,求它们

73、的最大公约数。 辗转辗转相除法:用两数中的大数除以小数,并将所除得到的余数作相除法:用两数中的大数除以小数,并将所除得到的余数作相除法:用两数中的大数除以小数,并将所除得到的余数作相除法:用两数中的大数除以小数,并将所除得到的余数作为为下下下下一次的除数再除上一次的除数;如此往复,直至余数一次的除数再除上一次的除数;如此往复,直至余数一次的除数再除上一次的除数;如此往复,直至余数一次的除数再除上一次的除数;如此往复,直至余数为为 0 0,那么最后一次,那么最后一次,那么最后一次,那么最后一次的除数就是最大公的除数就是最大公的除数就是最大公的除数就是最大公约约数。数。数。数。Dim m%, n%

74、, r%, t%mVal(InputBox(“请输入第一个整数:)n Val(InputBox(“请输入第二个整数:)If m n Then tm: mn: ntDo r m Mod n mn n rLoop Until r 0Print “它们的最大公约数是:; mPrivate Sub Command1_Click( ) End Sub;4.4.4 4.4.4 循循循循环环构造的嵌套构造的嵌套构造的嵌套构造的嵌套 在一个循在一个循在一个循在一个循环环构造的循构造的循构造的循构造的循环环体内含有另一个循体内含有另一个循体内含有另一个循体内含有另一个循环环构造,称构造,称构造,称构造,称为为循

75、循循循环环嵌套,又称嵌套,又称嵌套,又称嵌套,又称为为多重循多重循多重循多重循环环。 多重循多重循多重循多重循环环用于复用于复用于复用于复杂问题杂问题的求解的求解的求解的求解过过程,可以是同程,可以是同程,可以是同程,可以是同类类循循循循环环的的的的嵌套运用,也可以是不同嵌套运用,也可以是不同嵌套运用,也可以是不同嵌套运用,也可以是不同类类循循循循环环的相互嵌套。的相互嵌套。的相互嵌套。的相互嵌套。 思思思思绪绪:1确定程序构造,思索能否需求运用循环;2根据实践需求和当前条件,确定应运用的循环类型;3提取循环中各组成要素,一一罗列;4将各要素进展组合。;运用嵌套时应留意以下几个问题:嵌套中的各

76、个控制构造必需完好,内外构造不能交叉。内外循环变量也不能同名。与IFEndIf语句一同运用时,只能从循环内跳到循环外,不能从循环外跳到循环内,也不能从外循环跳到内循环。嵌套中运用强迫退出语句Exit只退出本层循环。输入代码时嵌套中各层构造应采用总体缩排,以使层次清楚。For与Next配对的规那么:从最内层的循环往外看,next总是与离它最近的没有配过对的For配对。可以省略Next后面的循环变量。当内外循环有一样的终点时,可以共用同一个Next语句,此时Next后面的循环变量名不能省略。并列的循环可以用同一个变量名作循环变量,而嵌套的循环不能用同一个变量名作循环变量。4.4.4 4.4.4 循

77、循循循环环构造的嵌套构造的嵌套构造的嵌套构造的嵌套;【例】【例】 用台劳多项式求用台劳多项式求 SinX 的近似值。的近似值。分析:分析:分析:分析: 1 1 1 1SinX SinX SinX SinX 的初的初的初的初值为值为 X X X X ; 2 2 2 2有一求和有一求和有一求和有一求和过过程,求和程,求和程,求和程,求和对对象象象象: : : : ( ( ( (1)n1)n1)n1)n1*X2n1*X2n1*X2n1*X2n1) / (2n1) / (2n1) / (2n1) / (2n1)! 1)! 1)! 1)! 3 3 3 3存在大量反复操作,根据需求存在大量反复操作,根据需

78、求存在大量反复操作,根据需求存在大量反复操作,根据需求应设计应设计两个循两个循两个循两个循环环: a. a. a. a. 外外外外层层循循循循环环用于用于用于用于实现实现各分数各分数各分数各分数项项的累的累的累的累加;加;加;加; b. b. b. b. 内内内内层层循循循循环环用于求各用于求各用于求各用于求各项项分子、分母;分子、分母;分子、分母;分子、分母; 其中:其中:其中:其中: Factor Factor Factor Factor : (2*n (2*n (2*n (2*n1)1)1)1)的的的的阶阶乘乘乘乘 Xpower Xpower Xpower Xpower : X2n X2

79、n X2n X2n1 1 1 1 标标志位志位志位志位 sign sign sign sign: ( ( ( (1)n1)n1)n1)n1 1 1 1;Private Sub Command1_Click( ) End SubDim n As IntegerDim x As singleDim y As doublex = InputBox(“请输请输入入X:)n = InputBox(“请输请输入入 n:)y = x : sign = 1For i = 2 To n Factor = 1 : Xpower = 1 For j = 1 To 2*i1 Factor = Factor*j Xpo

80、wer = Xpower*x Next j sign = sign y = ysign*Xpower/FactorNext iPrint “SinX;y实现多实现多项式逐项式逐项相加项相加求得各求和项求得各求和项的分子和分母的分子和分母Factor :(2*nFactor :(2*n1)!1)!Xpower :X2nXpower :X2n1 1Sign:(Sign:(1)n1)n1 1;【例】【例】 输出输出 100200 之间的一切素数。之间的一切素数。Private Sub Command1_Click( ) End SubNumber = 0For x = 101 To 199 Step

81、 2 i = 2: k = Int(x/2) Do While i k Then Number = Number1 If Number mod 5 = 0 Then Print x Else Print x, End IfNext x使求得的使求得的素数确在素数确在100 200之间之间断定断定 X能能否为素数否为素数;格式:格式:格式:格式:GoTo GoTo 功能:把控制功能:把控制功能:把控制功能:把控制转转移到移到移到移到“ “标标号所在的程序行,并从号所在的程序行,并从号所在的程序行,并从号所在的程序行,并从该该行开行开行开行开场场往下往下往下往下执执行。行。行。行。阐阐明:明:明:

82、明: 1 1标标号是一个号是一个号是一个号是一个标识标识符或整型数;符或整型数;符或整型数;符或整型数; 2 2程序必需程序必需程序必需程序必需给给GoToGoTo语语句提供独一的句提供独一的句提供独一的句提供独一的转转向入口,入向入口,入向入口,入向入口,入口口口口处处格式格式格式格式为为 : 3 3不能用不能用不能用不能用GoToGoTo语语句句句句转转向另一个向另一个向另一个向另一个过过程。程。程。程。 4.4.5 Goto 4.4.5 Goto语语语语句句句句例例5-5;例例例例 Private Sub Form_click() Private Sub Form_click() I =

83、 0: s = 0 I = 0: s = 0 Start: Start: I = I + 1: s = s + I I = I + 1: s = s + I If I = 100 Then GoTo Ending If I = 100 Then GoTo Ending GoTo Start GoTo Start Ending: Ending: Print “s= Print “s=; s; s End Sub End Sub 该程序是程序是经过GoToGoTo语句完成循句完成循环的,其中的,其中StartStart与与EndingEnding是两个是两个标号,本程序号,本程序实现的是求的是求

84、1+2+3+100 1+2+3+100的的值。 由于由于GoToGoTo语句易破坏程序的句易破坏程序的构造,因此普通不提倡运用。构造,因此普通不提倡运用。;4.5 4.5 综综合运用程序合运用程序合运用程序合运用程序举举例例例例 本本本本节节主要思索常用算法程序主要思索常用算法程序主要思索常用算法程序主要思索常用算法程序设计设计,因此一切的程序均,因此一切的程序均,因此一切的程序均,因此一切的程序均只在只在只在只在FormFormFormForm或或或或CommandCommandCommandCommand控件的控件的控件的控件的单击单击事件中事件中事件中事件中编编写,而不思索介面写,而不思

85、索介面写,而不思索介面写,而不思索介面设设计计与属性与属性与属性与属性设设置。普通步置。普通步置。普通步置。普通步骤骤如下:如下:如下:如下:第一步第一步第一步第一步: : : : 分析分析分析分析问题问题 确定要运用的数据确定要运用的数据确定要运用的数据确定要运用的数据( ( ( (输输入、入、入、入、输输出出出出) ) ) ),确定相关,确定相关,确定相关,确定相关变变量。量。量。量。 确定算法确定算法确定算法确定算法, , , , 从有限步的从有限步的从有限步的从有限步的输输入中入中入中入中获获取取取取输输出。出。出。出。 确定操作确定操作确定操作确定操作顺顺序序序序, , , , 以便

86、在有限步内以便在有限步内以便在有限步内以便在有限步内处处理理理理问题问题。第二步第二步第二步第二步: : : : 画出程序的根本画出程序的根本画出程序的根本画出程序的根本轮轮廓廓廓廓对对一个一个一个一个简单简单的程序来的程序来的程序来的程序来说说, , , ,可列出程序可列出程序可列出程序可列出程序顺顺序序序序执执行的行的行的行的动动作。作。作。作。第三步第三步第三步第三步: : : :实现实现程序程序程序程序 根据根据根据根据实实践情况可以适当践情况可以适当践情况可以适当践情况可以适当简简化或化或化或化或调调整以上步整以上步整以上步整以上步骤骤。;【例【例1】 给定一个两位的正整数,请找到另

87、一个两位数的正整数,使给定一个两位的正整数,请找到另一个两位数的正整数,使这两个数之和等于它们各自的对调数之和。这两个数之和等于它们各自的对调数之和。 分析知,程序中应作的处置有:1对输入的两位数 X,找到相关的另一个两位数 Y;2对 X、Y 分别求它们的“对调数 将其个位数同十位数 字对调所生成的新数,如 28 和 82;3计算两个表达式的值:XY 和 XfYf;4断定两式的值能否相等,如相等,那么输出 X 和Y。 显然,某数 X 的对调数 Xf 的求法是: Xf X mod 10 10 X 10对调数的十位对调数的十位对调数的个位对调数的个位;Private Sub Command1_Cl

88、ick( ) End SubDim X,Y,Xf,Yf As IntegerDo XVal(InputBox(“请输入一个2位正整数:)Loop While (X99)Xf (X mod 10) *10 (X 10)For Y=10 To 99 Yf (Y mod 10) *10(Y 10) If XYXfYf Then Print X;+;Y;_ Xf;+;Yf;XY End IfNext Y用户指用户指定一个定一个两位数两位数求对调数求对调数在在1099之间寻之间寻觅觅 Y 值值断定并断定并输出输出;【例【例2】求】求200,900 内同时满足以下两个条件的十进制数的个数:内同时满足以下两

89、个条件的十进制数的个数: 1其个位数字与十位数字之和除以其个位数字与十位数字之和除以10所得的余数是百位数字;所得的余数是百位数字; 2该数是素数。该数是素数。Private Sub Form_Click() number = 0 For i = 200 To 900 g = i Mod 10 截取个位数字截取个位数字 s = (i Mod 100 )10 截取十位数字截取十位数字 b = i 100 截取百位数字截取百位数字 If (b = (g + s) Mod 10) Then 判判别满别满足第一个条件足第一个条件 flag = True For j = 2 To i 1 判判别满别满足

90、第二个条件足第二个条件 素数素数 If (i Mod j = 0) Then flag =false : Exit For End If Next j If flag=true Then number = number + 1 Next i Print 这样这样的数的个数是:的数的个数是:; numberEnd Sub;一个数假一个数假一个数假一个数假设刚设刚好与它一切的因子之和相等,那么称好与它一切的因子之和相等,那么称好与它一切的因子之和相等,那么称好与它一切的因子之和相等,那么称该该数数数数为为一个一个一个一个“ “完数完数完数完数 如如如如6 61 12 23 3,那么,那么,那么,那

91、么6 6就是个完数就是个完数就是个完数就是个完数, ,求求求求10001000以内一切的完数之和。以内一切的完数之和。以内一切的完数之和。以内一切的完数之和。所所所所谓谓回文数是从左至右与从右至左回文数是从左至右与从右至左回文数是从左至右与从右至左回文数是从左至右与从右至左读读起来都是一起来都是一起来都是一起来都是一样样的的的的数字,如:数字,如:数字,如:数字,如:121121是回文数。是回文数。是回文数。是回文数。编编写程序求出写程序求出写程序求出写程序求出100100900900之之之之间间回文数的个数。回文数的个数。回文数的个数。回文数的个数。“ “水仙花数是指水仙花数是指水仙花数是指

92、水仙花数是指这样这样的数,其各位数字的立方和等的数,其各位数字的立方和等的数,其各位数字的立方和等的数,其各位数字的立方和等于于于于该该数本身,如:数本身,如:数本身,如:数本身,如:15315313+53+3313+53+33。编编写程序求写程序求写程序求写程序求100100至至至至400400的范的范的范的范围围内有多少个水仙花数。内有多少个水仙花数。内有多少个水仙花数。内有多少个水仙花数。水 仙 花 数完 数回 文 数;编编写程序求写程序求写程序求写程序求9-4999-499之之之之间间的非偶非素数的和。的非偶非素数的和。的非偶非素数的和。的非偶非素数的和。编编写程序求写程序求写程序求写

93、程序求1981-30001981-3000之之之之间间的素数年号的个数。的素数年号的个数。的素数年号的个数。的素数年号的个数。素 数 的 个 数非 偶 非 素 数知一个数列的前知一个数列的前知一个数列的前知一个数列的前3 3个数个数个数个数为为0 0,0 0,1 1,以后每个数,以后每个数,以后每个数,以后每个数为为前前前前3 3个数个数个数个数的和,的和,的和,的和,编编程序求此数列的第程序求此数列的第程序求此数列的第程序求此数列的第3636个数。个数。个数。个数。( 334745777 )( 334745777 )简 单 的 数 列;一个素数一个素数一个素数一个素数设为设为p p依次从最高

94、位去掉一位,二位,三位,依次从最高位去掉一位,二位,三位,依次从最高位去掉一位,二位,三位,依次从最高位去掉一位,二位,三位,假,假,假,假设设得到的各数仍都是素数得到的各数仍都是素数得到的各数仍都是素数得到的各数仍都是素数( (注:除注:除注:除注:除1 1和它本身外,和它本身外,和它本身外,和它本身外,不能被其它整数整除的正整数称不能被其它整数整除的正整数称不能被其它整数整除的正整数称不能被其它整数整除的正整数称为为素数,素数,素数,素数,1 1不是素数,不是素数,不是素数,不是素数,2 2是素数,且数是素数,且数是素数,且数是素数,且数p p的各位数字均不的各位数字均不的各位数字均不的各

95、位数字均不为为零,那么称零,那么称零,那么称零,那么称该该数数数数p p为为逆向超逆向超逆向超逆向超级级素数。例如,素数。例如,素数。例如,素数。例如,617617,1717,7 7都是素数,因此都是素数,因此都是素数,因此都是素数,因此617617是是是是逆向超逆向超逆向超逆向超级级素数,素数,素数,素数,虽虽然然然然503503,0303,3 3都是素数,但它不是逆都是素数,但它不是逆都是素数,但它不是逆都是素数,但它不是逆向超向超向超向超级级素数,由于它包含有零。素数,由于它包含有零。素数,由于它包含有零。素数,由于它包含有零。试试求求求求100,999100,999之内的一之内的一之内

96、的一之内的一切逆向超切逆向超切逆向超切逆向超级级素数的个数。素数的个数。素数的个数。素数的个数。 ( 39 ) ( 39 )逆向超级素数; 除除除除1 1和它本身外,不能被其它整数整除的正整数称和它本身外,不能被其它整数整除的正整数称和它本身外,不能被其它整数整除的正整数称和它本身外,不能被其它整数整除的正整数称为为素数素数素数素数注:注:注:注:1 1不是素数,不是素数,不是素数,不是素数,2 2是素数。假是素数。假是素数。假是素数。假设设两素数之差两素数之差两素数之差两素数之差为为2 2 ,那么称,那么称,那么称,那么称两素数两素数两素数两素数为为双胞胎数,双胞胎数,双胞胎数,双胞胎数,问

97、问31,60131,601之之之之间间有多少有多少有多少有多少对对双胞胎数。双胞胎数。双胞胎数。双胞胎数。( ( 22 )22 )双 胞 胎 数所所所所谓谓“ “同构数是指同构数是指同构数是指同构数是指这样这样一个数,它出如今它的平方数的右一个数,它出如今它的平方数的右一个数,它出如今它的平方数的右一个数,它出如今它的平方数的右侧侧,例如,例如,例如,例如5 5的平方是的平方是的平方是的平方是2525,2525的平方是的平方是的平方是的平方是625625,故,故,故,故5 5和和和和2525都是同构都是同构都是同构都是同构数,求数,求数,求数,求22,10001000之之之之间间一切同构数之和。一切同构数之和。一切同构数之和。一切同构数之和。同 构 数;

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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