第二章 Visual Basic语言基础.

Slides:



Advertisements
Similar presentations
编程加工 信息的. 趣味导入拓展提升大显身手总结反思学以致用 传说古代印度有个国王叫舍罕,他很迷恋棋类,而 宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩 得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无 他求,请你在这张棋盘的第一个格子里赏我 1 粒麦子; 在第二个格子里赏我 2 粒麦子;在第三个格子里赏我.
Advertisements

第二章 VB程序设计基础 第1节 Visual Basic 概述 1.1 Visual Basic简介 1.2 面向对象的程序设计概念
第2章 Visual Basic 6.0编程基础 (第一部分)
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第 7 章 文 件.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
高等医药院校药学类第三轮规划教材——大学计算机基础
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
第五章 数组.
四 VBScript编程基础.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
第三章 VB基本语言 3.1编程基础 3.2数据类型 3.3 变量与常量 3.4 运算符和表达式 3.5 内部函数 3.6 基本语句 3.7数组.
Visual Basic程序设计.
ASP VBScript 基础知识.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
初识Visual Basic.
算法与程序设计.
第4章 程序控制结构与算法基础.
计算机程序设计强化复习 Visual Basic 6.0.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第12章 VBA模块设计.
新觀念的 VB6 教本 第 6 章 資料型別.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
小结 郭清溥.
经典算法之 冒 泡 排 序.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年10月18日.
1位选手参加了歌唱比赛,评委们的评分如下:
Print方法和函数 2019/5/19.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
程序调试与错误处理.
Presentation transcript:

第二章 Visual Basic语言基础

第二章 Visual Basic语言基础 2.1 Visual Basic 的基本数据类型 2.2 常量与变量 2.8 数组 2.9 程序举例

2.1 Visual Basic 的基本数据类型 定义: 1)数据:描述客观事物的数、字符以及所有能被输入到计算机程序加工处理的符号集合。 2)数据类型:指数据在计算机内部的表述和存储形式 VB有11种基本数据类型,一种用户自定义数据类型。

2.1.1 用于保存数值的数据类型 VB有6种 整型(Integer) 长整型(Long) 单精度型(Single) 双精度型(Double) 字节型(Byte) 货币型(Currency) 1、整型数据 整型:占两个字节 表示方式:±n[%] 长整型:占四个字节 表示方式: ±n& 2、浮点型数据 单精度(Single):指数E 精度7位 表示方式:! 双精度(Double):指数D 精度16位 表示方式:#

3、货币型 定点数或整数,用于计算货币的数量 最多保留小数点右边4位,左边15位。 4、字节型 用于存储一个字节的无符号整数。 取值范围:0~255

2.1.2 日期型数据(Date) 任何可以辨别的文本日期都可以赋值给日期数据变量 表示方式: 日期型数据前后必须添加符号“#”

2.1.3 字符串型数据(String) 用于表示连续的字符序列,专用于存放文字信息。用半角的” ”来界定。 定长字符串型:能包含的最大字符数是固定 的,并且可以指定。 所占内存:字符串本身的长度 变长字符串型:能包含的字符个数是可变的。 所占内存:10个字节+字符长度

2.1.4 逻辑型数据(Boolean) 用于表示逻辑量,占用两个字节。 取值: True(真) -1(整型数据) False(假) 0 (整型数据) 若其他类型数据转换成逻辑数据时: 非0数据 True 0 False

2.1.5 对象型数据(Object) 作用:可以被用来引用应用程序所能使识别的任何实际对象。 大小:占4个字节

2.1.6 变体型数据(Variant) 作用:是VB提供的一种特殊数据类型,是所有未声明变量的默认数据类型。

2.2 常量与变量 2.2.1 常量 定义:指在程序运行过程中其值始终保持不变的量。 分为: 直接常量 符号常量 系统常量

1、直接常量 简称常量。 又分为: 数值常量:数值、小数点、正负号 字符串常量:用半角” ”界定 日期常量:用# #界定 布尔常量:T F 无界定符号 2、符号常量 格式:Const 符号常量名 [as 数据类型]=表达式

3、系统常量 由VB提供的具有专门名称和作用的常量。 2.2.2 变量 1、定义:指在程序运行过程中可以改变其值的量。 2、特性: 名字、数据类型、作用范围、生存周期 3、变量形式: 属性变量、内存变量 1)变量命名规则 2)声明内存变量的形式: 显式声明、隐式声明

