C 程序设计课件:第二章 基本控制结构程序设计

举报
资源描述
ok第二章第二章 基本控制结构程序设计基本控制结构程序设计结构化程序设计的特点是任何程序都可由结构化程序设计的特点是任何程序都可由三种基本结构三种基本结构及其组合来描述。及其组合来描述。本章将介绍本章将介绍C+分支结构和循环结构的设分支结构和循环结构的设计方法。还将介绍一些计方法。还将介绍一些常用算法常用算法。ok第二章第二章 基本控制结构程序设计基本控制结构程序设计 2.2 2.2 2.2 2.2 分支结构程序设计分支结构程序设计分支结构程序设计分支结构程序设计 2.7 2.7 2.7 2.7 枚举类型枚举类型枚举类型枚举类型 2.6 2.6 2.6 2.6 常用算法的常用算法的常用算法的常用算法的应用应用应用应用实例实例实例实例 2.4 2.4 2.4 2.4 转向语句转向语句转向语句转向语句 2.3 2.3 2.3 2.3 循环结构循环结构循环结构循环结构程序设计程序设计程序设计程序设计 2.8 2.8 2.8 2.8 输入输出文件简介输入输出文件简介输入输出文件简介输入输出文件简介 2.5 2.5 2.5 2.5 结构化程序设计思想(选读)结构化程序设计思想(选读)结构化程序设计思想(选读)结构化程序设计思想(选读)2.1 2.1 2.1 2.1 算法的概念与表示方法算法的概念与表示方法算法的概念与表示方法算法的概念与表示方法 ok2.1 2.1 算法的概念与表示方法2.1.1 算算 法法 的的 概概 念念 2.1.3 算算 法描述的三种基本结构法描述的三种基本结构2.1.2 算算 法法 的的 表表 示示ok2.1.1 算算 法法 的的 概概 念念 算法:算法:算法是解决问题的步骤。算法是解决问题的步骤。计算机算法的特征:计算机算法的特征:(1)(1)可执行性可执行性(2)(2)确定性确定性(3)(3)有穷性有穷性(4)(4)可输入输出信息可输入输出信息(5)(5)算法是程序设计学习的重点。算法是程序设计学习的重点。ok2.1.2算法的表示算法的表示流程图:流程图:流程图是图形化的表示方法,比较直观,基本流程图是图形化的表示方法,比较直观,基本组成元件包括矩形框、菱形框、箭头线等。其组成元件包括矩形框、菱形框、箭头线等。其中矩形框表示要执行的指令,在框内标注指令中矩形框表示要执行的指令,在框内标注指令内容;菱形框表示要判断其中表达式的值是真内容;菱形框表示要判断其中表达式的值是真还是假;箭头线则标示指令的流程方向。还是假;箭头线则标示指令的流程方向。伪码:伪码:伪码是介于自然语言和程序设计语言之间的一伪码是介于自然语言和程序设计语言之间的一种类自然语言的表示方法,书写形式自由,容种类自然语言的表示方法,书写形式自由,容易转换为程序。易转换为程序。ok2.1.2算法的表示算法的表示活动图活动图:UMLUML活动图(活动图(activity diagramactivity diagram)用于计算流程和工作)用于计算流程和工作流程建模。通常使用活动图来表达顺序程序的流程,这流程建模。通常使用活动图来表达顺序程序的流程,这点与传统的流程图很相似,仅仅图示方法上有所不同。点与传统的流程图很相似,仅仅图示方法上有所不同。活动图要素:活动图要素:1 1)活动(活动(activityactivity):用一个上下为直线两侧为圆弧:用一个上下为直线两侧为圆弧的框表示,并在框内写明活动的名称。的框表示,并在框内写明活动的名称。2 2)转移(转移(transitiontransition):采用箭头表示。:采用箭头表示。3 3)分支(分支(branchbranch):采用菱形符号。:采用菱形符号。4 4)注解(注解(notenote):采用右上角折叠的矩形表示,说明:采用右上角折叠的矩形表示,说明UMLUML图中符号的意义,它与被说明的符号间用虚线连接。图中符号的意义,它与被说明的符号间用虚线连接。5 5)起点:起点:起始标志,采用黑色实心圆点表示。起始标志,采用黑色实心圆点表示。6 6)终点:终点:结束标志,采用实心的小同心圆表示。结束标志,采用实心的小同心圆表示。ok2.1.3算法描述的三种基本结构算法描述的三种基本结构3 循循 环环 结结 构构1 顺顺 序序 结结 构构2 分分 支支 结结 构构算法的基本结构:算法的基本结构:对算法的理论研究和实践表明,任何算法的描述对算法的理论研究和实践表明,任何算法的描述都可以分解为三种基本结构或它们的组合,这三都可以分解为三种基本结构或它们的组合,这三种基本结构是种基本结构是顺序结构顺序结构、分支结构分支结构和和循环结构循环结构。oknum115;2.1.3算法描述的三种基本结构算法描述的三种基本结构(1)顺序结构顺序结构【例例2 21 1】求求两两数之和。数之和。寄存器35显示结果:显示结果:35 num115 num220 sum35num220;sumnum1+num2;演示算法执行过程演示算法执行过程输出输出sum;活动图ok2.1.3算法描述的三种基本结构算法描述的三种基本结构(2)分支结构分支结构【例例22】输入三个数,输出其中的输入三个数,输出其中的最大数。最大数。x7;y12;z10;if(xy)maxx;else max y;if(zmax)maxz;输出输出max;x7y12z10CPUmax12比较比较比较比较显示结果:显示结果:12演示算法执行过程演示算法执行过程ok2.1.3算法描述的三种基本结构算法描述的三种基本结构【例例2 23 3】求求4 4个整数的和。个整数的和。0sum4count12x显示结果:显示结果:60演示算法执行过程演示算法执行过程123142621642118600count4;/整数个数整数个数sum0;/累加和的初值累加和的初值while(count0)x输入一个整数输入一个整数;sumsum+x;countcount-1;输出输出sum;ok2.2分支结构程序设计分支结构程序设计 对程序的运行流程进行控制,主要通过执行对程序的运行流程进行控制,主要通过执行专门用来控制流程的语句来实现。专门用来控制流程的语句来实现。分支语句分支语句是基本流程控制语句之一。是基本流程控制语句之一。C+C+提供提供三种分支语句。三种分支语句。2.2.1if语句语句 2.2.2if语句的嵌套语句的嵌套 2.2.4swich语句语句 2.2.3条件运算符条件运算符“?:”?:”ok2.2.1if 语句语句ifif语句基本格式:语句基本格式:1、if(表达式表达式)语句语句1;2、if(表达式表达式)语句语句1;else语句语句2;【例例2.4】输入一个年份,判断是否闰年。输入一个年份,判断是否闰年。【例例2.5】从键盘上输入三个整数,输出从键盘上输入三个整数,输出其中的最大数。其中的最大数。ok嵌套嵌套ifif语句:语句:if if 语语句句中中,如如果果内内嵌嵌语语句句又又是是ifif语语句句,就就构构成成了了嵌嵌套套ifif语语句句。if if 语语句句可可实实现现二二选选一一分分支支,而而嵌嵌套套ifif语语句句则则可可以以实实现现多选一多选一的多路分支情况。的多路分支情况。嵌套有两种形式,嵌套在嵌套有两种形式,嵌套在elseelse分支中分支中:if(表达式表达式1)语句语句1;else if(表达式表达式2)语句语句2;else if else 语句语句n;嵌套在嵌套在ifif分支中:分支中:if if()1)ifif()1;elseelse;2;2.2.2 if语句的嵌套语句的嵌套【例例2.6】用嵌套用嵌套if语句完成语句完成【例例2.5】的任务。的任务。okelseelse和和ifif的配对关系:的配对关系:C+C+规定了规定了ifif和和elseelse的的“就近配对就近配对”原则,即相距最近原则,即相距最近且还没有配对的一对且还没有配对的一对ifif和和elseelse首先配对。首先配对。按上述规定,第按上述规定,第二种嵌套形式中的二种嵌套形式中的elseelse应与第二个应与第二个ifif配对。如果根据程序配对。如果根据程序的逻辑需要改变配对关系,则要将属于同一层的语句放在的逻辑需要改变配对关系,则要将属于同一层的语句放在一对一对“”中。如第二种嵌套形式中,要让中。如第二种嵌套形式中,要让elseelse和第一个和第一个ifif配对,语句必须写成:配对,语句必须写成:ifif(表达式表达式1)1)if if(表达式表达式2)2)语句语句1;1;else else 语句语句2;2;第二种嵌套形式较容易产生逻辑错误,而第一种形式第二种嵌套形式较容易产生逻辑错误,而第一种形式配对关系则非常明确,因此从程序可读性角度出发,配对关系则非常明确,因此从程序可读性角度出发,建议建议尽量使用第一种嵌套形式。尽量使用第一种嵌套形式。2.2.2 if语句的嵌套语句的嵌套ok配对关系实例:配对关系实例:/语句语句1 1:ifif(n%3=0)(n%3=0)ifif(n%5=0)(n%5=0)coutcoutnn是是1515的倍数的倍数endlendl;else else coutcout n n是是3 3的倍数但不是的倍数但不是5 5的倍数的倍数 endlendl;/语句语句2 2:ifif(n%3=0)(n%3=0)ifif(n%5=0)(n%5=0)coutcoutnn是是1515的倍数的倍数endlendl;elseelse coutcout n n 不是不是3 3的倍数的倍数两个语句的差别只在于一个两个语句的差别只在于一个“”,但表达的逻辑关系却,但表达的逻辑关系却完全不同。完全不同。【例例2.72.7】某商场购物优惠活动某商场购物优惠活动【例例2.82.8】求一元二次方程的根。求一元二次方程的根。ok2.2.3条件运算符条件运算符“?:”三元运算符:三元运算符:三三元元运运算算符符条条件件运运算算符符“?:?:”可可以以用用来来简简化化ifif语语句句表表达达。其其构成的表达式格式为:构成的表达式格式为:表达式表达式1?1?表达式表达式2:2:表达式表达式3 3例如:例如:intint a=6,b=7;min=ab?a:b;a=6,b=7;min=ab?a:b;/min=6/min=6 min=ab?+a:+b;min=ab?+a:+b;/min=7 a=7 b=7/min=7 a=7 b=7 min=ab?a+:b+;min=ascore;switch(score)case A:case a:coutexcellent;break;case B:case b:coutgood;break;default:coutfair;okok【例例2.9】运输货物实行运输货物实行分分段计费段计费。采用不采用不带带breakbreak的的开开关语句实例关语句实例 2.2.4switch语句语句ok循环控制语句循环控制语句是基本流程控制语句之一。是基本流程控制语句之一。C+C+提供三种循环语句:提供三种循环语句:2.3.1while语句语句 2.3.4循环的嵌套循环的嵌套 2.3.3for语句语句2.3.2do-while语句语句 2.3循环结构程序设计循环结构程序设计ok2.3.1while语句语句whilewhile语句也称为当循环。语句也称为当循环。语句格式为:语句格式为:while(while(表达式表达式)循环体语句;循环体语句;【例例2.11】求求1+2+3+4+100的值。的值。ok2.3.1while语句语句注意:注意:在有循环语句的程序中,通常循环开始前对循环条件进在有循环语句的程序中,通常循环开始前对循环条件进行初始化;而在循环体语句中要包含修改循环条件的行初始化;而在循环体语句中要包含修改循环条件的语句,否则循环将不能终止而陷入死循环。语句,否则循环将不能终止而陷入死循环。C+表达方式灵活,例表达方式灵活,例2.11中的循环语句还可以写成:中的循环语句还可以写成:while(i=n)sum+=i+;或者或者while(sum+=i+
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 中学教育 > 初中教育


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号