已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第4章VB控制结构 4 1顺序结构4 2选择结构4 3循环结构4 4其它辅助控制语句4 5综合应用4 6程序调试 2 4 1顺序结构 VB具有结构化程序设计的三种程序控制结构 即顺序结构 选择结构 循环结构 是程序设计的基础 1 顺序结构各语句按出现的先后次序执行 用传统流程图表示为 3 2 选择结构 传统流程图 根据条件决定执行的语句 4 3 循环结构 I 当型循环结构 II 直到型循环结构 根据条件重复执行语句 称为循环体 5 4 1顺序结构一般程序设计语言中顺序结构的语句主要 赋值语句和输入 输出语句等 在VB中赋值语句输入 输出通过 文本框控件 标签控件InputBox函数 MsgBox函数和过程Print方法等来实现 6 4 1 1赋值语句 形式 变量名 表达式 对象名 属性名 表达式功能 计算表达式的值 再将此值赋给变量或对象属性 给变量赋值和设定属性是VB编程中常见的两个任务 例如 n n 1 计数累加Text1 Text 清除文本框的内容Text1 Text 欢迎使用VB 文本框显示字符串 7 赋值语句注意点 符号有两个意义赋值号 关系运算符等号形式相同 系统会根据所处的位置判断符号的意义 赋值号左边只能是变量 不能是常量 常数符号 表达式 下面均为错误的赋值语句 Now x y 左边是表达式 函数 5 sqr s x y 左边是常量x y z 左边是表达式 8 复习与提问 三种程序控制结构 顺序结构 选择结构 循环结构 赋值语句的使用 注意与关系运算符 的区别下面程序的输出结果为 x 3y 5Printz x y A 8 B z C true D falseInputBox输入对话框的使用 格式 InputBox 提示 标题 默认值 9 复习与提问 三种程序控制结构 顺序结构 选择结构 循环结构 赋值语句的使用 注意与关系运算符 的区别下面程序的输出结果为 x 3y 5Printz x y A 8 B z C true D false 10 1 InputBox函数打开一个对话框 等待用户输入 返回字符串类型的输入值 形式 InputBox 提示 标题 默认值 x坐标位置 y坐标位置 4 1 2数据输出和输入 注意 提示项不能省略 若要多行提示 可在每行行末加回车换行vbCrLf 例4 1利用InputBox输入基本工资和营业额 按营业额的5 提成 计算实发工资并显示 11 Inputbox vbp x Input 输入 欢迎 10 x Input 输入 x Input 输入 10 x Input 输入 欢迎 12 2 MsgBox函数和MsgBox过程 变量 MsgBox 提示内容 按钮 标题 MsgBox提示内容 按钮 标题 1 提示内容 不可省略 字符表达式 即显示在对话框中的信息 1024个字符 2 常用参数的说明 1 语法 13 2 常用参数的说明 2 按钮 可选 整型表达式 缺省值为0 指定信息框中按钮数目 类型 图标类型 缺省按钮等 3 标题 可选 在对话框标题栏中显示的内容 省略此项 则将应用程序名放在标题栏中 2 MsgBox函数和MsgBox过程 MsgBox按钮设置 按钮设置值 图标设置值 缺省按钮值 按钮的值为1 64或vbOKCancel vbInformation 说明哪一个是缺省按钮Buttons的和 按钮设置值 图标设置值 缺省按钮值 0VbDefaultButton1 256VbDefaultButton2 512VbDefaultButton3 例如 Buttons的值 1 64 0或vbOKCancel vbInformation VbDefaultButton1 Buttons参数的设置 16 MsgBox所选按钮返回值 例4 2编一账号和密码输入的检验程序 当输入不正确 如账号为非数字字符 密码不正确等 显示有关信息 再输入 选讲 Msgbox vbp 17 3 Print方法 作用 在对象上输出信息 对象 Print Spc n Tab n 输出列表 对象 窗体 图形框或打印机 缺省为窗体 Spc n 函数 从当前位置起输出n个空格如 Print hello PrintSpc 4 hello Tab n 函数 从最左端开始计算的第n列Print hello PrintTab 4 hello PrintTab 5 hello Print语句尾无分号或逗号 输出后换行 18 3 Print方法 对象 Print Spc n Tab n 输出列表 分号 定位在上一个被输出的字符之后逗号 定位在下一个打印区开始处 每区14列 例4 3Print方法输出图形利用String函数显示重复字符利用循环结构 Spc Tab函数显示有规律图形 Print hello Print world Print hello Print world Print vbp 19 4 Format格式输出函数 形式 Format 表达式 格式字符串 常用数值格式化符及举例 例4 4利用Format函数显示数值 20 复习和作业 赋值语句InputBox函数MsgBox函数和过程Print方法Format格式输出函数书面作业 P94习题四1 4上机作业 P262实验B 1 3 5 8 21 4 2选择结构 为什么使用选择结构 例 输入某一学生成绩 输出该生是否及格的信息 22 4 2 1If条件语句 1 If Then语句 单分支结构 IfThen语句块 可以是一条或多条语句 EndIf或IfThen表达式 关系表达式 逻辑表达式 算术表达式 例1 IfScore 60ThenPrint 你及格了 EndIf 例2 IfScore 60ThenPrint 你及格了 Print 再接再厉 EndIf 例 IfScore 60ThenPrint 你及格了 23 1 If Then语句 单分支结构 例 已知两个数x和y 比较它们的大小 若x小于y则互换位置 使得x大于y Ifx yThent xx yy tEndIf 或者Ifx yThent x x y y t 简单If形式无EndIf时 只能是一条语句或语句间用冒号分隔 而且必须在一行上书写 24 复习与提问 1 If Then语句 单分支结构 IfThen语句块 可以是一条或多条语句 EndIf或IfThen提问 输入两个数x y 从大到小排序并输出 x val inputbox inputx y val inputbox inputy Ifx yThent x x y y tPrintx y Ifx yThent xx yy tEndIf 25 2 If Then Else语句 双分支结构 If表达式Then语句块1Else语句块2EndIf改例 判断学生成绩 及格和不及格或If表达式Then语句1Else语句2 计算分段函数 PrivateSubCommand1 Click x Val Text1 Ifx0Theny Sin x Sqr x x 1 Elsey Cos x x 3 3 xEndIfLabel3 Format y 00 EndSub 练习 见例4 6 3 If Then ElseIf语句 多分支结构 If表达式1Then语句块1ElseIf表达式2Then语句块2 ElseIf表达式nThen语句块n Else语句块n 1 EndIf 例4 7已知变量ch中存放了一个字符 判断该字符是字母字符 数字字符还是其他字符 条件怎么写 UCase ch A AndUCase ch Z 27 IfUCase ch A AndUCase ch 0 Andch 9 Then 数字字符MsgBox ch 是数字字符 Else 除上述字符以外的字符MsgBox ch 是其他字符 EndIf 说明 不管有几个分支 依次判断 当某条件满足 执行相应的语句 其余分支不再执行 若条件都不满足 且有Else子句 则执行该语句块 否则什么也不执行 ElseIf不能写成ElseIf 3 If Then ElseIf语句 多分支结构 28 评定条件为 优 Mark 90良 80 Mark 90中 70 Mark 80及 60 Mark 70不及格 Mark 60 例4 8 已知输入某课程的成绩Mark 要求显示对应五级制的评定 IfMark 90ThenPrint 优 ElseIfMark 80ThenPrint 良 ElseIfMark 70ThenPrint 中 ElseIfMark 60ThenPrint 及格 ElsePrint 不及格 EndIf 思考 1 上述条件 由小到大 给出 结果如何 并修改2 输入大于100或是小于0的情况呢Ifmark 100Ormark 90ThenPrint 优 29 If语句的嵌套 If或Else后面的语句块中又包含If语句If表达式1Then If表达式2Then EndIf EndIf 2 1 1 3 2 4 If语句的嵌套 例 已知x y z三个数 使得x y z用一个IF语句和一个嵌套的IF语句实现 X Y Z 3 Ifx yThent x x y y tIfy zThent y y z z tIfx yThent x x y y tEndIfEndIf 30 4 2 2SelectCase语句 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 表达式列表 与变量或表达式同类型 有4种形式 表达式例 A 一组用逗号分隔的枚举值2 4 6 8表达式1To表达式260To100Is关系运算符表达式Is 60 数值型或字符串表达式通常是要判断的变量 将表达式列表的值与变量或表达式的值比较若相等则执行其下面的语句块通常是变量允许取的值 31 4 2 2SelectCase语句 例4 7 已知变量ch中存放一字符 判断该字符是字母字符 数字字符还是其他字符 并做出相应的显示 Ifch a andch A andch 0 andch 9 ThenPrintch 是数字字符 ElsePrintch 是其他字符 EndIf SelectCaseCasePrintch 是字母 CasePrintch 是数字 CaseElsePrintch 是其他 EndSelect ch a To z A To Z 0 To 9 32 SelectCaseMarkCaseIs 90Print 优 Case80To89Print 良 Case70To79Print 中 Case60To70Print 及格 CaseElsePrint 不及格 EndSelect 例4 8 已知输入某课程的成绩Mark 要求显示对应五级制的评定 I int Mark 10 SelectCaseICase9Print 优 Case8Print 良 Case7Print 中 Case6Print 及格 CaseElsePrint 不及格 EndSelect IfMark 90ThenPrint 优 ElseIfMark 80ThenPrint 良 ElseIfMark 70ThenPrint 中 ElseIfMark 60ThenPrint 及格 ElsePrint 不及格 EndIf 33 例4 9判断坐标点 x y 落在哪个象限 代码一Ifx 0Andy 0ThenMsgBox 在第一象限 ElseIfx0ThenMsgBox 在第二象限 ElseIfx0Andy 0ThenMsgBox 在第四象限 EndIf 代码二SelectCasex yCasex 0Andy 0MsgBox 在第一象限 Casex0MsgBox 在第二象限 Casex0Andy 0MsgBox 在第四象限 EndSelect 代码二错误 1 SelectCase后不能出现多个变量2 Case后不能出现变量及有关运算符 34 4 2 3条件函数 IIF函数IIF 表达式1 表达式2 表达式3 先判断表达式1的值 当其值为true时 函数返回表达式2的值 否则返回表达式3的值 例如 求x y中较大的数 放入Tmax变量中Tmax iif x y x y 等价于ifx ythenTmax xelseTmax y 35 4 2 3条件函数 choose函数choose 整数表达式 选项列表 根据整数表达式的值 判断返回选项列表中第几个的值 例4 10 根据当前日期 显示今天是星期几t choose weekday now 星期日 星期一 星期二 星期三 星期四 星期五 星期六 Msgbox 今天是 now t 36 复习和作业 If条件语句1 If Then语句 单分支结构 2 If Then Else语句 双分支结构 3 If Then ElseIf语句 多分支结构 4 If语句的嵌套SelectCase语句书面作业 P94习题四5 8上机作业 P265实验C 1 3 5 7 8 4 3循环结构 为什么使用循环结构 例如 求50个学生的平均成绩VB中提供了主要两类循环语句 For循环语句 一般已知循环次数 Do条件型循环语句 一般未知循环次数 成立 输入一个学生成绩相加运算 未到50人 不成立 求平均值 38 4 3 1For循环语句 For循环语句用于控制循环次数预知的循环结构 For循环变量 初值To终值 Step步长 语句块 ExitFor 语句块Next循环变量循环变量必须为数值型 循环次数 For循环语句 循环流程 1 循环变量被赋初值 它仅被赋值一次 2 判断循环变量是否在终值内 如果是 执行循环体 如果否 结束循环 执行Next的下一语句 3 循环变量加步长 转到第 2 步 继续循环 For循环变量 初值To终值 Step步长 语句块 ExitFor 语句块Next循环变量 40 例4 11计算1 100的奇数和 Dimi sum sum 0Fori 1To100Step2sum sum iNextiPrintsum 0 sum 1 i 1 3 4 5 9 99 2500 101 41 修改例4 11 若省略步长 则计算的是 若写成Fori 100To1 步长该怎样写 才能得到正确运行结果 若求1 2 n n从文本框输入 怎样改动程序 求n 的值 若求2 4 6 100怎样改动程序 例4 12将可打印的ASCII码制成表格输出 选讲 42 4 下列程序段的执行结果为a 6Fork 1To0a a kNextkPrintk aA 16B 116C 16D 1121 练习 for循环的使用 读程序写结果 1 下面一段程序的运行结果K 1FORJ 1TO5K K JNEXTJPRINTK k 1第1次循环J 1k 1 1 2第2次循环J 2k 2 2 4第3次循环J 3k 4 3 7第4次循环J 4k 7 4 11第5次循环J 5k 11 5 16J 6 16 3 下面一段程序的运行结果K 1FORJ 1TO5K K JPRINTKNEXTJ 2 下面一段程序的运行结果FORJ 1TO5K 1K K JNEXTJPRINTK 6 43 作业 书面作业 习题四9 12上机作业 实验D1 9 44 上机问题 PrivateSubText2 LostFocus a Val Text1 b Val Text2 x 4 a b 2y b 2 a 2Ifb 2b 2ThenMsgBox 输入的总脚数必须为偶数 警告 Text2 Text2 SetFocusElseIfb 2 aThenMsgBox 脚数必须 2倍的头数 请重新输入 警告 Text2 Text2 SetFocusElseIfx 0Ory 0ThenMsgBox 数据输入有误 计算结果为负值 请重新输入 警告 Text1 Text2 Text1 SetFocusEndIfEndSub 鸡兔同笼问题 设总只数为a 总脚数为b 求鸡只数x 兔只数y x y m 2 x 4 y n 使用selectcase语句作计算器 45 补充 SelectCase语句 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 表达式列表 与变量或表达式同类型 有4种形式 表达式例 A 一组用逗号分隔的枚举值2 4 6 8表达式1To表达式260To100Is关系运算符表达式Is 60 数值型或字符串表达式通常是要判断的变量 将表达式列表的值与变量或表达式的值比较若相等则执行其下面的语句块通常是变量允许取的值 46 练习 窗体上画名称为Command1的命令按钮和两分别为Text1 Text2的文本框 然后编如下事件过程 PrivateSubCommand1 Click n Val Text1 Text SelectCasenCase10To20 x 10Case2 4 6x 20CaseIs 10 x 30Case10 x 40EndSelectText2 Text xEndSub Text1中输入10 Text2中显示的是 Text1中输入4 Text2中显示的是 Text1中输入5 Text2中显示的是 10 20 30 使用selectcase语句作计算器 47 例4 11计算1 100的奇数和 Dimi sum sum 0Fori 1To100Step2sum sum iNextiPrintsum sum 0i 1 100sum 0 1 1i 1 2 3 100sum 1 3 4i 3 2 5 100sum 4 5 9 i 99 100sum 99 2500i 101 若省略步长 则计算的是 若写成Fori 99To1 步长该怎样写 才能得到正确运行结果 若求1 2 n n从文本框输入 怎样改动程序 求n 的值 若求2 4 6 100怎样改动程序 Step1 Step2 step 2 4 下列程序段的执行结果为a 6Fork 1To0a a kNextkPrintk aA 16B 116C 16D 1121 提问 for循环的使用 读程序写结果 1 下面一段程序的运行结果K 1FORJ 1TO5K K JNEXTJPRINTK k 1第1次循环J 1k 1 1 2第2次循环J 2k 2 2 4第3次循环J 3k 4 3 7第4次循环J 4k 7 4 11第5次循环J 5k 11 5 16J 6 16 3 下面一段程序的运行结果k 1Forj 2To7 5Step4 5k k jPrintkNextj 2 下面一段程序的运行结果FORJ 1TO5K 1K K JNEXTJPRINTK 6 k 1第1次循环J 2k 1 2 1第2次循环J 2 4 5 2 5k 1 2 5 1 5第3次循环J 2 5 4 5 7k 1 5 7 8 5J 7 4 5 11 5 7 5 49 练习 计算1 1000内能被3和8整除的数的个数以及和 Dimss 50 4 3 2Do Loop循环语句 Do循环用于控制循环次数未知的循环结构 形式1 Do While Until 语句块 ExitDo语句块 Loop 形式2 Do语句块 ExitDo语句块 Loop While Until 51 DoWhile Loop流程 DoWhile语句块 ExitDo语句块 Loop 52 Do Loopwhile流程 Do语句块 ExitDo语句块 LoopWhile 53 4 3 2Do Loop循环语句 形式1 Do While Until 语句块 ExitDo语句块 Loop形式1为先判断后执行 有可能一次也不执行 形式2为先执行后判断 至少执行一次 选While时 当条件为真时执行循环体 选Until时 当条件为假时执行循环体 形式2 Do语句块 ExitDo语句块 Loop While Until 54 DimI sAsIntegerForI 1To5s s INextIPrintI s 例12 求1 2 3 4 5的和 DimI s I 1DoWhileLoopPrintI s s s I I 5 I I 1 I 10 1 循环体执行了几次 2 没有I 1会怎样 3 将Print语句移到Loop的前面结果怎样 4 I先赋值为10 结果如何 Do循环例题 55 解此问题两种方法 1 可根据公式 2 可利用循环求得 例4 13我国有13亿人口 按人口年增长0 8 计算 多少年后我国人口超过26亿 56 分析 nx第1年 x 13 1 008 13 104 第2年 x 13 104 1 008 13 208832 一直到人口达到或超过26亿为止 用循环求 循环条件 x x 1 008 x 26 作业 用Do Loop循环修改SyD 3 57 例 计算s 1 2 100 的值 用For语句和Do loop语句分别计算 Dimi t t 1Fori 1To100t t iNextiPrint 1 2 100 s 计算t 100 s 0 s s t s t 1i 1t 1 1 1 1 i 2t 1 2 2 2 i 3t 1 2 3 6 3 i 4t 1 2 3 4 24 4 i 5t 1 2 3 4 5 120 5 i 6 Dimi t s s 0t 1i 1DoWhilei 100t t is s ti i 1LoopPrint 1 2 100 s 58 练习 一张厚度为0 0005米的纸 对折多少次能达到8848米 Dimh n 米 59 复习和作业 For循环语句Do Loop循环语句书面作业 P94习题四9 10 11上机作业 P265实验D 1 2 4 5 60 本节学习任务 解答上机作业复习与练习选择结构复习与练习for循环 do loop循环学习多重循环综合应用讲解与练习 61 上机问题 PrivateSubText2 LostFocus a Val Text1 b Val Text2 x 4 a b 2y b 2 a 2Ifb 2b 2ThenMsgBox 输入的总脚数必须为偶数 警告 Text2 Text2 SetFocusElseIfb 2 aThenMsgBox 脚数必须 2倍的头数 请重新输入 警告 Text2 Text2 SetFocusElseIfx 0Ory 0ThenMsgBox 数据输入有误 计算结果为负值 请重新输入 警告 Text1 Text2 Text1 SetFocusEndIfEndSub 鸡兔同笼问题 设总只数为a 总脚数为b 求鸡只数x 兔只数y x y m 2 x 4 y n 使用selectcase语句作计算器 62 补充 SelectCase语句 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 表达式列表 与变量或表达式同类型 有4种形式 表达式例 A 一组用逗号分隔的枚举值2 4 6 8表达式1To表达式260To100Is关系运算符表达式Is 60 数值型或字符串表达式通常是要判断的变量 将表达式列表的值与变量或表达式的值比较若相等则执行其下面的语句块通常是变量允许取的值 63 练习 窗体上画名称为Command1的命令按钮和两分别为Text1 Text2的文本框 然后编如下事件过程 PrivateSubCommand1 Click n Val Text1 Text SelectCasenCase10To20 x 10Case2 4 6x 20CaseIs 10 x 30Case10 x 40EndSelectText2 Text xEndSub Text1中输入10 Text2中显示的是 Text1中输入4 Text2中显示的是 Text1中输入5 Text2中显示的是 10 20 30 使用selectcase语句作计算器 64 本节学习任务 解答上机作业复习与练习选择结构复习与练习for循环 do loop循环学习多重循环综合应用讲解与练习 65 IIF Choose函数的使用 使用iif函数求三个数x y z中的最大值存入max变量中 max iif x y x y max iif max z max z 使用selectcase语句和choose函数 输入一个数 1 7 用英文显示对应的星期几 x inputbox 请输入一个数 y choose x monday turseday thursday 星期四 wensday saturday sunday printy x y max z max SelectCasexCase1y monday Case2y tuseday Case7y sunday EndSelect 66 1 下面一段程序的运行结果FORJ 1TO5K 1K K JNEXTJPRINTK 提问 for循环的使用 读程序写结果 2 下面一段程序的运行结果k 1Forj 2To7 5Step4 5k k jPrintkNextj 6 第1次循环J 1k 1k 1 1 2第2次循环J 2k 1k 1 2 3第3次循环J 3k 1k 1 3 4第4次循环J 4k 1k 1 4 5第5次循环J 5k 1k 1 5 6J 6 5 k 1第1次循环J 2k 1 2 1第2次循环J 2 4 5 2 5k 1 2 5 1 5第3次循环J 2 5 4 5 7k 1 5 7 8 5J 7 4 5 11 5 7 5 67 4 3 2Do Loop循环语句 形式1 Do While Until 语句块 ExitDo语句块 Loop形式1为先判断后执行 有可能一次也不执行 形式2为先执行后判断 至少执行一次 选While时 当条件为真时执行循环体 选Until时 当条件为假时执行循环体 形式2 Do语句块 ExitDo语句块 Loop While Until 68 DimI sAsIntegerForI 1To5s s INextIPrintI s 例12 求1 2 3 4 5的和 DimI s I 1DoWhileLoopPrintI s s s I I 5 I I 1 Do循环例题 69 例 计算s 1 2 100 的值 用For语句和Do loop语句分别计算 Dimi t t 1Fori 1To100t t iNextiPrint 1 2 100 s 计算t 100 s 0 s s t s t 1i 1t 1 1 1 1 i 2t 1 2 2 2 i 3t 1 2 3 6 3 i 4t 1 2 3 4 24 4 i 5t 1 2 3 4 5 120 5 i 6 Dimi t s s 0t 1i 1DoWhilei 100t t is s ti i 1LoopPrint 1 2 100 s 70 练习 一张厚度为0 0005米的纸 对折多少次能达到8848米 Dimh n 米 71 提问 do loop循环的使用 读程序写结果 PrivateSubCommand1 Click Dimx n 提示 chr 48 0 n 10DoWhilen0a nMod2n n 2x Chr 48 a xPrintxLoopEndSub 72 提问 do loop循环的使用 读程序写结果 PrivateSubCommand2 Click Dimx y z x 6 y 4z x yDoUntilx yIfx yThenx x yElsey y xLoopPrintx z xEndSub 4 3 3循环的嵌套 循环嵌套对For循环语句和Do Loop语句均适用 是指在一个循环体内又包含了一个完整的循环结构 74 例4 14打印九九乘法表 思考 打印下三角或上三角程序如何改动 Fori 1To9Forj 1To9Print NextjPrintNexti Tab j 1 9 1 i 1i 2i 3i 4i 5i 6i 7i 8i 9 j 1j 2j 3j 4j 5j 6j 7j 8j 9 For多重 vbp 75 4 4其他辅助控制语句 4 4 1GoTo语句 不讲 无条件地转移到标号或行号指定的那行语句 GoTo 标号 行号 4 4 2退出和结束语句 1 Exit语句VB中有多种形式的Exit语句 用于退出某种控制结构的执行 Exit的形式如下 ExitFor ExitDo ExitSub ExitFunction2 End语句独立的End语句用于结束一个程序的运行 它可以放在任何事件过程中 76 PrivateSubCommand1 Click s 0Forn 1To100 估计的n最大值为100s s n 2Ifs 100ThenExitForNextnPrintn 1EndSub 练习 设s 12 22 32 n2 求s小于100的最大的n s 100 n 2 n 1 ExitFor 77 4 5综合应用 例4 15判断在文本框中输入的数m 是否为素数 素数 大于等于2的整数 除1和本身以外 不能被其他任何整数整除的数 根据此定义 判别某数m是否为素数最简单的方法就是依次用i 2 m 1去除 只要有一个数能整除m m就不是素数 否则m是素数 如 判断13是不是素数 用循环 13依次除以2 12 没有一个数能被13整除 则13是素数 如 判断15是不是素数 用循环 15依次除以2 14 当除到3时发现3能被15整除 则结论15不是素数 3以后的数不用再除了 要求一定范围内的素数 只要将m作为外循环体变量 78 例4 15 PrivateSubCommand1 Click Dimi m TagAsBooleanm Val Text1 Tag True 假定是素数Fori 2Tom 1IfmModi 0ThenTag False m能被i整除 m不是素数NextiIfTagThenPicture1 Printm 是素数 m不能被i 2 m 1整除 m是素数ElsePicture1 Printm 不是素数 EndIfEndSub 79 Form 2To100Nextm 例 输出100以内的所有素数 Fori 2Tom 1IfmModi 0ThenFlag False ExitforEndIfNexti Flag True IfFlag TrueThenPrintm 80 4 5综合应用 例4 16由计算机自动产生四则运算题 并能判断答案的正确性 设计思路 1 通过随机函数Rnd产生试题的操作数和运算符 运算符 可对应编号1 4 产生表达式通过Form Load事件过程 2 需要有一个全局变量保存四则运算题的正确答案 用户答案可通过文本框输入 3 本题主要将随机函数 If语句 Select语句综合在一起使用 81 OptionExplicitDimNum1 Num2 两个操作数DimSExp 存放产生的算术表达式DimResult 计算机计算结果DimNOk NError 统计计算正确与错误数 例4 16 82 PrivateSubForm Load 通过产生随机数生成表达式DimNOp OpAsString 1 NOp操作符代码 操作符Randomize 初始化随机数生成器Num1 Int 10 Rnd 1 产生1 10之间的操作数Num2 Int 10 Rnd 1 产生1 10之间的操作数NOp Int 4 Rnd 1 产生1 4之间的操作代码SelectCaseNOpCase1Op Result Num1 Num2Case2Op Result Num1 Num2Case3Op Result Num1 Num2Case4Op Result Num1 Num2EndSelectSExp Num1 Op Num2 Label1 SExpEndSub 例4 16 83 PrivateSubText1 KeyPress KeyAsciiAsInteger IfKeyAscii 13ThenIfVal Text1 ResultThenPicture1 PrintSExp Text1 Tab 15 计算正确NOk NOk 1ElsePicture1 PrintSExp Text1 Tab 15 计算错误NError NError 1EndIfText1 下一个表达式生成Text1 SetFocusForm LoadEndIfEndSub 例4 16 84 PrivateSubCommand1 Click Label1 Picture1 Print Picture1 Print 一共计算 计算错误NError NError 1EndIfText1 下一个表达式生成Text1 SetFocusForm LoadEndSub 例4 16 85 计算s 1 1 2 1 4 1 7 1 11 1 16 1 22 1 29 分析 x 1n 1s 0DoWhile1 x 0 0001s s 1 xx x nn n 1LoopPrint 计算的结果是 s 上机作业解答 n 12345 x 124711 86 求s a aa aaa aa aaa n个a 其中a为随机产生的一个 1 9 正整数 n为随机产生的一个 5 10 正整数 Randomizea Int Rnd 9 1 n Int Rnd 6 5 t 0s 0Printa nFori 1Tont t 10 as s tPrintt NextiPrint 和为 s 87 显示所有的水仙花数 水仙花数是指一个三位数 其各位数字立方和等该数本身 Fori 100To999a iMod10 个位数b i 10Mod10 个位数c i 100 个位数Ifi a 3 b 3 c 3ThenPrintiNexti 88 4 5综合应用 最大公约数 例4 17用辗转相除法求两自然数的最大公约数 求最大公约数的算法思想 1 对于两数m n 使得m n 2 m除以n得余数r Ifm0 m nn rr mmodnLoopMsgBox 最大公约数 n 3 若r 0 则n为最大公约数 结束 否则执行 4 4 m n n r 再重复执行 2 mnr6141462620 例 m 14 n 6的最大公约数 89 PrivateSubForm Click m Val Text1 n Val Text2 m1 m n1 nIfm0m nn rr mModnLoopPrint 最大公约数为 nPrint 最小公倍数为 m1 n1 nEndSub 例4 17 90 4 5综合应用 级数求和 例4 18求自然对数e的近似值 其误差小于0 00001 近似公式 分析 本例涉及到程序设计中两个重要运算 累加 连乘i 累加 在原有和的基础上再加一个数 连乘 在原有积的基础上再乘以一个数 该题先求i 再将1 i 进行累加 循环次数未知 可先设置一个次数很大的值 然后在循环体内判断是否到达精度 也可用DoWhile来实现 91 PrivateSubForm Click Dimi teeEndSub 例4 18 92 4 5综合应用 试凑法 例4 19百元买百鸡 假定小鸡每只5角 公鸡每只2元 母鸡每只3元 编程求解购鸡方案 分析 1 设母鸡 公鸡 小鸡各为x y z 列出方程为 x y z 1003 x 2 y 0 5 z 100三个未知数 两个方程 此题求若干个整数解 2 计算机求解此类问题 采用试凑法 也称穷举法 来实现 即将可能出现的各种情况一一罗列测试 判断是否满足条件 采用循环结构来实现 93 PrivateSubF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 患者价值导向的成本管控模式探索
- 胃癌围手术期健康教育与出院指导
- 患者流量预测在医疗资源整合中的实践
- 患者流量预测模型在医联体中的实践
- 慢性膀胱炎患者尿液颜色观察指南
- 痄腮辨证施护中医护理常规
- 医学因果代谢推断专员流行病学实践教学课件
- 医学炎症性肠病患者管理案例教学课件
- 儿童患者术后护理特殊关注点
- 新时代护理伦理的“初心”:回归人文关怀的职业使命
- 水文比拟法估算年径流量举例 (1)讲解
- 水稻育种第6节-分子标记辅助选择和转基因育种-2012年课件
- 信息技术单招考试重点知识点
- 低压柜试验报告
- 天津高考英语词汇3500
- (土壤学教学课件)第一章-土壤矿物质
- 外籍人员基本情况登记表
- 水尺计重的资料
- 中小学(中职学校)学生餐饮保障突出问题台账
- GB/T 3672.1-2002橡胶制品的公差第1部分:尺寸公差
- 黑龙江八一农垦大学-渠文军-答辩通用PPT模板
评论
0/150
提交评论