2.8 数 组 2.8.1 概 述 数组的概念:数组并不是一种数据类型,而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。 其表示形式: A(1),A(10) X(1,1), X1(1,10), X(2,10) Y(0,0,0), Y(1,2,5)

Visual Basic中的数组,按不同的方式可分为以下几类: 按数组的大小(元素个数)是否可以改变来分为:定长数组、动态(可变长)数组。 按元素的数据类型可分为:数值型数组、字符串数组、日期型数组、变体数组等。 按数组的维数可分为:一维数组、二维数组、多维数组。 对象数组:菜单对象数组、控件数组。

2.8.2 一维数组 形式: 2.8.2.1 一维数组的声明 (无隐式声明) Dim 数组名([<下界>to]<上界>)[As <数据类型>] 或: Dim 数组名[<数据类型符>]([<下界>to]<上界>) 例:Dim a(1 to 10) As Integer ‘ 声明了a数组有10个元素 与上面声明等价形式: Dim a%(1 to 10) 数组元数的数据类型 1是下标的下界 10是下标的上界

说明: 1.数组名的命名规则与变量的命名相同。 2.数组的元素个数:上界-下界+1。 3.缺省<下界>为0,若希望下标从1开始,可在模块的通用部分使用Option Base语句将设为1。其使用格式是: Option Base 0|1 ' 后面的参数只能取0或1 例如: Option Base 1 ' 将数组声明中缺省<下界>下标设为1 4.<下界>和<上界>不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。

5.如果省略As子句,则数组的类型为变体类型。 6.数组中各元素在内存占一片连续的存储空间,一维数组在内存中存放的顺序是下标大小的顺序,如图5-1所示:

2.8.2.2 一维数组元素的引用 数组必须先定义后使用 使用形式: 数组名(下标) 其中:下标可以是整型变量、常量或表达式。 使用形式: 数组名(下标) 其中:下标可以是整型变量、常量或表达式。 例如: 设有下面的数组B(10) As Integer 则下面的语句都是正确的。 A(1)=A(2)+B(1)+5 ' 取数组元素运算 A(i)=B(i) ' 下标使用变量 B(i+1)=A(i+2) ' 下标使用表达式 引用不能下标越界,P113例

2.8.2.3 一维数组的基本操作 1. 可通过循环给数组元素的初值 For i = 1 To 10 'A数组的每个元素值为1 A(i)=1 Next i 2. 数组的输入 For i = 1 To 4 For j = 1 To 5 sc(i, j) = InputBox("输入sc(" &i & "," & j & ") 的值") Next j Next I

3. 数组的输出 输出如下图所示的下三角数据 Dim sc(5,5) As Integer,i%,j% For i = 1 To 5 For j = 1 To i sc(i, j) = i * 5 + j Print sc(i, j); " "; Next j Print ' 换行 Next I

4. 求数组中最大元素及所在下标 Dim Max As Integer,iMax As Integer Max=A(1):iMax=1 For i = 2 To 10 If A(i)>Max Then Max=A(i) iMax=i End If Next I 5. 将数组元素倒置 For i =1 To 10\2 t=A(i) A(i)=A(10-i+1) A(10-i+1)=t Next I 例5.1

2.8.2.4 一维数组的应用 一、分类统计 例5.2 在例5.1中如果还要统计0~9,10~19,20~20,….80~89,90~99分数段及100分的学生人。 则可另用数组bn来存各分数段的人数,并用bn(0)存0~9分的人数,bn(1)存10~19分的人数,…bn(9)存90~99分的人数,bn(10)存100分的人数。

二、 排序问题 1.选择法排序 算法思想: 1)对有n个数的序列(存放在数组a(n)中),从中选出最小(升序)或最大(降序)的数,与第1个数交换位置; 2)除第1 个数外,其余n-1个数中选最小或最大的数,与第2个数交换位置; 3)依次类推,选择了n-1次后,这个数列已按升序排列。

选择法排序(升序)的VB程序: For i = 1 To n - 1 p = i For j = i + 1 To n If a(p) > a(j) Then p = j Next j temp = a(i) a(i) = a(p) a(p) = temp Next i

2.冒泡法排序(递增) 算法思想:(将相邻两个数比较,小的调到前头) 1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”; 2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数; 3)依次类推,n个数共进行n-1趟比较,在第j 趟中要进行n-j次两两比较。

