版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、控制语句,面向过程的程序设计和算法,在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,程序设计者不仅要考虑程序要“做什么”,还要解决“怎么做”的问题,根据程序要“做什么”的要求,写出一个个语句,安排好它们的执行顺序。怎样设计这些步骤,怎样保证它的正确性和具有较高的效率,这就是算法需要解决的问题。,算法的概念,一个面向过程的程序应包括以下两方面内容: (1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 (2) 对操作的描述。即操作步骤,也就是算法(algorithm)。,对于面向过程的程序,可以用下面的公式表示: 程序=算法
2、+数据结构 作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。 算法是处理问题的一系列的步骤。算法必须具体地指出在执行时每一步应当怎样做。所以算法包含两个含义: 1.执行的动作; 2.这些动作执行的顺序;,不要认为只有“计算”的问题才有算法。广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。 计算机算法可分为两大类别:数值算法和非数值算法。数值算法的目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事务管理领域。目前,计算机在非数值方面的应用远远超过了在数值方面的应用。,C+既支持面向过程的程序设计,又支持面向对象的程序设计。无论面向过程的程序设计还是面向对象
3、的程序设计,都离不开算法设计。,算法的表示,1. 自然语言 用中文或英文等自然语言描述算法。但容易产生歧义性,在程序设计中一般不用自然语言表示算法。 2. 流程图 可以用传统的流程图或结构化流程图。用图的形式表示算法,比较形象直观,但修改算法时显得不大方便。 3. 伪代码(pseudo code) 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。如,If (students grade is greater than or equal to 60) Print “Passed” 用伪代码写算法并无固定的、严格的语法规则,只需把意思表达清楚,并且书写的格式要写成清晰易读的形式。它不
4、用图形符号,因此书写方便、格式紧凑,容易修改,便于向计算机语言算法(即程序)过渡。 if(grade=60) cout“Passed”;,控制语句,声明语句 表达式语句 选择语句 循环语句 跳转语句 复合语句,表达式语句,格式: 表达式; 表达式语句与表达式的区别: 表达式可以包含在其它表达式中,而语句不可。 例:if (a=b)0) t=a; 不可写为:if (a=b;)0) t=a;,复合语句,将多个语句用一对大括号包围,便构成一个复合语句 例如 sum=sum+i; i+; ,顺序结构 分支结构 循环结构,算法的基本控制结构,如何解决分支问题?,例 输入一个年份,判断是否闰年。,#inc
5、lude using namespace std; void main() int year; bool IsLeapYear; cout year; IsLeapYear = (year % 4 = 0 ,14,运行结果: Enter the year: 2000 2000 is a leap year,15,If (表达式) 语句1 ; 或者 if (表达式) 语句1; . 语句n; 例1:if (xy) couty) coutx; coutendl;,if 语句 三种形式,if (表达式) 语句1; . 语句n; else 语句2;. 语句n;,if ( 表达式 ) 语句1; else
6、语句2; 例:if (xy) coutx; else couty;,if 语句 三种形式,图,if 语句 三种形式,if (表达式1) 语句1else if (表达式2) 语句2else if (表达式3) 语句3 else 语句 n,if (表达式1) 语句1; .语句nelse if (表达式2) 语句1; .语句nelse if (表达式3) 语句1; .语句n else 语句1; .语句n,说明: (1) 从图可以看到: 3种形式的if语句都是由一个入口进来,经过对“表达式”的判断,分别执行相应的语句,最后归到一个共同的出口。这种形式的程序结构称为选择结构。在C+中if语句是实现选择结
7、构主要的语句。,(2) 3种形式的if语句中在if后面都有一个用括号括起来的表达式,它是程序编写者要求程序判断的“条件”,一般是逻辑表达式或关系表达式。 (3) 第2、第3种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。,(4) 在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。,在if语句中又包含一个或多个if语句称为if语句的嵌套。 if ( ) if ( ) 语句 1 else 语句 2 else if ( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句,每层的 i
8、f 与 else 配对,或用 来确定层次关系。,在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下: if( ) if( )语句1 else 语句2 内嵌if else if( )语句3 else 语句4 内嵌if 应当注意if与else的配对关系。else总是与它上面最近的、且未配对的if配对。假如写成,if 语句 嵌套,if( ) if( )语句1 else if( )语句2 else 语句3 内嵌if,编程序者把第一个else写在与第一个if(外层if)同一列上,希望else与第一个if对应,但实际上else是与第二个if配对,因为它们相距最近,而且第二个if并未与任何
9、else配对。为了避免误用,最好使每一层内嵌的if语句都包含else子句(如本节开头列出的形式),这样if的数目和else的数目相同,从内层到外层一一对应,不致出错。,if 语句 嵌套,如果if与else的数目不一样,为实现程序设计者的企图,可以加花括号来确定配对关系。例如: if( ) if ( ) 语句1 /这个语句是上一行if语句的内嵌if else 语句2 /本行与第一个if配对 这时 限定了内嵌if语句的范围, 外的else不会与 内的if配对。关系清楚,不易出错。,if 语句 嵌套,如何解决多分问题?,例 输入两个整数,比较两个数的大小。,#include using namesp
10、ace std; void main() int x,y; coutxy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yendl; ,29,运行结果1: Enter x and y:5 8 xy,30,例:输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,#include using namespace std; int main( ) char ch; cinch; ch=(ch=A ,循环结构和循环语句,在人们所要处理的问题中常常遇到需要反复执行某一操作的情况。这就需要用到循环控制。许多应用程序都包含循环。,34,while 语句,形式 while (表达式) 语句,执行顺序 先判断表达式的值,若为 true 时,执行语句。其作用是: 当指定的条件为真(表达式为非0)时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。while循环称为当型循环。,需要注意: (1) 循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。如果不加花括号,则while语句的范围只到while后面第一个分号处。 (2) 在循环体中应有使循环趋向于结束的语句。,37,如何有效地完成重复工作,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRH 0003-2020生殖健康用品企业生产管理规范
- T/TMAC 140-2025智能穿戴设备用热塑性聚氨酯弹性体(TPU)技术要求
- T/GBIA 001-2023食用燕窝
- T/CI 238-2023水性凹印光油
- T/CAAMTB 61-2021汽车驾乘性体验测试评价规程
- T/CPIA 0079-2024柔性支架应用场景下光伏组件测试方法
- 2025~2026学年河南省周口市项城市校联考西南大学版三年级上册12月阶段性数学试卷【附答案】
- 2025~2026学年安徽宿州市埇桥区北师大版三年级下册期末考试数学试卷【附答案】
- 2025-2026学年福建省永安市初中政治八年级期末下册通关黑金提分题附答案
- PHP实习生面试题(含详细真实答案)
- 2026贵州省安全员《C证》考试题库
- 2026年烟草江苏公司招聘考试试题及答案
- 交管12123学法减分题库500题(含标准答案+解析2026全国完整版)
- 输送机拆除施工方案
- 带式输送机无人值守控制系统研究
- 高校组织行为学课程思政案例集
- 《智能建造概论》高职完整全套教学课件
- 个人信息保护与安全培训
- 鼻导管吸氧技能操作课件
- 《陈列演示规范》课件
- 企业财务数字化转型建设和应用水平评价指南
评论
0/150
提交评论