资源描述
第一章 算法与算法描述
1.算法定义
算法:就是解决问题思想方法,对解题过程准确描述。计算机解决问题步骤为分析问题、设计算法、编写程序、调试程序。算法是程序设计“灵魂〞,最核心过程。
2.法特征
一个算法应该具有以下五个重要特征:
1、有穷性: 一个算法必须保证执行有限步之后完毕;
2、确定性: 算法每一步骤必须有确切定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象初始情况,所谓0个输入是指算法本身定出了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后结果。没有输出算法是毫无意义;
5、可行性:算法中执行任何计算步都是可以被分解为根本可执行操作步,即每个计算步都可以在有限时间内完成;〔也称之为有效性〕
3.算法描述方法
算法描述:可分多种表达方法,一般用自然语言、流程图和伪代码进展描述。
〔1〕自然语言描述法:指用人们日常生活中使用语言〔本国语言〕,用自然语言描述符合我们习惯,且容易理解。
例1:求圆周长和面积
算法如下:〔自然语言描述法〕
〔1〕输入半径r ;
(2) 计算周长c=2*π*r ;
(3) 计算面积 s=π*r*r ;
(4) 输出周长c,输出面积s ;
(5) 完毕
例2:工人每天工作8小时,每小时9元,超过8小时每小时增加15%加班费,计算工人每天应发日工资。
(1) 输入工作小时X
(2) 判断X值,分别计算
l X小于8,工资=X*9
l X大于8,工资=X*9+
(3) 输出工资
(4) 完毕
练习:求三个数中最大数。〔用自然语言描述〕
〔2〕流程图描述:也称程序框图,它是算法一种图形化表示方法。且描述算法形象、直观,更易理解。
常用“流程图〞所用根本符号及功能
程序框
名称
功能
开场/完毕框
表示算法开场或完毕
输入/输出框
表示算法中变量输入或输出
处理框
表示算法中变量赋值与计算
判断框
表示算法中条件判断
流程线
表示算法中流向
连接点
表示算法中连接
例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〕程序根本特征:程序一共有七个根本特征
1、程序中,每一个算法步骤对应着程序设计语言一个或多个语句,每个语句对应一个或者多个操作。每个操作都要求有执行对象,并且根据对象状态变化形成动作效果,同事可变对象用变量来表示,变量值变化那么可通过操作赋值来完成。
2、除非特殊索命程序都是从第一条语句开场顺序开场向下执行。
3、程序总是施行与操作与某些对象,这些对象通常称为数据。
4、这些数据一般应该有属性和取值范围,即类型说明。
5、有时语句要求执行者作出判断,即在某种条件成立情况下执行一条或一组语句,否那么执行另一条或一组语句。
6、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复次数或重复条件。
7、程序本身是一个静态实体,而执行语句进程是动态。
〔3〕程序根本构造:顺序构造、选择构造、循环构造。
〔4〕程序设计语言产生和开展
1、机器语言:二进制代码指令
2、汇编语言:类似英语缩略词且带有助记性符号语言,每条汇编指令和一条机器指令相对应,只是指令码和操作数都采用符号形式。而这种语言是不能被机器直接承受,必须用一种语言翻译器将程序中每条语句翻译成机器语言才能执行。
3、高级语言:高级语言本身不是一种语言,只是一类语言分类。用高级语言编写程序必须经过翻译器将其翻译成机器语言,才能在计算机上执行。常见高级语言:C语言、C++、pascal、java、C#、VB、Basic
〔5〕程序编辑和翻译
1、程序编辑:以汇编语言或者高级语言所编写程序被称为“源代码〞,这些代码需要我们逐一输入到计算机中。并把他们以文件形式保存起来,这个过程称为程序编辑
2、程序翻译:前面学习中使我们知道,计算机只能识别和执行二进制机器语言代码,而我们用级语言或汇编语言编写程序要想被计算机执行,必须翻译成机器语言程序,最终才能被计算机执行。高级语言翻译程序一般那么有两种类型:编译程序和解释程序。
练习题:
1 下面对算法描述正确一项为哪一项:〔 〕
A、算法只能用自然语言来描述
B、算法只能用图形方式来表示
C、同一问题可以有不同算法
D、同一问题算法不同,结果必然不同
2.下面关于算法描述正确是 〔 〕
(A) 算法不可以用自然语言表示
(B) 算法只能用框图来表示
(C) 一个算法必须保证它执行步骤是有限
(D) 算法框图表示法有0个或多个输入,但只能有一个输出
3、图形符号" "在算法流程图描述中表示( ).
A 处理或运算功能 B 输入输出操作
C 用来判断条件是否满足需求 D 算法开场或完毕
4、以下哪个是算法描述方法( )
A 流程图描述法 B 枚举法 C 顺序法 D 列表法
5、下面语句是一个计算机程序操作说明:
〔1〕初始值为x=1,y=1,z=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、最早程序设计语言是汇编语言〔 〕
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 Single //定义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等都是合法整数
实型常量:即实数,指带小数点数值。
实型常量又分为定点数和浮点数两种。
浮点数:2E6、1E5
×103 可表示为1.2345E3,字母E表示底数10
浮点数就是数学上科学计数法。
字符串常量:被一对双引号括起来假设干个合法字符称为字符串常量。例如:〞China〞、〞Visual Basic〞、〞18”、〞”等,双引号中字符,不包括双引号本身。
符号常量:如果屡次用到同一个常量,那么可用一个有意义名字表示这个常量。
二、变量:在程序执行过程中,其值可以改变量称为变量
变量命名注意要点:1、必须以字母开头,不能以数字或其他字符开头。
2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。
3、最长不超过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/2008#
字符型
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 Integer
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 Mod 2 = 1
2、关系运算
=
>
<
>=
<=
<>
等于
大于
小于
大于等于
小于等于
不等于
注意:关系表达式运算结果为布尔值True 或 False
例:3 > 2 结果为 True(真或是)
3、逻辑运算
Not〔取反〕And〔与〕 Or〔或〕
运算结果为布尔型〔Boolean〕True 或 False
逻辑运算符优先级为:No > And > Or
4、日期运算符与日期表达式
日期表达式是用日期运算符“+〞或“-〞将算式表达式、日期型常量、日期型变量、日期函数等连接起来式子,如表达式“#2003/09/01# +30”运算结果是“2003-10-1〞;表达式“#2003/10/20# - #2003/10/10#〞运算结果为整数10
5、字符运算
字符串连接符为“+〞和“&〞
“123” + “45” = “12345”
“123” & “45” = “12345”
123 + “45” = 168
“123” + 45 = 168
运算符执行顺序:在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符优先级决定,优先级高运算符先运算,优先级一样从左向右进展运算。不同性质运算符优先级如下。
算术运算符 > 字符串运算符 > 关系运算符 > 逻辑运算符
6、常用函数
函数名
说明
例如
结果
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〕
不大于给定数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个字符
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、以下语句中定义了一个实型变量是 ( )
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、"你好"
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〕 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 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<x and x<=b B、 a<x<=b C、a<x and x≤b D 、a>x and x<=b
15、向n变量存入1个2位整数,要使此2位数十位和个位上值分别存入x, y变量。正确算法是( )。
选项:
x、①x=Left(n, 1) ②y=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、①输人字母到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〕赋值语句不是代数等式,赋值号与等号形同而意不同;
〔2〕赋值语句类型必须匹配;
〔3〕把字符串赋给串变量时,该字符串必须用双引号括起来;
〔4〕变量单元每次只能存一个数据,但可以屡次赋值。
如:C$=“COMPUTER〞
注意:“$〞是区分字符串变量标志,即要在变量名后加“$〞构成字符串变量,同时,字符串用双引号括起来,然后才赋给字符串变量。
二、输入数据函数
InputBox〔〕是提供从键盘输入数据函数。利用它可产生一个对话框,提示用户输入数据并单击命令按钮。该函数返回值是字符串类型〔string〕。
InputBox〔〕语法格式为:InputBox〔提示信息,标题,默认值,位置〕
提示信息: 指对输入数据提示,显示在对话框中,不能省略
标题 :指运行此函数后弹出对话框标题。
默认值:指默认输入数据值
位置:指运行此函数后弹出对话框左上角在屏幕上位置
注意:提示信息和标题是用引号引起来字符串
三、输出数据方法
1、根本格式:
Print 输出内容
注意:1、输出内容可以是数、变量、表达式,也可以是用引号括起来字符串;
2、如果输出内容是数,变量,表达式,那么输出是数,变量,表达式,如果是用引号引起来字符串,那么原样输出;
3、多个输出内容,可以用逗号或分号分隔;如果用分号,那么后面一个输出紧跟前一个输出;如果是逗号,那么分区格式输出;
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 //交换数据
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 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、循环构造 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是整型变量,且都已有互不一样值,执行语句“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值为。
7、试编写一个程序,实现输入一个四位数数,然后将它倒序输出。
第三节 程序设计分支构造
一、行If语句
行If是指在一行中写完If语句。其一般格式为:
格式一:If条件Then语句
功能:执行这种形式If语句时,首先对条件进展判断。假设条件成立,那么执行Then后面语句;假设条件不成立,那么执行If语句后继程序行语句
格式二:If条件 Then 语句 1 Else 语句 2
功能:执行这种形式语句时,先进展判断。假设条件成立,那么执行语句1;否那么执行语句2。
例1:输入三个不一样数,求出其中最小数。
Private Sub Form_Click()
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语句只能根据条件真假是否执行一条语句,当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 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("输入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、顺序构造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、①输人数存人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 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、以下程序段运行后,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
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循环变量是一种当型循环。说明
(a) For语句与Next语句必须成对出现,而且它们当中“循环变量〞必须是同一个变量,如上例中均为I。
(b) 当循环变量为正时,循环变量超过终值,是指循环变量值大于终值时;假设为负,那么是指循环变量值小于终值。
A
P
入口
出口
例2:编写程序,使能打印下面所示图案。
@
@@
@@@
@@@@
@@@@@
@@@@@@
程序:
Private Sub Form_Click()
Dim i As Integer
Dim j As Integer
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_click()
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 Sub
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-Loop循环
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 <> 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%速度增长,问多少年后我国人口到达或超过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
展开阅读全文