算法与程序设计教案.ppt
第一章 揭开计算机解决问题的神秘面纱,1.1计算机解决问题的过程,针对课本P2的问题,运用你所学过的数学知识,求解这个问题,并写出解题的过程。,?,计算机解决问题的步骤,1、分析问题2、设计算法3、编写程序4、调试程序,分析问题,设甲乙丙三种产品的产量分别为x、y、z件,根据题目给出的条件,x,y,z应满足如下的关系式:2x+2y+z12X+2y+z 84x 164y 12X,y,zN(N表示自然数)解题的目标是:求出适当的x,y,z,使f(x,y,z)=4x+3y+2z取得最大值,X,y,z是整数且:0 x 4 0 y 30 z 8,设计算法,解题步骤:第一步:把满足不等式组 的xyz的值代入f(x,y,z)=4x+3y+2z中求值第二步:在所有的f(x,y,z)函数值中,找出最大值第三步:输出f(x,y,z)的最大值及其x,y,z的值第四步:结束,逐步求精,写出更详细的步骤,第一步求精:把满足不等式组 代入f(x,y,z)=4x+3y+2z中求值(1)对每一个x(x=0,1,2,3,4),做下一步。(2)对每一个y(y=0,1,2,3),做下一步。(3)对每一个z(z=0,1,2,3,,8),做下一步。(4)逐一地检查x,y,z是否满足不等式组,如果满足,则代入f(x,y,z)=4x+3y+2z中求值.,第二步求精:在所有的f(x,y,z)函数值中,找出最大值设f(x,y,z)的最大值为f_max,其相应的自变量为x_max,y_max,z_max,则:(1)令f_max=0;(2)对每一个x(x=0,1,2,3,4),做下一步。(3)对每一个y(y=0,1,2,3),做下一步。(4)对每一个z(x=0,1,2,3,,8),做下一步。(5)如果f_maxf(x,y,z),则f_max=f(x,y,z),x_max=x,y_max=y,z_max=z。,逐步求精,写出更详细的步骤,编写程序,Private Sub Command1_Click()Dim x As Integer,y As Integer,z As IntegerDim x_max As Integer,y_max As Integer,z_max As IntegerDim f(4,3,12)As Single 定义存放函数f(x,y,z)值的数组fDim f_max As Single 把满足不等式组(1.1)的x、y、z代入 f(x,y,z)=4x+3y2z中求值For x=0 To 4For y=0 To 3For z=0 To 8If(2*x+2*y+z=12)And(x+2*y+z=8)Then f(x,y,z)=4*x+3*y+2*z Else f(x,y,z)=0End IfNext zNext yNext x,(1)对每一个x(x=0,1,2,3,4),做下一步。(2)对每一个y(y=0,1,2,3),做下一步。(3)对每一个z(x=0,1,2,3,,8),做下一步。(4)逐一地检查x,y,z是否满足不等式组,如果满足,则代入f(x,y,z)=4x+3y+2z中求值.,算法,程序,编写程序,在所有的f(x,y,z)中,找出最大值f_max=0For x=0 To 4For y=0 To 3For z=0 To 8 If f_max f(x,y,z)Then f_max=f(x,y,z)x_max=x y_max=y z_max=z End IfNext zNext yNext xPrint 当x=;x_max;,y=;y_max;,z=;z_max;时,Print f(x,y,z)的最大值;f_max,(1)令f_max=0;(2)对每一个x(x=0,1,2,3,4),做下一步。(3)对每一个y(y=0,1,2,3),做下一步。(4)对每一个z(x=0,1,2,3,,8),做下一步。(5)如果f_maxf(x,y,z),则f_max=f(x,y,z),x_max=x,y_max=y,z_max=z。输出f(x,y,z)的最大值及其x,y,z的值,算法,程序,练习:,按课本P5P6的步骤,使用Visual Basic输入程序并调试运行,用计算机解决问题的步骤,具体问题,分析问题,设计算法,编写程序,调试程序,得到答案,实践,P8实践及练习,1.2算法和算法的描述,例1:有一个3毫升的量杯和一个5毫升的量杯,杯上没有刻度,你能想办法用它们量出1毫升的水吗?,方法一:,1、将3毫升的量杯装满2、将3毫升量杯中的水全部注入5毫升的量杯3、将3毫升的量杯装满4、利用3毫升量杯中的水将5毫升量杯倒满,3毫升量杯中剩余1毫升水。,方法二:,1、将5毫升的量杯装满2、将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余2毫升水3、将3毫升量杯倒空4、将5毫升量杯中剩余的2毫升注入3毫升量杯5、将5毫升量杯装满6、将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余4毫升水7、将3毫升量杯倒空8、将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余1毫升水,为解决某一问题而设计的确定的有限的步骤就称为算法,2、算法的特点:,有穷性确定性可行性有0个或多个输入有1个或多个输出,3、计算机算法的描述方法,自然语言描述法用自然语言表示算法,人比较容易理解,但书写较烦琐,具有不确切性,容易引起歧义,造成误解;对较复杂的问题,用自然语言难以表达准确;计算机不能识别和执行。,流程图描述法用图形符号表示算法必须要有一组统一规定、含义确定的专用符号;用流程图表示算法就较直观、形象;计算机不能识别和执行。,伪代码或程序设计语言描述法只有用计算机能理解和执行的程序设计语言把算法表示出来,输入计算机执行,计算机才能按照预定的算法去解决问题;不同类型的计算机能够识别的指令和语言不尽相同,即使对同一种计算机语言,不同类型的计算机对该语言的翻译程序也有差异。,算法的流程图表示,流程线,表示从某一框到另一框的流向,算法的流程图表示,起止框,表示一个算法的开始只有一根流出线,没有流入线,流程框图及流线画法,表示一个算法的结束只有一根流入线,没有流出线,开始框,结束框,输入、输出框,框内标明输入、输出的内容上方一根流入线,下方一根流出线,流程框图及流线画法,处理框,框内标明所进行的处理上方一根流入线,下方一根流出线,流程框图及流线画法,判别框,框内标明条件,并在框外标明判定后的两种结果的流向。上方一根流入线,下方两根流出线,流程框图及流线画法,连接圈,表示算法流向出口或入口连接点同一出口入口点的连接圈内,必须标以相同的符号。,算法的流程图表示,例7:用流程图表示:从键盘输入圆的半径,计算其面积,例8:用流程图表示:求从键盘输入的任意半径的圆的面积和周长,例1:判断下列算法是否符合算法的特征:给s赋值为1将s的值增加1重复步骤,解答:该算法的步骤将被重复执行无穷次,不符合算法的有穷性,返回,例2:判断下列算法是否符合算法的特征L=10输出L/自然数,解答:自然数没有具体指明是哪个数,不符合算法的确定性,返回,例3:判断下列算法是否符合算法的特征x=-2计算x的平方根,解答:x是负数,没有平方根,该算法不可行,不符合算法的可行性,返回,例4:写出算法:计算半径为2的圆的面积,解答:R=2S=3.14*R*R输出面积S,说明:该算法中已包含计算所需的初始数据,因此没有外部数据输入,说明:该算法中计算面积所需的初始数据半径R待定,要在程序运行后从键盘输入。而算法是解决一类问题的,往往所需的初始数据不止1个,可能会有多个。通过前两个例子可以知道,算法可能有0个或多个输入。,解答:输入圆的半径RS=3.14*R*R输出面积S,例5:写出算法:从键盘输入圆的半径,计算其面积,返回,说明:算法可能有1个或多个输出。,例6:求从键盘输入的任意半径的圆的面积和周长,解答:输入圆的半径RS=3.14*R*RC=2*3.14*R输出面积S,周长C,返回,对鸡兔同笼问题的算法描述示例,(1)输入a和b的值(2)求x=2a-b/2(3)求y=b/2-a(4)输出x,y的值(5)结束,流程图描述算法,自然语言描述算法,求出100以内能被3整除的所有正整数算法描述示例,流程图描述算法,(1)令I=1;(2)如果I能被3整除,则输出I;(3)I=I+1;(4)如果I100,则返回第(2)步(5)结束,自然语言描述算法,算法举例,素数的定义:一个大于1的整数,如果它的正因数只有1和它本身,就叫做素数,否则就叫合数。,如何判定给定正整数n是否为素数呢?根据定义。,从2开始找n的因子,若能找到一个介于2和n-1之间的n的因子,说明n不是素数;否则,n是素数。,1、素数判别,素数判别,Y,N,K=2,K不能整除n?,K=K+1,输出n是素数,输入n的值,开始,结束,Y,N,K等于n?,输出n不是素数,2、计算1+2+100的流程图,3、判断闰年的流程图,k能被4整除?,输入一个年份值k,开始,结束,输出k不是闰年,输出k是闰年,Y,N,k能被100整除?,Y,k能被400整除?,Y,N,N,输出k是闰年,输出k不是闰年,实践,完成P11实践完成P12实践,算法在解决问题中的地位和作用,P13探究并将活动结果填入课本表1-6中。,程序算法程序的效率主要取决于算法的效率,练习,P13练习(1)(3),1.3程序与程序设计语言,程序,程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句,每个语句对应一个或多个操作,每个操作都要求有执行对象。除非特别声明,程序都从第一条语句开始顺序执行。程序总是施行操作于数据。数据一般应该有类型说明。条件语句重复执行语句时必须指明重复次数或重复条件。程序本身是一个静态实体,而执行语句的进程是动态的。,程序的特征,程序的基本结构,顺序结构 选择结构 循环结构,是,否,程序设计,程序设计语言的产生与发展,机器语言:由“0”和“1”这样的二进制代码指令组表示的,能被计算机直接接受和执行的计算机语言。汇编语言:指令码和操作数采用符号表示,每一条汇编指令都和一条机器指令相对应。高级语言:更接近于自然语言,但需经过翻译器翻译成机器语言。,程序的编辑和翻译,源代码与源文件编译与解释,第二章 程序设计基础,2.1 VB语言及程序开发环境,探究-“求圆的面积”的程序,Private Sub Command1_Click()Const pi As Single=3.14Dim r As Single,s As Singler=InputBox(“r=”,”输入半径”)s=pi*r 2Print“圆的面积s=”;sEnd Sub思考:(1)程序有多少行,每一行的作用是什么?(2)如果按语句的作用区分,这个程序包含几个部分?(3)程序中用到了哪些数据类型,分别是什么?,过程结束,定义名为command1_click()的事件过程,说明程序中pi是常量,定义半径r和面积s为单精度实型,输入r的值,把表达式pi*r*r的值赋给s,把s的值输出到当前的窗体上,数据类型说明部分,数据的输入部分,数据的处理部分,数据的输出部分,上机练习一,编写VB程序求解“圆的面积”问题。,Private Sub Command1_Click()Const PI As Single=3.14 Dim r As Single,s As Single r=InputBox(r=,输入半径)s=PI*r*r Print 圆的面积s=;sEnd Sub,常量,变量,函数,表达式,VB程序一般包括四个基本知识,探究-“求圆的面积”的程序,VB中的常用数据类型,基本数据类型,整型 Integer长整型 Long单精度实型 Single双精度实型 Double日期型 Date(Time)#2004-02-01#字符型 String“wenchang”、“文昌”逻辑型 Boolean,常量和变量,常量 在程序运行中保持不变的常数、字符串,如3.14、r=、输入半径等 常量定义方法:Const 常量名 As 类型=表达式,例:Const PI As Single=3.14 声明了常量PI,代表3.14,单精度型 Const MAX As Integer=144 声明了常量MAX,数值为144,整型,变量是指存储器中有着特定名称的存储单位,其特点就是存放在其中的数据值可任意改变。变量的作用其实类似于日常生活中使用的各种储值卡,如电话IC卡、银行卡等,在程序中调用变量名时就是引用变量中存储的值。,常量和变量,常量和变量,变量的定义方法 Dim As 如:Dim X As integer Dim k As Integer,y AS Single说明:1、如果没有As 类型,则默认为变体类型2、一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用,变量的命名规则1)必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度255个字符2)不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim、Sin 3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示,运算符、函数和表达式,算术运算符,Dim MyValueMyValue=10/4 返回 2.5MyValue=10/3 返回 3.333333MyValue=10 4 返回 2MyValue=10.67 3 返回 3MyValue=2 3 返回 8MyValue=10 Mod 3 返回 1MyValue=12 Mod 4.3 返回 0MyValue=12.6 Mod 5 返回 3MyValue=(-10)Mod 3 返回-1MyValue=10 Mod(-3)返回 1,与Mod参与运算的两数中有一个是浮点数,该数会先被四舍五入成整型后再进行运算。求余结果的正负号始终与第一个运算量的符号相同。,字符运算符,算术运算符的优先顺序指数运算()负数(-)乘法和除法(*、/)整数除法()求余的模运算(Mod)加法和减法(+、-),常见函数(见附录二),表达式,表达式是指某个求值规则,它由运算符和配对的圆括号将变量、常量、函数等操作数以合理的形式连接起来的式子。如:PI*r*r,表达式书写举例,【例1】将 数学式改写成VB的算术表达式,VB的算术表达式为:3.14159/(a2+Sqr(b),VB表达式:a*b*c*d/e/f/g 或 a*b*c*d/(e*f*g),【例2】,练习实践,根据常量、变量、函数、表达式的特征完成以下实践(1)下列数据属于字符串常量的是()A.bcdaB.”zanfb”C.hjdnc D.j-098(2)在VB语言中,下列数据中合法的长整型常量是()A.09bB.2738940C.99.876345 D.8.12345E12(3)在VB语言中,下列变量中合法的变量是()A.b90B.abc=9C.hello D.888f1(4)在VB语言中,下列表达式中合法的表达式是()A.a+b*|c|B.bct9C.-*D.PI*R*R,可视化程序的开发环境,工程窗口,属性窗口,布局窗口,可视化程序的开发环境,布局窗口,属性窗口,工程窗口,窗体设 计窗口,代码窗口,控件工具箱,按这里可以运行程序、暂停程序和停止程序,在Visual Basic中,有3种工作模式,分别是“设计”、“中断”和“运行”。在“设计”模式下,可以进行用户界面的设计和代码的编写、修改,来完成应用程序的开发;在“运行”模式下,不能对窗体界面和代码进行修改,只能查看程序运行的结果;“中断”模式使应用程序暂时中断运行,这时可以编辑代码,但不可以修改界面,同时弹出一个窗口,用户可对程序进行调试监控。中断后,按下“运行”按钮或F5键可以继续运行,按下“结束”按钮可以结束程序运行。,Visual Basic的3种工作模式,可视化程序的开发环境,1、控件工具箱窗口:提供编程所需的控件,与大多数软件一样有共同点:标题栏、菜单栏、工具栏、工作区不同地方:控件工具箱、窗体设计窗口、代码窗口、VB工程管理器、属性窗口、窗体布局窗口,可视化程序的开发环境,2、窗体窗口:是VB的主窗口 设计界面窗口 在程序设计阶段,是进行程序界面的可视化设计的窗口 在程序运行阶段,是用户与该窗体中的控件交互信息的窗口,可视化程序的开发环境,3、工程资源管理器 工程窗口 作用:是管理工程中各个组件,(1)查看代码:显示代码窗口(2)查看对象:显示对象设计窗口(3)切换文件夹:改变列表区的显示方式,可视化程序的开发环境,4、属性窗口:可查看和编辑窗体或控件的属性 作用:主要用来设定一个对象的初始外观,可视化程序的开发环境,常用窗口的作用,学生练习:制作第一个VB程序,这个程序要求如下:(1)当按下“按我”按钮时,在窗口上方将出现“欢迎进入VB世界!”(字体设置为:楷体、蓝色、粗体、二号);(2)当按下“清除”按钮时,“欢迎进入VB世界!”文字消失;(3)当按下“退出”按钮时,退出这个窗体。,学生练习:制作第一个VB程序,制作流程:一、创建界面1、启动 VB 6.0,创建一个窗体 Form1 2、在窗体上添加控件(1)在窗体上添加“按钮”控件。方法:单击按钮控件,在窗体上的合适处依次画出三个按钮。(2)在窗体上添加“标签(Label)控件”(用于在窗体上显示文字)方法:单击控件工具箱上的“A”字样的图案,在窗体上合适的位置画出标签控件。,学生练习:制作第一个VB程序,二、设置界面控件属性 1、设置窗体标题(Caption)属性(1)选中属性窗体(2)选中属性窗口(3)选中“Caption”属性(4)在“Caption”属性的值中输入“welcome!”,在“backcolor”选择淡黄色 2、设置三个按钮(Command)属性(1)选中按钮(2)选中属性窗口(3)选中“Caption”属性(4)在“Caption”属性旁的值中输入“按我”,”清除“,”退出“3、设置标签(Label)属性(1)选中标签(2)选中属性窗口(3)设标签标题为空:选中“Caption”属性,在“Caption”属性旁的值中删除原有内容,使其为“空”,学生练习:制作第一个VB程序,(4)设置蓝色:选中属性窗口中的前景颜色属性(Forecolor)(5)设置字体:为“楷体,二号,粗体”a、选属性中的“Font”属性,单击右边的“”号按钮 b、在字体框中设置字体为“楷体,二号,粗体”c、单击“确定”按钮 如图:,学生练习:制作第一个VB程序,三、编写代码 双击“按我”按钮控件,则弹出一个代码窗口,并自动生成一个过程,系统自动生成了两行代码。如图:Private Sub Command1_Click()End Sub如要加入代码,则在这两个语句间插入所需的代码。“按我”的代码为:Label1.Caption=欢迎进入VB世界!“依次双击“清除”、“退出”按钮,输入如下代码:“清除”代码:Label1.Caption=“退出”代码:End完成后如图:,学生练习:制作第一个VB程序,四、运行程序 方法:1、单击工具栏中的“启动”按钮 2、按功能键“F5”键 3、选“运行”菜单中的“启动”命令五、保存和编译文件 1、保存窗体文件和工程文件 a、选“文件”菜单中的“保存”或工具栏上的“保存”按钮 b、先保存“窗体”文件(扩展名是:.FRM)c、后保存“工程”文件(扩展名是:.VBP)注:a、二个文件主名用相同的 b、每一个VB应用程序单独存放在一个文件夹中2、把工程编译成 EXE 可执行文件可执行文件(脱离 VB 可执行的程序文件)a、选“文件”菜单中的“生成.EXE”命令 b、输入文件主名 c、在Windows 中运行 VB 可执行文件,大家试一试!_,课堂小结,本节课介绍了vb语言的常识、vb程序的开发环境(控件工具箱、窗体设计窗口、代码窗口、工程窗口、属性窗口和窗体布局窗口)和制作一个vb程序的步骤。制作一个VB程序(可视化编程)的步骤:,课后作业:探讨如何制作QQ登陆界面,用到哪些控件,哪些我们可以通过今天的学习可以完成?,2.2程序的顺序结构,一、实例:居民生活消费支出的计算,Private Sub Command1_Click()Const s1 As Integer=170,s2 As Integer=144,s3 As Integer=3,s4 As Integer=36,s5 As Integer=18,s6 As Integer=12,s7 As Integer=6,s8 As Integer=6,s9 As Integer=24,s10 As Integer=10 Dim d1 As Single,d2 As Single,d3 As Single,d4 As Single,d5 As Single,d6 As Single,d7 As Single,d8 As Single,d9 As Single,d10 As Single Dim x As Single,y As Singled1=Val(InputBox(请输入粮食的单价:)d2=Val(InputBox(请输入蔬菜的单价:)d3=Val(InputBox(请输入油脂类的单价:)d4=Val(InputBox(请输入薯类的单价:)d5=Val(InputBox(请输入肉类的单价:)d6=Val(InputBox(请输入干豆类的单价:)d7=Val(InputBox(请输入蛋类的单价:)d8=Val(InputBox(请输入鱼虾的单价:)d9=Val(InputBox(请输入乳类的单价:)d10=Val(InputBox(请输入水果的单价:)x=s1*d1+s2*d2+s3*d3+s4*d4+s5*d5+s6*d6+s7*d7+s8*d8+s9*d9+s10*d10 y=x/0.6Print 基本食品消费支出x;xPrint 总的生活消费支出y;yEnd Sub,1、输入数据,2、计算,3、输出数据,赋值语句,变量=表达式,Dim A As Integer,B As IntergerA=10B=20B=B+A,2、输入数据函数,InputBox(提示信息,标题,默认值,位置)功能:从键盘输入数据,返回值是字符串类型例:d1=Val(InputBox(请输入粮食的单价:)Val(参数):将字符串数转化为数值类型的数,3、输出数据的方法,Print 输出内容说明:(1)如果输出的内容是数、变量、表达式,则输出的是数、变量、表达式的值。如果是用引号引起来的字符串,则原样输出。(演示1)(2)输出内容可以是一个或多个。如果是多个输出内容,则各输出内容之间可以用逗号或分号分隔;如果用分号,则后面一个输出紧跟前一个输出;如果是逗号,则按照分区格式输出。(演示2)(3)如果输出内容后面没有符号,则表示下一个Print换行输出;如果Print中没有输出内容,则表示输出一个空行。(演示3),顺序结构,Private Sub Command1_Click()Dim A As Single,B As Single,C As Single,S As Single,V As Single A=InputBox(A=,输入)B=InputBox(B=,输入)C=InputBox(C=,输入)S=2*(A*B+A*C+B*C)V=A*B*C Print 全面积S=;S,体积V=;VEnd Sub,从键盘上输入一个三位数,然后将它们反向输出,Private Sub Command1_Click()Dim X As Integer,X1 As Integer,X2 As Integer,X3 As Integer,Y As Integer X=InputBox(X=,输入)X1=X 100 X2=(X-X1*100)10 X3=X-X1*100-X2*10 Y=X3*100+X2*10+X1 Print Y=;YEnd Sub,练习,在书本上写出以下程序:P40实践(1)(2)P40练习(1)(2)(3),2.3程序的选择结构,例:将分数成绩转换成等级成绩,Private Sub Command1_Click()Dim a As Single a=InputBox(“请输入成绩:”)If a=60 then Print“等级为:及格”Else Print“等级为:不及格”End IfEnd Sub,条件语句,If 条件 Then 语句组1 Else 语句组2,If 条件 Then 语句组1 Else 语句组2End If,条件成立吗?,语句组2,语句组1,否,是,关系表达式,关系表达式 a=60关系运算符 不等于关系表达式的值 True False 例:136 值为True“C”“D”值为False,逻辑表达式,Not(非)取操作数相反的值。即当操作数为假(False)时,结果为真(True);当操作数为真(True)时,结果为假(False)。And(与)当两个操作数都为真时,结果才为真。只要有一个为假,结果都为假。Or(或)当两个操作数中都为假时,结果才为假。只要有一个为真,结果都为真。例:Not(37)(310)(05)Or(31)(50)Or(31),逻辑运算的顺序,(1)当条件中只有逻辑运算符时,运算的顺序为Not And Or。(2)当条件中既有算术运算符,又有关系运算符和逻辑运算符时,运算顺序是:算术运算关系运算逻辑运算P44 实践,多重选择语句,P44问题格式:Select Case 表达式 Case 表达式列表1 语句组1 Case 表达式列表2 Case Else 语句组N+1 End Select,多重表达式的执行过程:当表达式的值为表达式列表1时,执行语句组1;当表达式的值为表达式列表1时,执行语句组1;当表达式的值为表达式列表N时,执行语句组N;当表达式的值不是上述值时,执行语句组N+1;,注:(1)表达式和表达式列表可以是数值型或字符型,表达式列表还可以是多个逗号分开的表达式。(2)表达式列表与表达式的类型必须相同。(3)表达式列表又称为值域,它有如下三种形式:表达式1,表达式2,表达式1 To 表达式2。Is 关系表达式。例:Case 1,3,5 表示当表达式的值为1或3或5时执行后面的语句组。Case 10 To 20 表示当表达式的值在10到20之间时执行后面的语句组。,2.4程序的循环结构,P53问题,陈婷到多少岁才能累计种到或超过100棵树?,分析问题:设年龄为Age,种树总数为TreeAge:17 18 19 Tree:3 3+4 3+4+5 关系:Tree=Tree+Age-14设计算法:,前一个Tree值,两者差14,编写程序,Private Sub Command1_Click()Dim Age As Integer,Tree As Integer Age=17 Tree=3 Do Age=Age+1 Tree=Tree+Age-14 Loop Until Tree=100 Print 到;Age;岁时种到;Tree;棵树!End Sub,循环体,循环终止条件,Do循环语句的基本格式:,Do 循环体Loop Until 循环终止条件,Private Sub Command1_Click()Dim Age As Integer,Tree As Integer Age=17 Tree=3 Do Age=Age+1 Tree=Tree+Age-14 Loop Until Tree=100 Print 到;Age;岁时种到;Tree;棵树!End Sub,循环的嵌套,Private Sub Picture1_Click()Dim Se As StringPicture1.Print Tab(35);乘法表For I=1 To 9 For J=1 To 9 Se=I Next JPicture1.PrintNext IEnd Sub,多重循环的原则,外层循环与内层循环必须层层相套,循环之间不能交叉,For i=1 To 5 For j=1 To 10 Print i+j Next jNext i,For i=1 To 5 For j=1 To 10 Print i+j Next iNext j,外层循环与内层循环的变量不得同名,几种循环语句的比较,For循环语句主要用于描述预先知道循环次数的循环结构,是一种计数循环;Do循环语句是根据条件是否满足而决定循环是否继续进行,2.5模块化程序设计,一、自顶而下、逐步求精的程序设计思想,在社会活动中,对于一些大型的、复杂的问题进行求解,常常会把他们分解为更小、更简单和更容易处理的子问题。当这些子问题被求解后,原来的问题就可以随着这些子问题的解决迎刃而解。这就是“自顶而下、逐步求精”的程序设计思想。,如右图所示:已知五边形的边及对角线的长度,求五边形的面积。,案例分析:P60 问题 2-9,自顶而下、逐步求精的程序设计思想的优点:符合人们解决问题的规律,提高程序设计的效率有清晰的层次结构,容易阅读和理解,二、过程与函数,在某些程序中,一些具有相似功能的程序段在程序的不同位置反复出现,通常将这些重复出现的程序段抽出来,单独书写成为子程序,在VB中,把子程序称为“过程”,整个应用程序就是由若干这样的过程构成的。,在VB中,根据过程是否返回值,通用过程又分为Sub过程和Function(函数)过程。Function过程要返回值。,(一)自定义函数,1、格式:其中:“函数名”的命名规则同变量名;“形式参数表”中的参数是函数的自变量;第一个语句最后的“AS 类型”指函数值的数据类型;在语句组内要退出自定义函数,可以使用Exit Function语句。,应用实例求三个数的平均数,自定义函数如下:(1)在代码窗口下选择VB“工具”菜单中的“添加过程”,打开添加过程的对话框窗口,如下图所示:,(2)若函数需要接收参数,则在函数名后的括号中,加入用于接收参数的变量名及数据类型说明,若有多个变量,各变量之间用逗号进行分隔。如下所示:,(3)添加一个按钮,用以调用求三个数的平均数的自定义函数Ave的程序:,(二)自定义过程,1、子过程的格式,例1:求三个数的平均数的子过程定义如下:例2:输入五边形的七条边长度的子过程定义如下:,2、子过程的调用调用子程序的格式如下:其中:(1)格式中的实际参数表不能用括号括起来。(2)子过程调用语句的实际参数表必须在数目、类型、排列上与子过程定义语句的形式参数表一致。,例1、以下是调用求三个数的平均数的子过程 例2、调用子过程inputdata,综合实践练习求五边形的面积,如右图所示:已知五边形的边及对角线的长度,求五边形的面积。,(2)设计算法。输入A1、A2、A3、A4、A5、A6、A7;计算S=TS(A1,A2,A7)+TS(A3,A6,A7)+TS(A4,A5,A6);输出S。,求三角形面积ts的算法如下:第一步,计算p=(a+b+c)/2第二步,计算ts=Sqr(p*(p-a)*(p-b)*(p-c),输入数据的子过程 inputdataPrivate sub inputdata(A1,A2,A3,A4,A5,A6,A7)A1=InputBox(“输入第一条边的长度”)A2=InputBox(“输入第二条边的长度”)A3=InputBox(“输入第三条边的长度”)A4=InputBox(“输入第四条边的长度”)A5=InputBox(“输入第五条边的长度”)A6=InputBox(“输入第一条对角线的长度”)A7=InputBox(“输入第二条对角线的长度”)End sub,求三角形面积TS的自定义函数Public function TS(a as single,b as single,c as single)as single dim p as single p=(a+b+c)/2 TS=sqr*(p*(p-a)*(p-b)*(p-c)End function,Private Sub Command1_Click()Dim A1 As Single,A2 As Single,A3 As Single,A4 As Single,A5 As Single,A6 As Single,A7 As Single,S As Singleinputdata A1,A2,A3,A4,A5,A6,A7S=TS(A1,A2,A7)+TS(A3+A6+A7)+TS(A4+A5+A6)Print 五边形面积为:;SEnd Sub,三、模块化程序设计的基本方法 P66,函数与过程的异同点比较表,第三章 可视化编程,3.1 可视化编程的概念与方法,3.1.1 VB可视化编程的概念,一、对象 现实世界是对象的集合体,现实世界中的任何物体都可以被称为对象。1、请同学们举例说明我们现实世界中都有那些对象呢?这些对象各有什么特征?2、前两章我们学习了程序设计的一些基本内容,并做过简单的练习,请同学们仔细想一下程序设计中具体有那些对象,举例说明。,图3-1现实世界中的对象,马是对象,汽车是对象,电脑是对象,树是对象,图3-2 程序设计中的对象,二、属性 我们刚刚讨论了现实世界中对象的特征,同样的道理,程序设计中每个对象都有其各自的特征,我们把这个特征称为属性。例如:窗体的外观、背景颜色、标签的标题、颜色等。属性具有属性值,改变属性值就可以改变对象的特性。请同学们想以想,设置对象属性的方法有那些:,方法2、在运行的程序代码中进行设置,语法格式为:对象名.属性名=属性值例如:form1.caption=“欢迎来到VB世界”text1.text=“郑子明”text1.visible=False,方法1、在设计程序界面时,利用属性窗口直接设置,图3-3 代码窗口,实践活动:1、构建如图3-4所示的用户界面,添加各种对像,并修改它们的属性值,图3-4 学生信息登录系统,2、构建如图3-5所示的界面,并在代码窗口中设置对象Text1的属性值为“欢迎使用VB”。,2、构建如图3-5所示的用户界面,并在运行的程序代码中设置对象Text1的属性值,图3-5 设置text1的属性值,三、方法 对象除了属性之外,还包含一些控制对象的动作。以一部手机为例,这个对象具有这样一些动作,分别是发短信、振动、发声。这三个动作就是手机这个对象所提供的行为。在程序设计中,对象的行为称为方法。方法对应于对象内部的一段程序代码,即可能是一个函数,也可能是一个过程,它通常通过代码的调用才会出现。请同学们想想,我们之前学过那些方法?,例如:显示窗体可调用show方法,隐藏窗体可调用Hide方法,输出内容可调用Print方法,删除内容我们用Cls(清除)方法,移动控件我们用Move方法。,图3-6 方法的调用,根据图3-5我们可以看出,VB的方法通过代码调用的格式为:对象名.方法名【参数】例如:lable1.move 200,300 运行时,将lable1对象移动到(200,300)处,多个参数要用逗号隔开。实践:在窗体上建立一个命令按钮,双击该按钮,双击该按钮输入以下代码:Form1.Hide,运行程序,你看到了什么?,四、事件 对于对象而言,事件就是发生在该对象上的事情。比如一个充满空气的气球被针扎了一下,气球就会泄气,所以说“针扎”就是一个发生在气球这个对象上的事件 在程序设计中,事件是指由用户操作触发或由系统触发,能被特定对象所识别并做出相应的动作。请同学们想,我们之前学过什么事件?例如:单击鼠标引发Click事件;加载窗体引发Load事件等 事件是用户与程序交互的媒介,附属于对象,是由VB系统预先定义好的,用户不能利用已有的对象创建新的事件。,五、事件过程 当在对象上发生了某个事件后,必须想办法处理这个事件,而处理的步骤就是事件过程。以气球为例,发生了“针扎”事件后,气球可能被丢弃或修补,不论是丢弃或修补,都是针对“针扎”事件的处理步骤,也就是事件过程。而在程序设计中,事件过程中的处理步骤就是程序代码。对象对事件的反应是通过事件过程来完成的。而事件过程是程序员为响应对象事件所编写的一段程序代码。事件过程由对象名、下划线()和事件名组合而成。,例如:命令按钮的command1的鼠