冒泡法排序(升序)的VB程序: For i = 1 To n - 1 For j = 1 To n-i If a(j) > a(j+1) Then temp=a(j) a(j)=a(j+1) a(j+1)=temp End if Next j Next i

例5.3 用随机函数产生50个[10,100 )的随机整数,并按照由小到大的顺序打印出来。 程序界面如下:

2.8.3 二维数组及多维数组 2.8.3.1 二维数组的声明 声明格式如下: 其中的参数与一维数组完全相同。 2.8.3 二维数组及多维数组 2.8.3.1 二维数组的声明 声明格式如下: Dim 数组名([<下界>] to <上界>,[<下界> to ]<上界>) [As <数据类型>] 其中的参数与一维数组完全相同。 例如:Dim a(2,3) As Single 二维数组在内存的存放顺序是“先行后列”。例如数组a的各元素在内存中的存放顺序是: a(0,0)→a(0,1)→a(0,2)→a(0,3)→a(1,0)→a(1,1)→a(1,2)→ a(1,3)→a(2,0)→(2,1)→a(2,2)→a(2,3)

2.8.3.2 二维数组的引用 2.8.3.3 二维数组的基本操作 引用形式: 数组名(下标1,下标2) 例如: a(1,2)=10 引用形式: 数组名(下标1,下标2) 例如: a(1,2)=10 a(i+2,j)=a(2,3)*2 在程序中常常通过二重循环来操作使用二维数组元素。 2.8.3.3 二维数组的基本操作 二维数组数据的输入 2. 求最大元素及其所在的行和列 3. 计算两矩阵相乘 4. 矩阵的转置

2.8.3.5 多维数组的声明和引用 定义多维数组的格式如下: 2.8.3.5 多维数组的声明和引用 定义多维数组的格式如下: Dim 数组名([<下界>] to <上界>,[<下界> to ]<上界>,……) [As <数据类型>] 例如: Dim a(5,5,5) As Integer 声明a是三维数组 Dim b(2,6,10,5) As Integer ' 声明b是四维数组

Preserve参数:保留数组中原来的数据 2.8.4 动态数组 动态数组:在声明时未给出数组的大小。定长数组是在程序编译时分配存储空间,而动态数组是在程序执行时分配存储空间。 2.8.4.1 动态数组的建立及使用 建立动态数组包括声明和大小说明两步: 1.在使用Dim、Private或Public语句声明括号内为空的数组。 格式:Dim | Private|Public 数组名()As 数据类型 例:Dim a() As Integer 2.在过程中用ReDim语句指明该数组的大小。 格式:ReDim [Preserve] 数组名(下标1[,下标2…]) 例:Redim A(10) Redim Preserve A(20) Preserve参数:保留数组中原来的数据

× 说明: (1)ReDim语句是一个可执行语句,只能出现在过程中,并且可以多次使用,改变数组的维数和大小。 例: Private Sub Form_Click() Dim N As Integer N=Val(InputBox(“输入N=?”)) Dim a(N) As Integer ……. End sub ×

例5.5 (3)在过程中可以多次使用ReDim来改变数组的大小,也可 改变数组的维数。 例:ReDim x(10) ReDim x(20) Print x(20) ReDim x(20, 5) x(20, 5) = 10 Print x(20, 5) (4)每次使用ReDim语句都会使原来数组中值丢失,可以在ReDim后加Preserve 参数来保留数组中的数据。但此时 只能改变最后一维的大小。 例5.5

2.8.4.2 与数组操作有关的几个函数 Aarry函数 Aarry函数可方便地对数组整体赋值,但它只能给声明Variant的变量或仅由括号括起的动态数组赋值。赋值后的数组大小由赋值的个数决定。 例如,要将1,2,3,4,5,6,7 这些值赋值给数组a,可使用下面的方法赋值。 Dim a() A=array(1,2,3,4,5,6,7) Dim a

2 求数组的上界Ubound( )函数、 下界 Lbound( )函数 分别用来确定数组某一维的上界和下界值。 使用形式如下: UBound(<数组名>[, <N>]) LBound(<数组名> [, <N>]) 其中: <数组名>:必需的。数组变量的名称,遵循标准变量命名约定。 <N> :可选的;一般是整型常量或变量。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略默认是1。