VB教程第5章课堂讨论
vb第05章

a11 a 21 a 31
a12 a 22 a 32
a13 a 23 a 33
a( 1,1) a(1,2) a(1,3)
a( 2,1) a(2,2) a(2,3)
a( 3,1) a(3,2) a(3,3)
用二维数组A表示该矩阵的所有元素,用第 1个下标表示元素所在的行号,用第2个下标 表示元素所在的列号,则A(I,J)表示第I 行第J列的元素 A。
22
(3)引用第i个学生的信息: Score(1).StudNumber = "01" Score(1).StudName = "张三" Score(1).Math = 89 Score(1).English = 90
或写成: With Score(1)
.StudNumber = "01" .StudName = "张三" .Math = 89 .English = 90 End With
8
5.2 数组的定义
数组在使用之前必须先定义(声明) ,定 义数组的主要目的是为数组分配存储空间。 数组名:存储空间的名称; 数组元素:存储空间的每一个单元。每 个单元的大小与数组的类型有关。 按数组占用存储空间的方式不同,Visual Basic有两种数组: 静态数组 动态数组 两种数组的定义方法不同,使用方法也略 有不同。
13
数组元素的个数:
数组元素的个数等于每一维的大小之积, 即n维数组元素个数为: (上界1-下界1+1)× (上界2-下界2+1) ×…× (上界n-下界n+1)
14
5.2.2 动态数组的定义
动态数组是指在程序执行过程中数组元素 的个数可以改变的数组。 使用动态数组就可以在任何时候改变其大 小,并且可以在不需要时清除动态数组所占 的存储空间。
大学VB课堂 第五章第一节

问题二
问题二:在一行上输出60个“*”号。 方法一
方法二
流程图
5.1 循环概念
基本概念
问题一 问题二
要解决的问题
问题二
问题二:在一行上输出60个“*”号。
方法一: 用Print方法,可以用60个“*”号组成
一个字符串:
Print “***……**”
方法二
60个
流程图
5.1 循环概念
基本概念
问题一 问题二
要解决的问题
问题二
问题二:在一行上输出60个“*”号。
方法一: 用Print方法,可以用60个“*”号组成
一个字符串:
Print “***……**”
60个
方法二: 使用60个语句: Print "*"; Print "*”; …… Print "*"
流程图
5.1 循环概念
基本概念
问题一 问题二
要解决的问题
问题二
问题二:在一行上输出60个“*”号。 方法一
方法二: 使用60个语句: Print "*"; Print "*”;
…… Print "*"
流程图
基本概念
问题一 问题二
要解决的问题
5.1 循环概念
要解决的问题
(1)循环体的算法是什么? (2)进入循环条件是什么? (3)结束循环条件是什么?
基本概念
问题一 问题二Βιβλιοθήκη 要解决的问题5.1 循环概念
基本概念
程序中反复按某一模式进行运算或操作 的控制结构称为循环。
5.1 循环概念
基本概念
问题一 问题二
经典:vb程序设计教程第三版第5章

