1、第 四 章 VB 程 序 的 控 制 结 构4.1 算 法 概 论1 算 法 的 概 念算 法 : 指 用 计 算 机 解 决 某 一 问 题 的 方 法 和 步 骤 。数 值 算 法 : 用 于 解 决 一 般 数 学 解 析 方 法 难 以 解 决 的 问 题 , 如 : 求 超 越 方 程 的 根 、 求 定 积 分 、 解 微 分 方程 等 。算 法 分 类 : 非 数 值 算 法 : 用 于 对 非 数 值 信 息 进 行 查 找 、 排 序 等 。数 值 算 法 : 用 于 解 决 一 般 数 学 解 析 方 法 难 以 解 决 的 问 题 , 如 : 求 超 越 方 程 的 根
2、、求 定 积 分 、 解 微 分 方 程 等 。非 数 值 算 法 : 用 于 对 非 数 值 信 息 进 行 查 找 、 排 序 等 。2 算 法 的 特 征( 1) 确 定 性 : 指 算 法 的 每 个 步 骤 都 应 确 切 无 误 , 没 有 歧 义 。( 2) 可 行 性 : 指 算 法 的 每 个 步 骤 必 须 是 计 算 机 能 够 有 效 执 行 、 可 以 实 现 的 , 并 可得 到 确 定 的 结 果 。( 3) 有 穷 性 : 指 一 个 算 法 应 该 在 有 限 的 时 间 和 步 骤 内 可 以 执 行 完 毕 的 。( 4) 输 入 性 : 指 一 个 算
3、法 可 以 有 0 或 多 个 输 入 数 据 。( 5) 输 出 性 : 指 一 个 算 法 必 须 有 一 个 或 多 个 输 出 结 果 。3 算 法 的 评 价主 要 评 价 指 标 是 : 算 法 是 否 正 确 、 运 行 的 效 率 、 占 用 系 统 资 源 的 多 少 。4 算 法 的 描 述一 般 常 用 流 程 框 图 来 描 述 算 法 。图 形 符 号 名 称 代表操作输 入 /输 出 数 据 的 输 入 与 输 出处理 各种形式的数据处理判断 判断选择,根据条件满足与否选择不同路径起止 流程的起点与终点特定过程 一个定义过的过程流程线 连接各个框图,表示执行顺序连接
4、点 表示与流程图其他部分相连接5.基本算法结构“结 构 化 程 序 设 计 方 法 ”规 定 算 法 有 三 种 基 本 结 构 : 顺 序 结 构 、 选 择 结 构 和循 环 结 构6 算法 示 例( 1)欧 几 里 德 算 法 求 两 个 自 然 数 的 最 大 公 约 数 ( 2) 顺 序 查 找 算 法 在 N 个 字 符 串 集 合 中 , 查 找 有 无 特 定 的 字 符 串 存 在 4.2 顺 序 结 构 1. 赋 值 语 句赋 值 语 句 是 任 何 程 序 设 计 中 最 基 本 的 语 句 , 赋 值 语 句 都 时 顺 序 执 行 的 。 赋 值 语句 的 形 式 为
5、 :变 量 名 = 表 达 式它 的 作 用 是 计 算 右 边 表 达 式 的 值 , 然 后 赋 给 左 边 的 变 量 , 表 达 式 的 类 型 应 该 与变 量 名 的 类 型 一 致 。2 . 使 用 说 明( 1) 当 表 达 式 为 数 值 型 而 与 变 量 精 度 不 同 时 , 强 制 转 换 成 左 边 变 量 的 精 度 ;( 2) 当 表 达 式 是 数 字 字 符 串 , 左 边 变 量 是 数 值 类 型 , 自 动 转 换 成 数 值 类 型 再 赋 值 ,但 当 表 达 式 中 有 非 数 字 字 符 或 空 串 , 则 出 错 。( 3) 任 何 非 字
6、符 类 型 赋 值 给 字 符 类 型 , 自 动 转 换 为 字 符 类 型 ;( 4) 当 逻 辑 型 赋 值 给 数 值 型 时 , True 转 换 为 -1, False 转 换 为 0; 反 之 ,非 0 转 换 为 True, 0 转 换 为 False;( 5) 赋 值 号 左 边 的 变 量 只 能 是 变 量 , 不 能 是 常 量 、 常 数 符 号 、 表 达 式 , 否 则 报错 ;( 6) 不 能 在 一 句 赋 值 语 句 中 , 同 时 给 各 变 量 赋 值 ;( 7) 在 条 件 表 达 式 中 出 现 的 = 是 等 号 , 系 统 会 根 据 = 号 的
7、 位 置 , 自 动 判断 是 否 为 赋 值 号 ;( 8) 注 意 N=N+1 是 累 加 中 常 见 的 赋 值 语 句 , 表 示 将 N 变 量 中 的 值 加 1 后再 赋 值 给 N。N 执行了 N=N+1 后 N5 64.3 选 择 结 构 ( 或 称 分 支 结 构 ) 1.1. IF 条件语句(1)IfThen 语句(单分支结构 F)语句形式:1)If Then 语句块End If 2) If Then 说 明 : 表 达 式 一 般 为 关 系 表 达 式 、 逻 辑 表 达 式 , 也 可 以 为 算 术 表 达 式 , 非 0为 True, 0 为 False;语 句
8、 块 可 以 是 一 句 或 多 句 , 若 用 2) 表 示 , 则 只 能 是 一 句 语 句 , 若 多 句 , 语 句 间 需用 冒 号 分 隔 , 而 且 必 须 在 一 行 上 书 写 。例 : 已 知 两 个 数 x 和 y, 比 较 它 们 的 大 小 , 使 得 x 大 于 y:方 法 一 : if x Then ElseE nd If 2) If Then Else x2 -5 x 0 例 :3x +2 x=0(3)IfThenElseIf 语 句 ( 多 分 支 结 构 ) 语 句 形 式 : If Then ElseIf Then Else 语 句 块 n+1 E nd
9、 If 注 意 : 1) 不 管 有 几 个 分 支 , 程 序 执 行 了 一 个 分 支 后 , 其 余 分 支 不 再 执 行 ;2 ) ElseIf 不 能 写 成 Else If 3 ) 当 多 分 支 中 有 多 个 表 达 式 同 时 满 足 , 则 只 执 行 第 一 个 与 之 匹 配 的 语 句 块 例 : 已 知 变 量 strC 中 存 放 了 一 个 字 符 , 判 断 该 字 符 是 字 母 字 符 、 数 字 字 符 还 是其 他 字 符 。 ( 4) If 语 句 的 嵌 套If 语 句 的 嵌 套 是 指 if 或 else 后 面 的 语 句 块 中 又 包
10、 含 If 语 句 。 语 句 形 式 :If ThenIf Then E nd If E nd If 注 意 : 1) 对 于 嵌 套 结 构 , 为 了 增 强 程 序 的 可 读 性 , 应 该 采 用 缩 进 形 式 书 写 ;2) If 语 句 形 式 若 不 在 一 行 上 书 写 , 必 须 与 End If 配 对 , 多 个 if 嵌 套 ,End If 与 它 最 接 近 的 Emd If 配 对 。例 : 已 知 x、 y、 z 三 个 数 , 比 较 它 们 的 大 小 并 排 序 , 使 得 xyz.2. Select Case 语 句 ( 情 况 语 句 ) 是 多 分 支 语 句 的 又 一 种 形 式 , 语 句 形 式 : Select Case 变 量 或 表 达 式Case 表 达 式 列 表 1 语 句 块 1Case 表 达 式 列 表 2