首页 vb基础全课课件

vb基础全课课件

举报
开通vip

vb基础全课课件null程序设计基础程序设计基础 第3章、程序设计基础 null本章知识点代码书写格式 基本数据类型 常量和变量 运算符和表达式 输入输出操作 常用内部函数 程序的基本控制结构 难点       变量的范围       循环控制结构3.1 代码书写规则3.1 代码书写规则代码行和语句 注释 数字系统 VB命名约定3.1.1 代码行和语句3.1.1 代码行和语句一行为一条VB语句 语句过长时,可在”代码窗”中使用续行符(_)将长语句分成多行写. 如:text1.text=_ “hello” 将多个语句...

vb基础全课课件
null程序设计基础程序设计基础 第3章、程序设计基础 null本章知识点代码书写格式 基本数据类型 常量和变量 运算符和 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式 输入输出操作 常用内部 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数 程序的基本控制结构 难点       变量的范围       循环控制结构3.1 代码书写规则3.1 代码书写规则代码行和语句 注释 数字系统 VB命名约定3.1.1 代码行和语句3.1.1 代码行和语句一行为一条VB语句 语句过长时,可在”代码窗”中使用续行符(_)将长语句分成多行写. 如:text1.text=_ “hello” 将多个语句放在同一行,使用冒号(:)分开 如:Text1.text=“hello” : Text1.Forecolor=VbRed3.1.2 在代码中添加注释3.1.2 在代码中添加注释不是程序代码,不会被执行 通常解释代码的功能 注释符( ‘ ) 例:Text1.forecolor=VbRed ‘将文本框中的字体颜色设为红色 ‘将文本框中的内容置为hello text1.text=“hello”3.1.3 数字系统3.1.3 数字系统3.1.4 VB的命名约定3.1.4 VB的命名约定VB程序中声明过程、常量、变量和控件的名字,必须遵循的规则变量名应该以字母开头中间不允许有空格第一个字符后面可以跟字母、数字或下划线大小写等价变量名应该是有意义的而且是描述性的不能与关键字同名变量变量数据15内存应用程序要为每一项数据分配内存 需要多少内存 需要将数据分类吗?通过变量,可以为内存中的位置提供一个有意义的名称变量变量a = 4 ‘将4赋值给a b = 5 ‘将5赋值给b c = a + b ‘将a与b相加后的值赋给c PRINT c ‘输出c的值 Dim a as Integer ‘声明名为a的整型变量 Dim b as Integer ‘声明名为b的整型变量 Dim c as Integer ‘声明名为c的整型变量nullnull…..Dim a as integer…..Dim b as integera=35 b=202035553.1、基本数据类型3.1、基本数据类型数值型null1、 整型(Integer) 可以是正整数、负整数或0 表示不带小数点的数 内存中占2字节,范围从-32768到32767 标识符为百分号(%)例: Dim a as Integer 或: Dim a%注意: 数值型的变量定义时默认值为0.null2、长整型Long 可以是正整数、负整数或0。 表示不带小数点的数。 内存中占4字节整数,从-2147483648到2147483647。 标识符为&。例: Dim a as Long 或: Dim a&null3、字节型(Byte) 字节型数据表示0~255的无符号整数,内存中占1个字节。null4、单精度浮点数Single 表示带有小数的实数 内存中占4字节,单精度浮点数最多有7位有效数字 标识符为! 科学记数法格式 :±aE±c或±ae±c例如: 123.45 0.12345E+3 123.45! 如果某个数的有效数字位数超过7位,当把它赋给一个单精度变量时,超出的部分会自动四舍五入。 例如:把213456.2567赋给单精度变量aa,aa的值为213456.3。 null5、 双精度浮点数Double 表示带有小数的实数 内存中占8字节,单精度浮点数最多有15位有效数字 标识符为#例如: 314.15e-2 表示 3.1415null6、货币型(Currency) 专门为处理货币而设计的数据类型。 8字节定点数,小数点右边4位,左边15位,用于货币计算,标识符为 @ 。 例如: 将3.12125赋给货币型变量aa,在内存中aa的实际值是3.1213。 null要用双引号(注意必须是英文状态下的双引号)括起来。 可以包含英文、数字或者汉字,一个汉字是两个字符,占两个字节的存储空间 字符类型的变量默认值为空串,即其值为“”。 标识符为$。7、字符串型(String )null例如:"Visual Basic" 、 "中国天津" 、 "123.456 " (1)变长字符串 dim name as string (2)定长字符串 dim name as string*8 name= "John" 当字符少于8个,则用空格将不足部分填满 当字符多于8个,则截去超出部分的字符8、逻辑型( Boolean )8、逻辑型( Boolean )用于逻辑判断,只有两个值:真(True)和 假(False) 默认值:False 逻辑型数据转换成整型数据时,True转换为-1,False转换为0; 其他类型数据转换为逻辑数据时,非0数转换为 True, 0转换为False。 null9、日期( Date)数据类型日期范围是从公元100年1月1日到公元9999年12月31日 时间范围是从00:00:00~23:59:59。 采用双井号(# #)括起来表示时间 例如: #03/10/2000#、#2000-03-10#、#2000-3-15 13:30:15#。null10、变体( Variant )数据类型可以储存任意类型的数据定义格式: Dim 变量名3.3 常量和变量3.3 常量和变量存储于计算机中的数据按是否可变来分,分为两大类: 常量:在程序执行过程中,其值不发生变化的量 变量:在程序执行过程中,其值可发生变化的量null3.3.1、语句、命令的语法描述规则 {Dim | Private | Static | Public}〈变量名〉[As〈类型〉][,〈变量名2〉[As〈类型2〉]] … 各语法描述符号及它们的含义如下: 〈〉:必选参数项,尖括号中内容,必须由使用者根据自己的需要提供具体的参数。 [ ]: 可选参数项,方括号中的项目由使用者根据具体问题决定选与不选。如省略,则为缺省值。 { } 和 | : 竖线分隔多个选项,必须选择其中之一。 “···”表示同类项目重复出现。null3.3.2、常量在程序中给某一特定的值赋予一个名字,以后用到这个值时就用名字代表,该名字就是符号常量。 声明的语法为: [Public | Private] Const〈常量名〉[As〈数据类型〉] = 值null例如: Const conPi = 3.14159265 Public Const conMax As Integer = 9 Const conReleaseDate = #1/1/95# Public Const conVersion = "1.0.0" Const conNum = 3*4 Const conPi2 = conPi * 2  如果用逗号进行分隔,则在一行中可声明多个常数: Public Const conPi = 3.14, conMax = 9null 3.2.2、变量 用一个名称,代表一定的数据,其值在程序运行的过程中可以发生变化。 它用来临时储存数据,或用于传递数据。 null2、变量的声明 语法为: {Dim | Private | Static | Public}〈变量名〉[As〈类型〉][,〈变量名2〉[As〈类型2〉]] … 如: Dim a As Integer 一行中定义多个变量 如: Dim a As Integer ,  b As Long ,c As String 利用数据类型的类型符定义变量: Dim a% , b& ,c$  nullnull注意:数据类型或类型符如果不标明的话则默认为Variant型。 例如: Dim Str1 As String ‘声明Str1为变长字符型的变量 Dim Str2 As String*6 ‘声明Str2为定长字符型的变量 Dim x As Integer ‘声明x为整型的变量 Dim a# ‘声明a为双精度型的变量 Dim x As Integer, y%, c% ‘声明x,y,z为整型 Dim x,y,z As String ‘声明x,y为默认的Variant型,z为字符型的变量null3、隐式声明 在使用一个变量之前不先声明这个变量的使用方法称为隐式声明。 缺点:容易出错 例如,可以书写这样一段代码: TempVal = 10 TempVal = TempVal + 1 写成: TempVal = 10 TempVal = TmpVal + 1null 4、显式声明 为了避免写错变量名引起的麻烦,我们可以给自己作硬规定,不允许使用未声明的变量。防止自己写错代码。强制要求定义变量 强制要求定义变量的方法有两种: (1) 在类模块、窗体模块或标准模块的声明段中加入语句: Option Explicit (2) 从“工具”菜单中执行“选项”命令,在打开的“选项”对话框中单击“编辑器”选项卡,再选中“要求变量声明”选项。null5、变量的作用域 作用域分为: 过程 : Sub End Sub窗体模块 标准模块null生存周期: 过程调用时变量定义分配存储单元,一旦过程结束(End Sub),变量的内容自动消失,并释放所占用的存储单元。 当下一次执行该过程时,它的所有局部变量将重新初始化。 (1)过程内部使用的变量 有效范围: 只有在声明它们的过程中起作用,其他过程不可访问。 用 Dim语句来声明它们。 在不同的过程中可申请同名的过程级变量。 例如:   Dim i As Integernull(2) 静态变量 用Static在过程内定义,为过程内部使用的变量。 生存周期:第一次调用过程时,静态变量生成并初始化,过程结束(End Sub)时,静态变量仍然在内存中存在,以后每次调用该过程时,该变量不在重新生成和初始化,而是使用上一次的结果。例如:   Static i As Integer 注意:必须在过程中定义。null多次单击,a和b的值变化情况?null思考:设计一个电子跑表.统计单击按钮的次数:null(3)模块内部使用的变量 有效范围: 用Dim语句或Private语句,在“通用声明”段中定义。 模块级变量对该模块的所有过程都可用,但对其他模块的代码不可用。 在不同的模块中可申请同名的模块级变量,不会发生冲突。 例如:   Private j As Integer例:统计窗体中所有按钮被点击的次数null(4)所有模块使用的变量(公有变量) 用 Public 语句,在“通用声明”段中定义。 公用变量中的值可用于应用程序的所有过程。 在模块中使用其他模块中定义的公有变量时,引用方式: [模块名.]变量 例如:Form1中声明公有变量a   Public a As Integer Form2中引用时,应写成: Form1.a null四种类型变量间的比较5 、变量的可见性 5 、变量的可见性 不能定义作用范围完全相同的同名变量。 在不同的范围内可定义同名的变量。 当变量名称相同而范围不同时,局限性大的变量总会用“阴影”遮住局限性相对较小的变量 当有同名变量出现时,访问公有变量(Public)用模块名:变量名的方式。null3.3、运算符和表达式 3.3、运算符和表达式 1.算术运算符 VB共有7个算术运算符,其运算对象是数值类型的数据,除了负号可以作为单目运算符,其他都是双目运算符。3.3.1、算术运算符与算术表达式nullnull例1: (2+5)/2*3/2例2: (2+5) mod 3+3^3/4/5算术运算符之间的运算优先级从高到低: 幂运算→取负→乘、除→整除→求余→加、减 同级运算从左向右 在表达式中加括号可以改变表达式的求值顺序。 思考:求一个两位数的各个位数的和、乘积等?null2.算术表达式 常量(如:5)、变量(如:a) 、函数(如:len(a))是表达式,将它们加圆括号、或用运算符作有意义的连接后也是表达式. 书写VB的算术表达式,应注意与数学表达式在写法上的区别: 不能漏写运算符,如3xy应写作3*x*y。 VB算术表达式中使用的括号都是小括号。null例:由下列数学式写出相应的VB算术表达式 3.3.2、字符串运算符与字符串表达式 3.3.2、字符串运算符与字符串表达式 字符串运算符有两个:“+”和“&”,均为双目运算符,用于连接两边的字符串表达式 例: "AB" & "efg" "hz" + "xh"  字符串连接一般用&运算符。null字符串连接符“&”具有自动将非字符串类型的数据转换成字符串后再进行连接的功能,而“+”则不能。3.3.3、关系运算符与关系表达式 3.3.3、关系运算符与关系表达式 关系运算符也称为比较运算符,包括 <、<=、>、>=、=、<> 六种,均为双目运算符,用于比较两边的表达式(数值、字符串、日期)是否满足条件,运算结果为True或False。 null在关系表达式求值时: 数值型数据是比较大小,如3<=5为True。 日期类型数据比较先后, 如 #11/18/1999# > #03/05/2001# 为False。 字符串类型数据比较字符的ASCII码:若两端首字符相同则比较第2个字符,……,直到比较出相应字符的ASCII值大小或两端所有字符比较结束。 如 "ABCd" > "ABCD",比较结果为True; 如 "ABCD" = "ABCD",比较结果为True思考:判断一个数是否能被5整除? 3.3.4、逻辑运算符与逻辑表达式 3.3.4、逻辑运算符与逻辑表达式 逻辑运算符包括 And、Or、Not三种; And、Or均为双目运算符,Not为单目运算。 运算符两侧的值,必须是True和False逻辑型数据,运算结果也是True或False的逻辑值。 1、与运算(And)1、与运算(And)条件A And 条件B结论:同时满足条件A和条件B时,结果才为真;否则为假(False)。思考:判断一个数是否既能被2整除又能被3整除?2、或运算(Or)2、或运算(Or)条件A Or 条件B结论:条件A和条件B,只要满足其中任何一个条件,结果就为真(True) ,否则为加(False)。思考:判断一个数是否能被2整除或能被3整除?3、非运算(Not)3、非运算(Not)Not 条件A结论:由真变假,由假变真。思考:判断一个数是否不能被2整除?null逻辑运算符的优先级是:先Not,次And,后Or。 算术运算符、关系运算符和逻辑运算符的优先级关系为:算术运算符最高,其次是关系运算符,最后是逻辑运算符。例: 2=0 And Not 3+5<>0 Or 2<>0 And 3=0 例: 输入一个年份,判断是否是闰年?null例 : 由下列条件写出相应的VB逻辑表达式 条件“-3=<表达式>2、为对象的属性赋值:<对象名>.<属性名>=<表达式>注意: 数据类型在赋值过程中,将进行转换。 赋值号区别于关系运算符的等号。例: 编写一个实现两个变量值交换的程序。 3.5.2、Print 语句 3.5.2、Print 语句 对象名.Print 输出项1{,|;} 输出项2... 输出项之间的分隔符“,”为分段格式,“;”为紧凑格式。 语句末尾为分隔符“,”或“;”,则该语句最后的输出位置为下一条Print语句输出的起始位置。 若省略输出项,则输出一空行。 Tab(n):将输出项定位到第n个字符开始显示输出。 Spc(n):在输出数据间插入n个空格。 如执行语句 Print “abc”; Spc(3); “def ” 后输出: abc defnull例:Private Sub Form_Click() Print Tab(15); "姓名"; Tab(35); "年龄" Print Tab(15); "姓名"; Spc(16); "年龄" End Sub 例: Private Sub Form_Click() Print 123, 888, -456, 3.14 Print 123; 888; -456; 3.14 Print "123"; "888"; "abc", True; Print 123, 888; -456; 3.14 Print Print 123, 888, -456, 3.14 End Sub 3.5.3、输入对话框 3.5.3、输入对话框 InputBox函数,返回用户在对话框中输入的信息。 格式: <变量名>=InputBox(<提示信息>[,<对话框标题>[,<默认值>]] 其中: 1)<提示信息> 指定在对话框中出现的文本信息。 2)<对话框标题> 指定对话框的标题信息。 3)<默认值> 可以指定文本框中显示的默认信息。 用该函数输入的数据系统默认为字符串类型,转换为与变量同一类型后赋值给变量。null n = InputBox(“请输入数据:”, “数据输入”, 10)例: 编写一个实现两个变量值交换的程序,要求两个变量的值用输入对话框输入。 3.5.4、输出消息框 3.5.4、输出消息框 MsgBox函数用来显示用户所需输出的信息,并且可以返回用户在消息框中的选择。 格式: [变量名=] MsgBox(<提示信息>[,<对话框类型>[,<对话框标题>]]) 1)<提示信息> 指定在对话框中出现的文本信息。 2)<对话框类型> 指定对话框中出现的按钮和图标样式。 3)<对话框标题> 指定对话框的标题信息。 4)函数MsgBox对用户在消息对话框中所单击的不同按钮,将返回1个不同的数值。nulln = MsgBox("请确认输入的数据是否正确!", vbYesNoCancel + vbQuestion + vbDefaultButton1, "数据检查")vbYesNoCancel + vbQuestion + vbDefaultButton1 可写成:3+32+0 或 35 null例:单击按钮后跳出一个提示对话框,如图所示。 Private Sub Command1_Click() MsgBox "数据类型不符合要求", vbExclamation, "数据检查" End Sub注意:如果无需返回所选择的命令按钮的值,则可按如下语法使用MsgBox函数: 格式: MsgBox 提示信息[,<对话框类型>[,<对话框标题>]]null例:通过输入对话框输入一个数,通过输出对话框输出这个数的立方数。 Private Sub Command1_Click() Dim a% a = InputBox("输入一个数", "立方运算") MsgBox a & "的立方是" & a ^ 3, _ vbInformation, "结果" End Sub 3.6、 常用内部函数 (Function)3.6、 常用内部函数 (Function)由系统预定义函数,可以由用户直接调用。 函数输入参数必须用括号括起来,并满足一定的取值要求。 函数一般有返回值,了解返回值的含义及类型。 3.6.1、数学函数 3.6.1、数学函数 例: 由下列条件写出相应的VB表达式。 三角函数的自变量必须是弧度,数学式Sin30°,写作Sin(30*3.1416/180)。 求变量x绝对值的平方根,算术表达式为: Sqr(Abs(x)) 判断变量k的整数部分是否两位数的逻辑表达式为:Int(abs(k))>=10 and Int(abs(k))<=99 将单精度变量k四舍五入至小数点后两位的表达式为: Round(k,2)3.6.2字符串函数 3.6.2字符串函数 Ltrim(" abc ")的计算结果为字符串"abc "。 Rtrim(“ abc ”)的计算结果为字符串“ abc”。 Trim(" abc ")的计算结果为字符串"abc"。 若s$= "abcdefg" ,则Left(s$,2)返回“ab“;Right(s$,2) 返回”fg“;Mid(s$,9,3) 返回空字符串;Mid(s$,2,3) 返回"bcd"。 Len(“abcdefg”)返回数值7,Len(k%)返回数值2。 Lcase("abCDe")返回"abcde", Ucase("abCDe")返回"ABCDE"。 Space(2)为“ “ 3.6.3、日期和时间函数 3.6.3、日期和时间函数 null 3.6.5、转换函数 3.6.5、转换函数 1、Str(x):返回把数值型数据x转换为字符型后的字符串。 Str(-123.45)返回"-123.45";大于零的数值转换后符号位用空格表示,如Str(123.45)返回" 123.45"。2、Val(x):把一个数字字符串x转换为相应的数值。如果字符串中包含非数字字符,则将第一个数字形式的字符串转换为相应的数值。 Val(“123.45abc678”)返回数值123.45。 Val(“abc678”)返回数值0。3、Chr(x):返回ASCII值为x的字符。 Chr(65)返回"A"。 4、Asc(x) :返回字符串x首字符所对应的ASCII值。 Asc("ABcde")返回数值65。例3: 加法运算器。 例3: 加法运算器。 Private Sub Command1_Click() Text3.Text = Val(Text1.Text) +_ Val(Text2.Text) End Sub 3.6.5、随机函数 3.6.5、随机函数 ⑴Randomize语句:该语句的作用是初始化Visual Basic的随机函数发生器(为其赋初值),即置随机种子。⑵ Rnd函数:产生0~0.999999999之间的随机数 要得到[a,b]之间的随机整数,可用公式“Int(Rnd*(b-a+1))+a” 例: 每单击一下窗体,产生一个30~70之间的随机数,显示在窗体上。例: 每单击一下窗体,产生一个30~70之间的随机数,显示在窗体上。Private Sub Form_Load() Randomize End Sub Private Sub Form_Click() Print Int(Rnd * (70 - 30 + 1)) + 30 End Sub 程序设计的三种基本结构程序设计的三种基本结构顺序结构 选择结构 循环结构 3.7、选择结构语句 3.7、选择结构语句 若求一个数的绝对值: Y=|x|=X x>=0-X x<03.6.1、 If语句 3.6.1、 If语句 1.If...Then 格式: If 条件表达式Then 执行语句   如果执行语句有多条,采用格式: If 条件表达式Then 执行语句1 执行语句2 执行语句3 … End If例: 求一个数字的绝对值 例: 求一个数字的绝对值 Private Sub Command1_Click() Dim x As Single, y As Single x = InputBox("输入一个数字", "求绝对值") y = x If x < 0 Then y = -x MsgBox “结果是” & y, , “求绝对值” End Sub例: 编程,输入x、y,仅当x=0sqr(-x) x<0语句块1语句块2条件NoYes前面的语句继续后面的语句例: 输入a,b,c三边长,求这三个边是否能构成一个三角形。单击按钮进行判断:若能,在标签上输出“可以”;否则输出“不可以”。例: 输入a,b,c三边长,求这三个边是否能构成一个三角形。单击按钮进行判断:若能,在标签上输出“可以”;否则输出“不可以”。Private Sub Command1_Click() Dim a%, b%, c% a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If a + b > c And b + c > a And a + c > b Then Label1.Caption = "可以" Else Label1.Caption = "不可以" End If End Subnull例: 用输入对话框输入3个数,找出其中最大的数。 Private Sub Command1_Click() Dim a0%, a1%, a2%, max% a0 = InputBox("输入一个数字", "求最大值") a1 = InputBox("输入二个数字", "求最大值") a2 = InputBox("输入三个数字", "求最大值") max = a0 If a1 > max Then max = a1 If a2 > max Then max = a2 MsgBox "最大值是" & max, , "求最大值" End Sub 3、条件语句的嵌套3、条件语句的嵌套If <条件> Then … If <条件> Then … Else … End If Else … If <条件> Then … Else … End If End If 在[语句块1]内的条件语句在[语句块2]内的条件语句null例:顾客在商场购物时,若所选物品的总金额x在下述范围内,则实付款y可按对应折扣支付,请编程计算某顾客的实付款,总金额由键盘输入。Y=X x<10000.9X 1000<=x<20000.8X 2000<=x<30000.7X x >=30004、简化的If语句的嵌套格式4、简化的If语句的嵌套格式条件1条件2条件3条件n语句序列n+1语句序列1语句序列2语句序列3语句序列n真真真真假假假假前面的语句继续后面的语句nullIf <条件1> Then <语句序列1> ElseIf <条件2> Then <语句序列2> ElseIf <条件3> Then <语句序列3> … ElseIf <条件n> Then <语句序列n> Else <语句序列n+1> End If 3.6.2、Select Case 3.6.2、Select Case Select Case 表达式 Case <值列表1> [语句块1] Case <值列表2> [语句块2] .. Case <值列表n> [语句块n] Case Else [无匹配情况时执行该语句块] End Select表达式语句块1语句块2语句块n语句块n+1…值列表1值列表2值列表nnull1、<表达式>是Case子句测试的依据,常是变量或含变量的表达式 。 2、<值列表>相当于分支的条件,必须和<表达式>的值类型一致。 3、 <值列表>可以使用下列形式之一: 〈表达式1〉[,〈表达式2〉]… 〈表达式1〉 To 〈表达式2〉 Is <关系表达式>举例: Case 1,3,5,7 表示当值为1或3或5或7 Case 3 To 5,8 To 12 表示当值在区间[3,5]或[8,12]上时 Case Is<=5 表示当值小于或等于5时 Case 3,5 To 8,Is>12 表示当值为3或在区间[5,8]上或大于12时null文本框中输入年份及月份,在标签中输出该月有多少天。null使用选择结构时要注意防止出现“死语句”,即永远也不可能执行的语句。 (1) Select Case x Case 0 to 10 y=3*x+1 Case is<0 y=5*x+3 Case 0 y=0 Case else y=x*x-10 End Select (2) If Int(Rnd)>1 then y=x+10*Rnd Else y=x End If 3.7 循环结构语句 3.7 循环结构语句 S=1+2+3+…+100 S=100!=1*2*3*…*100思考:在一行内打印n个“*”,其中n由输入对话框输入3.7.1、 For...Next 3.7.1、 For...Next For 循环计数器 = 初始值 To 终值 [Step 步长] 语句块 Next [计数器]注意: 一般For循环用于循环次数已知的情况。 步长可正可负。 如果步长为正,则初始值必须小于等于结束值,否则不能执行循环内的语句。 如果 步长为负,则初始值必须大于等于结束值,这样才能执行循环体。 如果没有设置 Step,则 步长默认值为 1。null计数器=初值计数器与终值比较真假执行语句块计数器=计数器+步长结束循环 null例: 计算1~100之间数字和。例:计算100的阶乘 例:求下列表达式的值。 1-1/2+1/3-1/4+…+(-1)n-1/n 其中n由输入对话框输入。nullPrivate Sub Command1_Click() Dim fh As Integer, sum As Double Dim n As Integer, i As Integer n = InputBox("输入n", "") sum = 1: fh = 1 For i = 2 To n fh = -fh sum = sum + fh / i Next i Print sum End Subnull例: 找出所有在1~1000中被7除余5、被5除余3、被3除余2的数。 Private Sub Form_Click() Dim i As Integer For i = 1 To 1000 If i Mod 7 = 5 And i Mod 5 = 3 _ And i Mod 3 = 2 Then Print i End if Next i End Subnull例:计算整数X各个位数的和值。 如:123为6;345为12整数X的位数: len(str(x))-1中途退出For循环控制结构 中途退出For循环控制结构 语句:Exit For 格式: For 计数器 = 初始值 To 结束值 [Step 步长] [语句块] [Exit For] [语句块] Next [计数器]例: 找出第一个在1~1000中被7除余5、被5除余3、被3除余2的数。例: 找出第一个在1~1000中被7除余5、被5除余3、被3除余2的数。Private Sub Form_Click() Dim i As Integer For i = 1 To 1000 If i Mod 7 = 5 And i Mod 5 = 3 _ And i Mod 3 = 2 Then Print i Exit For End if Next i End Subnull1、 For i = 1 To 10 Next 2、 For i = 1 To 10 Step 6 Next 3、 For i = 1 To 10 Step 3 If i Mod 2=0 Then Exit For End If Next 思考跳出循环时,i的值?3.7.2、 Do...Loop3.7.2、 Do...Loop1、 Do While 条件表达式 语句块 Loop真假执行语句块 条件表达式特点:如果条件表达式一开始便为 False,则不会执行语句块。 语句块中必须包含使循环趋于结束的语句。While 条件表达式 语句块 Wendnull2、 Do Until 条件表达式 语句块 Loop真假执行语句块 条件表达式null3、 Do 语句块 Loop While 条件表达式真假执行语句块 条件表达式特点: 先执行语句块,然后在每次执行后判断条件表达式的值。 保证循环语句块至少执行一次。null4、 Do 语句块 Loop Until 条件表达式真假执行语句块 条件表达式null例:求下列表达式的值。 1-1/2+1/3-1/4+…+(-1)n-1/n 计算到第i项的绝对值小于0.0001为止。null中途退出Do/Loop循环控制结构 语句:Exit Do 格式: Do [{While | Until} 条件表达式] [语句块] [Exit Do] [语句块] Loopnull例: 判断输入的任意正整数是否为素数(质数)。 素数:只能被1和它自身整除的数。 若n不能被2~n-1的任何一个数整除,则n就是素数。 如果n能被某一个整数整除,则可表示为n=a*b。a和b中必然有一个小于或等于Sqr(n)。 因此,如果n不能被2~Sqr(n)中的任何一个数整除,则n就是素数。 nullPrivate Sub Command1_Click() Dim n As Integer, i% n = InputBox("请输入一个", "判断素数") i = 2 Do While i <= Sqr(n) If n Mod i = 0 Then Exit Do i = i + 1 Loop If i > Sqr(n) Then MsgBox n & "是素数" Else MsgBox n & "不是素数" End If End Subnull注意:使用循环结构时要注意防止出现“死循环”,即永远也不可能跳出循环。 例: s=0 i=1 Do While i<10 s=s+i LoopnullPrivate Sub Command1_Click() Dim x%, sum% x = Val(Text1.Text) sum = 0 Do While___(1)______ sum = sum +___(2)____ ____(3)_______ Loop Label1.Caption = sum End Sub例:计算整数X各个位数的和值。 如:123为6;345为12答案: (1)、x <> 0 (2)、x Mod 10 (3)、x = x \ 10null1、计算数列和。 如:1+1/2!+1/3!+1/4!+…+1/n!单个循环结构的常用算法举例2、递推公式。 如:有一对兔子从出生后第3个月起每个月都生一对兔子。小兔子到第3个月又生一对兔子。假设所有兔子都不死,求第20个月的兔子对数。3、对整数各个位数进行相关操作。 如:输入一个正整数,将其倒序输出。null6、特殊数学算法。 如:用辗转相除法,计算两个数的最大公约数和最小公倍数。5、穷举法。 如:计算两个数的最大公约数和最小公倍数。4、对字符串进行相关操作。 如:输入一个字符串,统计“A”出现的次数。3.3.7、多重循环应用举例 3.3.7、多重循环应用举例 多重循环即循环结构的完全嵌套。 内层循环的控制变量一般与外层循环的控制变量不同名。 如:For i = 初值 To 终值 [step 步长] 语句块1 For j = 初值 To 终值 [step 步长] 语句块2 Next j 语句块3 Next inullFor i= 初值 To 终值 [step 步长] 语句块1 For j= 初值 To 终值 [step 步长] 语句块2 Next i 语句块3 Next j写出下列语句执行完后,sum1的结果。写出下列语句执行完后,sum1的结果。 sum1 = 0 For i = 1 To 4 sum2 = 0 For j = 1 To i sum2 = sum2 + j Next j sum1 = sum1 + sum2 Next i null例:计算1+(1+2)+(1+2+3)+…+(1+2+…+100)Private Sub Form_Click() Dim sum1&, sum2& Dim i%, j% sum1 = 0 For i = 1 To 100 sum2 = 0 For j = 1 To i sum2 = sum2 + j Next j sum1 = sum1 + sum2 Next i Print sum1 End Sub编写程序:找出1到100中所有素数,并以4个一行打印在窗体上。编写程序:找出1到100中所有素数,并以4个一行打印在窗体上。例、 输出乘法口诀表。 例、 输出乘法口诀表。 Private Sub Form_click() Dim i%, s%, j% For i = 1 To 9 For j = 1 To i Print Tab((j - 1) * 8); Trim(Str(i * j)); Next j Print Next i End Subnull输出格式对齐方式: Print Tab((j - 1) * 8); Trim(str(i * j));思考:打印如下九九乘法表null例:打印如下图形例:打印如下图形nullnull例: 运行时单击命令按钮后,输入n(n<10)、然后在窗体内输出1个如图所示的n层数字金字塔(图中所示是输入n=6的结果)。 nullPrivate Sub Command1_Click() Dim i As Byte, j As Byte, n As Byte Do n = InputBox("n=","输入1-9之间的整数") Loop While n<1 Or n>9 For i = 1 To n Print Tab(n - i + 1); ' 设置该行输出的起始位置 For j = 1 To 2 * i - 1 Print Trim(Str(i)); Next j Next i End Sub 百鸡问题:(穷举法)百鸡问题:(穷举法)鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问鸡翁、母、雏各几何?设鸡翁x只、鸡母y只、鸡雏z只 x+y+z=100 5x+3y+z/3=100 可能情况:0<=x<=20 0<=y<=34 0<=z<=100本章到此结束,谢谢大家本章到此结束,谢谢大家
本文档为【vb基础全课课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_304964
暂无简介~
格式:ppt
大小:784KB
软件:PowerPoint
页数:0
分类:高中语文
上传时间:2010-07-03
浏览量:19