《RAPTOR流程图+算法设计完整版课件全套ppt教学教程电子教案讲义最全(最新).ppt》由会员分享,可在线阅读,更多相关《RAPTOR流程图+算法设计完整版课件全套ppt教学教程电子教案讲义最全(最新).ppt(501页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 程序设计与算法,学习目标,了解为什么要学习程序设计 了解算法的概念和描述 了解程序、程序设计以及程序设计语言的概念 了解什么是RAPTOR以及它具有的特点,目录,为什么要学习程序设计,认识算法,程序设计,RAPTOR简介,为什么要学习程序设计,作为一名优秀的技术工作者,不懂计算机程序设计,就不能真正理解计算机,也无法在自己所从事的工作领域内深入地应用计算机。 对于高等学校的学生来说,了解计算机科学,使计算机成为一种可以帮助人们思维的工具,显得尤为重要。而程序设计是实践计算思维的重要手段之一。,目录,为什么要学习程序设计,认识算法,程序设计,RAPTOR简介,认识算法,1.2.1 什么是
2、算法,算法的基本条件 02,03 算法的描述工具,广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。 当代著名计算机科学家D.E.Knuth在他撰写的The art of computer programming一书中写到:“一个算法,就是一个有穷规则的集合,其中的规则规定了一个解决某一特定类型的问题的运算序列。”通俗地说,算法规定了任务执行/问题求解的一系列步骤。算法中的每一步必须是“明确的、可执行的”。,什么是算法,什么是算法,【例1-1】求1+2+3+10的累加和,方法一: 步骤1:先求1与2的和,得到结果3; 步骤2:将步骤1得到的和与3相加,得到结果6; 步骤9:将步骤8得
3、到的和与10相加,得到结果55。,方法二: 步骤1:分别求1与10的和,2和9的和,3与8的和,4与7的和,5与6的和; 步骤2:求5个11的和,得到结果55。,算法的基本条件,一个有效算法应该具备以下几个条件: 输入 输出 确定性 有穷性 有效性,算法的描述工具,自然语言 流程图 N-S图 伪代码 计算机语言描述,自然语言描述,用自然语言描述算法,就是用人们日常使用的语言描述或表示算法的方法。 优点:容易理解和掌握; 缺点:存在着很大的缺陷,就是容易出现二义性。,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PP
4、T教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,流程图描述,流程图是最早出现的用图形表示算法的工具,它利用几何图形的框代表各种不同性质的操作,用流程线指示算法的执行方向 优点:直观形象、易于理解,能较清楚地显示出各个框之间的逻辑关系和执行流程。,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,例如:利用欧几里得算法求
5、解两个正整数的最大公约数用流程图描述如下:,N-S图描述,1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其他从属于它的框,或者说,由一些基本的框组成一个大的框。,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,例如:利用欧几里得算法求解两个正整数的最大公约数用N-S图
6、描述如下:,伪代码描述,伪代码是一种与程序设计语言相似但更简单易学得用于表达算法的语法。程序表达算法的目的是在计算机上执行,而伪代码表达算法的目的是给人看。 伪代码应该易于阅读,简单和结构清晰,它是介于自然语言和程序设计语言之间的。伪代码不拘泥于程序设计语言的具体语法和实现细节。,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,伪代码描述,PPT模板下载: 行业PPT模板: 节日PPT模板:
7、 PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,例如:利用欧几里得算法求解两个正整数的最大公约数用伪代码描述如下:,Input:正整数m、n Output:m、n的最大公约数 GREATEST-COMMON-DIVISOR(m、n) 1 REPEAT 2 rm mod n 3 mn 4 nr 5 UNTIL r=0 6 RETURN m,计算机语言描述,计算机是无法识别流程图和伪代码的,只有用计算机语言编写的程序才能被计算机执行。因此在用流程
8、图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,计算机语言描述,PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT背景图片: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: PPT论坛:,例如:利用欧几里
9、得算法求解两个正整数的最大公约数用C语言描述如下:,int MaxCommonFactor(int m,int n) / MaxCommonFactor( )函数,功能是计算两个正整数m、n的最大公约数,默认mn int r; do r=m%n; m=n; n=r; while(r) return m; ,目录,为什么要学习程序设计,认识算法,程序设计,RAPTOR简介,程序设计,01 程序,程序设计 02,03 程序设计语言,程序,“程序”通常指完成某些事务的一种既定方式和过程。 在计算机领域,程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,是人们求解问题的逻辑思维活动
10、的代码化描述。程序表达了人的思想,体现了程序员要求计算机执行的操作。,程序,对于计算机而言,程序是计算机的一组机器指令,它是程序设计的最终结果。程序经过编译和执行才能最终完成程序的功能。对于使用计算机的人而言,程序员用某种高级语言编写的语句序列也是程序。程序通常以文件的形成保存起来,所以源文件、源程序和源代码都是程序。,程序设计,什么是程序设计? 使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型,然后考虑数据的组织方式和算法,并用某种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果,这一过程称为程序设计。,程序设计,程序设计的基本目标 是实现算法和对初始数据进行处理
11、,从而完成问题的求解。 学习程序设计的目的不只是学习一种特定的程序设计语言,而是要结合某种程序设计语言学习程序设计的思想和方法。,程序设计,程序设计的基本过程 分析所求解的问题 抽象数学模型 设计合适的算法 编写程序 调试运行直至得到正确结果,程序设计语言,程序是用某种语言来描述的 程序设计也是要用到某种语言来设计程序 程序设计语言是人与计算机进行交流的工具。,程序设计语言,程序设计语言的发展,经历了机器语言、汇编语言和高级语言等几个阶段。 高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言,消除了机器语言的缺点,使得普通用户容易学习和记忆,因此简单易学。 常用高级语
12、言到现在有几百种,如C、C+、Python、Java、HTML等。,目录,为什么要学习程序设计,认识算法,程序设计,RAPTOR简介,RAPTOR简介,01 什么是RAPTOR,为什么使用RAPTOR 02,03 RAPTOR的特点,什么是RAPTOR,RAPTOR Rapid Algorithmic Prototyping Tool for Ordered Reasoning是一种基于有序推理的快速算法原型设计工具。 它是由各种相互连接的图形符号构成的可执行流程图,为程序设计和算法设计的基础课程的教学提供实验环境而且为使用者提供了一个可视化程序设计环境,并且可以直接转换成为C+、C#、Jav
13、a等语言。,为什么使用RAPTOR,使用RAPTOR进行程序设计基于以下几个原因: 由各种相互连接的图形符号构成的可执行流程图,最大程度地减少了程序语言的语法理解; 操作简单,学生只需要通过拖拽操作就可将不同图形符号放置到所需要的位置上,工具软件就可以自动将这些不同图形符号连接在一起,形成一个完整的流程图;,为什么使用RAPTOR,简单易懂,由于流程图与自然的思维过程相近,能够比较简单地让学生掌握和理解程序的设计与算法。 RAPTOR除了具有流程图特色外,还具有其它诸多重要特点,例如,计算操作的原子化和算法的执行步骤统计等,为算法设计、算法优化,算法复杂性分析提供了有力的实验或验证手段。,RA
14、PTOR的特点,语言简单、紧凑、灵活(6个基本语句符号)。 具备基本运算功能,有18种运算符,可以实现大部分基本运算; 具备基本数据类型与结构,提供了数值、字符串和字符3种数据类型以及一维数组、二维数组等数据组织形式,可以实现大部分算法所需要的数据结构,包括堆栈、队列、树和图;,RAPTOR的特点,具有严格的结构化的控制语句; 语法限制宽松、程序设计自由度大; 可移植性好,程序的设计结果可以直接执行,也可以转换成其他高级语言,如C、C+、C#等; 程序的设计结果可以直接编译成为可执行文件并运行; 支持图形库应用,可以实现计算问题的图形表达和图形结果输出;,RAPTOR的特点,支持面向过程和面向
15、对象的程序和算法设计; 具备单步执行、断点设置等重要的调试手段,便于快速发现问题和解决问题。,本章小结,本章内容主要涉及程序设计的一般性概念,包括程序、程序设计、程序设计语言、算法以及程序设计的方法。通过对这些问题的介绍,为今后更好学习程序设计打下基础。由于RAPTOR是一种基本功能完备而又十分简洁的算法描述性程序设计环境,对于程序设计入门学习极为有利。,第2章 应用RAPTOR实现简单数据处理,学习目标,了解RAPTOR可视化程序设计基本环境 掌握RAPTOR变量、表达式、函数的使用 学会设计简单的程序 学会调试和运行程序,目录,2.1 RAPTOR可视化程序基本环境,2.2 RAPTOR常
16、量和变量,2.3 RAPTOR运算符和表达式,2.4 RAPTOR函数,2.1 RAPTOR可视化程序基本环境,01 RAPTOR窗口界面,RAPTOR基本程序环境 02,2.1 RAPTOR可视化程序基本环境,RAPTOR启动与窗口界面,2.1 RAPTOR可视化程序基本环境,其中程序设计(RAPTOR)窗口界面主要用来进行程序设计,其包括4个区域。,2.1 RAPTOR可视化程序基本环境,符号区域:为用户提供了6种基本符号: 赋值符号(Assignment Symbol)-用来给变量赋值; 调用符号(Call Symbol)-用来进行子图或过程的调用; 输入符号(Input Symbol)
17、-用来获得用户的输入; 输出符号(Output Symbol)-用来显示文本到主控制台窗口; 选择符号(Selection Symbol)-用来进行选择判断处理; 循环符号(Loop Structure Symbol)-用来进行循环结构的处理。,2.1 RAPTOR可视化程序基本环境,观察区域:当流程图运行时,该区域可以让用户浏览到所有变量和数组实时变化的内容。 主工作区域:在该区域用户可以创建RAPTOR程序流程图。大部分流程图只有一个被称为main的主图标签,当编程者创建子图或过程时,则会增加相应标签。,2.1 RAPTOR可视化程序基本环境,菜单和工具栏区域:允许用户改变设置和控制视图,
18、并且执行流程图。 主控制台(Master Console)界面用于显示程序的运行结果和错误信息等。,2.1 RAPTOR可视化程序基本环境,01 RAPTOR窗口界面,RAPTOR基本程序环境 02,RAPTOR基本程序环境的使用,基本图形符号 输入(Input) 赋值(Assignment) 调用(Call) 输出(Output) 选择(selection) 循环(loop) 控制结构:,输入符号(Input),“输入符号”是允许用户在程序执行过程中输入变量的数据值。 编辑“输入符号”的方法是:双击“输入符号”,打开如图的编辑框。,输入符号(Input),在编辑框中,用户必须指定提示文本(E
19、nter Prompt Here)和变量名称(Enter Variable Here)。 “提示文本”是为了给用户一个提示信息,输入“提示文本”应用双引号表示。 变量名称是用来保存程序在运行时由用户输入的值。,输入符号(Input),“输入符号”编辑完成后在RAPTOR程序中的显示编辑内容,赋值符号(Assignment),赋值符号用于执行计算,并将其结果存储到变量中。 编辑“赋值符号”的方法是:双击“赋值符号”,打开如图的编辑框。,输出符号(Output),输出符号是用于将程序运行的结果显示在主控制台窗口中。 编辑“输出符号”的方法是:双击“输出符号”,打开如图的编辑框。,输出符号(Outp
20、ut),编辑“输出文本”内容一般使用字符串和连接运算符“+”表示在屏幕上输出的文本内容。 如“The circumference of the circle is :”+C。其中双引号内的文本在输出时原样显示在主控制台窗口;连接运算符“+”是将输出文本与变量C进行连接在一起,,输出符号(Output),若想要RAPTOR程序输出多个提示文本(包括空格)和多个变量值,可以在输出符号中多次使用连接运算符“+”将多个需要输出提示文本与多个变量连接在一起,RAPTOR注释,注释说明用来帮助他人理解程序和阅读程序,特别是在程序代码比较复杂、很难理解的情况下,如果注释得当,可以使程序更容易被他人理解。注释
21、本身是无意义的,并不会被执行。,RAPTOR注释,RAPTOR中的注释有以下几种类型: 编程标题:用于标注程序的作者和编写时间、程序目的等; 分节描述:用于标记程序,使程序员更容易理解程序整体结构中的主要部分; 变量说明:解释说明算法中变量使用的用途。,RAPTOR注释,要对某个图形符号添加注释说明的方法是:单击鼠标右键,在出现的快捷菜单中选择“Comment”命令,进入注释编辑对话框,输入注释的文本内容。,RAPTOR程序执行,RAPTOR程序设计完成后,要想将程序一次性执行完成,可以使用“运行(Run)”菜单中的“Execute to Completion”命令或工具栏中“执行命令”按钮执
22、行流程图,被执行到的图形符号呈绿色高亮显示,变量值呈红色高亮显示在观察窗口中。,RAPTOR程序执行,目录,2.1 RAPTOR可视化程序基本环境,2.2 RAPTOR常量和变量,2.3 RAPTOR运算符和表达式,2.4 RAPTOR函数,2.2 RAPTOR常量和变量,01 RAPTOR变量,RAPTOR常量 02,RAPTOR变量,变量表示的是计算机内存中的位置,用于保存数据值。 在任何时候,一个变量只能保存一个数据值。,RAPTOR变量,变量在程序运行过程中可以改变、可以重新被赋值,以下所示变量x变化过程。,RAPTOR变量,RAPTOR程序中变量赋值有3种不同方法: 通过输入符号对变
23、量进行赋值; 通过赋值符号对变量进行赋值; 通过过程调用的参数传递或返回值对变量进行赋值,RAPTOR变量,RAPTOR中变量的数据类型有三种: 数值型(number) 数值型变量是存储一个数值 字符型(character) 字符型变量存储一个字符,其数据用单引号表示 字符串型(string) 字符串型变量存储一个字符串,其数据用双引号表示,RAPTOR变量,标识符 RAPTOR程序中所用到的每一个变量都应该有相应的名称作为标识。我们把给程序中的变量、常量、子图或子过程、数组等所起的名称称之为标识符。简单地说,标识符就是一个名称。,RAPTOR变量,标识符命名规则如下: 标识符只能由英文字母、
24、数字和下划线3种符号组成; 必须以字母开头,第一个字母后可以跟任意的英文字母、数字或下划线; 不区分大小写; 保留字(RAPTOR自己使用)不能作为用户标识符。,2.2 RAPTOR常量和变量,01 RAPTOR变量,RAPTOR常量 02,RAPTOR常量,程序运行过程中固定不变的量称为常量。 RAPTOR程序中有下列几种常量: 符号常量:RAPTOR内部定义的用符号表示的常量。 数值型常量 字符型常量 字符串型常量,目录,2.1 RAPTOR可视化程序基本环境,2.2 RAPTOR常量和变量,2.3 RAPTOR运算符和表达式,2.4 RAPTOR函数,2.3 RAPTOR运算符和表达式,
25、01 算术运算符及其表达式,关系运算符及其表达式02,03 布尔运算符及其表达式,算术运算符及其表达式,常见的算术运算符,算术运算符及其表达式,运算符“+” RAPTOR程序中不仅可以实现算术运算,也可以实现字符串的拼接运算。 它还可以实现以下几种情况字符串拼接操作: 字符串与字符拼接 如:“Hello”+Y-“HelloY”,Y+“Hello”-“Yhello” “ ”+Y+O+U-“ YOU” (这里“”为空字符) Y+O+U不能进行连接运算,因为在RAPTOR中不允许字符与字符之间直接连接。,算术运算符及其表达式,字符串与数值拼接 如:“Hello”+123-“Hello123” “He
26、llo”+123+456-“Hello123456” 123+456+“Hello”-“579Hello” 123+“”+456+“Hello”-“123456Hello” 取余运算rem和取模运算mod 两个运算符相同之处在于返回结果都是余数,两者不同之处在于对负整数进行除法运算时操作结果不同。,算术运算符及其表达式,2.3 RAPTOR运算符和表达式,01 算术运算符及其表达式,关系运算符及其表达式02,03 布尔运算符及其表达式,关系运算符及其表达式,2.3 RAPTOR运算符和表达式,01 算术运算符及其表达式,关系运算符及其表达式02,03 布尔运算符及其表达式,布尔运算符及其表达式
27、,目录,2.1 RAPTOR可视化程序基本环境,2.2 RAPTOR常量和变量,2.3 RAPTOR运算符和表达式,2.4 RAPTOR函数,2.4 RAPTOR函数,01 基本数学函数,三角函数 02,03 布尔函数,基本数学函数,基本数学函数,Random函数生成的随机数,在使用随机函数时应注意以下几点: 随机函数Random只产生在01之间的小数,所以需要加工以后才能获得常用算法所需要的随机整数。 需要获取ASCII码表中的数值,可以使用模运算,如floor(Random*1000 mod 128)可随机得到标准ASCII码值(0127),2.4 RAPTOR函数,01 基本数学函数,三
28、角函数 02,03 布尔函数,三角函数,三角函数用于帮助用户完成三角运算功能。RAPTOR中三角函数有8个。,2.4 RAPTOR函数,01 基本数学函数,三角函数 02,03 布尔函数,布尔函数,布尔函数主要用于变量类型的查询测试,其返回值为布尔值(True/False) RAPTOR中,布尔函数常用于在选择和循环条件判断的位置 常用布尔函数,本章小结,本章中,我们认识了RAPTOR程序设计环境,掌握了RAPTOR变量、常量、表达式和函数的使用,重点学习了随机函数的应用和输入符号、输出符号、赋值符号等3种符号的使用和应用。,第3章 用RAPTOR顺序结构解决简单问题,学习目标,了解结构化程序
29、设计的三种基本结构 学会设计顺序结构程序,目录,4.1 结构化程序设计的三种基本结构,4.2 顺序结构应用举例,4.1 结构化程序设计的三种基本结构,顺序结构 选择结构 循环结构,顺序结构,顺序结构是最简单的程序结构,本质上就是按照每个符号的先后顺序依次执行。 顺序结构的基本框架 输入程序所需的数据或者对所需数据进行赋值; 对数据进行处理; 对数据进行输出。,选择结构,选择结构程序设计是依据条件成立与否进行选择执行不同操作的一种程序设计方法,这种结构称之为选择结构,又称为分支结构。 RAPTOR程序中的选择结构是使用一个菱形符号表示,用“Yes/No”表示“条件”的求解结果。,选择结构,如果条
30、件判断为真(Yes),则执行左侧分支操作,否则执行右侧分支操作,但不可能两个分支被同时执行。,循环结构,循环结构是允许重复执行一个或多个语句,直到条件表达式的结果为“Yes”。 在RAPTOR中,用一个椭圆和一个菱形符号表示一个循环结构。,循环结构,需要重复执行的部分(循环体)由菱形符号中的条件表达式控制。 在执行过程中,如果条件表达式结果为“NO”,则执行循环体;如果条件表达结果为“Yes”,则循环结束。,目录,4.1 结构化程序设计的三种基本结构,4.2 顺序结构应用举例,4.2 顺序结构应用举例,顺序结构是程序设计的最简单的结构; 程序的执行是按照符号的先后顺序逐条地执行。 顺序结构虽然
31、很简单,但也蕴含着一定的算法规律,本章小结,本章首先介绍了结构化程序设计的三种基本结构,然后重点讲解了如何使用顺序结构设计程序,虽然顺序结构设计程序很简单,但也蕴含了一些简单算法,充分让读者体会了把传统程序设计的“写程序”过程变成了“画程序”。,第4章 用RAPTOR选择结构实现分支判断,学习目标,了解选择结构程序设计应用的场合 掌握简单分支结构和分支嵌套结构的程序设计的方法 学会熟练利用选择结构设计程序和实现算法,目录,4.1 选择结构应用的场合,4.2 用基本选择结构实现分支判断,4.3 选择结构程序设计应用举例,RAPTOR函,4.1 选择结构应用的场合,在现实生活中有很多问题仅仅使用顺
32、序结构方式是无法解决的,还需要根据某些“条件”来确定下一步如何做,如: 计算某年是否为闰年; 如果输入的三角形三条边,能够构成一个三角形,则计算三角形的面积; 根据空气质量指数PM2.5,判断空气质量的等级,4.1 选择结构应用的场合,【例4-1】从键盘上输入某年的年份,判断该年Year是否为闰年。 问题分析:任意输入一个年份,判断该年份是否为闰年,若是闰年,输出该年份并显示“The year is leap year”的提示信息,否则输出该年份并显示“The year isnt leap year”的提示信息。,通常判断某年是否为闰年有两种情况: 能被400整除; 能被4整除但不能被100整
33、除。 假设在程序中用变量year表示该年的年份,则上述用关系表达式表示如下: year mod 400=0; (year mod 4=0) and (year mod 100!=0),其算法表示如下: Step1:任意输入一个年份; Step2:判断该年份是否为闰年; Step3:输出结果,若是闰年,则输出该年份并显示“The year is leap year.”的提示信息,否则输出“The year isnt leap year”。,通过上面的例题可以看出,利用选择结构设计程序,它是根据条件成立与否来选择执行不同操作的一种程序设计方法,这种结构又称之为分支结构。,目录,4.1 选择结构应用
34、的场合,4.2 用基本选择结构实现分支判断,4.3 选择结构程序设计应用举例,RAPTOR函,4.2 用基本选择结构实现分支判断,4.2.1 简单分支结构,分支嵌套结构 4.2.2,4.2.1 简单分支结构,双分支结构 在RAPTOR程序中使用菱形框给出控制条件,当程序执行时,如果条件成立(Yes),程序控制则执行左分支语句;如果条件不成立(NO),程序控制则执行右分支语句,我们把这种选择结构称之为双分支结构。 单分支结构 当程序执行时,只要条件不成立,依旧要执行空语句(即什么也不做),我们把这种选择结构称之为单分支结构。,4.2 用基本选择结构实现分支判断,01 简单分支结构,分支嵌套结构
35、02,4.2.2 分支嵌套结构,4.2.2 分支嵌套结构,使用分支嵌套结构实现【例4-2】:,【例4-3】PM2.5空气污染指数分级 问题分析:此问题就需要使用分支嵌套结构实现多分支决策,解决不同PM2.5值,【例4-4】居民用水实行阶梯水价 问题分析:从题目可知,根据不同用户类型下不同用水量判断应缴纳水费价格是多少。这种比较复杂的选择问题,也需要使用分支嵌套结构实现。,目录,4.1 选择结构应用的场合,4.2 用基本选择结构实现分支判断,4.3 选择结构程序设计应用举例,RAPTOR函,4.3 选择结构程序设计应用举例,【例4-5】判断三角形形状 编写以下程序,输入三角形的三条边,判断三角形
36、的形状:等边三角形(equilateral triangle),等腰三角形(isosceles triangle),不构成三角形(non-triangle),一般三角形(triangle)。,其算法可以表示如下: Step1:输入三角形三条边a,b,c; Step2:依据任意两边之和大于第三边的条件判断是否为三角形,即(a+b)c and (a+c)b and(b+c)a为true,则再判断三角形的形状,否则不能构成三角形; Step3:若三角形三条边相等,即(a=b) and (a=c)为true,则该三角形为等边三角形,否则判断三角形是否为等腰三角形; Step4:若三角形任意两条边相等,
37、即(a=b or b=c or a=c)为true,则该三角形为等腰三角形,否则该三角形为一般三角形。,【例4-6】简单的猜数游戏 编写一个简单的猜数游戏:先由计算机“想”一个100以内的正整数请玩家猜,如果玩家猜对了,则计算机给出提示“Right”,否则提示“Wrong”,并告诉玩家所猜的数是大还是小。 问题分析:本例程序难点是如何让计算机“想”一个数。“想”反映了一种随机性,可以使用Random随机函数实现。,其算法可以表示如下: Step1:通过随机函数给出一个数magic; Step2:输入玩家猜的数guess; Step3:如果guessmagic,则给出提示信息“Wrong! To
38、o high!”; Step4:如果guessmagic,则给出提示信息“Wrong! Too Low!”; Step5:如果guess=magic,则给出提示信息:“Right!”,并输出guess值。,【例4-7】求出三个数中最大值 采用四种方法编写程序,根据计算机随机产生的三个100以内整数x1、x2、x3,找出这3个数中的最大值。 问题分析:依据题意,要找出三个数中的最大值,其算法表示一定有三步: Step1:随机产生三个整数; Step2:找出三者中最大值; Step3:输出最大值。,方法1:顺序处理 从第1数开始逐个比较每个数,如果发现一个大的数记住这个大的数,以此类推,直到最后一
39、个数。简单地说,这个策略就是顺序地扫描整个数字序列,找到最大的那个数字。 其算法表示如下: Step1:maxvalue=x1; Step2:如果x2maxvalue,则maxvalue=x2; Step3:如果x3maxvalue,则maxvalue=x3。,方法2:决策树 假设程序从x1=x2开始,比较x1与x2的值大小,如果条件为真,就去判断x1与x3之间的大小,否则就去判断x2与x3之间的大小。 其算法表示如下: Step1:如果x1=x2条件为true,则比较x1=x3,否则比较x2=x3; Step2:如果x1=x3条件为true,则最大值为x1,否则最大值为x3; Step3:如
40、果x2=x3条件为true,则最大值为x2,否则最大值为x3。,方法3:通盘比较 这种方法与第1种方法有些类似,所不同的是:将第1个数值x1分别与另外两个数进行比较,即(x1=x2)and(x1=x3),如果条件为true,则x1为最大值,反之条件为False,则第2个数值分别与另外两个数进行比较,即判断(x2=x1)and(x2=x1)条件是否成立。这样比较是因为当(x1=x2)and(x1=x3)表达式结果为假时,有可能x1=x2为真,也有可能x1=x3为真,所以要想确定哪个数值是最大值,还需要判断(x2=x1)and(x2=x1)的结果。,其算法表示如下: Step1: 如果x1=x2
41、and x1=x3条件为true,则最大值为x1,否则比较(x2=x1)and(x2=x1); Step2:如果(x2=x1)and(x2=x1)条件为true,则最大值为x2,否则最大值为x3。,方法4:使用RAPTOR内置函数max() max(math_expression, max_expression)函数用于返回两个数中的最大值。,求三个数中最大值的问题只是一个简单的问题,通过解决简单问题可以阐明算法与程序设计的一些重要思想。 对于任何复杂的计算问题,都有许多解决方法。 (2) 通过考虑规模更大的更复杂的问题,有助于找到解决问题的最佳方案。,本章小结,选择结构是结构化程序设计三种基
42、本结构之一。大多数程序设计都会遇到选择结构。选择结构是对给定的条件进行判断,然后根据判断结果来选择执行不同的操作。本章介绍了在RAPTOR程序设计中选择结构,包括简单分支结构和分支嵌套结构等程序设计方法。,第5章 用RAPTOR循环结构实现重复操作用,学习目标,掌握循环的概念及实现机理 掌握循环结构设计的方法 学会用循环结构解决实际问题,目录,5.1 RAPTOR循环结构,5.2用RAPTOR循环结构实现重复操作,5.3 循环结构程序设计应用举例,RAPTOR函,5.1 RAPTOR循环结构,5.1.1 为什么使用循环结构,5.1.2 RAPTOR的循环结构,5.1.1 为什么使用循环结构,到
43、目前为止,无论是顺序结构还是选择结构设计的程序语句都只执行一次,但在实际问题中会遇到很多的具有规律性的重复运算或操作,如: 使用银行卡,密码只能重复输入三次,超过三次系统就自动锁定,这如何控制? 猜数游戏,只有当玩家猜对数字时,游戏才停止,否则允许玩家不断猜下去。,5.1.1 为什么使用循环结构,这样的例子很多,它们都是重复执行某些操作,这种重复执行就是循环。 【例5-1】求1+2+3+10的累加和。 问题分析:这是一个简单求自然数110的累加和问题。从数学角度分析,求解110的累加和问题可以使用公式:(首项+末项)项数2的方法,但用计算机解决该问题又如何实现呢?实现方法有几种呢?,算法1:直
44、接使用前面所学的顺序结构知识写出算式sum=1+2+3+4+5+10的累加和,如图5-1所示。但要是累加到1000项呢,就需要写得很长且非常繁琐,这不适合编程。,算法2:要求1+2+3+.+10的累加和,可以分解成几个步骤: Step1:在一个数都没有加时,最初的和肯定是0,就有S0; Step2:初始和加上1得到第1项的累加和,即S10+1; Step3:第1项的累加和加上2得到前两项的累加和,即S2S1+2; Step11:第9项的累加和加上10得到所有项的累加结果。 因此,要求解1+2+3+.+10的累加和就可以改写为(0+1)+2)+3)+10)的形式计算。,算法3:从算法2中可以看出
45、一个规律,求累加和,在一个数都没有加时,最初的和肯定是0,就有S00,从第二步开始都是两个数相加,其中加数总是比前一步加数增加1后参与后一步加法运算,被加数总是前一步加法运算的和。因此,我们可以考虑用一个变量i存放加数,一个变量sum存放前一步的加法运算的和,那么每一步都可以写成sum+i,然后将sum+i的和再次存放到sum中即sum=sum+i。也就是说,sum既代表被加数又代表加法运算的和,这样就可以得到算法3。,算法4:从算法3上可以看出程序重复执行的是sum=sum+i和i=i+1两条语句,而计算机对重复的操作可以用循环完成。在算法3的基础上采用循环方式实现算法4。,从算法4可以看到
46、,程序重复执行累加和的操作,当重复的次数达到最后一个数字10时,就结束循环,这就是一个典型的循环结构程序。显然,使用循环方式解决该问题比前3种算法要方便得许多。,5.1 RAPTOR循环结构,5.1.1 为什么使用循环结构,5.1.2 RAPTOR的循环结构,5.1.2 RAPTOR的循环结构,RAPTOR中循环结构(Loop)是用一个椭圆和一个菱形符号表示。需要重复执行的部分(循环体)由菱形符号中的条件表达式控制。在执行过程中,如果条件表达式结果为“NO”,则执行循环体,否则循环结束。,构成循环结构的三要素为循环初始值、循环条件以及循环体。,循环结构两种不同执行情况: 先判断循环条件 先执行
47、循环体语句,先判断循环条件,在RAPTOR循环结构中,将循环体语句(要重复执行的语句)放在菱形符号的下方。循环开始前先对循环条件测试,一旦测试结果为“No”,则执行循环体内的语句,反之测试结果为“Yes”,则不执行循环体内的语句。这种方式在RAPTOR循环结构中称之为前序测试。,先执行循环体语句,在RAPTOR循环结构中,将循环体语句(要重复执行的语句)放在菱形符号的上方。循环开始前先执行循环体内语句,再判断循环条件。判断结果为“No”,则继续执行循环,判断结果为“Yes”,则结束循环。这种方式在RAPTOR循环结构中称之为后序测试。,从以上2种RAPTOR循环结构测试模式可以看出,循环体语句
48、可以放置到菱形符号上方或下方,放置位置不同会影响算法的执行效率和执行结果,所以什么时候进行判断循环条件是循环结构的十分关键之处。,循环结构应用实例,循环结构常用于解决累加求和、累乘求积、数据分类统计等这类问题。在解决这类问题中,往往又需要通过循环次数来控制循环结构的执行,通常有3种常用的循环结构应用实例。 计数循环 输入循环 输入验证循环,计数循环,循环结构常见形式就是按照特定的次数执行循环,即循环之前可以预知循环的次数。为了控制循环次数,在程序中设置一个循环控制变量,每次循环,该变量执行一次加法运算操作,当变量值累加到大于设定的上限值时,循环自动结束,这种方式就是计数循环。,其操作要点包括:
49、 循环开始前需要对计数变量进行初始化; 在循环过程中要对计数变量的值进行修改; 将计数变量使用在循环条件中,用于终止循环。,输入循环,输入循环的问题是指循环之前不可预知循环需要执行多少次,需要通过用户输入一系列值后才能循环次数。 一般情况下,它有两种方法: 让用户输入一个“特殊”的值表示用户完成数据的输入 事先询问用户要输入多少个值,该值可用于实现计数循环中控制循环的次数,输入验证循环,如果用户输入的数据需要满足一定的约束,如输入人的年龄,程序要验证用户的输入,确保满足约束条件后,才可以执行循环。,目录,5.1 RAPTOR循环结构,5.2用RAPTOR循环结构实现重复操作,5.3 循环结构程序设计应用举例,RAPTOR函