Exit For
' 结束循环
End if
Next n1
End Sub
25
5.4 过程的嵌套和递归调用
5.4.1 过程的嵌套
在程序中调用一子过程,而在子过程中又调用另外的子过 程,这种程序结构称为过程的嵌套。过程的嵌套调用执行过 程如下图:
28
5.4.2 过程的递归调用
用自身的结构来描述自身,称递归。例如,对阶乘的定义:
第5章 过程
将程序分割成较小的逻辑部件就可以简化程序 设计任务,称这些部件为过程。
VB中有两类过程,一类是内部过程,另一类是 外部过程,每一类过程又可分为函数过程和事件过 程。内部过程是由系统提供的、不需要用户编写、 可直接用过程名调用的程序段。外部过程是由用户 根据自己的需要定义和编写的、可供事件过程多次 调用的程序段。
Temp = x: x =b
End Sub
17
Private Sub CmdOK_Click() a% = 10: b% = 20: Swap1 a, b Print "A1="; a, "B1="; b a = 10: b = 20: Swap2 a, b Print "A2="; a, "B2="; b
n=Val(InputBox(“输入大于6的偶数"))
For n1=3 to n\2 step 2 ' 让n1从3开始分解
n2=n-n1
' 求得n2
‘ 如果n1和n2都是素数,则打印输出
If prime(n1) And prime(n2) then
Print n & "=" & n1 & "+" & n2
VB教程第5章教案

VB教程第5章教案学习程序设计,初学者要善于模仿,并要多练。
任何一门程序设计语言都有一套严格的编程规定(如语法规则),在编程时一定要遵守这些规定(只能遵守,不能创造)。
主页第5章数据的输入输出一个完整的VB应用程序,一般都包含三部分内容,即输入→处理→输出可通过VB语句、各种控件实现输入输出操作消息框5.1数据输出━Print方法5.1.1Print方法(知识点)用于显示(输出)文本字符串和表达式的值格式:[对象名.]Print[表达式表][,|;]说明:(1)“对象名”可以是窗体、图片框或打印机,也可以是立即窗口。
如果省略“对象名”,则在当前窗口输出。
(2)“表达式表”是一个或多个表达式,可以是数值或字符串。
各表达式间用逗号或分号隔开,如果省略,则输出一个空行。
(3)Print方法具有计算和输出双重功能,对于表达式,先计算后输出。
没有赋值功能。
(4)每执行一次Print一般自动换行。
末尾加逗号或分号则在同一行显示。
主页5.1数据输出━Print方法上机练习:Print"程序设计"Picture1.Print"程序设计"某=5:y=10:z=15Print某,y,z,"ABCDEF"Print"ABCDEF"Print某;y;z;"ABCDEF"Print"30+50=",´在当前窗体上输出´在图片框上输出Print30+50Print"30+50=";Print30+50主页例5.1PrivateSubForm_Click()a=2b="VB"Print50某aPrintbPrintPrint"TheTotali"EndSub'计算并输出表达式的值'输出变量的值'输出空行'输出字符串常量输出数值数据时,前面有一个符号位(正号以空格表示),后面留有一个空格;输出字符串时,前后不留空格运行结果:例5.1主页例5.2PrivateSubForm_Click()a=3:b=4Printa,b,4+a,Print2某bPrinta,,bPrint"a=";a,"b=";bEndSub运行结果例5.2分号“;”——紧凑格式逗号“,”——按区格式(14个字符位置)语句行末尾有分号或逗号,则输出本行输出项后不换行主页5.1.2与Print方法有关的函数(知识点)1.Tab函数函数格式:Tab(n)功能:把输出位置移到第n列。
VB第5章

开封大学五专部
5.4.2 窗体的方法
5. Move方法 方法 将窗体移动到一定的位置。 语法: [<窗体名 >].Move<left>[,<top>[,<width>[,<height>] ]] 6. Refresh方法 方法 强制重绘一个窗体及上面的控件。 语法: [<窗体名>].Refresh 通常,如果没有事件发生,窗体或控件的绘制是 自动处理的。
开封大学五专部
ቤተ መጻሕፍቲ ባይዱ
5.2 窗体的属性
11. HelpContextID属性 属性 设置对象的帮助文件的上下文关联编号,用于提 供应用程序的联机帮助。 12. Icon属性 图标 属性(图标 属性 图标) 用于设置窗体图标(显示在窗体左上角)。 13. KeyPreview属性 属性 用于返回或设置窗体是否在激活窗体上的控件的 键盘事件之前,优先激活窗体的键盘事件。 14. MaxButton和MinButton属性 和 属性 用于设置窗体右上角最大和最小按钮是否显示。
开封大学五专部
5.2 窗体的属性
4. BackColor属性 属性 BackColor属性用于设置窗体内含文本或图形对 象的背景色,其语法格式如下: [<窗体名>].BackColor=<颜色值> 5. BorderStyle属性 边界风格 属性(边界风格 属性 边界风格) 用于设置窗体的边框样式,运行时为只读属性。 6. Caption属性 属性 此属性确定窗体标题栏显示的文本。当窗体被最 小化时,该文本显示在窗体图标的右面。语法: [<窗体名>].Caption=<字符串>
开封大学五专部
5.5 其他事件
VB教案(PPT)——第五章

解决此问题的根本方法,引入数组,始终保持输入的数据,一次输入,多次使用。
5.2
1. 静态数组及声明
静态数组及声明
数组不是一种数据类型,而是一组相同类型的变量的集合,数组必须先声明后使用。 两类数组: 静态(定长)数组、动态(可变长)数组
形式: Dim 数组名(下标1[,下标2…]) [As 类型] 声明了数组的名、维数、大小、类型 维数:几个下标为几维数组,最多60维。 下标:[下界 To ] 上界 省略下界为0 ,必须为常数。 每一维大小:上界-下界+1 数组大小: 每一维大小的乘积 例:Dim mark(1 to 100) As Integer
(3×4)个整型变量的空间,如图7-3所示。
• •
说明: (1)可以将二维数组的定义方法推 广至多维数组的定义。 • 例如:Dim D(3,1 To 10,1 To 15) 定义了一个3维数组,大小为 4 × 10 × 15。注 意在增加数组的维数时,数组所占的存储空间 会大幅度增加,所以要慎用多维数组,尤其是 Variant 数组,因为他们需要更大的存储空间。 • (2)在实际使用时,可能需要数组 的上界值和下界值,这可以通过LBound函数和 UBound函数来求得。其格式为:
一维数组
• 7.2.1 一维数组的定义
•
• •
数组应当先定义后使用,数组的定义 又称为数组的声明或说明。
对于固定大小的一维数组,用如下格 式进行定义: 说明符 数组名(下标)[As 类型]
•
•
例如:Dim y(5)As Integer
定义了一个一维数组,该数组的名字 为y,类型为Integer,占据6个(0~5)整型变 量的空间。
•
【例7.8】打印4名同学的英语、数学、
VB5

2)使用“添加过程’’命令。 打开代码窗口,执行“工具”菜单中的“添加过程”命令, 弹出‘‘添加过程’’对话框, 输入过程名
选择类型
选择范围
12
5.1.2 Function过程的调用
定义函数过程的目的是为了在其他过程中调用,通过调用 将一些参数值传递给函数过程,在函数过程中利用参数值计 算并返回函数值。 Function过程的调用与内部函数的调用类似,即可以直接 在表达式中调用。 格式: <函数过程名> ([<实参表>]) 其中, <函数过程名>为要调用的Function过程的名称; <实参表>为要传送给Function过程的常量、变量或表达式, 各参数之间用逗号分隔,如果是数组,在数组名之后必须跟 一对空括号。
过程定义: Sub SubTest(n As Integer, Sum As Single)
在传递参数时,形参表与实参表中对应参数的名字不必相同,但要求 形参表与实参表中参数的个数、类型、位置顺序必须一一对应。 形参表中的参数可以是:除固定长度字符串之外的合法变量名,后面 带一对圆括号的数组名。 实参表中的参数可以是:常量、变量、表达式、后面带一对圆括号的 数组名。 VB中, 形参与实参的结合有两种方式:按值传递和按地址传递。 21
9
• As <类型>:可选项。Function过程的返回值的数据类型, 可以是Byte、Boolean、Integer、Long、Currency、Single、 Double、Date、String(固定长度除外)、Object、Variant或用 户自定义类型。 • < 浯 句 组> : 可 选项 。 语 句组中 可 以有一 条 或多条 Exit Function语句。 • Exit Function语句:从Function过程中退出。 • <表达式>:可选项。Function过程通过赋值语句 “<函数过程名> = <表达式>” 将函数的返回值赋给<函数过程名>。如果省略该语句,则 数值函数过程返回0,字符串函数过程返回空串。
VB程序设计教程高等教育出版社第5章

1 数制转换
不同进制数之间的转换,可通过编程来实现;也可通过 VB提供的内部函数:十进制转换为八进制函数(Oct)、 转换为十六进制函数(Hex)来实现。 例6.13编一函数,实现一个十进制整数转换成二至十六 任意进制的字符。
分析:十进制正整数m转换成r进制数,将m不断 除r取余数(若余数超过9,还要进行相应的转换, 例如10变成A,11变成B等),直到商为零,以反序 得到结果,即最后得到的余数在最高位。
7
2. 函数过程的调用
函数过程的调用与使用标准函数相同,形式 如下:
函数过程名 ([参数列表]) 如: s1=area(a,b,c) (见P126)
因函数过程名返回一个值,故函数过程不能作为 单独的语句调用,必须作为表达式或表达式的一 部分来构成语句。
8
函数过程的调用
例6.3编一函数,统计字符串中汉字的个数。 分析:在VB中,字符以Unicode码存放,每个汉 字和英文是一个字符、占有两个字节,区别是 汉字的机内码最高位为1,若利用Asc函数求其 码值为小于0(以补码表示),而西文字符的最 高位为0,Asc函数求其码值为大于0
[As 类型]…] 形参只能是变量或数组名,ByVal表示当过程被调 用时此参数是值传递,否则是地址传递。 函数过程无参数时,过程名后的括号不能省略。 (d)在函数体内至少对函数名赋值一次。
6
例如,定义计算三角形面积的函数过程。
定义函数过程area Function area(x!, y!, z!) As Single Dim c! c = 1 / 2 * (x + y + z) area = Sqrt(c * (c - x) * (c - y) * (c - z)) End Function
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主页
3. 执行下列程序段时,内循环的总循环次数为___(1)___;执
行该程序段后,变量s的值是___(2)___,变量t的值是___(3)___ s=0 For m = 2 To 1 Step -1 t=m For n = 1 To m s=s+n Next n Next m (1) A. 1 (2) A. 2 B. 2 B. 3 C. 3 C. 4 D. 4 D. 5
B. Do Until c*t>40 c = c*2 Loop
D. For k=c To t 及上机调试
第5题 某4位数ABCD能够被78整除,它的千位数字与百位数字相 同,十位数字与个位数字相同(即:A=B,C=D),求出这个数。 Private Sub Form_Load() Dim k As String, a As Integer, b As Integer Dim c As Integer, d As Integer Show For k = 1000 To 9999 Next k If k Mod 78 = 0 And a = b And c = d Then Print k End If a = Int(k / 1000) b = Int((k - 1000 * a) / 100) c = Int((k - 1000 * a - 100 * b) / 10) d = k Mod 10 End Sub
主页
二、多选题
设c和t均为整型变量,分别具有初值1和10。在下列循环语 BD 句中,循环体执行次数为3次的是 A.Do While c<=t c = c+3 Loop
C. Do C = 3*c + 1 Loop Until c>t E. Do C = t\c : c = c + 2 Loop While c<t
第5章 习题讨论
单选题 多选题 编程题
退出
主页
一、单选题
B 1.下面程序段运行的结果是_____。
s=2
For k = 8 To 18 Step 4 s=s+2 Next k Print s A. 6 B. 8 C. 10 D. 36
主页
2. 下列程序段的运行结果(即 s 的值)是 B s=0 For k = 5 To 25 Step 7 s=s+k Next k Print s A. 26 B. 36 C. 37 D. 61
(3) A. 1
答案:(1)C
B. 2
(2)C
C. 3
(3)A
D. 4
主页
4. 以下程序用于计算
S = 1 + (1 + 3) + (1 + 3 + 5) + …… + (1 + 3 + 5 + …… + 49) 将下列程序代码补充完整。
t = 0: n = 1: s = 0
Do While ____(1)____ t = ____(2)____
此 程 序 错 在 哪 里 ?
主页
某4位数ABCD能够被78整除,它的千位数字与百位数字相同, 十位数字与个位数字相同(即:A=B,C=D),求出这个数。
编程题第5题
Private Sub Form_Load() Dim k As Integer, a As Integer, b As Integer Dim c As Integer, d As Integer Show For k = 1000 To 9999 a = Int(k / 1000) b = Int((k - 1000 * a) / 100) c = Int((k - 1000 * a - 100 * b) / 10) d = k Mod 10 If k Mod 78 = 0 And a = b And c = d Then Print k End If Next k End Sub
主页
补充题1 (使用字符串处理来解题) 某4位数ABCD能够被72整除,它的千位数字与个位数字相同, 百位数字与十位数字相同(即:A=D,B=C),求出这个数。
Private Sub Form_Load() Dim k As Integer, x As String, a As String Dim b As String, c As String, d As String Show For k = 1000 To 9999 x = Str(k) a = Left(x, 1) b = Mid(x, 2) c = Mid(x, 3) d = Right(x, 1) If x Mod 72 = 0 And a = d And b = c Then Print k End If Next k End Sub
此 程 序 对 吗 ?
主页
某4位数ABCD能够被72整除,它的千位数字与个位数字相同,百 位数字与十位数字相同(即:A=D,B=C),求出这个数。 Private Sub Form_Load() Dim k As Integer, x As String, a As String Dim b As String, c As String, d As String Show For k = 1000 To 9999 x = Trim(Str(k)) 编程补充题1 a = Left(x, 1) b = Mid(x, 2, 1) c = Mid(x, 3, 1) d = Right(x, 1) If k Mod 72 = 0 And a = d And b = c Then Print k End If Next k End Sub
主页
编程补充题2 设计程序,求出所有和为1000的连续整数,如 198、199、200、201、202这几个连续整数累加值为1000 Dim n As Integer, k As Integer, s As Integer For n = 1 To 500 s=0 k=n str0 = "1000 =" Do While k <= 500 s=s+k 编程补充题2 str0 = str0 & Space(1) & k If s < 1000 Then k=k+1 Else If s = 1000 Then Print str0 Exit Do End If Loop Next n 主页
s = ____(3)____
n=n+2 Loop Print "s="; s (1) A. n = 49 (2) A. t + s (3) A. s + n B. n < 49 B. s + n B. n + t C. n <= 49 C. n + t C. n D. n <= 50 D. n D. s + t C C D