当前位置:首页 >> 其它课程 >> 初中信息技术教案初二(上)

初中信息技术教案初二(上)


第一章 声音、视频信息的加工与处理
音频、视频是制作多媒体作品的两个重要元素。通过本章的学习,我们将了解常见的声 音、视频媒体的类型、格式及其存储,并能适当地选择相应的工具对声音、视频进行加工与 处理。

第一节 声音信息的加工与表达
声音是因物体振动而产生的一种连续的波, 它在自然界中是通过一定的介质 (例如空气、 水等)进行传播的,发出

声音的物体称为音源。声音能刺激人的听觉,能使多媒体作品更丰 富多彩。我们在制作多媒体作品时少不了要加入声音素材。 一、声音文件的存储格式 同存储文本文件一样, 存储声音数据也需要有文件存储格式, 目前在计算机上运行的声 音文件存在多种不同的存储格式,常见的声音文件存储格式有 WAV、MP3、MIDI 等,它们 各有相应的特点及适用范围。 1.WAV 格式,是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字 音频格式,被 Windows 平台及其应用程序广泛支持,通用性强,但文件容量较大。 2. MIDI 是 Musical Instrument Digital Interface 的缩写,又称作乐器数字接口,是数字音 乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、数字合成器及其它电子设备 交换音乐信号的方式, 规定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据 传输的协议,可以模拟多种乐器的声音。MIDI 文件就是 MIDI 格式的文件,在 MIDI 文件中 存储的是一些指令。把这些指令发送给声卡,由声卡按照指令将声音合成出来。 3. MP3 全称是 MPEG-1 Audio Layer 3, 它在 1992 年合并至 MPEG 规范中。 MP3 能够以高 音质、低采样率对数字音频文件进行压缩。换句话说,音频文件能够在音质丢失很小的情况 下(人耳根本无法察觉这种音质损失)把文件压缩到更小的程度。 正是因为 MP3 格式的文件容 量小,因此它被广泛的应用。 随着现在互联网的快速普及, 越来越多的视音频格式也不断的涌现, 除了上面三种声 音格式文件外,还有 WMA,AAC,Ogg,PCM,M4A,AC3, ACC,AC3,DD+,APE,FLAC,cue, DTS, DTS-HD MA 等声音格式文件。不同格式的声音文件都有各自的优缺点,如,WAV 格式 音质好,但文件容量大,MP3 文件容量下,但音质不如 WAV 格式。在实际应用中,我们可 以根据不同的需求, 选用不同的音质文件, 也可以用声音编辑软件对已有的声音文件进行格 式转换。 二、声音信息采集方法 1.声音信息采集的基本工作原理 采集声音可根据需要选择不同的方式。目前声音主要是通过获取现成的声音文件和截 取、录制等途径进行采集。 在录音时, 声音信号通过麦克风或者线性输入通道进入, 首先经过混合信号处理器进行 采样、A/D(Analog/Digital,模拟/数字转换) 、混合等一系列过程,然后通过数字声音处理器 (Digital Signal Processor,简称 PSP)进行编码和压缩,并形成波形声音文件。DSP 还承担着 特殊音效过滤与处理、语音识别、MIDI 合成等任务。在放音时,数字波形声音信号首先通 过 DSP 进行处理和运算,再传输到混合信号处理器进行 D/A 转换(数字/模拟转换) ,转换 后的模拟信号经过放大器的放大,再通过扬声器输出。在播放 MIDI 时,根据所指示的乐器
-1-

到波形查询表查询该乐器的资料,经过 D/A 转换为模拟声音方式,再通过扬声器输出,将 声音从模拟信号转换成数字信号。录制声音需要有硬件设备与录音软件。 例 1.1 利用 Windows 所带的“录音机”录制一段声音文件 分析:录制声音是通过与计算机相连的麦克将声音传递到计算机中的,因此,在录制声 音之前,要对主音量进行一下设置,将麦克输入量选项选上,具体操作步骤如下: 双击状态栏中的小喇叭图标 ,打开“音量控制”对话框中的 “属性”对话框,在

“显示下列音量控制”中选择“麦克风”项,然后单击“确定”按钮。 设置好后,接下来就可以录制声音了。先进入录音机的操作界面后,如图 1.1 所示,将 要录制的声源对着麦克风,用鼠标单击操作面板上的“录音”按钮,即可开始录制声音。

图 1.1 录音机的操作界面

当录音结束时,单击“停止”按钮,完成录音操作。同时,录音显示面板将显示所录制 声音文件的长度。单击“播放”按钮或直接拖动调整滑块可以立刻回放所录制的声音效果。 Windows 录音机每次提供的录音长度只有 60 秒,但如果需要继续录,则再次单击“录 制”钮,录音机会继续向下接着录,同时,面板上所显示的声音录制时间也会在原有基础上 增加。 确认声音录制无误后, 我们可以利用文件菜单中的保存命令将录好的声音保存在计算机 中。 用录音机录制的声音文件是以 Wav 的声音文件格式存储到计算机中的。 另外,还可以用 GoldWave、SoundForge 音频编辑软件来录音,非常方便。 例 1.2 我们知道 Wav 文件虽然音质好,但文件大,而 MP3 相对音质差一点,但文件 小,现在我们想把录制的“单词.wav”文件转换成“单词.mp3” ,如何操作? 分析: 将 Wav 文件格式转换成 mp3 文件格式需要借助于音频编辑软件,目前流行的 音频编辑软件工具有很多,转换的基本方法大同小异,这里我们以 GoldWave 软件为例。用 GoldWave 软件转换声音文件格式的操作步骤如下: (1)进入 GoldWave。 (2)单击“文件”菜单下的“打开”命令 ,打开“单词.WAV”文件,如图 1.2 所示。

-2-

图 1.2 打开后的“单词.WAV”文件

(3)单击“文件”菜单下的“另存为”命令,如图 1.3 所示。在弹出的“保存声音为” 对话框“保存类型”栏中选“MPEG 音频 (*.mp3) 如图 1.4 所示。单击“保存”按钮, ”,

图 1.3“文件”菜单下的“另存为”

-3-

图 1.4 保存“单词”为.MP3 文件

这样就得到了一个“单词.mp3”文件。 2.获取现成的声音文件 获取现成的声音文件是最简单和常用的采集声音的方法, 尤其是音乐和音效, 市面上销 售的素材光盘提供了很多声音素材,因特网上也有大量声音文件可供下载。 例 1.3 如何在网上下载声音文件? 分析:我们可以通过网上搜索你所需要的声音文件,然后,把它保存下来。具体步骤如 下: (1)打开 IE 浏览器,输入网址 http://mp3.baidu.com,按回车键。 (2)在搜索框中输入音乐的名称,单击“百度一下” 。 (3)在搜索结果中选择合适的资源,单击,在弹出的窗口中右击该资源的链接,选择 “目标另存为” ,在“另存为”对话框中选择保存位置和名称,单击“保存”按钮。 注意:同一个音乐一般都可以搜索到大量资源,但一些资源可能已经被删除,所以有 时需要多尝试几个链接。 三、声音的加工与处理 在录制声音过程中,难免有语音停顿或插入一些不需要的声音,这就需要对声音文件 进行编辑处理。对声音的编辑主要包括删除声音、插入声音、移动声音、复制声音等。 1.删除声音 在制作多媒体教学软件过程中进行录音时,不可避免地会在声音文件的前后出现多余 的无声音的部分,如果保留,会造成文件体积很大。最好在声音文件中将多余部分删除掉。 首先,选择编辑软件,打开这段声音文件,选择要删除的区域(拖出一块区域即为选择 的区域),直接按键盘上的 Delete 键,即可删除。 2.插入声音

-4-

选取声音,单击鼠标右键,在弹出的快捷菜单中,选择“Copy”命令,或单击工具栏上 的“Copy”按钮或使用快捷键“ Ctrl + C”,选择插入区,单击工具栏上的“Paste”按 钮。 3.移动声音 移动声音可以做到将声音移动位置,从文件中的一个地方移动到另一个地方。 方法是:选中区域,然后单击工具栏上的“Cut”按钮或使用快捷键“Ctrl + X”,将 指针移动到需要粘贴的地方,选择插入区,单击工具栏上的“Paste”按钮或使用快捷键 “Ctrl + V”即可。 你会发现对于声音的删除、复制、移动与文字处理软件 Word 中对文字的删除、复制、 移动方法类似。 4.将一个声音文件剪辑分成几个声音文件 在制作多媒体教学软件时,需要将一个声音文件分成几个声音文件,根据不同场景插 入到不同地方,这就需要将一个声音文件,进行剪辑然后再保存。 例 1.4 尝试使用声音处理软件 GoldWave 制作 MP3 铃声。 分析:首先,打开你喜欢的音乐文件,剪辑掉一部分,保留一少部分做为铃声,然后, 将其保存,具体制作步骤如下: (1)点击 GoldWave.exe,运行 GoldWave 程序,然后打开一个要进行编辑的 MP3 文件。 如图 1.5 所示。

图 1.5

打开声音文件

(2)截取一段音频的部分制作手机铃声。在某一位置上左击鼠标就确定了选择部分的 起始点, 拖到选择部分的终止点, 这样选择的音频事件就将以高亮度显示, 如图 1.6 所示 (建 议截取的铃声最长在 45 秒左右,因为作为铃声来说,45 秒刚好是一个拔号的周期时间)。
-5-

图 1.6 选取的音频波形

(3)更改音量,如图 1.7 所示,选择“更改音量”。

图 1.7 更改音量

然后,进行音量调整: 如图 1.8 所示,音量可以按自己的需要进行调整。 建议尽量使音量大些,一般把音量调到大于 6.0206 以上,经测试所制作的 MP3 铃声音 质响亮又不会造成失真。

-6-

图 1.8 更改音量值

(4)打开“文件”菜单,选择“选定部分另存为?”命令,在“保存类型”中选“MPEG 音频 (*.mp3) ”,输入文件名,然后单击“保存”按钮。 如图 1.9 所示。

图 1.90 保存铃声文件 最后一步就是把铃声放到手机里享受成就感了! 例 1.5 给幻灯片配音。 分析:有时我们需要对幻灯片进行配解说,例如,在计算机应用能力考核中,学生对考 核系统不熟悉,需要对考试系统进行解说,具体录制操作步骤: (1)选择主菜单“幻灯片放映/录制旁白”。

-7-

(2)在“录制旁白”对话框中选中“链接旁白”选项,单击“浏览”选择放置旁白文 件的文件夹,单击“确定”。 (3)进入到幻灯片放映状态,一边播放幻灯片一边对着麦克风朗读旁白。 (4)播放结束后,弹出对话框“旁白已经保存到每张幻灯片中,是否也保存幻灯片的 排练时间?”,单击“保存”。 录制完毕后, 在每张幻灯片右下角自动显示喇叭图标。 播放时如果选择按排练时间放映, 则自动播放。 练习题 1.某同学录制了一段 WAV 格式的声音文件,由于文件容量太大,他想在保证正常播放 的前提下,把文件容量变小,下列方法中最好的是( ) A.应用音乐编辑软件剪掉其中的一部分 B.应用压缩软件,使音乐容量变小 C.应用音频工具软件将文件转换成 MP3 格式 D.应用音频编辑工具将音乐的音量变小 2.以下( )是 Windows 的通用声音格式。 A.WAV B.MP3 C.BMP D.CAD

