数据库应用08 vba结构化程序设计

上传人:y****3 文档编号:27753846 上传时间:2021-08-20 格式:PPTX 页数:116 大小:945.77KB
返回 下载 相关 举报
数据库应用08 vba结构化程序设计_第1页
第1页 / 共116页
数据库应用08 vba结构化程序设计_第2页
第2页 / 共116页
数据库应用08 vba结构化程序设计_第3页
第3页 / 共116页
点击查看更多>>
资源描述
第 8章 VBA程 序 设 计 基 础 程 序 概 念 维 基 解 释 ( ) 另 一 种 解 释参 见 Wiki解 释计 算 机 程 序 或 者 软 件 程 序 ( 通 常 简 称 程 序 ) 是指 一 组 指 示 计 算 机 每 一 步 动 作 的 指 令 , 通 常 用某 种 程 序 设 计 语 言 编 写 , 运 行 于 某 种 目 标 体 系结 构 上 。 打 个 比 方 , 一 个 程 序 就 像 一 个 用 汉 语( 程 序 设 计 语 言 ) 写 下 的 红 烧 肉 菜 谱 ( 程 序 ), 用 于 指 导 懂 汉 语 的 人 ( 体 系 结 构 ) 来 做 这 个菜 。 通 常 , 计 算 机 程 序 要 经 过 编 译 和 链 接 而 成为 一 种 人 们 不 易 理 解 而 计 算 机 理 解 的 格 式 , 然后 运 行 。 未 经 编 译 就 可 运 行 的 程 序 通 常 称 之 为脚 本 程 序 。 A Joke( SQL版 ) 某 女 技 术 人 员 的 征 婚 信 息SELECT * FROM 男 人 WHERE (未 婚 =true or 离 异 =true) and 穷 光 蛋 =false and 有 房 =true and 有 车 =true 结 果 有 人 回 帖 : (0 row(s) affected) A Joke( C语 言 版 ) 姑 娘 爱 小 伙 (伪 C语 言 版 )result love(boy, girl ) if( boy.有 房 () and boy.有 车 () boy.set(nothing); return girl. 嫁 给 (boy); 姑 娘 爱 小 伙(搞 笑 版 ) if( girl.愿 意 等 () while(!(boy.赚 钱 100,000 and girl.感 情 8 ) for ( day=1; day 100,000 and girl.感 情 8 ) for ( day=1; day =365; day+) if( (day = 情 人 节 or day = girl.生 日 ) else girl. 感 情 -; boy.拼 命 赚 钱 (); /for /while if( boy.有 房 () and boy.有 车 () ) boy.set(nothing); return girl.嫁 给 (boy); else 年 龄 +; girl.感 情 -; /if愿 意 等 return girl.goto( another_boy); 程 序 可 读 性 缩 格 对 齐 注 释 8 结 构 化 程 序 设 计 基 础 程 序 设 计 过 程 算 法 程 序 流 程 图 及 示 例 8.1 程 序 设 计 过 程 程 序 设 计 即 是 计 算 机 用 户 根 据 解 决 某 一 问题 的 步 骤 , 按 一 定 的 逻 辑 关 系 , 将 一 系 列的 指 令 组 合 在 一 起 。 8.2 算 法 ( 1) 程 序 的 设 计 过 程 , 核 心 问 题 是 设 计 一 个 合理 、 有 效 的 算 法 。 一 般 认 为 ,算法就 是 在 有 限 的 时 间 内 , 可以 根 据 明 确 规 定 的 运 算 规 则 , 在 有 穷 步 骤内 得 出 确 切 计 算 结 果 的 机 械 步 骤 或 能 运 行的 计 算 程 序 。 8.2 算 法 ( 2) 算 法 特 性 :(1)有 序 性 : 每 个 步 骤 被 执 行 的 顺 序 是 确 定 的 。(2)有 限 性 : 即 解 题 步 骤 是 有 限 的 , 无 穷 的 步 骤 意味 无 解 。(3)确 定 性 : 多 次 运 行 同 样 一 个 程 序 , 其 结 果 相 同。 此 外 , 算 法 可 以 没 有 输 入 ( 因 为 输 入 由 计 算 机 自 动产 生 ) , 但 一 定 要 有 输 出 , 输 出 用 来 表 示 问 题 是 否有 解 。 8.2 算 法 ( 3) 三 种 基 本 控 制 结 构 : 顺 序 、 分 支 、 循 环顺序结构是 程 序 设 计 中 最 基 本 的 结 构 。 在 该 结构 中 , 程 序 的 执 行 是 按 命 令 出 现 的 先 后 顺 序 依次 执 行 的 。分 支 结 构 是 按 给 定 的 选 择 条 件 成 立 与 否 来 确 定程 序 的 走 向 。 分 支 结 构 可 分 为 双 重 分 支 选 择 和多 重 分 支 选 择 。 在 任 何 条 件 下 , 无 论 分 支 多 少, 只 能 选 择 其 一 。 8.2 算 法 ( 4) 三 种 基 本 控 制 结 构 : 顺 序 、 分 支 、 循 环循 环 结 构 是 一 种 重 复 结 构 , 即 某 一 程 序 段 将 被反 复 执 行 若 干 次 。 按 循 环 的 嵌 套 层 次 , 循 环 可分 为 简 单 循 环 结 构 和 循 环 嵌 套 ( 也 称 为 多 重 循环 ) 结 构 。 按 循 环 体 执 行 的 条 件 性 质 , 循 环 又可 分 为 While循 环 和 Until循 环 。 无 论 何 种 类 型 的循 环 结 构 , 都 要 确 保 循 环 的 重 复 执 行 能 够 终 止。 8.2 算 法 ( 5) 结 构 化 程 序 是 指 仅 由 三 种 基 本 控 制 结 构 组成 的 程 序 , 它 具 有 以 下 特 点 :(1) 整 个 程 序 模 块 化 。(2) 每 个 模 块 只 有 一 个 入 口 和 一 个 出 口 。(3) 每 个 模 块 都 应 能 单 独 执 行 , 且 无 死 循 环 。(4) 采 用 黑 箱 的 思 想 , 宏 观 地 描 述 任 何 一 个 程 序, 可 以 将 它 看 成 为 顺 序 结 构 。 8.3 程 序 流 程 图 及 示 例 ANSI流 程 图 N-S图 1. ANSI流 程 图 ( 1)判 断 框 箭 头 : 表 示 程 序 流 向连 接 符 号 : 表 示 图 标 之 间 相 互 连 接 关 系判 断 框 : 表 示 根 据 条 件 决 定 程 序 走 向过 程 : 表 示 该 流 程 部 分 是 一 个 过 程输 入 /输 出 框 : 表 示 数 据 的 输 入 、 输 出 操 作处 理 框 : 表 示 对 数 据 进 行 处 理起 止 框 : 表 示 程 序 的 开 始 或 结 束 1. ANSI流 程 图 ( 2) 顺 序 结 构 1. ANSI流 程 图 ( 3) 条 件 分 支 结 构 1. ANSI流 程 图 ( 4) 循 环 结 构 Until型 循 环 结 构While型 循 环 结 构 1. ANSI流 程 图 ( 5) 多 重 条 件 分 支 结 构 2. N-S图 ( 1) 顺 序 结 构语 句 块 1语 句 块 2语 句 块 3 2. N-S图 ( 2) 条 件 分 支 结 构 2. N-S图 ( 3) 多 重 分 支 选 择 语 句 2. N-S图 ( 4) 循 环 结 构 Until型 循 环 结 构While型 循 环 结 构 8.3 程 序 的 控 制 语 句 结 构 顺 序 结 构 程 序 分 支 结 构 程 序 循 环 结 构 程 序 2.分 支 结 构 程 序 ( 1) 双 重 分 支 选 择 语 句语 句 格 式 :If ThenElse End If 假真 条 件语 句 块 1 语 句 块 2 2.分 支 结 构 程 序 ( 2) 语 句 块 1 语 句 块 2 双 重 分 支 选 择 语 句 条 件真 假语 句 格 式 :If ThenElse End If 2.分 支 结 构 程 序 ( 3) 多 重 分 支 选 择 语 句 If ThenElseIf Then.ElseIf ThenElse End If 2.分 支 结 构 程 序 ( 4) 多 重 分 支 选 择 语 句 If ThenElseIf Then.ElseIf ThenElse End If 例:根据输入的X值, 决定输出Y的值。Y= 1 (x 0)0 (x = 0)-1 (x 0是 否Y= 1 X= 0是 否Y= 0 Y= -1输 出 YN-S 流 程 图 35 Public Sub 求 Y的 值 () Dim x As Double x = InputBox(请 输 入 x的 值 , 输 入 x) If x 0 Then Debug.Print y=1 ElseIf x = 0 Then Debug.Print y=0 Else Debug.Print y=-1 End IfEnd Sub例:根据输入的X值, 决定输出Y的值。 Public Sub 判 断 奇 偶 性 ()Dim strx As StringDim x As Integerstrx = InputBox(请 输 入 x, 提 示)x = Val(strx)If x Mod 2 = 0 Then Debug.Print 该 数 为 偶 数 ! Else Debug.Print 该 数 为 奇 数 ! End IfEnd Sub例 : 输 入 一 个 数 , 判 别 其 奇 偶 性 。 输 出 s的 结 果 , 理 解 每 次 累 加 结 果 的 变 化 i = i + 1 改 变 循 环 变 量 的 值 Loop Debug.Print s 循 环 体 外 输 出 结 果End Sub 3.循 环 结 构 程 序 DO WHILE循 环 循 环 阅 读 理 解循 环 条 件 是 什 么 ?什 么 时 候 进 入 循 环 ?什 么 时 候 退 出 循 环 ?循 环 体 内 如 何 改 变 循 环 条 件 ?循 环 变 量 的 作 用 ? 2021-8-4 63 求 1至 N之 间 的 所 有 自 然 数 之 和 。i=1,s=0i=Ns=s+ii=i+1Y 结 束输 出 sN开 始 输 入 N1、 前 后 项 的 关 系2、 初 始 值 、 循 环 条 件 与 循 环 体 的 关 系循 环 结 构 的 关 键初 始 值 、 循 环 条 件 与 循 环 体 是 不 是 唯 一 的 ?s=1?i=i+1s=s+iiN? Public Sub s1() Dim n As Integer n = Val(InputBox(请 输 入 一 个 正 整 数 : ) s = 0 i = 1 Do While i = n s = s + i i = i + 1 Loop Debug.Print i; sEnd Sub 64 3.循 环 结 构 程 序 DO WHILE循 环 2021-8-4 65i=N 结 束输 出 sN i=1,s=0s=s+1/ii=i+1Y开 始 输 入 NnHn 1312111 简 单 , 代 码 我会 了 ! 2021-8-4 66 开 始n=100, m=0 Nn1000? n=n+1n能 被 3和 5整 除 吗 ?YYm=m+1输 出 n 结 束输 出 mN 例 : 输 出 3位 数 中 所 有 既能 被 3整 除 又 能 被 5整 除 的 数 ,并 统 计 其 个 数 。循 环 ? 分 支 ?回 顾 解 题 思 路混 合 结 构 : 循 环中 包 含 分 支任 何 分 支 结 束 后都 要 为 下 一 次 循环 做 准 备 ! Public Sub s1() Dim m, n As Integer m = 0 n = 100 Do While n = 999 If n Mod 3 = 0 And n Mod 5 = 0 Then m = m + 1 Debug.Print n End If n = n + 1 Loop Debug.Print mEnd Sub 67 3.循 环 结 构 程 序 DO WHILE循 环Public Sub s1() Dim m, n As Integer m = 0 n = 100 Do While n = 999 If Int(n / 15) = n / 15Then m = m + 1 Debug.Print n End If n = n + 1 Loop Debug.Print mEnd Sub 课 后 练 习 从 键 盘 上 输 入 一 个 数 , 若 它 既 能 被 3又 能 被 5整除 则 输 出 该 数 , 否 则 , 最 多 允 许 出 错 3次 。 68 Public Sub three()Dim a, b, i As Integeri = 0Do While i 3 a = Val(InputBox(please input a number) b = a Mod 15 If b = 0 Then Debug.Print a, 可 以 被 15整 除 ; Exit Do Else i = i + 1 Debug.Print a, 不 可 以 被 15整 除 , 请 重 新 输 入 End IfLoopEnd Sub 3.循 环 结 构 程 序 For循 环For循 环 语 句 格 式 :For = To Step Exit ForNext 求 : S=1+2+3+.+100 Public Sub s1for() s = 0 For i = 1 To 100 Debug.Print i s = s + i Debug.Print s; Next Debug.Print sEnd SubPublic Sub sum_example() s = 0 i = 1 Do While i = 100 Debug.Print i s = s + i Debug.Print s; i = i + 1 Loop Debug.Print s End Sub3.循 环 结 构 程 序 For循 环 如 果 在 上 述 FOR循 环 体 内 部 再 添 加 i=i+1, 则 输 出 结 果 将 如 何 呢 ?s = 0 For i = 1 To 100 Debug.Print i s = s + i Debug.Print s; Next Debug.Print s s = 0 For i = 1 To 100 Debug.Print i s = s + I i=i+1 Debug.Print s; Next Debug.Print s 结 果 为 5050 结 果 为2500 3.循 环 结 构 程 序 For循 环 2021-8-4 72 求 N! i=1,p=1i=Np=p*ii=i+1Y 结 束输 出 pN开 始 输 入 N3.循 环 结 构 程 序 For循 环 求s=1!+2!+.N! 例 6-15: 求 N! , 即 求 N的 阶 乘 。Public Sub 求 阶 乘 () Dim i, n, p As Integer p = 1 n = Val(InputBox(请 输 入 n的 值 :) For i = 1 To n Step 1 Step 1可 以 省 略 。 p = p * i 循 环 不 变 式 , 完 成 累 乘 。 Next Debug.Print Str(n) sEnd Sub Public Sub s1()Dim i As IntegerDim s As Double i = 1 s = 1While i = 99 s = s + (-1) i * (1 / (i + 1) i = i + 1WendDebug.Print s=; sEnd Sub 2021-8-4 76 作 业1、 求 1000以 内 既 能 被 5整 除 又 能 被 7整 除 的 数 之 和 , 并 统 计 这 些 数的 个 数 。 2、 求 3、 求 1+(1+2)+(1+2+3)+(1+2+3+10)。 提 示 : 在 循 环 中 每 次 计 算 (1+2+n)2561.41211 4、 求 求 1000以 内 既 能 被 5整 除 又 能 被 7整 除 的 数 之 和 , 并统 计 这 些 数 的 个 数 。 Public Sub 统 计 57() Dim n, i, s As Double i = 0 s = 0 For n = 1 To 1000 If n Mod 35 = 0 Then i = i + 1 s = s + n End If Next Debug.Print i, s End Sub 77Public Sub 统 计 57() Dim n, i, s As String i = 0 s = 0 For n = 35 To 1000 Step 35 i = i + 1 s = s + n Next Debug.Print i, s End Sub 3. 循 环 结 构 程 序 含 EXIT 循 环 结 构 中 的 Exit Do命 令Do While If Exit DoEnd IfLoop Do Until Exit DoLoop3. 循 环 结 构 程 序 含 EXIT 循 环 的 嵌 套循 环 体 内 又 嵌 套 循 环 的 情 况 称 为多重循环或 循环 嵌 套 。处 于 循 环 体 内 的 循 环 称 为 内 循 环 , 处 于 外 层 的循 环 称 为 外 循 环 。内 外 循 环 的 层 次 必 须 分 明 , 不 允 许 有 交 叉 现 象出 现 。内 外 循 环 的 循 环 变 量 不 要 同 名 。在 嵌 套 情 况 下 , Exit Do语 句 使 控 制 跳 到 下 方离 其 最 近 的 Loop之 后 。 3. 循 环 结 构 程 序 含 EXIT 求S=1+2+3+8+9+100Public Sub exitdo() s = 0 i = 1 Do While True If i 100 Then Exit Do End If s = s + i i = i + 1 Loop Debug.Print s=; sEnd Sub3. 循 环 结 构 程 序 含 EXITPublic Sub sum_example() s = 0 i = 1 Do While i = 100 s = s + i i = i + 1 Loop Debug.Print sEnd Sub Public Sub 求 阶 乘 () Dim i, n, p As Integer p = 1 n = Val(InputBox(请 输 入 n的 值 :) Do While True If n 0 Then s = s + x n = n + 1 Else Exit Do End If Loop Debug.Print 捐 款 人 数 为 : , n Debug.Print 捐 款 金 额 为 : , s End Sub 3. 循 环 结 构 程 序 含 EXIT 求 素 数 例 8-14: 输 入 一 个 大 于 1的 正 整 数 , 判 断 该数 是 否 是 素 数 。分 析 : 所 谓 素 数 又 称 为 质 数 , 是 指 只 能 被 1和它 自 身 整 除 的 数 。 要 判 断 x是 否 能 够 被 3整 除使 用 条 件 表 达 式 : x/3 = int(x/3)。3. 循 环 结 构 程 序 含 EXIT 分 析 对 于 输 入 的 数 据 x, 判 断 它 是 否 为 素 数 的 过程 , 就 是 修 改 上 面 条 件 表 达 式 的 分 母 , 让分 母 的 数 值 从 2变 到 x-1, 如 果 分 母 从 2到 x-1都 不 能 整 除 x, 则 x是 素 数 。 实 际 上 程 序 可 以 改 进 , 只 需 让 分 母 从 2变 到int(x/2)。 Public Sub 求 素 数 () Dim flag As Boolean Dim i, x As Integer flag = True 设 置 标 志 , 假 定 为 素 数 x = Val(InputBox(“请 输 入 整 数 数 据 ”) For i = 2 To Int(x / 2) 通 过 循 环 将 x除 以 2到 int(x/2)的 数 , 如 果 有 整 除 发 生 , 则 x不 是 素 数 ,退 出 循 环 。 If x / i = Int(x / i) Then 另 一 种 条 件 表 达 式 为 x mod i = 0 flag = False Exit For End If Next If flag Then if语 句 为 输 出 结 果 , 通 过 判 断 标 志 flag来 决 定 x是 否 为 素 数 。 Debug.Print Str(x) + 是 素 数 。 Else Debug.Print Str(x) + 不 是 素 数 。 End IfEnd Sub 求 水 仙 花 数 87 Public Sub t10()Dim a, b, c, n As Integer For n = 100 To 999 a = Int(n / 100) b = Int(n Mod 100) / 10) c = n Mod 10 If n = a 3 + b 3 + c 3 Then Debug.Print n End If NextEnd Sub Public Sub T10水 仙 花 数 ()For x = 1 To 9 For y = 0 To 9 For z = 0 To 9 If x * 100 + y * 10 + z = x 3 + y 3 + z 3 Then Debug.Print x * 100 + y * 10 + z End If Next NextNextEnd Sub 22 12 22 1522 2023 2223 1523 1825 23以 8个 数 为 例 说 明 : 12 22 15 20 23 15 18 25例输入10个数,要求输出其中最大的一个数。 总 结 :1、 将 第 一 位 置 上 的 数 分 别 与 后 面 的 数 进 行 比 较 ;2、 第 个 位 置 上 始 终 放 相 对 较 大 数 ;3、 比 较 一 次 , 向 后 移 一 位 数 ;4、 重 复 执 行 2、 3步 的 操 作 ;5、 若 有 N个 数 , 共 进 行 N-1次 比 较 。【 例 】输入10个数,要求输出其中最大的一个数。 ? ? : 这 里 选 择 的 是 拿 第 个 位 置 上 的 数 来 比 较 。 可 不 可 以 选 择 一个 小 的 数 , 如 : 0 , 来 进 行 比 较 ;? ? : 当 第 个 位 置 上 的 数 与 第 个 位 置 上 的 数 比 较 时 , 若 第 个位 置 上 的 数 比 第 个 位 置 上 的 数 小 , 这 时 第 个 位 置 上 的 数 与 第 个 位 置 上 的 数 是 交 换 , 还 是 只 用 把 第 个 位 置 上 的 数 赋 值 给 第 个 位 置 上 的 数 即 可 ;? ? : 若 为 交 换 需 要 多 少 个 变 量 ? 若 为 赋 值 需 要 多 少 个 变 量 ?【 例 】输入10个数,要求输出其中最大的一个数。 BEGIN输 入 第 一 个 数 给 MAX END N=1NMAXMAX=XT F 【 例 】 任 意 输 入 10个 数 , 找 出 并 显 示 其 中 最 大 的 一 个 数 。Public Sub px()Dim x, y, i As Integeri = 0 x = Val(InputBox(输 入 数 据 )Debug.Print xDo While i 10 y = Val(InputBox(输 入 数 据 ) Debug.Print y If x y Then x = y End If i = i + 1 LoopDebug.Print 所 输 入 数 据 最 大 值 为 : s = s + i End If Next Debug.Print 2 - 100间 的 素 数 和 s为 ; s 94 求 s=1+1/2+2/3+3/5+.前 20项 之 和 Public Sub t11() Dim m, n, t, i, s As Double s = 0 m = 1 n = 2 For i = 1 To 20 s = s + n / m t = n n = n + m m = t Next Debug.Print s End Sub 95 如何采用双重循环编程打印有规则的图形?小专题: 3. 循 环 结 构 程 序 ( 14) 例 8-13: 打 印 如 图 所 示 对 称 三 角 图 形 , 要求 第 一 行 的 *在 第 10列 。Public Sub 三 角 状 星 型 输 出 () Dim i, j As Integer For i = 1 To 4 控 制 输 出 的 行 数 Debug.Print Tab(11 - i); *; 确 定 每 行 第 一 个 *所 在 的 列 数 For j = 1 To 2 * i - 2 控 制 每 行 除 第 一 个 以 外 的 星 号 的 个 数 Debug.Print *; 输 出 后 继 的 * Next j Debug.Print 输 出 另 起 一 行 Next i End Sub * * * 98 Public Sub 三 角 状 星 型 输 出 1() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(11 - i); For j = 1 To 2 * i - 2 Debug.Print *; Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 2() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(i); *; For j = 1 To 2 * (4 - i) Debug.Print *; Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 3() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(13 - 2 * i); *; For j = 1 To 2 * i - 2 Debug.Print *; Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 4() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(11); *; For j = 1 To 2 * i - 2 Debug.Print *; Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 5() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(11 - i); Str(i); For j = 1 To 2 * i - 1 Debug.Print Str(i); Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 6() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(i); Str(5 - i); For j = 1 To 2 * (4 - i) + 1 Debug.Print Str(5 - i); Next j Next iEnd Sub Public Sub 三 角 状 星 型 输 出 7() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(i); Chr(64 + i); For j = 1 To 2 * (4 - i) Debug.Print Chr(64 + i); Next j Next i End Sub Public Sub 三 角 状 星 型 输 出 8() Dim i, j As Integer For i = 1 To 4 Debug.Print Tab(13 - i); Chr(64 + i); For j = 1 To 2 * i - 2 Debug.Print Chr(64 + i); Next j Next i End Sub 8.3 数 组 的 应 用 数 组 在 使 用 之 前 , 必 须 加 以 定 义 , 然 后 才能 使 用 该 数 组 。数组定义或 数 组 说 明 语 句 格 式 为 :DIMENSION(,.),(,.). 例 子 dimension A(N) dimension B(n,m)A(1) A(2) A(N-1) A(N)B(1,1), B(1,2), ., B(1,m)B(2,1), B(2,2), ., B(2,m)B(n,1), B(n,2), ., B(n,m) 例 子 : 排 序 例 6-21: 随 机 输 入 N个 数 据 到 数 组 , 并 对 数组 的 数 据 进 行 降 序 排 列 。 例 子 : 排 序 程 序 106 Public Sub 数 据 排 序 () Dim a(1 To 10), i, j, t As Double For i = 1 To 10 a(i) = Val(InputBox(请 输 入 数 据 到 数 组 Next i For i = 1 To 9 下 面 为 排 升 序 的 程 序 For j = i + 1 To 10 If a(i) a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i For i = 1 To 10 输 出 排 序 后 的 结 果 Debug.Print a(i); Next iEnd Sub 每 行 只 能 输 出 5个 数If i Mod 5 = 0 Then End If 随 机 数 的 问 题 Public Sub ForMaxMin() Dim i, n, max, min As Integer n = Val(InputBox(请 输 入 整 数 n) ReDim x(1 To n) As Integer Randomize For i = 1 To n x(i) = Int(940 * Rnd + 60) 产 生 60-999之 间 的 随 机 数 n个 Debug.Print Spc(5 - Len(Str(x(i); x(i); 输 出 这 些 数 ,5个 一 行 If i Mod 5 = 0 Then End If Next 107 max = x(1) min = x(1) For i = 2 To n If x(i) max Then max = x(i) End If If x(i) min Then min = x(i) End If Next Debug.Print Max=; max, Min=; minEnd Sub 总 结 : 程 序 的 设 计 根 据 输 入 的 值 , 计 算 对 应 的 函 数 根 据 多 个 条 件 , 计 算 某 一 个 值 计 算 数 列 值 、 素 数 根 据 输 入 的 值 , 求 最 大 数 、 最 小 数 根 据 输 入 的 值 , 求 和 、 计 数 , 求 平 均 值 根 据 输 入 的 值 , 利 用 数 组 排 序 打 印 规 则 图 形 108 根 据 输 入 的 值 , 计 算 对 应 的 函 数 109 根 据 多 个 条 件 , 计 算 某 一 个 值 例 6-8: 从 键 盘 随 机 输 入 成 绩 分 数 , 根 据 成绩 分 数 来 判 断 该 成 绩 属 于 优 、 良 、 中 还 是差 。 规 定 :90成 绩 100为 优 ;80成 绩 90为 良 ;60成 绩 80为 中 ;成 绩 60为 差 ;其 它 为 非 法 输 入 。 110 计 算 数 列 值 数 列 值 、 素 数 S=1+(1+2)+(1+2+3)+(1+2+x) S=1+1/2+1/3+1/n S=1!+2!+n! S= S=1,1,2,3,5,8,13,21, 求 2 200内 素 数 的 个 数 及 这 些 素 数 的 和。 111 根 据 输 入 的 值 , 求 最 大 数 、 最 小 数 输 入 N个 数 , 求 最 大 数 、 最 小 数 输 入 若 干 个 大 于 零 的 数 , 求 最 大 数 、 最 小数 随 机 产 生 (rnd)20个 200300之 间 数 , 求 最大 数 、 最 小 数 112 根 据 输 入 的 值 , 求 和 、 计 数 , 求 平 均 值 输 入 N个 数 , 求 和 、 计 数 、 求 平 均 值 输 入 若 干 个 大 于 0的 数 , 求 和 、 计 数 、 求 平均 值 随 机 产 生 (rnd)20个 200300数 , 求 和 、 求平 均 值 113 根 据 输 入 的 值 , 利 用 数 组 排 序 输 入 N个 数 , 按 升 序 排 序 输 出 输 入 10个 评 委 分 , 去 掉 最 高 分 和 最 低 分 各一 个 , 求 最 后 得 分 114 打 印 规 则 图 形 115 习 题 求 S=1!+2!+3!+5!的 值 。 S=2+4+6+100 Y=1+1 2+1 3+ +1 30 S=1+(1+2)+(1+2+3)+(1+2+3+4+100)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!