1、第一章 算法与算法描述 1.算法定义 算法:就是解决问题思想方法,对解题过程准确描述。计算机解决问题步骤为分析问题、设计算法、编写程序、调试程序。算法是程序设计“灵魂〞,最核心过程。 2.法特征 一个算法应该具有以下五个重要特征: 1、有穷性: 一个算法必须保证执行有限步之后完毕; 2、确定性: 算法每一步骤必须有确切定义; 3、输入:一个算法有0个或多个输入,以刻画运算对象初始情况,所谓0个输入是指算法本身定出了初始条件; 4、输出:一个算法有一个或多个输出,以反映对输入数据加工后结果。没有输出算法是毫无意义; 5、可行性:算法中执行任何计
2、算步都是可以被分解为根本可执行操作步,即每个计算步都可以在有限时间内完成;〔也称之为有效性〕 3.算法描述方法 算法描述:可分多种表达方法,一般用自然语言、流程图和伪代码进展描述。 〔1〕自然语言描述法:指用人们日常生活中使用语言〔本国语言〕,用自然语言描述符合我们习惯,且容易理解。 例1:求圆周长和面积 算法如下:〔自然语言描述法〕 〔1〕输入半径r ; (2) 计算周长c=2*π*r ; (3) 计算面积 s=π*r*r ; (4) 输出周长c,输出面积s ; (5) 完毕 例2:工人每天工作8小时,每小时9元,超过8小时每小时增加15%加班费,计算工人每天应发日
3、工资。 (1) 输入工作小时X (2) 判断X值,分别计算 l X小于8,工资=X*9 l X大于8,工资=X*9+ (3) 输出工资 (4) 完毕 练习:求三个数中最大数。〔用自然语言描述〕 〔2〕流程图描述:也称程序框图,它是算法一种图形化表示方法。且描述算法形象、直观,更易理解。 常用“流程图〞所用根本符号及功能 程序框 名称 功能 开场/完毕框 表示算法开场或完毕 输入/输出框 表示算法中变量输入或输出 处理框 表示算法中变量赋值与计算 判断框 表示算法中条件判断 流程线 表示算法中流向 连接点
4、表示算法中连接 例1:求圆周长和面积 c←2*π*r s←π*r*r 输出c,s 输入r 完毕 开场 练习:求三个数中最大数。〔用流程图描述〕 〔3〕伪代码描述法:是介于自然语言和计算机程序语言之间一种算法描述。是专业软件开发人员常用方法。流程图根本图形及功能: 例1:求圆周长和面积 input r c=2*π*r s=π*r*r print c,s 练习:求三个数中最大数。〔用伪代码描述〕 4.程序与程序语言 〔1〕程序定义:程序实际上是一组及其操作指令或语句序列,是算法一种描述 〔2〕程序根本特征:程序一共有七个根本特
5、征 1、程序中,每一个算法步骤对应着程序设计语言一个或多个语句,每个语句对应一个或者多个操作。每个操作都要求有执行对象,并且根据对象状态变化形成动作效果,同事可变对象用变量来表示,变量值变化那么可通过操作赋值来完成。 2、除非特殊索命程序都是从第一条语句开场顺序开场向下执行。 3、程序总是施行与操作与某些对象,这些对象通常称为数据。 4、这些数据一般应该有属性和取值范围,即类型说明。 5、有时语句要求执行者作出判断,即在某种条件成立情况下执行一条或一组语句,否那么执行另一条或一组语句。 6、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复次数或重复条件。
6、 7、程序本身是一个静态实体,而执行语句进程是动态。 〔3〕程序根本构造:顺序构造、选择构造、循环构造。 〔4〕程序设计语言产生和开展 1、机器语言:二进制代码指令 2、汇编语言:类似英语缩略词且带有助记性符号语言,每条汇编指令和一条机器指令相对应,只是指令码和操作数都采用符号形式。而这种语言是不能被机器直接承受,必须用一种语言翻译器将程序中每条语句翻译成机器语言才能执行。 3、高级语言:高级语言本身不是一种语言,只是一类语言分类。用高级语言编写程序必须经过翻译器将其翻译成机器语言,才能在计算机上执行。常见高级语言:C语言、C++、pascal、java、C#、VB、Basic 〔
7、5〕程序编辑和翻译 1、程序编辑:以汇编语言或者高级语言所编写程序被称为“源代码〞,这些代码需要我们逐一输入到计算机中。并把他们以文件形式保存起来,这个过程称为程序编辑 2、程序翻译:前面学习中使我们知道,计算机只能识别和执行二进制机器语言代码,而我们用级语言或汇编语言编写程序要想被计算机执行,必须翻译成机器语言程序,最终才能被计算机执行。高级语言翻译程序一般那么有两种类型:编译程序和解释程序。 练习题: 1 下面对算法描述正确一项为哪一项:〔 〕 A、算法只能用自然语言来描述 B、算法只能用图形方式来表示 C、同一问题可以有不同算法 D、同一问题算法不同,结果必然不同
8、 2.下面关于算法描述正确是 〔 〕 (A) 算法不可以用自然语言表示 (B) 算法只能用框图来表示 (C) 一个算法必须保证它执行步骤是有限 (D) 算法框图表示法有0个或多个输入,但只能有一个输出 3、图形符号" "在算法流程图描述中表示( ). A 处理或运算功能 B 输入输出操作 C 用来判断条件是否满足需求 D 算法开场或完毕 4、以下哪个是算法描述方法( ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 5、下面语句是一个计算机程序操作说明: 〔1〕初始值为x=1,y=1,z=
9、0,n=0; 〔2〕n=n+1〔将当前n+1值赋予新n〕; 〔3〕x=x+2〔将当前x+2值赋予新x〕; 〔4〕y=2y〔将当前2y值赋予新y〕; 〔5〕z=z+xy〔将当前z+xy值赋予新z〕; 〔6〕如果z>7,那么执行语句〔7〕,否那么返回语句〔2〕继续进展; 〔7〕打印n,z; 〔8〕程序终止. 由语句〔7〕打印出数值为 ______,_______. 6、以下属于计算机程序语言有〔 〕 A、汇编语言 B、高级语言 C、机器语言 D、低级语言 7、执行程序时,程序中每一条语句至少要运行一次〔 〕 8、最早程序设计语言是
10、汇编语言〔 〕 9、程序设计语言是指人们编制程序所使用计算机语言,VB是低级语言〔 〕 10、高级语言翻译程序有两种类型:解释程序和编译程序〔 〕 第二章 程序设计根底 第一节 常量、变量定义 VB程序一般包括如下局部: 〔1〕 数据类型说明局部 〔2〕 数据输入局部 〔3〕 数据处理局部 〔4〕 数据输出局部 例:求圆周长和面积 Private Sub Command1_Click() Dim r As Single //定义r为单精度型 Dim c As Single //'定义c为单精度型 Dim s As Singl
11、e //定义s为单精度型 r = inputbox(“输入半径r〞) //输入半径r c = 2 * 3.14159 * r //计算周长 s = 3.14159 * r * r //计算面积 print c //输出周长 print s //输出面积 End Sub 一、常量:在程序进展过程中不变量,在VB中一般分数值常量与字符常量两种。 数值常量:就是数学中说常数,分整型常量和实型常量两种 整型常量:即整数,指不带小数点数值如1、0、-10、+35等都是合法整数 实型常量:即实数,指带小数点数值。 实型常量
12、又分为定点数和浮点数两种。 浮点数:2E6、1E5 ×103 可表示为1.2345E3,字母E表示底数10 浮点数就是数学上科学计数法。 字符串常量:被一对双引号括起来假设干个合法字符称为字符串常量。例如:〞China〞、〞Visual Basic〞、〞18”、〞”等,双引号中字符,不包括双引号本身。 符号常量:如果屡次用到同一个常量,那么可用一个有意义名字表示这个常量。 二、变量:在程序执行过程中,其值可以改变量称为变量 变量命名注意要点:1、必须以字母开头,不能以数字或其他字符开头。 2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。 3、最长不
13、超过255个字符 4、不能以VB保存字作变量名,如语句定义符、函数名等。 5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。 表2-1常用数据类型 整型 Integer 从-32768到32767 长整型 Long 从-2147483648到2147483647 单精度实型 Single 正数1.40129E-45到3.402823E38 但它只有7位有效数字 双精度实型 Double 绝对值小于10308数,它有15位有效数字 日期型 Date(Time) 如:#2008-01-31# #01/31/20
14、08# 字符型 String 如:“中国〞,“zhongguo〞 布尔型 Boolean True或False 三、常量和变量定义 符号常量声明:Const 常量名 [As 常量类型] = 常量值 如:Const pi As 常量名为pi 变量声明: Dim <变量名 >As <变量类型> 如:Dim a As Integer 定义一个 整型变量,变量名为a 变量赋值:变量 = 表达式 例:Private Sub Form_Click() Dim a As Integer, b As Integer, c As Intege
15、r Dim str As String a = 54 b = 114 c = a + b str = "Hello World" Print "a="; a, "b="; b, "c="; c Print str End Sub 四、运算符 1、 算术运算: + - * ^ / \ mod 加 减 乘 乘方 除 整除 取余 ^ 指数 例:2^2 = 4 / 〔浮点〕除 例: \ 整除 例: 5 \ 2 = 2 Mod 求余数 例:5 M
16、od 2 = 1 2、关系运算 = > < >= <= <> 等于 大于 小于 大于等于 小于等于 不等于 注意:关系表达式运算结果为布尔值True 或 False 例:3 > 2 结果为 True(真或是) 3、逻辑运算 Not〔取反〕And〔与〕 Or〔或〕 运算结果为布尔型〔Boolean〕True 或 False 逻辑运算符优先级为:No > And > Or 4、日期运算符与日期表达式 日期表达式是用日期运算符“+〞或“-〞将算式表达式、日期型常量、日期型变量、日期函数等连接起来式子,如表达式“#2003/09/01# +30”运算结果是“2
17、003-10-1〞;表达式“#2003/10/20# - #2003/10/10#〞运算结果为整数10 5、字符运算 字符串连接符为“+〞和“&〞 “123” + “45” = “12345” “123” & “45” = “12345” 123 + “45” = 168 “123” + 45 = 168 运算符执行顺序:在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符优先级决定,优先级高运算符先运算,优先级一样从左向右进展运算。不同性质运算符优先级如下。 算术运算符 > 字符串运算符 > 关系运算符 > 逻辑运算符 6、常用函数 函数名 说明 例如
18、 结果 Sin〔X〕 X弧度正弦 Sin〔0〕 0 Cos (X) X弧度余弦 Cos (0) 1 Tan〔X〕 X弧度正切 Tan〔0〕 0 Atn〔X〕 X用弧度表示反正切值 Atn〔0〕 0 Abs〔X〕 X绝对值 Abs〔-3.5〕 Exp〔X〕 e指定次幂,即ex Exp〔3〕 Log〔X〕 一个数值X自然对数 Log〔10〕 Sqr〔X〕 X平方根 Sqr〔9〕 3 Sgn〔X〕 符号函数:X>0,得到1, X<0,得到-1,X=0得到0 Sgn〔-3.5〕 -1 Int〔X〕
19、 不大于给定数X最大整数 Int〔-1.6〕 -2 Fix〔X〕 X整数局部 Fix〔-1.6〕 -1 Cint〔X〕 类型为:Integer -322768~32767 小数局部四舍五入 CLng〔X〕 类型为:Long -2147483648~2147483647 小数局部四舍五入 Mid〔C,N1,N2〕 从C中N1位开场取出长度为N2子串 Mid(“ABCDEFG〞,3,2) “CD〞 Right(C,N) 返回字符串右边N个字符 Right(“ABCDEFG〞,3) “EFG〞 Left(C,N) 返回字符串左边N个字
20、符 Left(“ABCDEFG〞,3) “ABC〞 Len(C,N) 测量字符串长度 Len(“VB学习开场〞) 7 Space(N) 产生N个空格组成字符串 “ABC〞&“Space(N) 〞& “113” “ABC 123” Date() 返回当前系统日期〔yy-mm-dd〕 Date()或Date 04-12-18 Time() 返回系统时间 Time()或Time 10:36:08 练习题: 1、以下变量名写法错误是( ) A、abc_123 B、123abc C、abc123 D、abc 2、以下语句中定义了一个实型变量是
21、 ) A、Dim end as Integer B、Dim sum As Single C、Dim Name As String D、其它三项都不对 3、在VB中,以下关于符号常量声明,声明正确是:( ) A、Dim TAG as String B、Const TAG as String "Visual" + "Basic" C、Const TAG as String ="Visual Basic" D、Const TAG as String 4、下面( )不是字符串常量 A、"True" B、#False# C、" " D、
22、"你好" 5、分析 s=11\3 + 11 Mod 3,s值是( ). A、5 B、6 C、4 D、3 6、下面表达式值是false有( ). A、"969" < "n97" B、Int(4.99) <> len("basic") C、str(2000) < "1997"D、3 > 2 7、设a=2, b=3,在VB中,表达式a>b Or b>3值是:( ) A、False B、True C、-1 D、1 8、Visual Basic中,以下( )函数是求绝对值。 A、ABS〔X〕 B、SQR(X〕 C、INT〔X
23、〕 D、GN〔X) 9、表达式Abs(-3.6)*sqr(100)值是( )。 A、-36 B、360 C、36 D、-360 10、以下( )数据类型不是数值型。 A、Date B、Single C、Double D、Integer 11、以下函数中,返回值是字符串是 ( ). A、Mid B、Instr C、Val D、Len 12、代数表达式表达式后错误是( ) A、g*t*t/2 B、1/2*g*t^2 C、g*t^2/2
24、 D、gt^2/2
13、数学式子在VB中正确写法是:〔 〕
A、 (2*a+b)/4*a B 、(2*a+b)/(4ab) C 、(2a+b)(4ab) D 、(2*a+b)/(4*a*b)
14、判断x是否在区间[a, b]上,在VB中以哪个逻辑表达式是正确( )
A 、a
25、n-x*10 ③Print x:Print y B、①x=Left(n, 1) ②y=Right(n, 1) ③Print x:Print y C、①x=n/10 ②y=n-x*10 ③Print x:Print y D、①x=Int(n/10) ②y=n-x*10 ③Print x:Print y 16、向x变量中输入任意一个小写字母,再将x变量中小写字母转成大写字母。正确算法是( ). 选项: A、①输人字母到x ②a=Asc(x)-32 ③x=chr(x) ④Print x B、①输人字母到x ②a=Asc(x)+32 ③x=chr(x) ④Print x C、
26、①输人字母到x ②a=Val(x)一32 ③x=Chr(x) ④Print x D、①输人字母到x ②a=Val(x)+32 ③x=Chr(x) ④Print x 第二节 程序顺序构造 一、 赋值语句 1.格式:变量名 = 表达式 功能:将右边表达式值赋给左边变量 〔1〕“变量〞可以是简单变量,也可以是字符变量; 〔2〕“=〞是赋值符号,它含义将表达式值赋给左边变量。 〔3〕表达式代表一个数值或一个字符串。 例1:A=123;A=B;B=2*3;A=A+10;C$ =“CHINA〞 2.赋值语句功能:计算功能和赋值功能 〔1〕赋值语句不是代数等式,赋值
27、号与等号形同而意不同; 〔2〕赋值语句类型必须匹配; 〔3〕把字符串赋给串变量时,该字符串必须用双引号括起来; 〔4〕变量单元每次只能存一个数据,但可以屡次赋值。 如:C$=“COMPUTER〞 注意:“$〞是区分字符串变量标志,即要在变量名后加“$〞构成字符串变量,同时,字符串用双引号括起来,然后才赋给字符串变量。 二、输入数据函数 InputBox〔〕是提供从键盘输入数据函数。利用它可产生一个对话框,提示用户输入数据并单击命令按钮。该函数返回值是字符串类型〔string〕。 InputBox〔〕语法格式为:InputBox〔提示信息,标题,默认值,位置〕 提示
28、信息: 指对输入数据提示,显示在对话框中,不能省略 标题 :指运行此函数后弹出对话框标题。 默认值:指默认输入数据值 位置:指运行此函数后弹出对话框左上角在屏幕上位置 注意:提示信息和标题是用引号引起来字符串 三、输出数据方法 1、根本格式: Print 输出内容 注意:1、输出内容可以是数、变量、表达式,也可以是用引号括起来字符串; 2、如果输出内容是数,变量,表达式,那么输出是数,变量,表达式,如果是用引号引起来字符串,那么原样输出; 3、多个输出内容,可以用逗号或分号分隔;如果用分号,那么后面一个输出紧跟前一个输出;如果是逗号,那么
29、分区格式输出; 4、如果输出内容后面没有符号,那么表示下一个Print换行输出,如果print中没有输出内容,那么表示输出一个空行。 程序设计顺序构造:代码按照由上到下顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种构造称为顺序构造。 例1:交换两个变量中数据。 Private Sub cmdS() Dim x As Single, y As Single Dim m As Single x = inputbox(“请输入X值〞) y = inputbox(“请输入Y值〞) m = x x = y y = m //交换数据
30、print x,y End Sub 例2:从键盘上输入一个三位数,然后将它反向输出,如:输入456,输出654。 (1) 分析问题 设X为输入三位整数,Y为X方向输出。因为 X百位、十位、个位分别为: X1=X\100 X2=(X-X1*100)\10 X3=X-X1*100-X2*10 所以Y=X3*100+X2*10+X1 (2)设计算法 ①输入X值 ②计算:X1=X\100 ③计算:X2=(X-X1*100)\10 ④计算:X3=X-X1*100-X2*10 ⑤计算:Y=X3*100+X2*10+X1 ⑥输出Y值 〔3〕编写程序 Private sub
31、 command_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=〞;y End sub 〔4〕调试程序 练习题: 1、以下是一段VB程序: a = 1 b = a + 1 c = a + b 它根本构造属于〔 〕 A、顺序构造 B、选择构造 C、循环
32、构造 D、树型构造 2、以下VB程序运行后,变量x值为( ). x=2 Print x+l Print x+2 3、执行以下程序,在弹出第1个输入框输入“10〞,第2个输入框输入“15〞,那么输出结果为〔 〕。 Dim a As Integer, b As Integer a = InputBox("输入","a=") b = InputBox("输入","b=") Print a; "+";b; "=",a+b A. b+a=25 B. 10+15=25 C. a+b=25 D. 15+10=25 4、A,B,C,D是整型变量,且都已有互不
33、一样值,执行语句“B=8:A=C:D=A: D=B〞后,其值相等变量是〔 〕。 A. A,D B. A,C C. C,B D. B,A 5、要交换变量A和B之值,应使用语句组是〔 〕。 A. A=B:B=C:C=A B. C=A:A=B:B=C C. A=B:B=A D. C=A:B=A:B=C 6、有如下Visual Basic程序段: m = "VB" n = "is" t = "easy" t = m + n + t 该程序段运行后,变量t值为。
34、7、试编写一个程序,实现输入一个四位数数,然后将它倒序输出。 第三节 程序设计分支构造 一、行If语句 行If是指在一行中写完If语句。其一般格式为: 格式一:If条件Then语句 功能:执行这种形式If语句时,首先对条件进展判断。假设条件成立,那么执行Then后面语句;假设条件不成立,那么执行If语句后继程序行语句 格式二:If条件 Then 语句 1 Else 语句 2 功能:执行这种形式语句时,先进展判断。假设条件成立,那么执行语句1;否那么执行语句2。 例1:输入三个不一样数,求出其中最小数。 Private Sub Form_Click()
35、Dim a As Single, b As Single, c As Single Dim Min As Single a = InputBox("输入a", "输入框") b = InputBox("输入b", "输入框") c = InputBox("输入c", "输入框") If a < b Then Min = a Else Min = b If c < Min Then Min = c Print "最小数="; Min End Sub 二、块If语句 行If-then语句只能根据条件真假是
36、否执行一条语句,当Then局部和Else局部包含内容较多时,那么可选用“块If语句〞构造。 格式一:If 条件 Then 语句块 End If 例2:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。 Private Sub Command1_Click() Dim a As Single a = InputBox("输入a") If a >= 60 Then Print "及格" End If If a < 60 Then Print "不及格" End If End
37、 Sub 格式二:If 条件 Then 语句块1 Else 语句块2 End If 例3:编写一程序,求一个一元二次方程ax2+bx+c=0两个根。 Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim d As Single, x1 As Single, x2 As Single a = InputBox("输入a", "输入框") b = InputBox(
38、"输入b", "输入框") c = InputBox("输入c", "输入框") d=b2-4*a*c IF d>=0 then x1=(-b+sqr(d))/2 else x1=(-b-sqr(d))/2 end if print “x1=〞;x1,〞x2=〞;x2 End Sub 练习题: 1、以下是一段Visual Basic程序: If I=1 Then X=X+1 Else X=X*2 End If 它根本构造属于( ). A、选择构造 B、循环构造C、顺
39、序构造D、树型构造 2、以下程序段运行后,变量Value值是〔 〕 x = 20 If x >= 10 Then Value = 5 * x Else Value = 4 * x End If A、100 B、80 C、90 D、70 3、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。比拟好 算法是( ) 选项: A、①输人数存人n变量②f=(n/2=Int(n/2))③如果f中值为True就显示n中值 B、①输人数存人n变量②f=(n/2=Int(n/2))③如果f中值为False就显示n中值 C、①输人数存
40、人n变量②如果n/2=Int(n/2)成立,就显示n中值 D、①输人数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值 4、下面是判断变量x是不是能被5整除偶数程序,横线上逻辑表达式应为( ) Private Sub commandl_Click() Dim x As Integer x=Val(Text1. Text) If ____ = 0 Then Print “这个数是能被5整除偶数〞 Else Print “这个数不是能被5整除偶数〞 End If 选项: A、(x Mod 5) = 0 And (x
41、 Mod 2 ) = 0 B、x Mod 10 = 0 C、x Mod 5 = 0 D、x Mod 2 = 0 5、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。比拟好 算法是( )。 选项: A、①输入数存人n变量②f=(n/2=Int(n/2))③如果f中值为True就显示n中值 B、①输入数存人n变量②f=(n/2=Int(n/2))③如果f中值为False就显示n中值 C、①输入数存人n变量②如果n/2=Int(n/2)成立,就显示n中值 D、①输入数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值 6、以下程序段运行后
42、m值为( ) A=2: b=1: c=5 If A < b Then m = A Else m = b If c < m Then m = c 选项: A、1 B、2 C、5 D、提示错误,无答案 第四节 程序设计循环构造 一、For-Next循环 For循环变量一般形式是: For循环变量=初值To终值Step循环变量增量 循环体 Nxt循环变量 例1:求s=1+2+3+4.....+100 Private Sub Form_Click() Dim i As Integer Dim sum As Integer
43、 sum = 0 For i = 1 To 100 step 1 sum = sum + i ' 循环体 Next i Print "sum="; sum End Sub 循环变量初值、终值、循环变量增量都是数值型。其中要重复执行操作称为循环体,增量可正可负,如果没有设置Step,那么增量缺省值为1 1、 循环变量取初值; 2、 循环变量与终值比拟,没有超过终值转3,否那么循完毕,接着执行循环语句后继语句; 3、 执行一次循环体 4、 循环变量增加一个增量 5、 重复步骤2~4。 以上可以看出,For-Next
44、循环变量是一种当型循环。说明 (a) For语句与Next语句必须成对出现,而且它们当中“循环变量〞必须是同一个变量,如上例中均为I。 (b) 当循环变量为正时,循环变量超过终值,是指循环变量值大于终值时;假设为负,那么是指循环变量值小于终值。 A P 入口 出口 例2:编写程序,使能打印下面所示图案。 @ @@ @@@ @@@@ @@@@@ @@@@@@ 程序: Private Sub Form_Click() Dim i As Integer Dim j As Integer
45、 For i = 1 To 6 For j = 1 To i Print “@〞; Next j Print Next i End Sub 一个FOR循环里包含了另一个FOR,我们称它为嵌套循环。 练习题: 1、阅读如下程序,跟踪程序执行过程,观察变量A值变化,写出循环完毕时变量A值、循环次数和程序运行结果。 ① privaate sub command1_click() for A=1 TO 10 print A Next A End Sub ② privaate sub command1_c
46、lick() For A=1 To 100 S=S+A Next A Pint “S=〞;S End Sub ③ privaate sub command1_click() For A=100 To 1 step -1 S=S+A Next A Print “s=〞;s End Sub ④ privaate sub command1_click() For A=1 To 10 A=A+1 Print A Next A End S
47、ub 2、阅读下面程序, 输出结果是( ) Private Sub Form_Click() Dim i As Integer:Dim s As Integer s = 0 For i = 1 To 5 s = s + i Next i Print s,i End Sub 选项: A、15 6 B、 s=15 i=6 C、6 5 D、s=6 i=5 3、试编写一个程序,求出100以内能被3整除所有正整数。 4、试编写一个程序,求出1*2*3……*100积。 二、Do-L
48、oop循环 For-Next循环次数是确定,但是有问题只知道循环完毕条件,重复执行次数事先并不知道,这是需要Do-Loop循环 格式一: Do While 条件 循环体 Loop 例3:求最大公约数 Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim r As Integer a = InputBox("输入a") b = InputBox("输入b") r = a Mod b Do While r <>
49、 0 a = b b = r r = a Mod b Loop Print b End Sub 当VB执行Do While-Loop循环时,先判断指定条件是否为真,假设条件为真,执行循环体,条件为假时退出循环。 格式二: Do 循环体 Loop Until条件 这种循环执行过程如下图。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。 A P N 例4:如果我国人口每年以平均1.5%速度增长,问多少年
50、后我国人口到达或超过15亿?设现在人口为12.3亿。 Private Sub Form_Click() Dim p As Single Dim r As Single Dim n As Integer p = 1230000000 n = 0 Do p = p * (1 + r) n = n + 1 Loop Until p >= 1500000000 Print n; "年后", "人口="; p End Sub 练习题: 1、在VB中,以下程序段: x=0