第二节 视频信息的加工与处理
视频(Video)泛指将一系列静态影像以电信号方式加以捕捉,纪录,处理,储存,传 送,与重现的各种技术。连续的图像变化每秒超过 24 帧(frame)画面以上根据视觉暂留原 理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视 频。 视频技术最早是为了电视系统而发展, 但现在已经发展为各种不同的格式以利消费者将 视频记录下来。 网络技术的发达也促使视频的纪录片段以串流媒体的形式存在于因特网之上 并可被电脑接收与播放。 视频文件是将视频模拟信号数字化后的文件, 它是由一组连续播放的数字图像和一段伴 随图像同时播放的数字声音共同组成的文件,是各种媒体中的重要形式之一。 一、视频制作过程 我们将电节目或者录像带通过采集卡将相应的视频采集到计算机里,编辑后可回 录到 DV 带上,也可以压缩成 MPG 刻成 VCD 或者 SVCD,DVD 保存。 也有一些摄像机是带硬盘的, 直接将视频存为视频文件, 只要将其考到计算机里, 同时,压缩成 MPG 刻成 VCD 或者 SVCD,DVD 保存。 MPG 是有损压缩,不管是压缩成什么格式,对画质都有损失,但是刻 MPG 盘保存 还是最常用的方式。 除了 MPG 格式外,还有很多视频格式。 视频制作过程:确定选题或编写剧本→写出分镜头脚本→准备拍摄的场景、人员 和器材等→外景或演播室拍摄→图像合成→声音合成→输出完成并交付使用。 二、常见的视频类型和格式 1.常见的视频类型 常见的视频文件的类型和格式有 AVI、MPG、MOV 、RM、RMVB 等。 对于各种格式的视频文件,都有相应的播放器或插件。 2.常见的视频格式 (1)MPEG

-8-

MPEG 的英文全称为 Moving Pictures Experts Group, 中文译名是动态图像专家组。 MPEG 标准主要有以下五个,MPEG-1、MPEG-2、 MPEG-4、MPEG-7 及 MPEG-21 等。该专家组建于 1988 年,专门负责为 CD 建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。 及后, 他们成功将声音和影像的记录脱离了传统的模拟方式, 建立了 ISO/IEC1172 压缩编码 标准, 并制定出 MPEG-格式, 令视听传播方面进入了数码化时代。 因此, 大家现时泛指的 PEG-X 版本,就是由 ISO(International Organization for Standardization)所制定而发布的视 频、音频、数据的压缩标准。 (2)AVI AVI 的英文全称为 Audio Video Interleaved, 即音频视频交错格式。 是将语音和影像同步 组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,因此尽管 画面质量不是太好,但 AVI 格式调用方便,因此其应用范围仍然非常广泛。 (3)RA/RM/RAM RA/RM/RAM 都是美国 Real Networks 公司推出的音频/视频压缩规范格式。 格式文 RA 件是有损音频/视频压缩文件格式,压缩比较大,支持正品签名,但可增值的功能不多,目 前用的人数不是很多。RM 格式文件是 Real 公司力推的最早的音/视频文件格式,具有压缩 比大的优点,并支持流媒体播放。 RAM 格式文件是 Real 公司对于 RM/RA 格式的改进版, 改进流媒体协议的支持程度,多用于网络视频传输。 (4)WMV 一种独立于编码方式的在 Internet 上实时传播多媒体的技术标准, 的主要优 WMV 点在于:可扩充的媒体类型、本地或网络回放、可伸缩的媒体类型、流的优先级化、 多语言支持、扩展性等。 (5)RMVB RMVB 是一种由 RM 视频格式升级延伸出的新视频格式, 它的先进之处在于 RMVB 视 频格式打破了原先 RM 格式那种平均压缩采样的方式,在保证平均压缩比的基础上合 理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样 可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样 在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量 和文件大小之间就达到了微妙的平衡。 (6)FLV FLV 就是随着 Flash MX 的推出发展而来的新的视频格式,其全称为 Flash video。 由于它形成的文件小、加载速度快,使得网络观看视频文件成为可能,它的出现有效 地解决了视频文件导入 Flash 后,使导出的 SWF 文件体积庞大,不能在网络上很好使 用等缺点。目前各在线视频网站均采用此视频格式。 3.常见的视频播放 常用的播放器和专用播放软件有 Windows Media Player、QuickTime Player、Real Player、PowerDVD、WinDVD、超级解霸等。 例 2.1 如何将网上下载的 FLV 格式的视频转成 MPG 格式。 分析:我们可以利用视频编辑软件把文件打开,然后再将文件另存为你所需要的格式, 也可以用视频格式转换工具来进行转换,那么,如何将网上下载的 FLV 格式的视频转成 MPG 格式。现在我们可以尝试利用超级转换秀来完成,步骤如下: (1)添加待转换的 FLV 视频文件 添加待转换的 FLV 视频文件, 如图 1.10 所示。

-9-

图 1.10 添加待转换的 FLV 视频文件 (2)选择 MPG 格式,设置 FLV 转 MPG 参数 添加 FLV 文件进入“设置待转换的视频参数”对话框后, 在“转换后的格式”下拉框选 择“MPG 格式”,然后在下方“MPG 质量标准”处选择 MPG 参数,如果需要刻录标准 VCD、 DVD,选择 VCD PAL 国际标准制式或 DVD PAL 国际标准制式,之后不需要进行其他设置,非 常简单。如果想要自定义,可以选择自定义 MPEG1/2,这种自定义 MPG 的方式可以用于制作 市面上的高压缩 DVD。 四、视频信息的采集方法 采集视频有多种方法,比较常用的有: 1.获取现成的视频文件 视频采集最便捷的方法是获取现成的视频文件。因为因特网上有不少视频文件可供下 载,市场上的素材光盘中也有大量的视频素材。 2.利用捉屏工具捕捉计算机上的动态画面 使用 HyperCam 等工具能够捕捉 Windows 窗口中连续活动的画面,一些计算机教学光盘 中的示范操作就是这样制作的。下面我们学习利用 HyperCam 捕捉屏幕动态画面的方法。

图 1.11 HyperCam 的初始界面 用 HyperCam 捕捉屏幕动态画面首先要进入 HyperCam 的初始界面,如图 1.11 所示,选 择 HyperCam 的“AVI 文件”卡片,单击“浏览”选择保存位置,输入 AVI 文件名称。然后 按下“启动录制”按钮或键盘的 F2 键,开始捕捉;再次 F2 按键时,捕捉停止。

- 10 -

图 1.12 HyperCam 的“AVI 文件”面板 3.利用软件截取 VCD 片段 用超级解霸等软件可以截取 VCD 上的影像,以下是利用超级解霸截取 VCD 片段的方法。 (1) 利用超级解霸播放需要截取的 VCD。 (2) 单击“循环”/“结束”按钮,如图 1.13 所示。 (3) 在需要截取片段的起止处分别单击“起点”按钮和“结束”按钮。 (4) 单击录制 MPG 按钮,开始截取影像。

图 1.13 利用超级解霸截取 VCD 4.利用视频卡等设备捕获录像或数字摄像。 对于人们日常所摄录的影像以及录像带上的影像必须采用视频采集卡等设备进行捕获。 捕捉视频还可以使用视频工具软件,常用的有 Ulead videoStudio(会声会影)和 Adobe Premiere 等。 交流 以小组为单位总结各种视频采集方法的优缺点和适用范围。 五、视频的加工与处理 例 2.2 我们录制了一个视频或者下载了一个视频,常常需要其中的一部分,这就需要 视频剪裁,如何进行视频剪裁呢? 分析:我们可以利用视频编辑软件,如:Premiere 软件,先导入我们录制的视频,然 后删除一些不需要的内容,最后保存,在 Premiere 软件中具体操作如下:

- 11 -

图 1.14 Premiere 主界面 启动 Premiere,随后显示装载工程设置画面。选择一种模式,如“PAL Video for Windows”,这是用于 Windows 的 PAL 制视频模式。单击“OK”按钮,显示如图 1.14 所示的 主界面。 (1) 选择“文件” 菜单中的 “导入” 命令, 导入指定的视频文件, 如“多媒体片头. avi”, 单击“打开”按钮。随后工程窗口的项目栏中列出该文件的首画面图标和文件名。 (2)用鼠标拖动视频文件的首画面图标至时间线窗口中的“视频 1A”栏内,该栏和 “音频 1”栏分别显示条形“多媒体片头.avi”。时间线顶部的数字刻度代表时间长度。

图 1.15 时间线 (3)单击监视器窗口底部的播放按钮,播放视频文件,确认需要剪裁的部分。

- 12 -

(4)单击时间线窗口顶部的“剃刀工具”,在“视频 1A”栏的视频条上分别单击需要 剪裁的开始位置和终了位置,该区域也在“音频 1”栏同步显示,如图 1.15 所示。 (5) 用鼠标右键单击“视频 1A”栏的剪裁区域, 显示菜单。 在菜单中选择“波动删除” 功能,该剪裁区域被删除。提示:可单击“监视器”的播放按钮,观察删除后的效果。 例 2.3 如何将两个视频连接起来? 分析:依次导入两个视频文件,观察效果后,比如,现在我们已经导入了一个视频,再 导入第 2 个视频,并拖到第 1 个视频后即可。具体步骤如下: (1)选择“文件”菜单中的“导入”命令,导入第 2 个视频文件“小动物.avi” (2)鼠标拖动“小动物.avi”文件图标至“视频 1A”栏“多媒体片头.avi”条形之 后。 (3)单击“监视器”的播放按钮,观察连接效果。 提示:如果要把多个视频素材连接在一起,可依次导人参与连接的视频文件,然后把各 个文件的图标依次拖曳到“视频 1A”栏中。 例 2.4 如何为视频配音? 分析:因导入的视频文件的视频和音频是捆绑在一起的,这就是所谓“声画同步”。通 过视频处理软件提供的编辑功能,可取消原有的同步关系,为视频配上新的声音,形成面目 一新的视频作品,也就是我们所说的视频配音,配音的具体步骤如下: (1)准备一段声音,时间长度与视频画面的长度相等,采用 WAV 格式,文件名假定为 “音乐解说.wav”。 提示:可利用音频处理软件编辑制作声音。 (2)选择“文件”菜单中的“导入”命令,导人“音乐解说.wav”音频文件。 (3) 取消声画同步。 在时间线窗口的底部, 单击 (切换同步模式)按钮, 该按钮变成 (解 除同步)形态。 提示:再次单击“切换同步模式”按钮,可恢复同步关系。 (4)单击选择工具,单击“音频 1”栏,按 Delete 键,将音频删除。 (5)将“音乐解说.wav”文件拖到“音频 1”栏内。 (6)单击“监视器”的播放按钮,观察效果。 例 2.5 我们如何要将做好的视频文件加入到 PPT 中 分析: 我们可以将视频文件作为对象插入到幻灯片中, 它可以随心所欲地选择实际需要 播放的视频片段, 然后再播放; 还可以将事先准备好的视频文件作为电影文件直接插入到幻 灯片中, 该方法是最简单、 最直观的一种方法, 使用这种方法将视频文件插入到幻灯片中后, PowerPoint 只提供简单的“暂停”和“继续播放”控制,而没有其他更多的操作按钮供选择。 两种方法具体操作步骤分别如下: 方法一:插入对象播放视频, 这种方法是: 1. 打开需要插入视频文件的幻灯片, 单击“插入/对象”命令, 打开“插入对象”对话 框。 2. 选中“新建”选项后,再在对应的“对象类型”设置栏处选中“视频剪辑”选项, 单击“确定”按钮,这时会自动在 PPT 中插入一个“Windows Media Player”播放器,但只 是一个空的播放器, 并没有包含任何视频。 需要将鼠标移动其上, 而后点右键, 选择“属性”。 在弹出的窗口中,选择点击“自定义”后的按钮,弹出属性对话窗口。 3. 根据窗口的提示,找到需要播放的影片,并根据需要设置其他项目确定即可。 在播放过程中,可以用鼠标对媒体播放器中的“播放”、“停止”、“暂停”和“调节 音量”等按钮进行控制。

