高中信息技术《算法与程序设计VB(选修)》知识要点
原博主:
http://blog.sina.com.cn/buyanshibai
【转载】
(一)算法
1.定义
相关题解:
1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。
单选题
1、运用计算机程序解决实际问题时,合理的步骤是(B)。
A、设计算法→分析问题→编写程序→调试程序
B、分析问题→设计算法→编写程序→调试程序
C、分析问题→编写程序→设计算法→调试程序
D、设计算法→编写程序→分析问题→调试程序
2.算法的描述方法:
1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。
2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。
3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。
4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。
相关题解:
单选题
1、图形符号" 菱形 "在算法流程图描述中表示( B ).
A 处理或运算的功能 B 输入输出操作
C 用来判断条件是否满足需求 D 算法的开始或结束
2、图形符号" 矩形 "在算法流程图描述中表示( A ).
A 处理或运算的功能 B 输入输出操作
C 用来判断条件是否满足需求D 算法的开始或结束
3、以下哪个是算法的描述方法?( A )
A 流程图描述法 B 枚举法 C 顺序法 D 列表法
4、以下哪个是算法的描述方法?( D )
A 顺序法B 列表法C 集合法D 自然语言描述法
介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?( )
A、伪代码
B、流程图
C、高级语言
D、VB 程序设计语言
(二)程序设计基础
(1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java
1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等
2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。
常用控件:
控件 |
对象的类型 |
前缀 |
名字举例 |
窗体 |
Form |
frm |
frmfind |
命令按钮 |
Command button |
cmd |
cmdok |
标签 |
Label |
lbl |
lblinput |
文本框 |
TextBox |
tmr |
tmrClock |
若命令按钮(Command)的Enabled属性设置为True时按钮有效,设置为False时按钮无效 |
3对象的属性、方法和事件
1属性
属性 |
|
Name |
设置对象的名称 |
Caption |
决定控件中显示的内容(文字) |
Text |
决定窗体中文本框中显示的内容(初始为空白) |
Height |
决定控件高度 |
Width |
决定控件宽度 |
TOP |
决定控件的靠顶部位置 |
Left |
决定控件的靠左边位置 |
Font |
设置控件中字体格式 |
BackColor |
设置控件背景色 |
ForeColor |
设置控件的前景色 |
BorderStyle |
设置控件的边框风格 |
Alignment |
即标签文字对齐属性:(0)Left Justify时文本左对齐;(1)Right Justify时文本右对齐;设置为(2)Center时文本居中。 |
AutoSize |
设置为False时输入控件Caption中文字超过控件宽度时超出部分被裁剪掉,设置为True时,控件可水平扩充,以适应控件Caption属性。 |
Visible |
决定控件是否可见 |
Enabled |
决定控件运行时是否有效 |
对象.属性=属性值
对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下
例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下
Txt123.text =”20”
变量=对象.属性
如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下
例:读取文本框“txt123”的“Text”属性的代码如下
a = txt123.text
2方法
[对象].方法[参数名表]
例:form.print ”欢迎使用”
该语句使用print方法在form1窗体中显示字符串“欢迎使用”
3事件及事件驱动
事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。
事件过程的形式如下:
Private Sub 对象_事件名( )
……………(事件过程代码)
End Sub
一个简单的VB程序
求圆的周长和面积
Private Sub Command1_Click()
Dim r As Single '定义r为单精度型
Dim c As Single '定义c为单精度型
Dim s As Single '定义s为单精度型
r = Val(Text1.Text) '输入半径r
c = 2 * 3.14159 * r '计算周长
s = 3.14159 * r * r '计算面积
Text2.Text = c '输出周长
Text3.Text = s '输出面积
End Sub
Private Sub Command2_Click()
End '退出
End Sub
相关题解:
单选题
1、下列关于程序设计说法正确的是( B )。
A、程序设计语言的发展经历了机器语言、汇编语言到高级语言的过程,比
较流行的高级语言是PASCAL, FORTRAN, EXCEL, C++等
B、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程
C、程序设计语言和计算机语言是同一个概念的两个方面
D、程序设计就是指示计算机如何去解决间题或完成一组可执行指令的过程
2、下列说法错误的是( D ).
A、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程
B、程序设计语言的发展经历了机器语言、汇编语言、高级语言的过程
C、计算机程序就是指计算机如何去解决间题或完成一组可执行指令的过程
D、程序设计语言和计算机语言是同一概念的两个方面
3、下列不属于程序设计语言中高级语言的是(C)。
A、BASIC B、C语言 C、汇编语言 D、PASCAL
4、程序设计语言的发展历程中,不包括( A )。
A、自然语言 B、机器语言 C、汇编语言 D、高级语言
5、介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?( A )
A、伪代码
B、流程图
C、高级语言
D、VB 程序设计语言
一、常量:批在程序进行过程中不变的量在VB中一般分数值常量与字符常量两种
数值常量:就是数学中说的常数,分整型常量和实型常量两种
整型常量:即整数,指不带小数点的数值如1、0、、-10、+35等都是合法的整数
实型常量:即实数,指带小数点的数值。
实型常量又分为定点数和浮点数两种。
例:定点数:3.14159和-6.8,1.99
浮点数:2E6、1E5、88E
例:1.2345×103 可表示为1.2345E3,字母E表示底数10
浮点数就是数学上的科学计数法。
字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例如:”China”、”Visual Basic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。
符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。
二、变量:在程序执行过程中,其值可以改变的量称为变量
变量命名注意要点:
1、必须以字母开头,不能以数字或其他字符开头。
2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。
3、最长不超过255个字符
4、不能以VB保留字作变量名,如语句定义符、函数名等。
5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。
数据及运算
(1)常用数据类型:(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double、(字符串型)String、(布尔型)Boolean、(日期型)Date
其中(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double属于数值型
表示范围:
(整型)Integer (-32768 —— 32767,存储为 16 位 , 2 个字节)
(长整型)Long(-21亿 —— 21亿,可以表示人口数量)
(布尔型)Boolean(True 真、是 或 False假、非)
(字符串型)String(定长字符串:0——65535个字符,不定长字符串:0——20亿个字符)
字符串型数据是指用 “ ”括起来的一串字符。如“欢迎进入VB世界!”、“ Visual Basic” 、“1234 ”都是字符串类型。
(日期型)Date(100/1/1——9999/12/31)
日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的值括起来,如#2003/08/20#表示2003年8月20日。
(2)常量和变量的命名、声明及赋值
符号常量的声明:Const 常量名 [As 常量类型] = 常量值(表达式)
如:Const pi As Single = 3.14159 常量名为pi
变量的声明:
Dim <变量名 >As <变量类型>
如:Dim a As Integer 定义一个整型变量,变量名为a
变量的赋值
VB中使用Let语句给变量赋值,其形式如下:
[Let] 变量 = 表达式 其中,方括号[ ]表示这部分内容是可选的,通常可以省略该关键字。
例题
Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer
Dim str As String
Let a = 54
Let b = 114
c = a + b
str = "Hello World"
Print "a="; a, "b="; b, "c="; c
Print str
End Sub
VB语言中,下列数据类型说明符中表示整型的是(B)。
A、Boolean
B、Integer
C、Date
D、String
数据的输出
程序中运算得到的结果,除可以使用文本框和标签显示外,对于大批量的数据更适合用Pint方法输出,格式如下
[对象] . Pint [表达式列表]
例题:
Private Sub Form_Click()
Dim x As Single, y As Single
Form1.Print -61; -34
Form1.Print 9 * 2; 12
Form1.Print "This is"; "a book"
x = 3: y = 4
Print "x="; x, "y="; y
End Sub
注意:Print 方法
相关题解:
单选题
在VB 语言中,下列合法的变量名是(B)。
A、34ab B、ab34 C、*abc D、c\c
下列选项中属于字符串常量的是( )。
A、ab B、a+b C、"1235" D、1235
在VB 语言中,下列合法的变量名是( )。
A、aa B、a*b C、7ab D、dim
运算符
1、 算术运算:
+ 加 -- 减 *乘
^ 指数 例:2^2 = 4
/ (浮点)除 例:5 / 2 = 2.5
\ 整除 例: 5 \ 2 = 2
Mod 求余数 例:5 Mod 2 = 1
相关题解
单选题
1、分析下列程序:
Private Sub Form_Click()
s=11\3 + 11 Mod 3
Print s
End Sub
当单击窗体时s的值是( A ).
A、5 B、6 C、4 D、3
关系运算
= 赋值 、 < 小于号
<> 不等于 > 大于号
>= 大于等于号 < =小于等于号
注意:关系表达式的运算结果为布尔值True 或 False
例:3 > 2 结果为 True(真或是)
相关题解
单选题
1、下面表达式的值是false的有( C ).
A、"969" < "n97" B、Int(4.99) <> len("basic") C、str(2000) < "1997"D、3 > 2
逻辑运算
Not(取反)And(与) Or(或)
运算结果为布尔型(Boolean)True 或 False
逻辑运算符的优先级为:No > And > Or
1、下列逻辑表达式的值为“假”的是(A)。
A、2 + 4 > 8 B、3 + 12 = 15 C、5 > 0 And 4 > 3 D、10 / 5 <3
2、下列逻辑表达式的值为“假”的是(D)。
A、3 + 5 > 7 B、8 / 4 < 4 C、5 > 3 And 3 > 2 D、4 + 11 > 20
3、已知A,B,C,D 是简单变量,且都已有互不相同的值,执行语句A=C: D=B 后,下列
关系表达式逻辑值为“真”的是(A)。
A、C=A B、A=B C、D=C D、B=C
日期运算符与日期表达式
日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式“#2003/09/01# +30”的运算结果是“2003-10-1”;表达式“#2003/10/20# - #2003/10/10#”的运算结果为整数10
相关题解
单选题
1、设a=2, b=3,在VB中,表达式a>b Or b>3值是:( B )
A、False B、True C、-1 D、1
字符运算
字符串连接符为“+”和“&”
“123” + “45” = “12345”
“123” & “45” = “12345”
123 + “45” = 168
“123” + 45 = 168
相关题解
单选题
VB的字符串运算符是“&”,该运算符主要用于连接两个或更多的字符串。如:"abcd" &
"efg" 连接后的运算结果为:"abcdefg"。那么,"1+2" & "3"的运算结果为:(C)。
A、33 B、6 C、"1+23" D、True
运算符的执行顺序
在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。不同性质的运算符优先级如下。
算术运算符 > 字符串运算符 > 关系运算符 > 逻辑运算符
相关题解
单选题
在VB语言中,表示“a大于0且b小于12”的正确表达式是(D)。
A、b<12 or a > 0
B、b > 12 And a < 0
C、a > 12 Or a < 0
D、a > 0 And b < 12
常用函数
数学函数
Abs(x) 求x 的绝对值,例:abs(-3.6) = 3.6
Sqr(x) 求 x 的平方根,例:sqr(100) = 10
Int(x)求≤x的最大整数 例:int(3.6) = 3 int(--3.6) = --4
Rnd(x)产生[0,1)之间的随机数(不包括1)
Sin(x)
Cos(x)
Tan(x)
Atn(x)
Exp(x)
Log(x)
使用三角函数时,参数应是弧度,如数学中sin300应写为:sin(30*3.14159/180)
字符串函数
Len(字符串) 求字符串的长度 ,例:Len(“hello”) = 5
Left(字符串,截取长度) 截取字符串左边部分,例:Left(“hello”,2) = “he”
Mid(字符串,起始位置,截取长度) ,例:Mid(“hello”,2,2) = “el”
Right (字符串,长度)
截取字符串右边部分。例: Right (“hello”,2) = “lo”
String(数值,字符)生成指定长度与指定字符的字符串,例:String(3,”9”) = ”999”
函数mid (C,N1,N2)的作用是从字符串C中N1位开始取出长度为N2 的子串。那么,
Mid ("aBcDeFg", 3, 3)的值为(D)。
A、aBc B、cde C、eFg D、cDe
常用转换函数
Val(字符串) 将字符串转换为数值
Str(数值) 将数值转换为字符串
Chr(字符代码)
Asc(字符)
Tab定位函数的使用
例题
Private Sub Form_Click( )
Dim a As Integer
Dim b As Integer
a = 4: b = 9
Print Tab(1); "数"; Tab(9); "平方"; Tab(18); "立方"; Tab(27); "平方根"
Print Tab(1); a; Tab(9); a * a; Tab(18); a * a * a; Tab(27); Sqr(a)
Print Tab(1); b; Tab(9); b * b; Tab(18); b * b * b; Tab(27); Sqr(b)
End Sub
用户交互函数
VB提供InputBox( )和MsgBox( )函数用于人机交互
InputBox( )其语法格式为:
InputBox( 提示[,标题][,默认值][,X坐标][,Y坐标])
MsgBox( ) 其语法格式为:
MsgBox(提示信息[,按钮][,标题] )
相关题解
单选题
1、Visual Basic中,下列( A )函数是求绝对值的。
A、ABS(X) B、SQR(X) C、INT(X) D、GN(X)
2、表达式Abs(-3.6)*sqr(100)的值是( C )。
A、-36 B、360 C、36 D、-360
3、下列( A )数据类型不是数值型。
A、Date B、Single C、Double D、Integer
4、下列函数中,返回值是字符串的是 ( A ).
A、Mid B、Instr C、Val D、Len
5、下列( A )函数返回系统的当前时间。
A、time() B、date() C、day() D、year()
6、代数表达式 表达式后错误的是( D )
A、g*t*t/2 B、1/2*g*t^2 C、g*t^2/2 D、gt^2/2
7、数学式子 在VB中的正确写法是:( )
A、 (2*a+b)/4*a B 、(2*a+b)/(4ab) C 、(2a+b)(4ab) D 、(2*a+b)/(4*a*b)
8、判断x是否在区间[a, b]上,在VB中以哪个逻辑表达式是正确的?( C )
A 、a<x and x<=b B、 a<x<=b C、a<x and x≤b D 、a>x and x<=b
综合分析
1、向n变量存入1个2位整数,要使此2位数十位和个位上的值分别存入x, y变量。正确的算法是( D )。
选项:
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
2、向x变量中输入任意一个小写字母,再将x变量中的小写字母转成大写字母。正确的算法是( A ).
选项:
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
程序设计的顺序结构
顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。
例题:交换两个变量中的数据。
Private Sub cmdSwap_Click()
Dim x As Single, y As Single
Dim m As Single
x = Val(txtsx.Text)
y = Val(txtsy.Text)
m = x: x = y: y = m '交换数据
txtdx.Text = Str(x)
txtdy.Text = Str(y)
End Sub
Private Sub cmdEnd_Click()
End
End Sub
相关题解
单选题
1、以下是一段VB程序:
a = 1
b = a + 1
c = a + b
它的基本结构属于( A )
A、顺序结构 B、选择结构 C、循环结构 D、树型结构
2、下列VB程序运行后,变量x的值为( A ).
x=2
Print x+l
Print x+2
A、2 B、3 C、5 D、8
程序设计的分支结构
行If语句
行If是指在一行中写完的If语句。其一般格式为:
格式一:If条件Then语句
执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句
格式二:If条件 Then 语句 1 Else 语句 2
例题:输入三个不相同的数,求出其中最小数。
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
执行这种形式的语句时,先进行判断。若条件成立,则执行语句1;否则执行语句2。
块If语句
上述If-then语句只能根据条件的真假是否执行一条语句,当Then部分和Else部分包含的内容较多时,则可选用“块If语句”结构。
格式三:If 条件 Then
语句块
End If
例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。
Private Sub Command1_Click()
Dim a As Single
a = Val(Text1.Text)
If a >= 60 Then
Label1.Caption = "及格"
End If
If a < 60 Then
Label1.Caption = "不及格"
End If
End Sub
格式四:If 条件 Then
语句块1
Else
语句块2
End If
例题:编写程序,求函数Y的值(当x≤0时,y=3x+1;当x>0时,y=4x+1)。
Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox("请输入变量x"))
If x <= 0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
Print "y="; y
End Sub
相关题解
单选题
1、以下是一段Visual Basic程序:
If I=1 Then
X=X+1
Else
X=X*2
End If
它的基本结构属于( A ).
A、选择结构 B、循环结构C、顺序结构D、树型结构
2、下列程序段运行后,变量Value的值是( A )
x = 20
If x >= 10 Then
Value = 5 * x
Else
Value = 4 * x
End If
A、100 B、80 C、90 D、70
综合分析
1、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。比较好
的算法是( B D )。
选项:
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中值
2、下面是判断变量x是不是能被5整除的偶数的程序,横线上的逻辑表达式应为( AB )
Private Sub commandl_Click()
Dim x As Integer
x=Val(Text1. Text)
If ____ = 0 Then
Labell.Caption=这个数是能被5整除的偶数
Else
Labell.Caption=这个数不是能被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
3、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。比较好
的算法是( AC )。
选项:
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、下列程序段运行后,m的值为( A )
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
sum = sum + i ' 循环体
Next i
Print "sum="; sum
End Sub
例题2:Step循环变量增量
Private Sub Form_Click()
For j = 3 To 15 Step 2
Print j
Next j
End Sub
循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为1
1、 循环变量取初值;
2、 循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;
3、 执行一次循环体
4、 循环变量增加一个增量
5、 重复步骤2~4。
以上可以看出,For-Next循环变量是一种当型循环。说明
(a) For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。
(b) 当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。
|
|
入口 |
出口 |
二、Do-Loop循环
For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环
格式一: Do While 条件
循环体
Loop
例题:求最大公约数
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim r As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a Mod b
Do While r <> 0
a = b
b = r
r = a Mod b
Loop
Text3.Text = Str(b)
End Sub
Private Sub Command2_Click()
End
End Sub
当VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。
格式二: Do
循环体
Loop Until条件
这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。
A |
P |
N |
例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。
Private Sub Form_Click()
Dim p As Single
Dim r As Single
Dim n As Integer
p = 1230000000#
r = 0.015
n = 0
Do
p = p * (1 + r)
n = n + 1
Loop Until p >= 1500000000#
Print n; "年后", "人口="; p
End Sub
下列程序段执行结束后,变量y的值是(C)。
y=2
Do while y<=6
y=y+y
Loop
A、2 B、6 C、8 D、16
分析程序,写出执行结果。
Private Sub command1_click()
Dim S As Integer,I As Integer
S=0
For i=1 to 10 Step 2
S=S+i
Next i
Print “S=”;s
End Sub
答案:S= 25
(三)算法与问题解决
1、解析法
2、穷举法
3、递归法
综合分析
1、有5人,问第5人年龄,说比前面第4人小3岁,问第4. 3. 2人,都说比前面人小3岁,问第1人,说他的年龄为38岁。问第5人的年龄多大。用递归法解决此问题的正确步骤是( B )。
选项:
A、①定义age (n)函数 ②函数中当n>1时返回函数值为age (n-1)当n=1返回函数值为38
B、①定义age (n)函数 ②函数中当n>1时返回函数值为age (n-1)-3当n=1返回函数值为38
C、①定义age (n)函数 ②函数中不断地调用age (n-1)-3
D、①定义age (n)函数 ②函数中不断地调用age (n)函数自己
4、排序与查找数据
四、应用程序设计
1、程序设计的一般步骤
2、 简单程序设计
综合分析
1、a,b,c三变量存放不同的数,值a 最大,b 第二,比较好的算法是( )
A、①定义一个max(x,y)函数(值为 x,y 中的大值)② a = max(max(a,b),c)
B、①如a < b就a = b ②如 a < c 就 a = c l如 b <c 就 b = c
C、①如a > b就a = b ②如 a > c 就 a = c l如 b >c 就 b = c
D、①如a < b就两变量交换 ②如 a < c 就两变量交换 l如 b <c 就两变量交换
2、求2! +3! +4! +5!……+10!的值。能完成此运算,并且比较好的算法是( A )。
选项:
A、①定义求阶乘的函数用j c(n) ②主程序中用一个循环9次调用j c(n)函数进行累加
B、用一个程序完成:每一项阶乘用一个For/Next循环完成,整个程序包括9个循环
C、用解析法:s=1*2+1*2*3+1*2*3*4+…+1*2*3*4*5*6*7*8*9*10
D、不必定义函数,只要用一个单重循环就能完成
3、要求打印 100 至 200之间所有偶数的平方根( C )
A、① i = 100 ② Do While i < 200:Print i,Sqr(i):loop
B、① i = 100 ② Do While i < 200:Print i,Sqr(i):i = i + 1:loop
C、① For i = 100 to 200 step 2:Print i,Sqr(i) : Next i
D、① For i = 100 to 200:Print i,Sqr(i):Next i
编程题
必修1_15、编写程序,使能打印下面所示的图案。
*
**
***
**
*
程序:
Private Sub Form Click()
Dim i As Integer '定义i为整型变量
Dim j As Integer '定义j为整型变量
For i = -3 To 3
Print Tab(Abs(i)+5)
For j=1 To (4-Abs(i))-1
Print "*";
Next j
Print '换行
Next i
End Sub
必修2_15、编写程序,使能打印下面所示的图案。
*
***
*****
***
*
程序:
Private Sub Form Click()
Dim i As Integer '定义i为整型变量
Dim j As Integer '定义j为整型变量
For i = -3 To 3
Print Tab(Abs(i)+5);
For j=1 To 2*(3-Abs(i))-1
Print "*";
Next j
Print '换行
Next i
End Sub
必修3_15、编写程序,使能打印下面所示的图案。
@
@@
@@@
@@@@
@@@@@
@@@@@@
程序:
Private Sub Form_Click()
Dim i As Integer
Dim j As Integer
For i = 1 To 6
Print Tab(10);
For j = 1 To i
Print “@”;
Next j
Next i
End Sub
必修4_15、完善显示按钮的click程序,将代码段中“变量1“、“变量2.“变量
3、处换成正确的变量名,使当单击该按钮时,Labell. Label2分别
显示30、10,
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command_Click( )
x = 10
y = 30
If x < y Then
t = x
x = y
y = t
End If
Label1.Caption = x
Label2.Caption = y
End Sub
必修5_15、完善"判断"按钮的click程序,使当从Textl中输入一个数时,当该数
大于或等于60时在Lebell中显示"及格",该数小于60时在Labell中显
示"不及格"。
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command1_Click( )
Dim a As Single
a = Val(Text1.Text)
If a>=60 Then
Label1.Caption = “及格”
End If
If a < 60 Then
Label1.Caption = “不及格”
End If
End Sub
必修1_16、编写程序,求函数y的值(当x<=0时,y=3x+1;当x>0时,y=4x+1)。
程序:
Private Sub Form Click()
Dim x As Single '定义x为单精度型变量
Dim y As Single '定义y为单精度型变量
x = Val(InputBox("请输入变量x"))
If x <=0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
Print "y=";y
End Sub
必修2_16、编写程序,求y=6x-5的值。(x的值在程序中调用InputBox函数,在
弹出的标准输入对话框中输入)
程序:
Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox(“请输入变量x”))
y = 6*x – 5
Print “y=”;
End Sub
必修3_16、一只猴子摘了一堆桃子,它每天吃当天桃子数的一半,每次忍不住多
吃了一个。这样到第十天时只有一个桃子可以吃了,编程计算猴子最
初共有多少个桃子。
完成所有操作后,诸按“Ctrl+S”保存。
程序:
Private Sub Form_Click()
Dim i As Integer
Dim s As Integer
s = 1
For i =1 To 9
s = (s + 1)*2
Next
Print “s=”;s
End Sub
必修4_16、完善按钮“计算7!”的Click事件程序,当单击命令按钮时Text1显示7!的值。
Private Sub Command1_Click( )
Dim a As Integer
Dim i As Integer
a = 1
For i = 1 To 7
a = a * i
Next i
Text1.Text = a
End Sub
必修5_16、请将按钮"计算1+2+……+100"的Click事件程序中的"常量"和"变量"换成
正确的常量和变量,当单击命令按钮时Text1显示1+2+"""+100的
值。
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command1_Click( )
Dim a As Integer
Dim I As Integer
a = 0
For i = 1 To 100
a = a + i
Next i
Text1.Text = a
必修4_18、编写程序,当在Textl中输入x的值后,单击计算按钮,求 y = |3x - 5|的值。
Private Sub Command1_Click( )
Dim x As Single
Dim y As Single
x = Text1.Text
y = Abs(3*x-5)
Text2.Text = y
End Sub
必修5_18、在打开的窗体Forml中,在窗体中增加一个文本框Text3,在完整按
钮中的程序,使当单击"计算"按钮时,计算b*b一4ec的值,并在Text3
中显示出来。
Private Sub Command1_Click( )
Dim b As Single
Dim c As Single
Dim x As Single
b = Text1.Text
c = Text2.Text
x = b * b – 4 * c
Text3.Text = x
End Sub
必修1_17、编程计算 s=1-2+3-4+5-……+99-100
程序:
Private Sub Form Click()
Dim s As Integer '定义变量s为整型变量
Dim i As Integer '定义循环变量
s = 0
For i=1 To 100
if int(i/2) <> i/2 Then
s = s + i
Else
s = s - i
End
Next i
Print "s=";s
End Sub
必修2_17、编写程序,求I+2+…+n>=500中最小的n
程序:
Private Sub Form_Click( )
Dim s As Integer
Dim n As Integer
s = 0
n = 0
Do
n = n + 1
s = s + n
Loop Until s > 500
Print “n=”;n
End Sub
必修3_17、编程计算s = 1*2+2*3+3*4+……+n*(n+1)的值,其中n =10
Private Sub Form_Click()
Dim s As Single
Dim i As Integer
s = 0
For i = 1 To 10
s = s + i * (i +1);
Next i
Print “s=”;s
End Sub
必修1_18、编程求:鸡和兔在一个笼里,共有腿100条,头40个,问鸡有几只,兔有几只?
程序:
Private Sub Form Click()
Dim Ji As Integer '鸡
Dim Tu As Integer '兔
Dim Leg As Integer '腿数
Dim Head As Integer '头数
For Ji=1 To 50
For Tu=1 To 25
Leg = Ji*2 + Tu*4 '计算腿
Head= Ji + Tu '计算头
If Leg = 100 And Head = 40 Then
Print "鸡=";Ji;"只", "兔=";Tu;"只"
End If
Next Tu
Next Ji
End Sub
必修2_18、编写递归函数求5!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print “s(5)=”;s(5)
End Sub
必修3_18、编写递归函数求10!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print “s(10)=”;s(10)
End Sub