




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 2 3 VisualBasicProgramming 算法基础及VB的基本语句第4章 算法及程序设计基础赋值语句及InputBox MsgBox函数分支结构与分支结构语句循环结构与循环结构语句程序示例PointstoRemember 2020 2 3 VisualBasicProgramming 算法及程序设计基础 设计程序前 根据实际问题的特点和需求 同时考虑到计算机的工作特性 确定解决该问题所需要的方法和步骤称为 算法设计 算法的概念算法示例算法的特征算法的描述基本算法结构 4 1 2020 2 3 VisualBasicProgramming 算法的概念 广义而言 算法就是解决某个问题或处理某件事的方法和步骤 狭义而言 算法是专指用计算机解决某一问题的方法和步骤 计算机算法可以分为两大类 一类是数值计算算法 另一类是非数值计算算法 研究解决各种特定类型问题的算法已成为一个称为 计算方法 的专门学科 对于同一问题的求解 往往可以设计出多种不同的算法 一般而言 评价一个算法的好坏优劣 主要看算法是否正确 运行的效率及占用系统资源的多少等 2020 2 3 VisualBasicProgramming 算法示例 算法1算法2 2020 2 3 VisualBasicProgramming 算法1求两个自然数的最大公约数的算法 S1 输入两个自然数M N S2 求M除以N的余数R S3 使M N 即用N代换M S4 使N R 即用R代换N S5 若R 0 则重复执行S2 S3 S4 循环 否则转S6 S6 输出M M即为M和N的最大公约数 本算法是由古希腊数学家欧几里德提出的 所以又称为 欧几里德算法 算法中的S1 S2 S3 叫作算法步骤 每个算法步骤明确规定所要进行的操作及处理对象的特性 M N为自然数 欧几里德算法是求两个自然数最大公约数的经典算法 2020 2 3 VisualBasicProgramming 算法2在N个字符数据集合中 查找有无特定的字符串存在 S1 输入字符数据的个数N和要查找的数据S S2 使I 1 I用于计数 S3 从字符数据集合中读取一个数据X S4 若X S 输出 找到S 的信息 算法结束 否则转S5 S5 使I I 1 计数器计数 S6 若I N 则重复执行S3 S4 S5 循环 否则转S7 S7 输出 找不到S 信息 算法结束 本算法也称为 顺序查找算法 也是在处理非数值信息时最常用的一种算法 2020 2 3 VisualBasicProgramming 算法的特征 从上述算法的示例可以看出 作为算法 应具备以下特征 1 确定性 算法的每个步骤都应确切无误 没有歧义性 2 可行性 算法的每个步骤都必须是计算机能够有效执行 可以实现的 并可得到确定的结果 3 有穷性 一个算法包含的步骤必须是有限的 并在一个合理的时间限度内可以执行完毕 4 输入性 执行算法时可以有多个输入 但也可以没有输入 0个输入 5 输出性 一个算法必须有1个或多个输出 2020 2 3 VisualBasicProgramming 算法的描述 算法可以采用多种方式来表示 比如使用人们的自然语言像英语 汉语等来描述 使用某种代码符号来描述或者使用特定的图形来描述等等 由于图形的描述方法既形象 又直观 所以得到广泛的应用 用于描述算法的图形使用较多的是所谓的流程框图 简称流程图 它是使用规定的图形符号来描述算法的 流程图使用的图形符号见表4 1 图4 1和图4 2分别是上一节两个算法示例的流程图 图框内的文字用于说明具体的操作内容 显而易见 使用流程图比使用自然语言描述算法优越地多 2020 2 3 VisualBasicProgramming 2020 2 3 VisualBasicProgramming 2020 2 3 VisualBasicProgramming 基本算法结构 结构化程序设计方法 的核心是规定了算法的三种基本结构 顺序结构 分支结构和循环结构 三种基本结构的共同特点是 1 只有单一的入口和单一的出口 2 结构中的每个部分都有执行到的可能 3 结构内不存在永不终止的死循环 2020 2 3 VisualBasicProgramming 顺序结构 2020 2 3 VisualBasicProgramming 分支结构 2020 2 3 VisualBasicProgramming 循环结构 2020 2 3 VisualBasicProgramming 赋值语句及InputBox MsgBox函数 赋值语句InputBox函数MsgBox函数 4 2 2020 2 3 VisualBasicProgramming 赋值语句 赋值语句的形式不同数据类型数据的赋值图4 4一个说明不同数据类型数据赋值方式的简单程序示例 4 2 1 2020 2 3 VisualBasicProgramming 赋值语句的形式 赋值语句的一般形式是 其中var表示某个变量名或属性名 当系统执行一个赋值语句时 将先求出赋值操作符 右边表达式的值 然后再把该值保存到 左边的变量中 这就是所谓的 赋值 使用赋值语句可使变量或某个对象的某属性获得一个新值 示例使用赋值语句还可以获取一个对象返回的当前属性值 例如 var object propety var 2020 2 3 VisualBasicProgramming 赋值语句示例 x Thisisaflower number 72Lable1 Text Filenameis Text Font Size 12 改变字号Y a b 2 2020 2 3 VisualBasicProgramming 不同数据类型数据的赋值 2020 2 3 VisualBasicProgramming 图4 4一个简单程序示例 2020 2 3 VisualBasicProgramming InputBox函数 InputBox函数用来接受用户通过键盘输入的数据 InputBox函数使用的形式是 式中 v可以是变体变量或字符串型变量 也可以是数值型变量 在调用InputBox函数时 屏幕上将产生一个带有提示信息的对话框 用户输入数据后按回车键 即可把输入的数据赋给变量 按Esc 键或单击 Cancel 按钮 则返回0值或空串 InputBox函数应用示例 4 2 2 v InputBox Prompt title defsult x y helpfile context 2020 2 3 VisualBasicProgramming InputBox函数的各个参数的意义 Prompt 提示用的文字信息 title 对话框标题 字符型 缺省时 为空白 default 显示在用户编辑框中的缺省值 缺省时 返回空值 x y 对话框在屏幕上显示时的位置 单位是特维 x y 是对话框左上角点的坐标 helpfile context 帮助文件名及帮助主题号 有本选项时 在对话框中自动增加一个帮助按钮 2020 2 3 VisualBasicProgramming InputBox函数应用示例 PrivateSubCmd1 Click DimN studentAsStringN student InputBox 请输入你的学号 程序示例 230001 IfLeft N student 2 23 ThenPrint 你是工程系的学生 ElsePrint 你不是工程系的学生 EndIfEndSub 2020 2 3 VisualBasicProgramming 2020 2 3 VisualBasicProgramming MsgBox函数 MsgBox函数用于向用户发布提示信息 并要求用户作出必要的响应 MsgBox函数的形式是 MsgBox函数根据用户选择单击的按钮而返回不同的值 如表4 3MsgBox函数有以下几种使用方法 4 2 3 MsgBox Prompt button title helpfile context 2020 2 3 VisualBasicProgramming 式中各个参数的意义 Prompt 提示用的文字信息 button 这是一个由4个数值常量组成的式子 形式为c1 c2 c3 c4 用于决定信息框中按钮的个数和类型以及出现在信息框中的图标类型 各个参量的可选值及其功能如表4 2 a 表4 2 b 表4 2 c 表4 2 d 0值为缺省值 title 信息框标题 字符型 缺省时 为空白 helpfile context 帮助文件名及帮助主题号 有本选项时 在信息框中自动增加一个帮助按钮 2020 2 3 VisualBasicProgramming 表4 2 a 2020 2 3 VisualBasicProgramming 表4 2 b 2020 2 3 VisualBasicProgramming 表4 2 c 2020 2 3 VisualBasicProgramming 表4 2 d 2020 2 3 VisualBasicProgramming 表4 3 2020 2 3 VisualBasicProgramming MsgBox函数的几种使用方法 MsgBox函数有以下几种使用方法 使用赋值语句 如 ans MsgBox 非法数据 48 提示信息 使用Print方法 例如 PrintMsgBox 非法数据 48 提示信息 也可以把它等同为一个方法使用 如 MsgBox 非法数据 48 提示信息 三种方法在执行时都可以获得如图所示画面 但第二 三种用法将得不到用户点击不同按钮的返回值 或没有返回值 2020 2 3 VisualBasicProgramming 分支结构与分支结构语句 分支结构是程序的基本算法结构之一 VB提供了实现分支结构的相关语句 If Then Else EndIf结构语句Select Case EndSelect结构语句 4 3 2020 2 3 VisualBasicProgramming If Then Else EndIf结构语句 该结构语句的一般形式该结构的变形1该结构的变形2 例4 1 已知三角形三个边的长度 设计求此三角形面积的程序 例4 2 一个有多个分支的示例程序 4 3 1 2020 2 3 VisualBasicProgramming If结构语句的一般形式 IfeThen A组语句 Else B组语句 EndIf 2020 2 3 VisualBasicProgramming If结构的变形1 2020 2 3 VisualBasicProgramming If结构的变形2 2020 2 3 VisualBasicProgramming 当a b c且a c b且b c a时 三角形存在 其面积式中 p a b c 2 例4 1 已知三角形三个边的长度 设计求此三角形面积的程序 算法流程图程序代码 2020 2 3 VisualBasicProgramming 例4 1 算法流程图 2020 2 3 VisualBasicProgramming 例4 2 一个有多个分支的示例程序 程序代码 2020 2 3 VisualBasicProgramming 例4 2 程序代码 PrivateSubCommand1 Click DimxAsIntegerx Val Text1 Text Ifx 1ThenText2 Text 这是小于1的数 ElseIfx 10ThenText2 Text 这是1到10之间的数 ElseText2 Text 这是大于10的数 EndIfEndSub 2020 2 3 VisualBasicProgramming Select Case EndSelect结构语句 本结构语句提供了实现多分支结构的另一种方法 它的一般形式是 例4 2的程序代码也可使用本结构语句实现 4 3 2 SelectCaseeCasec1A组语句Casec2B组语句 CaseElsen组语句EndSelect e称为测试表达式 可以是算术表达式或字符表达式 c1 c2 是测试项 1 具体取值 如 3 5 7 2等 当测试表达式是算术表达式时 2 连续的数据范围 如 8To20 BToH等 3 满足某个判决条件 如 Is 20 Is P 等 2020 2 3 VisualBasicProgramming 例4 2的程序代码使用本结构语句实现 PrivateSubCommand1 Click DimxAsIntegerx Val text1 Text SelectCasexCaseIs 1Text2 text 这是小于1的数 Case1To10Text2 Text 这是1到10之间的数 CaseElseText2 Text 这是大于10的数 EndSelectEndSub 2020 2 3 VisualBasicProgramming 循环结构与循环结构语句 循环结构也是程序的基本算法结构 所谓循环 就是重复地执行某些操作 当型循环和直到型循的不同执行方式Do Loop循环结构语句For Next循环结构语句循环嵌套 4 4 2020 2 3 VisualBasicProgramming 当型循环和直到型循的不同执行方式 当型循环的不同执行方式直到型循环的不同执行方式 2020 2 3 VisualBasicProgramming Do Loop循环结构语句 Do Loop循环结构语句的四种形式ExitDo语句 例4 3 求两个自然数的最大公约数程序 4 4 1 1 DoWhilee2 Do ExitDo ExitDo LoopLoopWhilee3 DoUntile4 Do ExitDo ExitDo LoopLoopUntile 2020 2 3 VisualBasicProgramming ExitDo语句 循环体中 可以包括一条或多条ExitDo语句 如果程序执行到ExitDo语句时 就会直接退出循环 转而执行Loop语句的下一条语句 ExitDo语句最常用的形式是与If Then语句相结合 即 IfeThenExitDo在执行循环体时 如果条件e被满足 则执行ExitDo语句直接退出循环 2020 2 3 VisualBasicProgramming 例4 3 求两个自然数的最大公约数程序 本问题的算法采用欧几里德算法求解由于输入的数据M和N要求是自然数 所以在程序中应加入对数据的合法性进行检验的部分 考虑到程序的应用范围 数据类型可选用长整型 本例中使用了求余 数 运算符Mod 使用Mod运算符时 切记应在它的前后各加一个空格程序代码 2020 2 3 VisualBasicProgramming For Next循环结构语句 如果事先已知循环次数 则可使用For Next循环结构语句 它的一般形式是 For Next循环结构语句的执行方式注意 例4 4 例4 5 4 4 2 Forv e1Toe2 Stepe3 ExitFor Nextv 式中 v是循环控制变量 应为整型或单精度型 e1 e2和e3是控制循环的参数 e1为初值 e2为终值 e3为步长 当e3 1时 stepe3部分可省略 2020 2 3 VisualBasicProgramming For Next循环结构语句的执行方式 计算e1 e2和e3的值 给v赋初值 判v的值是否超过e2 即当e3 0时 判v e2否 当e3 0时 判v e2否 如果未超过 则执行循环体 如果超过了 则退出循环 执行Next语句 v增加一个步长 即执行v v e3 转而执行判别操作 2020 2 3 VisualBasicProgramming 注意 循环参数e1 e2和e3中包含的变量如果在循环体内被改变 不会影响循环的执行次数 但循环控制变量若在循环体内被重新赋值 则循环次数有可能发生变化 十进制整数可准确转换为二进制数形式 而带小数点的十进制数在转换为单 双 精度数时则多半存在数制转换误差 若使用非整型数做循环控制变量和循环参数 那么循环次数就有可能发生意想不到的变化 2020 2 3 VisualBasicProgramming 例4 4 求1到10这十个数的和与连乘积 求若干个数之和或连乘积 可采用 累加 或 累乘 法 累加法是设置一个存放和数的变量 称为 累加器 初始值为0 累加过程通过循环实现 累乘的算法设置的是 累乘器 初始值为1 在循环体内 乘数应与累乘器相乘 在求乘积时 应注意乘积的大小 设置适当的数据类型 程序代码 2020 2 3 VisualBasicProgramming 例4 5 大写字母逆序输出的程序 从一个字符串中找出符合要求的字符是采取对字符串的每一个字符逐个筛选的方法实现的 本例利用Mid函数可以从字符串中提取出单个字符 利用循环控制处理过程 循环的终值使用Len函数 对于符合要求的字符采用连接运算组成新字符串 逆序输出则是通过从后往前逐个提取字符再连接 程序代码 2020 2 3 VisualBasicProgramming 循环嵌套 无论是Do Loop循环 还是For Next循环 都可以在大循环中套小循环 必须注意 小循环一定要完整地被包含在大循环之内 而不得相互交叉 PrivateSubForm Click Fori 1To9Forj 1To9Printi j i j NextjPrintNextiEndSub执行本程序 窗体上将显示九九乘法表 例4 6 一个模拟摇奖的程序 4 4 3 2020 2 3 VisualBasicProgramming 例4 6 一个模拟摇奖的程序 设有100个人中签 要从中找出中奖人 由机器自动随机产生1000个1 100间的数据 第1000个随机数据即为中奖人的号码 问题的关键是如何产生1 100之间的随机整数 VB提供了一个可以产生0 1之间均匀分布的随机数的随机函数Rnd x 为了生成某个范围内的随机整数 可用以下公式 Int ub lb 1 Rnd lb 这里 ub lb分别是随机整数范围的上下限 程序代码 2020 2 3 VisualBasicProgramming 随机函数Rnd x 其中 可选的x参数是Single或任何有效的数值表达式如果使用参数且参数x0 则得到随机序列的下一个随机数 参数x 0 则返回上一次生成的随机数 不使用x的结果与x 0相同 对最初给定的种子都会生成相同的数列 因为每一次调用Rnd函数都用数列中的前一个数作为下一个数的种子 调用Rnd之前 可先使用无参数的Randomize语句初始化随机数生成器 该生成器具有从系统计时器获得到的种子 2020 2 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三医监管培训课件
- 面试实战技巧精 编:行业热点与面试题库
- 法律行业面试题库精 编:徐州律协面试题库全解析
- 列车长面试真题及答案解析
- 女儿升学宴家长简短致辞
- 小儿荨麻疹护理课件
- 大学老师评价学生的评语
- 大学生空白表格求职简历模板下载
- 大学生摄像实习报告
- 大学物理实验思想总结
- 9型人格培训课件
- 2025年银行安全保卫知识考试题库(含答案)
- 曲靖市商务局招聘公益性岗位人员考试真题2024
- 投资评价管理办法
- 达州水务集团有限公司员工招聘考试真题2024
- 2025年广东华南农业大学招聘事业编制工作人员考试笔试试题(含答案)
- 2025中小学教师考试《教育综合知识》试题及答案
- 安全漏洞扫描与修复服务合同
- 效率提升培训课件
- 疼痛的基本概念及诊断
- 2024年西藏噶尔县公开招聘城市协管员试题带答案详解
评论
0/150
提交评论