- 13 -

上面介绍的是 Windows Media Player 视频,而且是 Office 2003 中的操作方式。另一 类常见的 RM 视频,也可以插入到 PPT 中,只是方法稍有不同。 方法二:直接播放视频, 这种播放方法是: 1. 运行 PowerPoint 程序,打开需要插入视频文件的幻灯片。 2. 将鼠标移动到菜单栏中,单击 “插入”菜单,执行“影片和声音”中的“文件中的 影片”命令。 3.在随后弹出的文件选择对话框中,将事先准备好的视频文件选(注:只能是 Windows Media Player 可播放的影片)中,并单击“添加”按钮,这样就能将视频文件插入到幻灯 片中了。 4.然后根据屏幕的提示,“自动”是指当 PPT 进入放映状态后,自动开始播放视频,而 “在单击时”是指需要单击一下鼠标才开始播放。 在播放过程中, 可以用鼠标调整视频文件窗口大小和移动窗口位置, 也可以用鼠标控制 视频播放。

第二章 算法与程序设计
当今社会,计算机已成为人们工作学习和日程生活不可或缺的工具。打字、画图、听音 乐、看电影、玩游戏??,计算机几乎渗透到了人们工作生活的所有领域,帮助人们完成各 种任务,实现种种愿望。计算机之所以有会有如此高超的本领,是借助了功能强大的各种不 同的计算机程序。 字处理程序帮助人们完成图文并茂的文稿编辑, 画图程序帮助人们制作出 精美的作品; 网络浏览程序帮助人们在因特网上纵横??。 本章我们将进入计算机程序设计 殿堂,共同感受用计算机解决问题的过程,在分析问题、确定算法、编程求解等实践的体验 中,领略计算机解决问题的精妙之道,汲取人类智慧的丰富养分,从而提高自己分析问题和 解决问题的能力。

第一节 程序与算法
我们日常工作、学习和生活中,要做某件事,如果事先没有计划,只是想一步做一步, 是达不到理想效果的。要很好地、高效率地完成某件事,必须事先有一个计划,第一步做什 么,下一步做什么,最后一步做什么。即先考虑好完成事件的所有步骤,然后再按预先制定 的计划或工作步骤一步步去完成。 一、程序 程序在人们生活中发挥着越来越重要的作用, 例如长春市某位同学的家住在工农广场附 近,想去长春净月潭公园,他不知道乘几路公交车去,只需在百度地图中,起点设置为“工 农广场” ,终点设置为“长春净月潭公园”,系统就会自动给出乘车建议,这里所说的系统就 是通过编制程序来完成的。
- 14 -

计算机程序是为实现特定目标或解决特定问题而用计算机语言编写的一系列语句或指 令。程序设计是设计、书写和调试程序的过程。 二、算法 做任何事情都有一定的步骤。例如,你想从延吉到长春长影世纪城去游玩,首先要去买 火车票,然后按时乘火车,到长春站后乘轻轨到长影世纪城,购买门票,进入长影世纪城大 门开始游玩;你要买电视机,先要到家电商场选好预购的电视机, 然后开票, 付款, 拿发票, 取货;要考大学,首先要填志愿表,交报名费,拿到准考证,按时参加考试,得到录取通知 书,到指定学校报到注册等。这些步骤都是按一定的顺序进行的,缺一不可。我们从事各种 工作和活动,都必须事先想好进行的步骤,然后按步骤一项项进行实施。实际上,在日常生 活中,由于已养成习惯,所以人们并没有意识到每件事都是需要事先设计出“行动步骤” 。 例如吃饭、上学、打球和做作业等,事实上都是按照一定的规律和步骤有序进行的,只是做 这些事情对人们太习以为常了,人们不必每次都重复考虑它而已。 例 1.1 写出在家中烧开水过程的算法步骤。 步骤 1:往壶内注水; 步骤 2:点火加热; 步骤 3:观察:如果水开,则停止烧火,否则继续烧火; 步骤 4:如果水未开,重复步骤 3 直至水开。 广义的说这种对于解决问题的方法和步骤的描述就是算法。 例如, 广播体操的每一节动 作的图解就是广播体操算法;一首歌曲的乐谱,也可以称为该歌曲的算法,因为它指定了演 奏该歌曲的每一个步骤, 按照它的规定就能演奏出预定的曲子。 举办奥运会的流程也是一个 算法。 在程序设计中, 算法是指解题方案的准确而完整的描述, 是一系列解决问题的清晰指令, 算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在 有限时间内获得所要求的输出。 三、算法描述 描述算法的方式是多种多样的,可以用文字(例如烧水) ;也可以用图示(例如广播体 操图解) ;还可以用别的一些符号系统(例如音乐的乐谱) 。 例 1.2 已知两个整数 a、b,计算这两个数相加的算法就可以用文字描述为: 步骤 1:输入整数 a、b; 步骤 2:计算 a+b 的和;
- 15 -

步骤 3:输出 a+b 的和; 为了能更清晰描述算法各步骤之间的流程,我们经常采用画流程图的方法来描述算法。 流程图是用一些框图来表示各种操作,直观形象,易于理解。美国国家标准化协会 ANSI 规 定了一些常用的流程图符号,已为世界各国程序工作者普遍采用,如表 2-1 所示。 表 2-1 常用流程图符号

用算法流程图来描述计算 a+b 的算法会更加直观。如图 2.1 所示。

开始

输入整数 a,b

根据S=a+b 计算出S值

输出S

结束

图 2.1 计算 a、b 两个数和的算法
- 16 -

画流程图时, 先画出代表程序中功能块的一些处理框和条件框, 并在其中写上解释性的 文字,然后用流程线把这些框连接在一起并标上箭头表示流程的顺序。 四、根据算法写出程序 为了使算法在计算机上实现,需要使用计算机程序设计语言来编程。 例 1.3 交换两个变量的值: 将变量 a 值为 5 和变量 b 值为 8 中的值互换, 编写程序完成 这一交换过程。 分析:交换两个变量的值,可以想象成交换两个杯子中的水,可以按以下步骤处理, 如图 2.2 所示。

步骤 2

A 水杯

步骤 1

步骤 3 B 水杯 图 2.2 交换两个杯子中的水 我们用计算机模拟这一过程也需找到一个空杯子 c,具体步骤可以表示为: 步骤 1:拿一个空杯子 c 作为过渡,先将 a 杯中的水倒入 c 杯中; 步骤 2:再将 b 杯中的水倒至 a 杯中; 步骤 3:最后将 c 杯中的水倒至 b 杯中。 算法描述: (1)初始化变量 a,b (2)将 a 的值赋值给 c (3)将 b 的值赋值给 a (4)将 c 的值赋值给 b 流程图如图 2.3 所示: 结束 开始交换 c=a a=b b=c 初始化 a=5 b=8 开始 C 空杯

图 2.3 交换两个变量的值流程图 用 VB 表示成如下形式: Private sub form_click()
- 17 -

Dim A,B,C As Integer A=5 B=8 C=A A=B B=C Print “A=”;A Print “B=”;B End Sub 实践与交流 1.已知长方形的长和宽,求长方形周长与面积。画出流程图、给出算法。 2.在电视台的某个娱乐节目中, 要求参与者快速猜出物品的价格。 主持人出示某件物品, 参与者每次估算出一个价格,主持人只能回答高了、低了或者正确。在某次节目中,主持人 出示了一台价值在 1000 元以内的随身听,并开始了竞猜。下面是主持人和参与者的一段对 话: 参与者:800 元! 主持人:高了! 参与者:400 元! 主持人:低了! 参与者:600 元! 主持人:低了! 这个参与者的算法合理吗?如果你是参与者,你将怎么猜?请写出你的算法。

拓展阅读 程序设计语言 人们使用计算机, 可以通过某种计算机语言与其交谈, 用计算机语言描述所要完成的工 作。 编写程序和执行程序是利用计算机解决问题的主要方法和手段。 程序设计语言是用来书 写计算机程序的语言。自从世界上第一台电子计算机 ENIAC 于 1946 年问世以来,伴随着计 算机硬件的不断更新换代, 计算机程序设计语言也有了很大的发展, 至今已有四代语言问世。 1.机器语言
- 18 -

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 它是 计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。 机器语言具有灵活、 直接执 行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。 手编程序时, 程序员得自己处理每条指令和每一数据的存储分配和输入输出, 还得记住编程 过程中每步所使用的工作单元处在何种状态。 这是一件十分繁琐的工作, 编写程序花费的时 间往往是实际运行时间的几十倍或几百倍。 而且编出的程序全是些 0 和 1 的指令代码, 直观 性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去 学习机器语言了。 2.汇编语言 为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相 近的英文缩写词、字母和数字等符号来取代指令代码(如用 ADD 表示运算符号“+”的机 器代码) ,于是就产生了汇编语言。汇编语言是一种用助记符表示的仍然面向机器的计算机 语言。使用起来还是比较繁琐费时,通用性也差。 3.高级语言 20 世纪 50 年代后期,在对低级语言的改进过程中,又研制出一种既接近于自然语言, 又接近数学语言的程序设计语言。使用这种语言编写程序快捷方便,便于修改和掌握,大大 提高了编程的效率,同时这种语言编写的程序不依赖具体的机器,通用性好,我们称之为高 级语言。用高级语言,不必考虑机器的结构和特点,可以集中精力考虑解决问题的算法,因 此,高级语言也称为算法语言。 高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的 C, C++,Pascal,VB,Delphi,Java,C#等等,这些语言的语法、命令格式都不相同。 4.面向对象的程序设计语言 面向对象程序设计方法成为今后软件发展的主流, 面向对象程序设计方法直接映射到人 们对问题的认识上, 提供了一种有目的地把系统分解为模块的策略, 并将设计决策与客观世 界的认识相匹配。面向对象的程序设计语言更加直观,更加人性化。

第二节 可视化编程基础
Visual Basic 程序设计语言是 Windows 环境下快速开发应用程序的可视化工具。它简单 易学,功能强大,用它开发图形用户接口的应用程序方便、快捷。

- 19 -

一、VB 集成开发环境 启动 VB 后,系统自动建立一个工程文件的集成开发环境界面,默认的工程文件名为工 程 1,如图 2.4 所示,我们不难发现 VB 集成开发环境界面除了具有标准 Windows 环境的标 题栏、菜单栏、工具栏外,还有一些特有的工具,如:工具箱、工程资源管理器窗口、属性 窗口、窗体设计器等。

窗体

工程资源管理器

工具箱

属性窗口

