资源预览内容
第1页 / 共76页
第2页 / 共76页
第3页 / 共76页
第4页 / 共76页
第5页 / 共76页
第6页 / 共76页
第7页 / 共76页
第8页 / 共76页
第9页 / 共76页
第10页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
本章主要内容 算法及算法的表示 赋值语句 常用基本语句 使用Print方法输出数据 窗体和基本控件 命令按钮/标签/文本框 对话框 输入对话框/消息对话框 程序举例,第三章 赋值与输入 / 输出,3.1 算法及算法的表示 3.1.1 算法概述 算法的概念 要利用计算机处理问题,需要编写出使计算机按人们意愿工作的程序。而程序实质上就是一组计算机指令。每一条指令使计算机执行特定的操作。因此,每个学习计算机知识以及希望利用计算机进行某项工作的人都应学习如何进行程序设计。 为了有效地进行程序设计,应当至少具有两方面知识。即: 1、 掌握一门高级语言的语法规则; 2、 掌握解题的方法和步骤-算法。,什么是算法? 为解决一个问题而采用的方法和步骤称为算法。 对同一个问题,可以有不同的算法,但算法有优劣之分,有的算法步骤少,有的算法步骤多。我们希望得到方法正确,步骤少的算法。 算法语言只是一 种工具,为实际问题设计算法才是程序设计的核心。 因此,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。,简单算法举例 【例3.1】求。最原始的算法 步骤: 先求,得到结果2。 步骤: 将步骤得到的乘积再乘以,得到结果。 步骤: 将再乘以,得。 步骤: 将再乘以,得。这就是最后的结果。,算法的历史 比阿勒霍瓦里松 Ada Byron 图灵,3.1.2 算法的特性,一个算法应该具有以下特点: 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性,3.1.3 算法的表示 一个算法设计好后,可以采用不同的表示形式,以便交流和阅读。常用的表示算法的方法有: 自然语言 伪代码 流程图,自然语言: 用自然语言表示通俗易懂,但文字冗长, 容易出现“歧义性”。自然语言表示的含义往往不太严格,要根据上下文才能判断其正确含义。此外,用自然语言描述包含分支和循环的算法,不很方便。 因此,除了很简单的问题以外,一般不用自然语言描述算法。,伪代码: 伪代码(pseudo code)一般介于自然语言与程序设计语言之间,它具有自然语言灵活的特点,同时又接近于程序设计语言的描述。它如同一篇文章一样,自下而上地写下来。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便、格式紧凑,易学好懂,便于修改,也便于向计算机语言(即程序)过渡。,用传统流程图表示算法,传统流程图常用的符号 起止框 输入输出框 判断框 处理框 流程线 连接点 注释框,三种基本结构 1966年,Bohra和Jacopini提出了以下三种基本结构,作为表示一个良好算法的基本单元。 (1) 顺序结构,如图3.1 所示,虚线框内是一个顺序结构。 (2) 选择结构,或称选取结构,或称分支结构,如图3.2所示。 请注意,无论 p 条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框。无论走哪一条路径,在执行完A或B之后,都经过b点,然后脱离本选择结构。A或B两个框中可以有一个是空的 ,即不执行任何操作,如图3.3所示。,图3.1 图3.2 图3.3,(3) 循环结构,它又称重复结构。有两类循环结构: 当型(While型)循环结构 见图3.4(a)。它的功能是当给定的条件p1成立时,执行A框操作,执行完A后,再判断条件p1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次p1条件不成立为止,此时不执行A框,而从b点脱离循环结构。, 直到型(Until型)循环 见图3.4(b)。它的功能是先执行A框,然后判断给定的p2条件是否成立,如果p2条件不成立,则再执行A,然后再对p2条件作判断,如果p2条件仍然不成立,又执行A如此反复执行A,直到给定的p2条件成立为止,此时不再执行A,从b点脱离本循环结构。,图3.5是当型循环的应用例子,图3.6是直到型循环的应用例子。 图3.4 图3.5 图3.6,图3.5和图3.6的作用都是打印5个数:1,2,3,4,5。可以看到, 对同一个问题既可以用当型循环来处理,也可以用直到型循环来处理。 以上三种基本结构,有以下共同特点:,(1) 只有一个入口。 (2) 只有一个出口。请注意,一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。 (3) 结构内的每一部分都有机会被执行到。对每一个框来说,都应有一条从入口到出口的路径通过它。图3.7中没有一条从入口到出口的路径通过A框。 (4) 结构内不存在“死循环”(无终止的循环)。图3.8就是一个死循环。,图3.7 图3.8,已经证明,由以上三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。,用传统流程图表示算法 三种基本结构的特点 只有一个入口。 只有一个出口。 结构中每一部分都有机会被执行。 结构中不存在“死循环”。,用N-S结构流程图表示算法,流程符号: 顺序结构 先执行A框, 再执行B框。 选择结构 当条件P成立时执行A操作。 当条件P不成立时执行B操作。,循环结构 当型循环: 当P1条件成立时, 反复执行A操作 当P1条件不成立时, 不再执行A操作,直到型循环: 反复执行A操作, 直到P2条件成立时。退出循环。,举例,【例3.2】将50名学生中成 绩高于80分的学生的 学号和成绩打印出来。 解:N-S结构化 流程图如图 其中: 变量i用来统计学生 人数。 变量Ni,Gi用来表示 学生的学号和分数。,3.2赋值语句 赋值语句是程序设计中最基本、最常用的语句 格式:Let变量名=表达式 功能:计算右端的表达式,并把结果赋值给左端的变量 【例3】已知a=6,b=9,计算c=a2 + b2 编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Single, b As Single, c As Single a = 6 b = 9 c = Sqr(a * a + b * b) Print “c=“ & c End Sub 运行程序后单击窗体,输出结果如下: C=10.81665,本事件过程采用的是顺序程序结构,运行的过程是: 声明3个单精度变量a,b,c 6a 9b 计算表达式,其结果10.81665c 输出结果 赋值含义: 将值送到变量的存储单元中去,说明: (1)表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如: a = 1 c = a + b + 3 b未赋过值,为0 执行后,c 值为 4 (2)利用赋值语句,可以改变变量的值,因此,同一变量在不同时刻可以取不同的值。,【例3.4】 Private Sub Form_Click() a = 3 : Print “*A=“ & a a = 7 : Print “*A=“ & a a = a * 2 + 3 : Print “*A=“ & a End Sub 运行程序后单击窗体,输出的结果如下: *A=3 *A=7 *A=17 (3)赋值语句跟数学中等式具有不同的含意,例如赋值语句x=x+1,表示把变量x的当前值加上1后再将结果赋给变量 “先读后写”:读出x的内容 加1 写回x(覆盖原有内容),3.3注释、结束及暂停语句 3.3.1注释语句 在程序的适应位置加上必要的注释,可以提高程序的可读性。 语法格式: Rem 注释内容 或 注释内容 功能:在程序中加入注释内容,以便于对程序的理解。 例如 Rem 交换变量a和b的值 c = a c为临时单元 a = b b = c 说明:(1)如果使用关键字Rem,在Rem和注释内容之间要加一个空格。 (2)在其他语句后使用Rem关键字,必须使用冒号(:)与前面的语句隔开。注释符(单引号)可以直接写在其他语句后面。,3.3.2结束语句 格式:End 功能:结束程序的运行。 也可以单击工具栏上的“结束”按钮 3.3.3暂停语句 格式:Stop 功能:暂停程序的运行。可用于调试程序(设置断点) 也可以通过单击工具栏上的“中断”按钮来实现 使用Ctrl + Break组合键,3.4数据的输出 3.4.1 Print 方法 (1) 用于显示(输出)文本 格式:对象名.Print 表达式列表 说明:(1)使用的对象可以是窗体等 Print “程序设计” 在当前窗体上输出 Picture1.Print “程序设计” 在图片框上输出 (2)表达式列表是一个或多个表达式,如果省略,则输出一个空行 (3)当输出多个表达式时,各表达式之间用分号“;”(紧凑格式)或逗号“,”(按区格式)隔开。 按区格式(14个字符位置),【例3.5】 Private Sub Form_Click() a = 2 b = “VB“ Print 50 * a 计算并输出表达式的值 Print b 输出变量的值 Print 输出空行 Print “The Total is“ 输出字符串常量 End Sub 运行结果:,输出数值数据时,前面有一个符号位(正号以空格表示),后面留有一个空格;输出字符串时,前后不留空格。 【例3.6】Private Sub Form_Click() a = 3: b = 4 Print a, b, 4 + a, Print 2 * b Print a, , b Print “a=“; a, “b=“; b End Sub 运行结果 (4)若语句行末尾有分号或逗号,则输出本行输出项后不换行。,【例3.7】使用Print方法输出全班学生的平均年龄已知18岁6人,19岁21人,20岁23人,21岁15人 编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Dim d As Integer, s As Integer, m As Single a = 6 : b = 21 : c = 23 : d = 15 s = a + b + c + d m = (a * 18 + b * 19 + c * 20 + d * 21) / s 以下舍入到小数后1位 Print “平均年龄:“; Int(m * 10 + 0.5) / 10 End Sub 运行程序后单击窗体,输出结果是: 平均年龄:19.7,1. Tab函数 函数格式:Tab(n) 功能:把输出位置移到第n列。 例如: Print Tab(2);“学号“;Tab(11);“姓名“;Tab(17);“成绩“ 输出结果是(1个汉字占2个位置): 学号姓名成绩,2. Spc函数 格式:Spc(n) 功能:在输出下一项之前插入n个空格。 例如: Print “学号“;Spc(2);“姓名“;Spc(5);“成绩“ 输出结果(表示空格): 学号姓名成绩,3.4.2特殊打印格式 l 打印机对象 Visual Basic提供的打印机对象(Printer)允许用户使用安装在Windows中的打印机。使用打印机对象的Print方法可以把以往输出到屏幕的内容输出到打印机,而利用PrintPicture方法可用来打印图形。,l 打印Visual Basic 代码 打印前先要设置好打印机。选择“文件”/“打印设置”命令,会出现一个“
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号