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