图 2.4 VB 集成开发环境界面 1.工具箱 工具箱里列出了 VB 提供的各种控件,使用这些控件可以设计制作各类图形界面元素。 2.工程资源管理器窗口 工程资源管理器窗口采用 Windows 资源管理器式的界面,可以列出当前工程中的所有 文件。 3.属性窗口 属性窗口用于设置所选对象的属性,如对象大小、标题、颜色等。 在设计应用程序界面时,属性窗口中显示的是相应对象的缺省属性值。 4.窗体 窗体是可用作定制应用程序界面的窗口,一个 VB 应用程序至少应包含一个窗体, 最

- 20 -

多可包含 255 个窗体。 启动 VB 创建新工程时, 会自动向新工程中添加一个名称为 VB “Form1” 的标准窗体,也称为初始窗体,它是用户设计程序界面的第一块“画板” 。 二、认识一个 VB 程序 我们先来看一个由 VB 编写的程序。 例 2.1 编写计算圆的面积程序, 此程序运行后, 显示如图 2.5 所示的计算圆的面积窗口, 在圆的半径文本框中输入一个半径数值,比如 3,单击计算按钮,在窗口中就显示出圆的面 积是:28.26。如图 2.6 所示。

图 2.5 计算圆面积窗口

图 2.6 在文本框中输入 3 后单击计算按钮

分析: 这个程序运行后发生了三个事情, 首先显示一个标题为计算圆的面积的窗口界面, 该界面包含两行文字、一个文本框和一个计算按钮,其次是在文本框中输入数值 3,最后是 单击计算按钮显示圆的面积是 28.26。通过以上分析,我们要编写此程序,必须要完成三个 任务,即: 1.设计运行窗口界面 2.编写含有数据输入、输出以及计算圆面积的程序语句 3.要单击计算按钮才能完成计算和显示计算结果。 下面就来介绍怎样完成这三项任务。 任务 1.设计运行窗口界面 首先启动 VB,创建一个工程。在 VB 中窗体是设计窗口界面的平台,在设计窗口界面 时只需将工具箱中需要的控件对象建立在窗体上,在窗体 Form1 中放置一个文本框 (TextBox)控件、三个标签(Lable)控件和一个按钮(CommandButton)控件,并摆放好 合适的位置和大小,将窗体设置到合适的大小,如图 2.7 所示。

- 21 -

图 2.7 在窗体 Form1 中添加控件 控件添加完之后,需要设置窗体和添加控件的属性,将窗体 Form1 中的标题(Caption) 属性值改为“计算圆的面积” ,文本框控件 Text1 中的文本(Text)属性值改为空,标签控件 Lable1 中的标题 (Caption) 属性值改为 “圆的半径是:, ” 标签控件 Lable2 中的标题 (Caption) 属性值改为“圆的面积是:,标签控件 Lable3 中的标题(Caption)属性值改为空,命令按 ” 钮控件 Command1 中的标题(Caption)属性值改为“计算” ,如下表 2-2 所示。 表 2-2 对象(名称) 窗体(Form1) 文本框(Text1) 标签(Lable1) 标签(Lable2) 标签(Lable3) 对象属性设置 属性 Caption Text Caption Caption Caption 计算 圆的半径是: 圆的面积是: 属性值 计算圆的面积

命令按钮 (Command1) Caption 设计好的窗体如图 2.8 所示。

图 2.8 设计好的窗体 任务 2.编写含有数据输入、输出以及计算圆面积的程序语句 该程序共四行,每行是一个语句,每个语句都有各自的功能书写的语法规则,我们必须 按语句的语法规则要求输入语句,否则在执行时会出现编译错误。计算机执行时,一般是按 程序语句的顺序从上往下执行,另外每行语句后面可以有注释,也可以不加注释,注释是帮

- 22 -

助阅读程序用的,程序执行时它并不起作用。注释是以单引号 ? 开头。 Dim r, s As Single r = Val(Text1.Text) s = 3.14 * r * r Label3.Caption = s ‘定义 r, s r, s 为单精度实型变量 ‘将文本框中输入的数转化为数值型后赋给变量 r, ‘将 3.14 * r * r 这个表达式的值(圆的面积)赋给变量 s ?将变量 s 赋给标签控件 Label3 的标题属性

任务 3.要单击计算按钮才能完成计算和显示计算结果。 单击按钮执行下一个操作这在 VB 中是一个触发事件,VB 提供了许多类似这样的触发 事件,如按键触发、双击触发等,我们在进行程序设计时,需要用到类似的触发事件时,只 须调用即可,单击触发事件是 Click()。 至此三个任务都已完成,最后我们就要将编好的代码程序输入到 VB 中,输入的方法是 双击计算按钮,打开代码编辑窗口,输入后的程序如图 2.9 所示。

图 2.9 输入代码程序 三、可视化编程 用传统的程序设计语言编写程序, 程序开发者需要花费大量时间和精力在用户界面的设 计上,在设计过程中往往看不到实际显示效果,只能在运行程序时才能观察到,程序开发效 率较低,而 VB 提供了“所见即所得”的可视化编程环境,通过前面的实例,我们已经体会 到利用 VB 进行窗口界面设计的方便和快捷。 VB 可视化编程涉及到一些基本概念,包括对象、属性、方法、事件、事件过程和事件 驱动等。 1.对象 现实世界是对象的集合体。什么是对象呢?现实生活中的任何物体都可以被称为对象, 例如人、椅子、电脑、蝴蝶等等,他们都是现实生活世界中的对象。 与现实世界一样,在可视化编程环境中也有各种各样的对象。在窗口环境中,窗体 (Form)和各类控件都是现成的对象,都是程序实现中常用的功能模块,程序开发者只要

- 23 -

直接使用这些对象,并进行有效组合就可以轻松完成程序开发工作。 2.控件 控件是控制应用程序的图形界面元素。是 VB 可视化编程的基本操作对象。 VB 提供了一个标准工具箱,如图 2.10 所示,在设计窗口时,我们可以根据窗口界面的 需求在工具箱中去找需要的控件,并将控件添加到窗体上。

图 2.10 工具箱 利用工具箱将控件添加到窗体上的方法是: 单击工具箱中的控件图标, 在窗体上拖动鼠标画出控件, 控件的大小和位置可以随意调 整。调整控件的位置可以将鼠标移至控件上,按下鼠标进行拖拽,移动到合适位置松开鼠标 即可。调整控件大小,可以先单击控件选定控件,当控件被选定时,控件边框会出现 8 个蓝 色的小方块如图 2.11 所示,鼠标移动至小方块上,鼠标图标就会变成双向剪头,这时就可 以按下鼠标进行拖拽,调整到合适大小,松开鼠标即可。

- 24 -

图 2.11 控件的 8 个蓝色小方块 3.属性 在 VB 中将对象的特征称为属性, 每个对象都有自己的属性, 不同的对象有不同的属性, 属性值决定了对象的外观和行为。比如按钮的大小、颜色,标签的显示文字等,改变属性值 就可以改变对象的特征。我们可以把属性看成是对象的性质,把事件看成是对象的响应,把 方法看作是对象的动作。

图 2.12 设置窗体和命令按钮的标题属性 对象属性的设置一般有两种方法: (1)利用对象属性窗口设置属性 如果在界面设计时设置对象的属性, 需要使用属性窗口。 这时只要在属性窗口选中要修 改的属性,然后在右列中键入新的值即可设置对象的属性。如图 2.12 所示是将窗体 form1 和命令按钮 command1 的标题属性分别设置为“计算圆的面积”和“计算” 。 (2)在程序中设置属性 如果要在程序运行中动态地更改对象的属性,可以使用 VB 的赋值语句,在代码窗口中 通过编程设置,其格式为: 对象名.属性名 = 属性值
- 25 -

其中“对象名.属性名”是 VB 中引用对象属性的方法。 如:Form1.Caption=”计算圆的面积” Command1.Caption=”计算” 对象的属性除了可以通过程序代码进行设置之外, 还可以通过代码进行获取。 读取对象 的属性就是在程序中通过相应的语句获取对象的状态。语法格式为: 变量=对象.属性值 例如: S = Text1.Text L = Label1.Caption 4.事件 事件是 VB 预先定义的、对象能够识别的动作。每个控件都可以对一个或多个事件进行 识别和响应,如鼠标单击事件(Click) 、鼠标双击事件(DblClick)等。在多数情况下,事 件是通过用户的交互操作产生的。 5.事件过程 事件过程是用来完成事件发生后所要执行的操作。当一个对象察觉到某一事件发生时 (如 Click 等) ,就会对事件产生响应,即执行一段程序代码,所执行的这段程序代码就称 为事件过程。 事件过程通常是程序员为响应对象事件所编写的一段程序代码, 事件过程由对 象名、下划线和事件名组成,如命令按钮 Command1 的鼠标单击事件过程为: Private Sub Command1_Click() ?? End Sub 通常,VB 的控件都可以识别一个或一个以上的事件,所以对一个对象至少能够建立和 使用一个事件过程,来对用户或系统的事件作出相应的反应。 6.事件驱动 VB 是事件驱动程序设计,程序开始执行时,先等待某个事件的发生,然后再去执行处 理此事件的事件过程。 事件过程要经过事件触发才会被执行, 这种动作模式就称为事件驱动 程序设计,也就是说程序的执行流程是由事件控制的。 四、可视化编程的方法 编 VB 程序首先要创建一个良好的可视化界面。在 Windows 操作系统下,窗体几乎是 每个程序的必要部分。而每个程序界面是由窗体(Form)和一些必要的控件元素(Control)
- 26 -

构成的。 VB 的对象被抽象为窗体和控件,因而大大简化了程序设计,使用 VB 创建应用程序, 就是为各个对象编写事件过程。用 VB 编程的基本步骤如图 2.13 所示:

图 2.13 VB 编程的基本步骤

例 2.2 设计一个程序, 执行时窗体中标签显示 “请单击下面的按钮, 看看有什么变化!, ” 单击“单击我”按钮,标签显示变为“Hello,World! ”如图 2.14 所示。

图 2.14 hello,world! 1.设计窗口界面 (1)启动 VB,在 VB 窗口中出现如图 2.15 所示的新建工程对话框,在对话框中选择 “标准 EXE”工程项。

- 27 -

图 2.15 新建工程对话框 单击“打开”启动一个新工程,参见图 2.16。可以根据需要,调整窗体的大小。

图 2.16 启动一个新的工程 (2)添加控件对象 单击窗口左侧的工具箱中的 Lable(标签)控件,当该控件变成凹状时 ,将鼠标指针

移到 Form1 窗体中, 按下鼠标并拖拽到合适大小, 画出一个方框, 松开鼠标左键, 一个 Lable 对象出现在窗体中, 另一种方法是双击工具箱中的 Lable 标签) ( 控件, 一个固定大小的 Lable 对象就会出现在窗体上。如图 2.17 所示。
- 28 -

图 2.17 新建标签控件 用同样的方法,单击工具箱中的 CommandButton(按钮)控件 适位置拖出一个按钮对象。如图 2.18 所示。 ,在 Form1 窗体的合

图 2.18 新建命令按钮控件 (3)设置对象属性 单击窗体的标题栏选中窗体,这时属性(property)窗口中显示的是该窗体的属性,将 Caption 属性设置为“窗体与控件” ;单击窗体 Form1 上的标签 Lable1,在属性窗口中设置 Label1 的 Caption 属性为“请单击下面的按钮,看看有什么变化!;单击窗体 Form1 上的命 ” 令按钮 Command1,在属性窗口中设置 Command1 的 Caption 属性为“单击我” ,如图 2.19 所示。

图 2.19 设置对象属性
- 29 -

2.编写程序代码 在这个任务中, 我们只需要对按钮控件编程, 设计好程序界面后, 双击按钮 Command1, 进入程序代码编辑窗口,可以看到按钮 Command1 的 Click 过程,如图 2.20 所示。 在光标闪烁出输入代码: Label1.Caption=”Hello,World!” 如图 2.21 所示。

图 2.20 进入编辑程序代码状态图 3.调试运行程序

图 2.21 编辑程序代码

按键盘上的 F5 键或者执行 VB“运行”菜单中的“启动”命令,进入运行模式,程序 的运行结果如图 2.14 所示。如果要回到设计模式,就单击工具栏上的“结束”按钮。 4.VB 的保存与关闭 VB 的保存与关闭和我们以前所学的应用程序的操作方式基本一致,值得注意的是,在 VB 中窗体与工程将分别被保存,其中窗体文件的扩展名为.frm,工程文件的文件的扩展名 为.Vbp。 在编写程序的过程中, 要养成保存程序的习惯, 以免在编写或调试程序的过程中发生意 外或错误,导致程序丢失。

第三节 VB 语言基础知识

数据是程序必要的组成部分,在计算机中, 把描述客观事物的数值、 文字、 声音、图形、 图像以及所有能输入到计算机并被计算机程序加工处理的符号集合都可以称为数据。 数据既 是计算机程序处理的对象,也是运算产生的结果。为了方便使用这些数据,VB 根据数据描 述信息的含义,将数据分为不同数据类型。 一、基本数据类型 VB 程序设计语言中的基本数据类型有数值型数据、日期型、字节型、货币型、逻辑型、 字符型。表 2-3 中列出了 VB 常用的基本数据类型。
- 30 -

表 2-3 数据类型 整形 长整型 数 单精度 Single 实型 值 双精度 Double 实型 型 货币型 字节型 日期型 字符型 逻辑型 Currency Byte Data(time) String Boolean 说明符 Integer Long

常用的基本数据类型 取值范围 -32768~32767 -2147483648~2147483647 负数:-3.402823E38~-1.401298E-45 正数:1.401298E-45~3.402823E38 负数:-1.79769313486232E308~-4.940656458414E-324 正数:4.940656458414E-324~1.79769313486232E308 -922337203685477.5808~922337203685477.5807 0~255 01.01.100~12.31.999(00:00:00~23:59:59) 0~65535 个字符 True 与 False

在上面的例子中我们就用到了单精度实型数。 二、保留字与标识符 1.保留字 保留字又称关键字,是 VB 程序设计语言预先定义好的一些专用符号,主要包括:命令 名、内部函数名、数据类型名、运算符以及 VB 系统提供的标准过程等。 2.标识符 标识符是用户编程时使用的名字,VB 语言中的标识符是以英文字母开头,后面可以是 数字、英文大小写字母、下划线_或美圆符号$,总长度不超过 255 个字符,保留字不能作为 表示符。 三、VB 表达式 1.常量 在程序执行的过程中保持不变的数据称为常量。 VB 程序设计语言中, 在 常量分为两种, 文字常量和符号常量。 文字常量直接出现在代码中, 也称为字面常量或直接常量, 文字常量的表示形式决定它 的类型和值。例如:字符型:"I am a student",放在一对英文引号当中;数值型:3.14159、 56、8.432E-15;逻辑型:True 、False。

- 31 -

符号常量就是用标识符来表示一个常量,例如:我们把 3.14 定义为 PI,在程序代码中, 我们就可以在使用圆周率的地方使用 PI。使用符号常量的好处在于,当我们要修改该常量 时, 只需要修改定义该常量的一个语句即可, 而且使用常量可以提高程序的可读性和可维护 性。常量说明语句的格式是: Const 常量名 As 类型 = 表达式 2.变量 变量是指在运行时,其值可以被改变的量。不同于常量,变量是可以多次赋值的,因此 变量常勇于保存程序中的临时数据,变量就是命名的内存单元位置。 使用变量前,应首先定义所用到的变量,包括变量名和类型,使系统分配相应的内存空 间,并确定该空间可存储的数据类型。所有变量都具有名字和类型。变量的命名规则与标示 符相同,变量的名称最好与他所表示的内容意义相关,以便于程序的阅读和理解。使用变量 之前想说明变量名和类型,以便系统为其分配存储单元。 变量说明语句的格式是: 说明符 变量名 [As 类型] 说明符是说明语句的关键字,它可以是 Dim,Private,Public,Static。 3.运算符 计算机对数据的处理称为运算。 运算的基本构成是运算量和运算符。 运算符是指能表征 量与量之间运算关系的符号。运算量指能够参加运算的数据量,包括常量、变量和函数。 VB 中的运算符按不同的运算功能分为算术算符、比较算符、逻辑运算符和连接算符等,见 表 2-4。 表 2-4
算术运算符 名称 指数运算 乘、除 加、减 整除 模 符号 ^ *、/ +、\ mod 比较运算符 名称 相等 不等 小于 大于 小于或等于 大于或等于 符号 = <> < > <= >=

运算符
逻辑运算符 名称 非 与 或 符号 Not And Or

连接运算符
名称 字符串连接 符号 &或+

- 32 -

4.函数 是一段完成特定任务的程序, 使用时只需要提供必须的操作数, 函数就自动执行这段程 序,并返回计算结果。函数用一个函数名来表示,函数的操作数称为参数。函数的使用可以 减少重复编写程序的工作量, 便于程序调试和阅读。 VB 中, 在 系统提供了大量的内部函数, 在编程中我们可以直接使用这些函数。这里我们列出了常用的内部函数,见表 2-5 到表 2-8。 表 2-5
函数名称 Abs(x) Sqr(x) Int(x) Rnd 计算 x 的绝对值 计算 x 的算术平方根,x 必须非负 计算小于或等于 x 的最大整数 随机产生 0~1 的单精度值

常用数学函数
功 能

表 2-6
函数名称 Len(s) Left(s,n) Right(s,n) Mid(s,n,m ) UCase(s) LCase(s)

常用字符串函数
功 返回字符串 s 的长度,即字符个数 返回字符串 s 从左边开始的前 n 个字符,如 n 大于字符串长度则全取 返回字符串 s 从右边开始的前 n 个字符,如 n 大于字符串长度则全取 返回字符串 s 从左边第 n 个位置开始的 m 个字符 将字符串 s 中所有小写字母转换为大写 将字符串 s 中所有大写字母转换为小写 能

表 2-7
函数名称 Date Time Now Year(c) Month(c)

日期和时间函数
功 返回系统日期 返回系统时间 返回系统日期和时间 返回指定日期的年份 返回指定日期的月份 能

- 33 -

Day(c) Weekday(c) Hour(c) Minute(c)

返回指定日期的日子 返回指定日期的星期几 返回指定时间的时数 返回指定时间的分数

表 2-8
函数名称 Str(x) Val(x) Asc(x) Chr(x) CBool(x) CDate(x ) CSng(x) CDbl(x)

常用数据类型转换函数
功 将数值转换为字符串 将字符串中的数字转换成数值 求字符 ASCII 值 将数值(ASCII 码)转换为字符 将数字字符串或数值转换成布尔型 将有效的日期字符串转换成日期 将数值转换成单精度型 将数值转换成双精度型 能

5.表达式 表达式是由运算符、圆括号将常量、变量、函数按表达式的书写规则连接起来的具有运 算结果的式子。根据表达式中运算符的类别可以将表达式分为算术表达式、字符串表达式、 日期表达式、 关系表达式和逻辑表达式, 表达式运算结果的数据类型是由参与运算的数据类 型和运算符共同决定。 表达式的书写规则: 每个符号占 1 格,不能出现上标和下标。 不能按常规习惯省略的乘号*,如:2x 要写成 2*x。 只能使用小括号() ,且必须配对。 不能出现 VB 标示符以外的字符,如π 。 在一个表达式中进行多个运算时, 每一部分都会按预先确定的顺序进行计算求解, 这个 顺序被称为运算符优先级。 运算符的优先级和数学表达式的运算符优先级基本是一样的, VB 括号可以改变优先级的顺序,强制优先处理表达式的某部分。
- 34 -

练习题 1.下列数据属于字符串常量的是( ) 。 A.abcd B.“school” C.?happy? D.?jl-001?

2.在 VB 语言中,下列变量合法的是( ) 。 A.12a B.abc C.abc=8
拓展阅读 ASCII 编码 ASCII 编码是由美国国家标准委员会制定的一种包括数字、字母、通用符号和控制符号在内的字符编 码集,全称叫美国国家信息交换标准代码(American Standard Code for Information Interchange) ASCII 码 。 是一种 7 位二进制编码,能表示 27=128 种国际上最通用的西文字符,是目前微型计算机中使用最普遍的 字符编码集。键盘上的每一个按键都对应一个 ASCII 编码。其中: 数字“0”~“ 9”的 ASCII 编码对应的十进制数为 48~57; 大写字母 “A”~“Z”的 ASCII 编码对应的十进制数为 65~90; 小写字母“a”~ “z”的 ASCII 编码对应的十进制数为 97~122。

D.ab@

第四节 三种基本程序结构
程序结构是指程序中命令或语句执行的流程结构。 Visual Basic 6.0 程序设计语言的控制 结构与其他高级语言的程序控制结构一样, 采用结构化的程序设计方法。 使用结构化程序设 计方法设计的程序结构清晰,易读性强,也易于查错和排错。结构化程序设计方法有三种基 本控制结构:顺序结构、选择结构和循环结构。 一、顺序结构 顺序结构是指程序中的语句按出现的先后顺序依次执行,中间没有分支、循环和转移。 顺序结构是一种线形结构,也是程序设计中最简单、最常用的基本结构,所有程序都包含这 种结构。 一些简单的程序可以只用顺序结构来编写, 如前面几节中介绍的示例程序都是仅采 用了顺序结构。顺序结构程序执行的流程如图 2.22 所示。

图 2.22 顺序结构程序执行流程图 对于一个只包含顺序结构的程序来说,信息的一般流程为:输入-加工处理-输出。因 此,在顺序结构中的典型语句主要是赋值语句、输入输出语句等。在 VB 中,信息的输入可

- 35 -

以通过文本框等控件实现,输出可以通过标签、文本框等控件或 Print 方法实现。此外,VB 提供了输入对话框和输出(消息)对话框,可以方便地完成输入和输出操作 1.注释 在程序中使用注释是一个很好的习惯。 程序员可以使用注释来说明自己编写某段代码或 声明某个变量的目的,以后只要读到这些注释就会想起当时的思路,既方便了开发者自己, 也方便以后要阅读这些代码的其他程序员。 语法格式: ' 注释内容 注释内容在程序中不被执行, 注释一般写在被注释语句的后面 (参见第二节计算圆的面 积实例) ,也可单独占据一行书写。 2.赋值语句 赋值语句是程序设计中最常用、最基本的语句,用于为变量或对象的属性赋值,格式如 下: 格式 1: 格式 2: [对象名.]属性名 = 表达式 变量名 = 表达式

在格式 2 中,若省略对象名,则默认对象为当前窗体。 在赋值语句中,表达式只能出现在赋值符号(=)的右侧。表达式的数据类型应当与变 量或属性的数据类型一致。 赋值语句的作用是将“=”右边表达式的值赋给“=”左边的变量或者对象属性。如 a=3 的作用是执行一次赋值操作,把常量 3 赋给变量 a。 3.输出数据的方法 Print 方法用于在窗体、图片框或打印机等对象上输出数据,格式如下: [对象名.]Print [输出项列表][{;|,}] 说明: 对象名:可以是窗体、图片框或打印机等对象,若省略对象名,则在当前窗体上输出数 据。 输出项列表:要输出的内容(表达式) 。若有多个输出项,可用逗号或分号隔开。 分号(;:各输出项连续输出,中间无空格。 ) 逗号(,:各输出项按分区格式输出,即将一个输出行以 14 个字符的宽度为单位分成 ) 若干区段,每个区段输出一个输出项。 如果调用 Print 方法的语句以分号或逗号结束, 则下一次执行 Print 方法时将在同一行输 出;否则,每执行一次 Print 方法即自动换行。 如果一个 print 中没有任何输出项,则表示输出一个空行,也就是下一个 print 输出项要 换行输出。 Print 方法具有计算和输出双重功能,对于表达式,它先计算后输出。输出项如果是用
- 36 -

引号引起来的字符串,则原样输出用引号引起来所有字符。 4.与 Print 方法有关的两个函数 VB 提供了 Spc 和 Tab 两个函数,用于配合 Print 方法对输出进行定位。 (1)Spc 函数 格式:Spc(n) Spc 函数用于插入 n 个空格。例如: Print "你好!"; Spc(8); "Hello!" 输出结果: 你好! (2)Tab 函数 格式:Tab(n) Tab 函数用于将输出位置定位于第 n 列。若省略(n) ,则将插入点移动到下一个输出区 的起点(此时与逗号作用相似) 。如果 n 小于当前显示位置,则将输出位置移到下一行第 n 列。例如,若在窗体的 Form_Click 事件中加入以下代码,则:单击窗体后输出如图 2.23 所 示的结果。 Print "1234567890" Print "Hello"; Tab(10); "China" Print "Hello"; Tab; "China" Print "Hello"; Tab(4); "China " Hello!

图 2.23 Tab 函数输出实例 例 4.1 给出三角形的三边长 a=3.67、 b=5.43、c=6.21,求三角形的面积,并将面积值 输出到窗体上。 分析:解此题的关键是要找到求三角形面积的公式。从数学知识我们知道,已知三角形 的三边 a、b、c,求三角形的面积公式为: area= s(s ? a)(s ? b)(s ? c) 其中:area 为三角形的面积,s 为(a+b+c)/2。 程序如下: Private Sub Form_Click() Dim a,b,c,s, area as single a=3.67 b=5.43 c=6.21 ? 单击窗体事件响应过程 ? ? ? ? 定义 a,b,c,s, area 为单精度实型变量 将 3.67 赋给变量 a 将 5.43 赋给变量 b 将 6.21 赋给变量 c

- 37 -

s=(a+b+c)/2 area=sqr(s*(s-a)*(s-b)*(s-c)) 给 area,其中 sqr 为平方根函数。 print “area=”;area End Sub

? 将(a+b+c)/2 表达式的值赋给 s ? 将 sqr(s*(s-a)*(s-b)*(s-c)) 表达式的值赋 ? 在窗体上输出 area 的值 ? 结束过程

上述程序输入和运行的操作步骤参见例 2.1。 3.输入数据的函数 InputBox()是提供从键盘输入数据的函数。InputBox()函数执行时将产生一个对话框,用 户可以在对话框中输入数据,该函数的返回值就是用户输入的字符串。 InputBox 函数语法格式: InputBox(提示信息,标题,默认值,位置) 其中,提示信息是指显示在对话框中的提示语言,不能省略,标题是指弹出对话框中的 标题,默认值是指默认的输入数据值,位置是指弹出的对话框在屏幕左上角的位置。 例 4.2 加、减、乘、除运算 设计一个程序,执行时在窗体中的两个文本框(TextBox)控件中分别输入两个整数作 操作数,单击计算按钮(CommandButton)控件,在窗体中显示两个数的加、减、乘、除的 结果,如图 2.24 所示:

图 2.24 加、减、乘、除运算 分析:首先考虑设计窗口界面,本程序界面有两个文本框和一个命令按钮,通过工具箱 向窗体添加控件和设置对象属性就可以完成界面设计。 接着就要编写程序代码, 本题程序代 码并不复杂,主要是用赋值语句完成加、减、乘、除运算,这里的关键是我们通过文本框输 入的文本数据是字符型数据,因此在运算之前应将它用 Val 函数转换成数值型数据。程序设 计步骤如下: (1)开始一个标准 EXE 工程,将窗体设置到合适的大小,在窗体 Form1 中放置两个 文本框(TextBox)控件和一个按钮(CommandButton)控件,接着设置对象属性,如表 2-9

- 38 -

所示。

表 2-9 设置对象属性 对象(名称) 窗体(Form1) 文本框(Text1) 文本框(Text2) 命令按钮(Command1) 设计好的窗口如图 2.25 所示。 Caption Text Text Caption 计算 属性 属性值 加、减、乘、除运算

图 2.25 数据输入窗口 (2)编写程序代码 双击按钮 Command1,打开命令按钮程序代码编辑窗口,编写 Command1_Click 过程代 码如下: Dim a, b As Integer Dim c As Single a = val(Text1.Text) b = val(Text2.Text) c=a+b ?定义两个整型变量 a 和 b 作为操作数 ?定义一个单精度实型变量 c 保存计算结果 ?获取文本框 TextBox1 的值并把它转换成整型数赋值给变量 a ?获取文本框 TextBox2 的值并把它转换成整型数赋值给变量 b ?计算 a 加上 b 的和,并把结果赋值给 c ?输出计算表达式及其结果

Print Text1.Text; " + "; Text2.Text; " = "; c c=a-b

?计算 a 减去 b 的差,并把结果赋值给 c ?输出计算表达式及其结果

Print Text1.Text; " - "; Text2.Text; " = "; c c=a*b

?计算 a 乘以 b 的积,并把结果赋值给 c ?输出计算表达式及其结果

Print Text1.Text; " * "; Text2.Text; " = "; c

- 39 -

c=a/b

?计算 a 除以 b 的商,并把结果赋值给 c ?输出计算表达式及其结果

Print Text1.Text; " / "; Text2.Text; " = "; c (3)运行程序

按键盘上的 F5 键或者执行 “运行”菜单中的“启动”命令,程序运行后,在两个文 本框中分别输入两个操作数,单击“计算”按钮后就能显示运算结果。 练习题 1.编写程序,在两个文本框中输入矩形的长和宽,计算矩形的周长和面积,用 print 方法输出。 2. 编写程序, 在三个文本框中输入三个数, 计算三个数的和与乘积, print 方法输出。 用 3.我国是一个严重缺水的国家,珍惜水资源,杜绝水浪费,这是我们每个公民的应尽 之责,据测试,拧不紧的水龙头每分钟会滴下 2 滴水,每滴水约 0.05 毫升,小明同学在洗 手时,没有把水龙头拧紧,当小明离开 x 小时后水龙头滴了 y 毫升水,编写程序,在两个文 本框中输入 x 和 y 的值,用 Print 方法输出小明浪费了多少水。 二、选择结构 仅用顺序结构编写的程序一般比较简单, 只能完成一些简单的任务, 能够处理的问题类 型也很有限。 在实际应用中, 有很多问题需要判断是否满足某种条件, 从而进行不同的处理。 选择结构可根据条件来选择控制程序的执行顺序,增加应用程序的灵活性。 选择结构的特点是:根据所给定的条件的真假,选择执行不同的语句。 1. If?Then 结构 If?Then 结构的流程如图 2.26 所示。该结构表示“如果条件满足就执行 Then 后边的语 句,否则不执行任何操作,程序继续向下执行” 。语法格式如下: (1)单行形式 If 条件 Then 语句 (2)块(多行)形式 If 条件 Then 语句块 End If

图 2.26 If...Then 结构程序执行流程图 一般情况下, “条件”是运算结果为逻辑值的表达式,若表达式的值为 True,则条件成
- 40 -

立,若表达式的值为 False,则条件不成立。 需要注意的是,If?Then 的单行格式不用 End If 语句,整个语句必须写在一行上。如果 条件为真时需要执行多条语句,所有语句必须在同一行上并且以冒号分开,如: If 条件 Then 语句 1:语句 2:语句 3 为了使程序便于维护,提高其可读性,建议尽量不要采用这种单行多句的形式。如果需 要在 Then 关键字后面执行多条语句,应使用块形式的 If?Then?End If 结构。 例 4.3 编写程序,在文本框中输入一个整数,判断该数是不是偶数。 分析:判断某整数的奇偶性,可以检查该数能否被 2 整除。若某数能被 2 整除,则该数 为偶数。 设计步骤如下: (1)建立用户界面,设置对象属性。各对象的属性如表 2-10 所示。 表 2-10 设置对象属性
对象(名称) 属性 Caption 窗体(Form1) 标签(Label1) 标签(Label2) Caption Caption 属性值 判断偶数和奇 数 请输入一个整 数 对象(名称) 文本框(Text1) 命令按钮(Command1) 命令按钮(Command2) 属性 Text Caption Caption 属性值

判断 清除

图 2.27 判断偶数 (2)编写程序代码。 “判断”命令按钮的单击事件程序代码如下: Private Sub Command1_Click() Dim x As Integer x = Val(Text1.Text) If x Mod 2 = 0 Then Label2.Caption = x & " 是偶数。" End If End Sub “清除”命令按钮单击事件的程序代码如下: Private Sub Command2_Click() Text1.Text = "" Label2.Caption = "" End Sub 2. If?Then?Else 结构 上述 If...Then 结构实际上只提供了一种选择, 即条件满足时执行指定的廒, 条件不满 足时执行任何操作。 如果需要在条件不满足时执行另外一些语句, 可以使用 If?Then?Else

- 41 -

结构。该结构的流程如图 2.28 所示,表示如果条件满足就执行 Then 后边的语句,否则就执 行 Else 后的语句。语法格式如下: (1)单行形式 If 条件 Then 语句 1 Else 语句 2 (2)块形式 If Else 语句块 2 End If 条件 Then 语句块 1

图 2.28 If?Then?Else 结构的流程 当程序运行到 If 语句时,首先测试条件,如果条件为 True,则执行 Then 之后的语句 块 1,然后越过语句块 2,执行后续语句;如果条件为 False,则执行 Else 子句的语句块 2, 然后执行后续的语句。下面通过实例说明该结构的应用。 例 4.4 改进例 4.3,使程序能判断整数的奇偶性。 分析:判断某数的奇偶性,就是检查该数能否被 2 整除,若能被 2 整除,该数为偶数,否则 为奇数。 程序界面设计同例 4.3,只需将“判断”按钮单击事件的代码作如下改动。 Private Sub Command1_Click() Dim x As Integer x = Val(Text1.Text) If (x Mod 2) = 0 Then Label2.Caption = x & " 是偶数" Else '增加 Else 子句, 显示奇数 Label2.Caption = x & " 是奇数" End If End Sub 运行结果如图 2.29 所示。

图 2.29 判断偶数和奇数 例 4.5 运费计算。
- 42 -

某物流公司对货物按重量及运输距离收费,每公斤货物重量运输距离在小于等于 200 公里,收费 15 元钱;运输距离大于 200 公里,收费 20 元。请设计一个程序,只需输入货物 重量及运输距离,单击“计算”按钮控件,就可以自动计算出运费,如图 2.30 所示。

图 2.30 运费计算 分析:可以利用文本框控件获取货物重量及运输距离,根据运输距离,用 if 语句判断 费率,然后根据收费规则:运费=货物重量*费率,计算出运费。 设计步骤如下: 建立用户界面,设置对象属性。各对象的属性如表 2-11 所示。 表 2-11 设置对象属性
对象(名称) 属性 窗体(Form1) Caption 文 本 框 (Text1) 文 本 框 (Text2) 标签(Label1) Text Text Caption 请输入货物 重量: 属性值 运费计算 对象(名称) 标签(Label2) 标签(Label3) 标签(Label4) 命 令 按 (Command1) 钮 属性 Caption Caption Caption Caption 计算 属性值 请输入运输 距离: 运费:

设计好的窗体如图 2.30 所示 编写“计算”按钮的单击事件代码如下: Dim w, l, p As Single w = Val(Text1.Text) l = Val(Text2.Text) If l >= 200 Then p = w * 15 Else p = w * 20 End If Label4.Caption = p 例 4.6 编写程序,判断闰年。
- 43 -

我们居住的地球总是绕着太阳旋转的。 地球绕太阳转一圈需要 365 天 5 时 48 分 46 秒, 也就是 365.2422 天。为了方便,一年定为 365 天,叫做平年;这样每过四年差不多就要多 出一天来,把这一天加在 2 月里,这一年就有 366 天,叫做闰年。 按照每四年一个闰年计算,平均每年就要多算出 0.0078 天,这样经过四百年就会多算 出大约 3 天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必 须是 400 的倍数的才是闰年,不是 400 的倍数的就是平年。 也就是我们通常所说的: 四年一闰,百年不闰,四百年再闰。 所以 2000 年是闰年,2100 年不是闰年。 现在输入一个年份,判断该年是否是闰年。

图 2.31 计算闰年程序界面及运行结果 分析:要判断一年是否是闰年,只要判断它是否符合闰年的标准即可,所以解决这一问 题的关键是如何定义闰年的标准, 我们可以用一个组合的逻辑表达式进行判断, 然后输出判 断结果。 根据上述的分析,我们将解决问题的算法描述如下: (1)定义一个整型变量 y; (2)获取文本框的输入,作为要判断的年份,将值保存在变量 y 中; (3)根据闰年标准,写出条件表达式,即年份值能被 400 整除,但不能被 100 整除,
- 44 -

而且年份值能被 4 整除; (4)输出结果,结束。 设计步骤如下: 建立用户界面,设置对象属性。各对象的属性如表 2-13 所示。 表 2-13 控件(名称) 窗体(Form1) 文本框(Text1) 标签(Lable1) 标签(Lable2) 标签(Lable3) 命令按钮(Command1) 命令按钮(Command2) 设置对象属性 属性 Caption Text Caption Caption Caption Caption Caption 计算 取消 请输入年份: 判断结果: 闰年 属性值

双击按钮 Command1,编写“计算”按钮单击事件程序代码如下: Private Sub Command1_Click() Dim y As Integer y = Int(Text1.Text) If (y Mod 400 = 0) Or (y Mod 100 <> 0) And (y Mod 4 = 0) Then Label3.Caption = "闰年" Else Label3.Caption = "平年" End If End Sub 双击按钮 Command2,编写“取消”按钮单击事件程序代码如下: Private Sub Command2_Click() Text1.Text = "" Label3.Caption = "" End Sub

练习题 1.编写程序。任意输入一个数,如果是正数,输出“YES” ,否则输出“NO” 。
- 45 -

2. 编写程序。 输入一个小于五位数的正整数, 如果是偶数, “YES” 否则输出 输出 , “NO” 。 3.编写程序。某服装公司为了推销产品,采取这样的批发销售方案:凡订购超过 100 套的,每套定价为 50 元,否则每套价格为 80 元。输入订购套数,输出应付款的金额数。 4.假设邮局规定寄邮件时若每件重量在 1 公斤以内(含 1 公斤),按每公斤 1.5 元计算邮 费,如果超过 1 公斤时,其超出部分每公斤加收 0.8 元。请编程序计算邮件收费。 三、循环结构 在编程中经常遇到这样的情况: 某一类问题的计算或处理方法完全一样, 只是要求重复 计算或处理多次, 例如求若干数的总和, 统计学生各分数段的人数, 银行存款利率的计算等。 类似这样的问题,就要用到循环结构。 所谓循环结构是指对同一程序段重复执行若干次, 被重复执行的语句块称为循环体。 循 环体的执行与否以及次数多少视循环类型和条件而定。 VB 中常用的循环语句有 For?Next 语句和 Do?Loop 语句。 For?Next 循环用于已知循 环次数的情况下,而 Do?Loop 循环主要用于不知道循环次数的情况下,在给定的条件满足 时执行循环体。 1.For?Next 循环 For?Next 简称 For 循环。如果知道循环要执行多少次时,就可以使用 For 循环。For 循环使用一个循环变量(计数器)控制循环体的执行次数。每执行一次循环之后,循环变量 的值就会自动增加或者减少。 For 循环的语法格式如下: For 循环变量 = 初值 To 终值 [Step 步长] [循环体] Next [循环变量] (1)格式说明: 循环变量:必须为数值型。For 和 Next 关键字后面的循环变量必须相同。 初值和终值:均为数值型,可以是数值表达式。 步长:数值型,可以是数值表达式,默认值为 1。若步长为正数,应设初值≤终值;若 步长为负数,应设初值≥终值,否则循环体不会被执行。步长不应为 0,否则程序将陷入无 限循环(死循环) 。 循环体:在循环中被执行的语句块。若循环体中无语句,则为空循环。在循环体中可根 据条件加入 Exit For 语句强制退出循环。Exit For 通常出现在选择结构中。 (2)For 循环执行过程 For 循环执行的流程(初值≤终值的情形) ,如图 2.32 所示。

- 46 -

图 2.32 For 循环执行过程流程图 (1)循环变量被赋初值。 (2)若步长为正,判断循环变量的值是否大于终值,若步长为负值,判断循环变量的 值是否小于终值。 (3)若判断结果为真,则退出循环,否则执行循环体中的语句。 (4)遇到 Next 则把循环变量加上步长值。 (5)重复步骤(2)~(4) 。 例 4.7 编写程序,计算 1+2+3+......+100 的和。 编程计算 1+2+3+?+100 的和,当单击窗体时显示预算结果。如图 2.33 所示。

图 2.33 计算 1 到 100 的和 分析:这是一个多个数求和的问题,由人来完成这个任务一般是采用累加的方法,先将 前两个数相加,所得的和再跟第三个数相加,和再跟第四个数相加,一直加到最后一个数, 就求的最终结果。对与这种重复进行相同操作的工作,计算机中可以利用循环来完成,当明 确知道循环开始和结束的边界时,可以用 For 循环来完成该任务。 (1)设计算法 ①定义两个整型变量 i,s,i 作为循环控制变量,s 作为累加器,并将 s 清零; ②循环控制变量 i 从 1 开始;

- 47 -

③让 s=s+i ④循环控制变量 i 加 1,如果 i 不大于 100,重复步骤(3)(4) 、 ⑤输出变量 s 的值; (2)建立用户界面,设置对象属性如表 2-14 所示 表 2-14 对象(名称) 窗体(Form1) 标签(Lable1) (3)编写程序代码 因为程序只在单击算式时才开始计算,所以双击 Lable1 控件,编写标签 Lable1 单击事 件程序代码如下: Dim i, s As Integer s=0 For i = 1 To 100 s=s+i Next i Label1.Caption = "1+2+3+…+100= " & Str(s) 2.Do...Loop 循环 Do...Loop 循环简称 Do 循环,主要在循环次数未知时使用。Do 循环有两类语法形式, 即前测型循环和后测型循环。 前测型循环(先判断,后执行) Do [{While|Until} 条件] [循环体] Loop 后测型循环(先执行,后判断) Do [循环体] Loop [{While|Until} 条件] 说明: (1)前测型循环先判断条件,如果为真,执行循环体,否则退出,因此有可能一次也 不执行循环体;后测型循环先执行循环体,然后判断条件,因此至少执行一次循环体。 (2)While 关键字是指当条件为真时执行循环体;Until 与之相反,条件为假时执行循
- 48 -

属性设置 属性 Caption Caption 属性值 循环程序 1+2+3+?+100=?

环体,直到条件为真时退出循环。二者在功能上并无本质区别,只要将条件取反,就可以互 相取代。例如,Do While x>=10 与 Do Until x<10 是等价的。 (3)在循环体中可以插入 Exit Do 语句,随时跳出循环。Exit Do 通常用于条件判断之 后(如 If...Then) 。 使用 While 关键字的前测型和后测型 Do 循环的流程如图 2.34 和图 2.35 所示。 使用 Until 关键字的 Do 循环与之相似,只需将图中的“条件成立”和“条件不成立”互换位置即可。

图 2.34 前测型 Do 循环流程图

图 2.35 后测型 Do 循环流程图

例 4.8 用 Do While...Loop 循环计算 1 到 200 的奇数和(1+3+5+...+199)。 在窗体上放置一个命令按钮, 窗体标题属性 Caption 设置为:计算小于 200 的奇数和” “ , 命令按钮标题属性设置为:“计算”, 编写“计算”按钮单击事件的程序代码如下:

Private Sub Command1_Click() Dim Sum As Integer, i As Integer Sum = 0 i = 1 Do While i <= 200 Sum = Sum + i i = i + 2 Loop Print " 1 + 3 + 5 + ... + 199 = " & Sum End Sub
运行结果如图 2.36 所示。

图 2.36 求 1~200 奇数和 上述功能亦可用 For 循环实现: For i = 1 To 200 Step 2 Sum = Sum + i Next i

- 49 -

由此可见,Do 循环完全可以代替 For 循环。尽管如此,在已知循环次数的情况下,还 是应当使用 For 循环,它将使程序更加简洁,效率更高。 例 4.9 编写程序,用“辗转相除法”求两个自然数 m 和 n 的最大公约数。 分析:用“辗转相除法”求最大公约数的计算方法如下: (1)两数相除(m 除以 n),取余数 r; (2)若 r≠0,则将除数改作被除数,余数改作除数(m←n,n←r),重复步骤(1)、 (2),直到 r = 0 为止; (3)最后一次相除时所用的除数就是最大公约数。 程序设计:本例采用 Do...Loop Until 循环实现。程序界面及运行效果如图 2.37 所示。 各对象的属性设置如表 2-15 所示。 表 2-15 对象(名称) 属性 窗体(Form1) 文本框(Text1) 文本框(Text2) 命令按钮(Command1) Caption Text Text Caption 计算 设置对象属性 属性值 对象(名称)

属性

属性值 输入两个自 然数 M= N=

最大公约数

标签(Label1) Caption 标签(Label2) Caption 标签(Label3) Caption 标签(Label4) Caption

图 2.37 求最大公约数 “计算”按钮单击事件的代码如下: Private Sub Command1_Click() Dim m As Integer, n As Integer, r As Integer m = Val(Text1.Text) n = Val(Text2.Text) '若数据超出有效范围,退出本过程 If m <= 0 Or n <= 0 Then Exit Sub Do r = m Mod n m = n n = r Loop Until r = 0 'r=0 时退出循环 '退出循环时,m 中存放的是最后的除数,即最大公约数 Label4.Caption = "两数的最大公约数 = " & m
- 50 -

'求最大公约数

End Sub 四、多重循环 前面我们学习的循环语句中, 每种循环都有一个循环体, 在循环体中还可以再有循环语 句,这种循环中再嵌套循环的现象我们叫作多重循环,也叫循环嵌套。 例 4.10 编写程序,输出 100~200 之间的所有素数。 分析:素数也称质数,是指一个大于 1 的整数,除了 1 和它本身以外不能被其他正整数 整除,这个数就是素数。本题的求解可用双重循环实现,外循环遍历 100~200 之间的所有 整数,内循环判断各数是否为素数。 程序设计:在窗体上添加一个命令按钮,设 Caption 属性为“开始” 。运行时单击该按 钮后用 Print 方法显示 100~200 之间的素数。 “开始”按钮单击事件的代码如下: Private Sub Command1_Click() Dim n As Integer, i As Integer, j As Integer Dim flag As Boolean '判断 n 是否为素数的标志 Print Tab(8); "100~200 之间的素数" Print String(35, "-") For n = 100 To 200 flag = True For i = 2 To n-1 flag = False Exit For End If Next i If flag Then Print n; j = j + 1 If j Mod 7 = 0 Then Print End If Next n Print String(35, "-") End Sub 程序运行效果如图 2.38 所示。 '若 n 为素数,显示(每行 7 个数) '外循环遍历 100~200 之间所有整数 '先假定 n 为素数 '内循环判断 n 是否为素数 '修改标志 '退出内循环

If n Mod i = 0 Then '若 n 能被 i 整除,不是素数

- 51 -

图 2.38 输出 100~200 之间的所有素数 例 4.11 编写程序,使用 InputBox 函数输入一个整数 n(n 为 1 到 9)后,显示 n 行数字 三角形。如图 2.39 是输入数值 6 所显示的数字三角形。

图 2.39 数字三角形 分析:在这个例子中,要输出一个数字三角形,需要控制输出位置和输出内容,由于数 字图形是由多行组成的,因此需要使用双重循环。 根据上述的分析,我们将解决问题的算法描述如下: (1)定义三个整型变量 i,j,n 分别作为循环控制变量和控制输出行数的变量; (2)获取文本框的输入,作为要输出的行数,将值保存在变量 n 中; (3)循环控制变量 i 从 1 开始; (4)输出(n - i) * 2 个空格,控制第一个数字输出的位置; (5)循环控制变量 j 从 1 开始; (6)输出数字 j 及一个空格; (7)循环控制变量 j 加 1,如果 j 不大于 i,跳转到步骤(6) ,继续执行内循环; (8)输出一个换行; (9)循环控制变量 i 加 1,如果 i 不大于 n,跳转到步骤(3) ; 程序设计步骤如下: 建立用户界面,设置对象属性。各对象的属性如表 2-16 所示。
- 52 -

表 2-16 对象(名称) 窗体(Form1) 命令按钮(Command1) Caption Caption

设置对象属性 属性 属性值 数字三角形 开始

编写“开始”按钮的 Click 事件代码如下: Dim i, j, n As Integer Print n = val(InputBox("请输入 n 的值:")) For i = 1 To n Print Space((n - i) * 2); For j = 1 To i Print j; Space(1); Next j Print Next i

例 4.12 制作如图 2.40 所示的“九九乘法表” 。

图 2.40 九九乘法表 分析: “九九乘法表”由 9 行 9 列等式组成,若以变量 i 代表行号,变量 j 代表列号, 则所有等式均可表示为:i * j = 乘积。在图 4.18 中,每行内等式的个数等于该行的行号。 对这种具有明显行列规律的问题,通常采用 For?Next 双重循环解决。设外循环的循环变量 为行号, 内循环的循环变量为列号, 在内循环中输出一行中的各列, 退出内循环后行号加 1, 输出下一行。 建立用户界面,设置设置窗体的背景色(BackColor 属性)为白色。程序运行时单击窗 体后调用窗体的 Print 方法直接在窗体上显示乘法表, Print 方法中用 Tab 函数控制各列等 在 式的输出位置。编写窗体单击事件的代码程序如下:

- 53 -

Private Sub Form_Click() Dim strS As String, i As Integer, j As Integer Print. Tab(35); "九九乘法表" Print " " & String$(80, "-") For i = 1 To 9 For j = 1 To i ?外循环变量 i 为乘法表的"行" ?'内循环变量 j 为乘法表的"列"

strS = j & "×" & i & "=" & i * j ? 行列相乘 Print Tab((j - 1) * 9 + 2); strS; ?显示 Next j Print Next i Print " " & String$(80, "-") End Sub 练习题 1.编写程序,输出 1 至 20 所有整数的平方表。 2.编写程序,输出 100 至 200 之间的所有奇数。 3.编写程序,求 1—999 中能被 3 整除,且至少有一个数字是 5 的所有整数。 4.编写程序,输入一个 n(n<=12),计算 1*2*3......*n 的值。 5.数学上把除了 1 和它本身,没有别的数能够整除它的自然数叫做素数(或质数)。现 在由文本框控件输入一个自然数 N,编程判断 N 是否是素数,是则输出“Yes” ,否则输出 “No” 。 6.设计一个程序,通过文本框输入两个正整数 M 和 N(M<N) ,计算从 M 到 N 的整 数和以及偶数和,用标签显示结果。 7.编写程序,输入一个正整数 n,输出由*字符组成的 n 行三角形图案。图 2.41 为 n=8 的情形。

图 2.41 三角形图案

第四节 程序的调试
- 54 -

当我们编辑完一个 VB 程序,就可以尝试运行这个程序了,但程序的编写通常不可能一 次性成功。 因此我们需要找出并修改程序编写过程中产生的错误。 在程序中发现错误并排除 错误的过程叫做程序调试。VB 可视化开发环境提供了丰富的调试手段,可以方便地跟踪程 序的运行,排除程序错误。 一、VB 开发环境的 3 种模式 VB 开发环境有 3 种模式,分别是设计模式、运行模式和中断模式,开发环境中的标题 能够显示出当前所处的模式。如图 2.37 所示:

图 2.42 VB 开发环境的 3 种模式 1.设计模式 在设计模式下可以进行程序的界面设计、 属性设置、 代码编写等, 标题栏上显示 “设计” , 在此模式下不能运行程序,也不能使用调试工具。 2.运行模式 执行“运行”菜单中的“启动”命令或单击工具栏上的启动按钮或按 F5 键,即由设计 模式进入运行模式,标题栏显示“运行” ,在此阶段可以查看程序代码,但不能修改。若要 修改,必须单击工具栏上的“结束”按钮,回到设计模式,也可以选择“中断”按钮,进入 中断模式。 3.中断模式 当程序运行时单击了“中断”按钮,或当程序出现运行错误时,都可以进入中断模式, 在此模式下, 运行的程序被挂起, 可以查看代码、 修改代码、 检查数据。 修改结束, 单击 “继 续”按钮可以继续程序的运行,也可以单击“结束”按钮停止程序的执行。 为了测试和调试应用程序,程序员在任何时候都应知道应用程序正处在何种模式之下。 这三种模式中,中断模式是程序员调试程序、检查数据与修改代码的常用模式。 二、程序设计中的错误类型 程序设计中常见的错误可分为以下 3 种:编译错误、运行错误和逻辑错误。 1.编译错误 指 VB 在编译程序过程中出现的错误。此类错误是由于不正确的构造代码而产生的,比
- 55 -

如关键字输入错、遗漏了必需的标点符号等。当用户在窗口内编写代码时,VB 会对程序进 行语法检查,发现有错误时会弹出一个对话框,提示出错信息,同时系统会将出错的语句行 标识为红色,提示用户进行修改。用户单击了“启动”按钮后,VB 在开始运行程序前先编 译程序, 此时发生错误也会弹出一个对话框并标注错误语句, 用户可以对错误的程序进行修 改,如图 2.43 所示。

图 2.43 编译错误 2.运行错误 指编译通过后, 运行代码时发生的错误。 此类错误通常是代码执行了非法操作或某些操 作失败。比如,要打开的文件没找到,除法运算时除数为零,数据溢出等。程序运行时发生 的错误。此时系统会弹出一个对话框,用户可单击“调试”按钮,进入中断模式来修改错误 的代码,如图 2.44 所示。

图 2.44 运行错误 3.逻辑错误 程序运行后,得不到应有的结果,这说明程序存在逻辑错误,逻辑错误是由于程序结构
- 56 -

或算法错误而引起的。通常这类错误不产生错误提示信息,错误较难排除。如图 2.45 所示:

图 2.45 逻辑错误 练习题 1.什么是对象、属性、方法和事件? 2.事件过程一般格式是怎样的?

- 57 -


更多相关文档:

初中八年级初二信息技术上下册全册教案下载

初中八年级初二信息技术上下册全册教案下载_初二数学_数学_初中教育_教育专区。初中八年级初二信息技术上下册全册教案下载更多精彩免费完整内容请搜索打开:金博志网址...

甘肃省教育出版社初中信息技术八年级上全册教案

【教材内容分析】 本课的教学内容是甘肃省教育出版社的初中信息技术教材八年级模块二第一节 《演示文稿的欣赏 与规划》的知识内容,本课主要是让学生知道多媒体演示...

初二信息技术全册教案

初二信息技术全册教案_其它课程_初中教育_教育专区。初二信息技术全册教案 教学计划新年过,新的学期又来临,为使今后工作做得更好些,在教育教学中取得更大的成绩,...

初二信息技术上册教案(清华黑白版)_图文

初二信息技术上册教案(清华黑白版)_其它课程_初中教育_教育专区。教学工作计划 ...因此第 2 帧画面要在第 1 帧画面的基 础上绘制竹子,使两帧画面不同,为...

2014信息技术教案(八年级上册)

2014信息技术教案(八年级上册)_其它课程_初中教育_教育专区。新河中学信 息技术...因此要探索构建信息技术课 的教学模式,能更好地上好信息技术课,制定合理的、...

教案:初二信息技术全册教案_图文

教案:初二信息技术全册教案_设计/艺术_人文社科_专业资料。教案:初二信息技术全册教案 科目:初中信息技术初二年级 蓝坊初中 熊恩霖制作 教学计划 新年过,新的学期...

初中信息技术(下册)教案

初中信息技术教案(初二下) 初中信息技术(初二下) 教案 1 初中信息技术教案(初二下) 第 9 章 走进网络世界第 1 节 网络基础知识一、教学目标: 1、知识与技能...

初中信息技术教案初二(上)

初中信息技术教案初二(上) 教案教案隐藏>> 第一章 声音、视频信息的加工与处理音频、视频是制作多媒体作品的两个重要元素。通过本章的学习,我们将了解常见的声 音...

八年级信息技术上册教案(新疆版)

八年级信息技术上册教案(新疆版)_其它课程_初中教育_教育专区。八年级信息技术第...的教学内容,本节课是在学生学习了工 学习内容分析 作表的编辑和美化的基础上,...

八年级信息技术教案_图文

杨家杖子经济开发区完全中学 杨家杖子经济开发区完全中学 教学计划 一、全册教学目标:本课是大连理工大学出版社出版的《初中信息技术八年级下 册,是这一单元学习...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com