欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基本控制结构程序设计(精品).ppt

    • 资源ID:85513639       资源大小:504.50KB        全文页数:107页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基本控制结构程序设计(精品).ppt

    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.3算法描述的三种基本结构算法描述的三种基本结构3 循循 环环 结结 构构1 顺顺 序序 结结 构构2 分分 支支 结结 构构算法的基本结构:算法的基本结构:对算法的理论研究和实践表明,任何算法的描述对算法的理论研究和实践表明,任何算法的描述都可以分解为三种基本结构或它们的组合,这三都可以分解为三种基本结构或它们的组合,这三种基本结构是种基本结构是顺序结构顺序结构、分支结构分支结构和和循环结构循环结构。oknum115;2.1.3算法描述的三种基本结构算法描述的三种基本结构(1)顺序结构顺序结构【例例2 21 1】求求两两数之和。数之和。块1块2块3流程图 寄存器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流程图流程图条件块1块2真假演示算法执行过程演示算法执行过程ok2.1.3算法描述的三种基本结构算法描述的三种基本结构(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.1 if 语句语句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配对,语句必须写成:配对,语句必须写成:if(if(表达式表达式1)1)if(if(表达式表达式2)2)语句语句1;1;else else 语句语句2;2;第二种嵌套形式较容易产生逻辑错误,而第一种形式第二种嵌套形式较容易产生逻辑错误,而第一种形式配对关系则非常明确,因此从程序可读性角度出发,配对关系则非常明确,因此从程序可读性角度出发,建议建议尽量使用第一种嵌套形式。尽量使用第一种嵌套形式。2.2.2 if语句的嵌套语句的嵌套ok配对关系实例:配对关系实例:/语句语句1 1:if(n%3=0)if(n%3=0)if(n%5=0)if(n%5=0)coutcoutnn是是1515的倍数的倍数endlendl;else else coutcout n n是是3 3的倍数但不是的倍数但不是5 5的倍数的倍数 endlendl;/语句语句2 2:if(n%3=0)if(n%3=0)if(n%5=0)if(n%5=0)coutcoutnn是是1515的倍数的倍数endlendl;else else 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;ok(5)从形式上看,从形式上看,switch语句的可读性比嵌套语句的可读性比嵌套if语句好,语句好,但不是所有多选一的问题都可由开关语句完成,这是因但不是所有多选一的问题都可由开关语句完成,这是因为开关语句中限定了条件表达式的取值类型。为开关语句中限定了条件表达式的取值类型。ok【例例2.9】运输货物实行运输货物实行分段计费分段计费。采用不采用不带带breakbreak的的开关语句实例开关语句实例【例例2.10】设计一个计算器程序,设计一个计算器程序,实现加、减、乘、除运算。实现加、减、乘、除运算。2.2.4switch语句语句ok循环控制语句循环控制语句是基本流程控制语句之一。是基本流程控制语句之一。C+C+提供三种循环语句:提供三种循环语句:2.3.1while语句语句 2.3.4循环的嵌套循环的嵌套 2.3.3for语句语句2.3.2do-while语句语句 2.3 循环结构程序设计循环结构程序设计ok2.3.1 while 语句语句whilewhile语句也称为当循环。语句也称为当循环。语句格式为:语句格式为:while(while(表达式表达式)循环体语句;循环体语句;图图2.5while语句的执行流程图语句的执行流程图求表达式的值求表达式的值表达式表达式值为真值为真?是是否否执行循环体语句执行循环体语句【例例2.11】求求1+2+3+4+100的值。的值。ok2.3.1 while 语句语句注意:注意:在有循环语句的程序中,通常循环开始前对循环在有循环语句的程序中,通常循环开始前对循环条件进行初始化;而在循环体语句中要包含修条件进行初始化;而在循环体语句中要包含修改循环条件的语句,否则循环将不能终止而陷改循环条件的语句,否则循环将不能终止而陷入死循环。入死循环。C+表达方式灵活,上例中的循环语句还可以写成:表达方式灵活,上例中的循环语句还可以写成:while(i=n)sum+=i+;或者或者while(sum+=i+,i=n);/循环体为空语句循环体为空语句修改程序后在修改程序后在VC+平台上运行,看是否正确平台上运行,看是否正确ok2.3.2do-while语句语句 do-while语语句句称称为为直直到到循环循环,格式为:,格式为:do循环体语句循环体语句while(表达式表达式)否否是是表达式的表达式的值为真值为真?执行循环体语句执行循环体语句求表达式的值求表达式的值图图2.6do-while语句的执行流程图语句的执行流程图ok2.3.2do-while语句语句 do/while语句和语句和while语句的区别:语句的区别:do/while语句至少执行一次循环体后再判断语句至少执行一次循环体后再判断循环条件是否满足;循环条件是否满足;while语句先判断条件是否满足,然后才执行语句先判断条件是否满足,然后才执行循环体。可能一次也不执行。循环体。可能一次也不执行。多数情况下可以互相替代。多数情况下可以互相替代。【例例2.12】用迭代法求用迭代法求a的平方根近似值。的平方根近似值。【例例2.13】输入一段文本,统计文本的行输入一段文本,统计文本的行数、单词数及字符数。数、单词数及字符数。ok2.3.3for语句语句 for循循环环语语句句的的格格式式为:为:for(表达式表达式1;表达式表达式2;表达式表达式3)循环体语句循环体语句图图2.7for语句的执行流程图语句的执行流程图否否是是求表达式求表达式1的值的值求表达式求表达式2的值的值表达式表达式2值值为真为真?执行循环体语句执行循环体语句求表达式求表达式3的值的值okokfor语句、while语句、do/while语句比较:inti=1,sum=0;/循环初始条件循环初始条件while(i=4)sum+=i;i+;/修改循环条件修改循环条件inti=1,sum=0;/循环初始条件循环初始条件do sum+=i;i+;/修改循环条件修改循环条件while(i=4);inti,sum=0;for(i=1;i=4;i+)sum+=i;/*/*习习惯惯上上:表表达达式式1 1:循循环环初初始始条条件件;表表达达式式2 2:循循环环终止条件;表达式终止条件;表达式3 3:修改循环条件:修改循环条件*/okokfor语句的应用语句的应用forfor语句的几点说明:语句的几点说明:1、是先判断型的,同、是先判断型的,同while语句;语句;2、使用更为灵活:、使用更为灵活:三个表达式可以是任意表达式,因此它们就三个表达式可以是任意表达式,因此它们就可以实现循环初始化、计算、修改循环条可以实现循环初始化、计算、修改循环条件等任务,而不一定非在循环体中进行;件等任务,而不一定非在循环体中进行;okfor语句的应用语句的应用【例例2.142.14】运行结果:运行结果:0 1 1 2 35 8 13 21 3455 89 144 233 377610 987 1597 2584 4181【例例2.152.15】输入一个不超过输入一个不超过5 5位的位的整数,将其反向后输出。整数,将其反向后输出。【例例2.142.14】设计程序输出设计程序输出FibonaciiFibonacii数列的前数列的前2020项项ok2.3.4 循环的嵌套循环的嵌套【例例2.16】打印九九表。打印九九表。嵌套循环:嵌套循环:当循环语句中的循环体中又有循环语句时,就构成了嵌套当循环语句中的循环体中又有循环语句时,就构成了嵌套循环。循环。嵌套层次一般不超过嵌套层次一般不超过3层,以保证可读性。层,以保证可读性。【例例2.172.17】打印如下图形。打印如下图形。*ok2.4 转向语句转向语句break语句语句 return语句语句 goto语句语句 continue语句语句 ok2.4 转向语句转向语句 break语句只能用在语句只能用在switch语句语句和和循环语句循环语句中,用来跳出中,用来跳出switch语句或提前终止循环,转去语句或提前终止循环,转去执行执行switch语句或循环语句之后的语句。语句或循环语句之后的语句。在在for循环中可以用循环中可以用break结束循环:结束循环:for(;)if()break;BreakBreak语句:语句:【例例2.18】给定正整数给定正整数m,判定其是否为素数。,判定其是否为素数。ok2.4 转向语句转向语句 continuecontinue语句只能用在语句只能用在循环语句循环语句中,用中,用来来终止本次循环终止本次循环。当程序执行到。当程序执行到continuecontinue语语句时,将跳过其后尚未执行的循环体语句,句时,将跳过其后尚未执行的循环体语句,开始下一次循环开始下一次循环。下一次循环是否执行仍然。下一次循环是否执行仍然取决于循环条件的判断。取决于循环条件的判断。continuecontinue语句与语句与breakbreak语句的区别在于,语句的区别在于,continuecontinue语句结束的只是语句结束的只是本次循环本次循环,而,而breakbreak结束的是结束的是整个循环整个循环。continuecontinue语句:语句:ok例:例:输出输出1100内内3的倍数。的倍数。分析:设置整型变量分析:设置整型变量I从从1变化到变化到100,依次测试,依次测试I是否是否3的倍数,算法属于穷举法。的倍数,算法属于穷举法。for(I=1;I=100;I+)if(I%3!=0)continue;/I不是不是3的倍数,不输出,继续下一个的倍数,不输出,继续下一个I;输出输出I的值;的值;/I是是3的倍数才输出的倍数才输出ok2.4 转向语句转向语句 gotogoto语句和标号语句一起使用,所谓标号语句语句和标号语句一起使用,所谓标号语句是用标识符标识的语句,它控制程序从是用标识符标识的语句,它控制程序从gotogoto语句所语句所在的地方转移到标号语句处。在的地方转移到标号语句处。gotogoto语句会导致程序语句会导致程序结构混乱,可读性降低,而且它所完成的功能完全结构混乱,可读性降低,而且它所完成的功能完全可以用算法的三种基本结构实现,因此一般不提倡可以用算法的三种基本结构实现,因此一般不提倡使用使用gotogoto语句。但在某些特定场合下语句。但在某些特定场合下gotogoto语句可能语句可能会显出价值,比如在多层循环嵌套中,要从深层地会显出价值,比如在多层循环嵌套中,要从深层地方跳出所有循环,如果用方跳出所有循环,如果用breakbreak语句,不仅要使用多语句,不仅要使用多次,而且可读性较差,这时次,而且可读性较差,这时gotogoto语句可以发挥作用。语句可以发挥作用。gotogoto语句:语句:ok2.4 转向语句转向语句return语句用于结束函数的执行,返回调用者,语句用于结束函数的执行,返回调用者,如果是主函数,则返回至操作系统。如果是主函数,则返回至操作系统。利用一个利用一个return语句可以将一个数据返回给调语句可以将一个数据返回给调用者。通常,当函数的返回类型为用者。通常,当函数的返回类型为void时,时,return语句可以省略,如果使用也仅作为函数语句可以省略,如果使用也仅作为函数或程序结束的标志。或程序结束的标志。returnreturn语句:语句:ok2.5 结构化程序设计思想(选读)结构化程序设计思想(选读)传统的程序设计方法可以归结为传统的程序设计方法可以归结为“程序程序=算法算法+数据结构数据结构”,将程序定义为处理数据,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是的一系列过程。这种设计方法的着眼点是面面向过程的向过程的,特点是数据与程序分离,即数据,特点是数据与程序分离,即数据与数据处理分离。与数据处理分离。结构化程序设计的基本思想是采用结构化程序设计的基本思想是采用自顶向自顶向下、逐步细化下、逐步细化的设计方法和的设计方法和单入单出单入单出的控制的控制结构。结构。结构化程序设计方法:结构化程序设计方法:ok2.5 结构化程序设计思想(选读)结构化程序设计思想(选读)举举一一个个简简单单的的例例子子,要要求求读读入入一一组组整整数数,统统计计其其中中正整数和负整数的个数。正整数和负整数的个数。该任务的模块结构及细化过程如下:该任务的模块结构及细化过程如下:1.1.读入数据读入数据2.2.统计正数、负数统计正数、负数的个数的个数;3.输出结果输出结果 2.1 2.1 如数大于如数大于0 0,正整数个数加,正整数个数加1 12.2 2.2 如数小于如数小于0 0,负整数个数加,负整数个数加1 12.3:2.3:取下一个整数取下一个整数正整数个数为正整数个数为0 0;负整数个数;负整数个数0 0 取取第一个整数第一个整数重复重复至统至统计完计完ok2.5 结构化程序设计思想(选读)结构化程序设计思想(选读)(1 1)难以适应大型软件的设计。难以适应大型软件的设计。由于数据与数据处理相由于数据与数据处理相对独立,在大型多文件软件系统中,随着数据量的增大,对独立,在大型多文件软件系统中,随着数据量的增大,程序越来越变得难以理解,多个文件之间的数据沟通也程序越来越变得难以理解,多个文件之间的数据沟通也变得困难,还容易产生意想不到的结果,即所谓副作用。变得困难,还容易产生意想不到的结果,即所谓副作用。(2 2)程序可重用性差。程序可重用性差。处理方法的改变或数据类型的改处理方法的改变或数据类型的改变都将导致重新设计,这种额外开销与可重用性相左,变都将导致重新设计,这种额外开销与可重用性相左,称为重复投入称为重复投入 结构化程序设计结构化程序设计缺陷:缺陷:ok2.6 常用算法的应用实例常用算法的应用实例【例例2.202.20】世界数学史上著名的世界数学史上著名的“百鸡问题百鸡问题”【例例2.212.21】用欧基里德算法(也称辗转法)用欧基里德算法(也称辗转法)求两个整数的最大公约数求两个整数的最大公约数【例例2.232.23】输入一个输入一个8 8位二进制数,将其转位二进制数,将其转换为十进制数输出。换为十进制数输出。【例例2.192.19】用筛选法求用筛选法求100100之内的所有素数之内的所有素数【例例2.222.22】输入一个小于输入一个小于1 1的数的数x x,求,求sinxsinx的的近似值近似值ok2.7枚举类型枚举类型2.7.1 2.7.1 枚举类型的定义枚举类型的定义 2.7.2 2.7.2 枚举变量的使用枚举变量的使用 枚举类型枚举类型(enumerate)(enumerate)是是c+c+中的一种派生数据类型,中的一种派生数据类型,它是用户定义的若干枚举常量的集合。它是用户定义的若干枚举常量的集合。枚举类型的变量,只能取枚举常量表中所列的值。枚举类型的变量,只能取枚举常量表中所列的值。定义枚举类型的主要定义枚举类型的主要目的是增加程序的可读性目的是增加程序的可读性。ok2.7.1枚举类型的定义枚举类型的定义枚举类型定义:枚举类型定义:enum ;关键字关键字enumenum指明其后的标识符是一个类型的名字,枚举常量表指明其后的标识符是一个类型的名字,枚举常量表中列出该类型的所有取值,各枚举常量之间以中列出该类型的所有取值,各枚举常量之间以“,”间隔。间隔。例:例:enmu color_set1 RED,BLUE,WHITE,BLACK;color_set1 RED,BLUE,WHITE,BLACK;enum week Sun,Mon,Tue,Wed,Thu,Fri,Sat;week Sun,Mon,Tue,Wed,Thu,Fri,Sat;枚举常量(或称枚举成员)是以标识符形式表示的整型量,枚举常量(或称枚举成员)是以标识符形式表示的整型量,非非法定义实例:法定义实例:enumenum letter_setletter_set a,d,F,s,T;a,d,F,s,T;/枚举常量只能是标识符枚举常量只能是标识符enumenum year_set2000,2001,2002,2003,2004,2005;year_set2000,2001,2002,2003,2004,2005;/改为改为y2000y2000等则正确等则正确ok2.7.1枚举类型的定义枚举类型的定义枚举常量:枚举常量:枚举常量代表该枚举类型的变量可能取的值,编译系统枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,缺省状态下,这个整数就为每个枚举常量指定一个整数值,缺省状态下,这个整数就是所列举元素的序号,序号从是所列举元素的序号,序号从0 0开始。如上例中开始。如上例中REDRED、BLUEBLUE、WHITEWHITE、BLACKBLACK的值分别为的值分别为0 0、1 1、2 2、3 3。用户也可以在类型定义时为部分或全部枚举常量指定整用户也可以在类型定义时为部分或全部枚举常量指定整数值,在第一个指定值之前的枚举常量仍按缺省方式取值,数值,在第一个指定值之前的枚举常量仍按缺省方式取值,而指定值之后的枚举常量按依次加而指定值之后的枚举常量按依次加1 1的原则取值。的原则取值。各枚举常各枚举常量的值可以重复,但各枚举常量标识符必须不同量的值可以重复,但各枚举常量标识符必须不同。例:例:enum fruit_set apple,orange,banana=1,peach,grapeenum week Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat;枚举常量枚举常量apple、orange、banana、peach、grape的值分的值分别为别为0、1、1、2、3。枚举常量。枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为的值分别为7、1、2、3、4、5、6。ok2.7.2枚举类型的变量的使用枚举类型的变量的使用枚举类型应用要点:枚举类型应用要点:1、定义枚举类型之后,就可以定义枚举类型的变量;亦可类、定义枚举类型之后,就可以定义枚举类型的变量;亦可类型与变量同时定义(甚至类型名可省):型与变量同时定义(甚至类型名可省):color_set1 color1,color2;enum Sun,Mon,Tue,Wed,Thu,Fri,Sat weekday1,weekday2;2、枚举变量的取值范围就是整型数的一个子集。枚举变量占、枚举变量的取值范围就是整型数的一个子集。枚举变量占用内存的大小与整型数相同。用内存的大小与整型数相同。3、枚举变量允许的操作只有赋值和关系运算;如:枚举变量允许的操作只有赋值和关系运算;如:color3=color4=BLUE;if(color3=color4)cout”相等相等”;cout color3color1/非法非法cout)和插入运算符()和插入运算符()进行。也)进行。也可以用读字符的可以用读字符的get()和读字符串的和读字符串的getling()等函数。读写等函数。读写是在文件缓冲区中进行。是在文件缓冲区中进行。(4)关闭文件。当打开一个文件进行读写后,应该显式地关关闭文件。当打开一个文件进行读写后,应该显式地关闭该文件。与打开文件相对应:闭该文件。与打开文件相对应:ifile.close();ofile.close();关闭文件时,系统把与该文件相关联的文件缓冲区中关闭文件时,系统把与该文件相关联的文件缓冲区中的数据写到磁盘文件中,保证文件的完整;同时把磁盘文件的数据写到磁盘文件中,保证文件的完整;同时把磁盘文件名与文件流对象之间的关联断开,可防止误操作修改了磁盘名与文件流对象之间的关联断开,可防止误操作修改了磁盘文件。文件。【例例2.25】将百鸡问题计算结果存入文件。将百鸡问题计算结果存入文件。【例例2.26】读出存放百鸡问题计算结果的文件。读出存放百鸡问题计算结果的文件。ok第二章第二章 基本控制结构程序设计基本控制结构程序设计结束欢迎再来!ok if 语句语句【例例2 24 4】【例例24】输入一个年份,判断是否闰年。输入一个年份,判断是否闰年。算法分析算法分析:假定年份为假定年份为year,闰年的条件是闰年的条件是:year%4=0&year%100!=0|year%400=0。intmain()intyear;cout输入年份输入年份:year;if(year%4=0&year%100!=0|year%400=0)coutyear“年是闰年年是闰年endl;elsecoutyear“年不是闰年年不是闰年endl;return0;okok分分析析:读读入入三三个个数数,先先求求出出两两个个数数中中较较大大者者,再将该大数与第三个数比较,求出最大数。再将该大数与第三个数比较,求出最大数。intmain()inta,b,c,max;coutabc;couta=atb=btc=cb)max=a;elsemax=b;if(cmax)cout“最最 大大 数数 为为:”cendl;elsecout“最大数为最大数为:”max=b?max=amax=b否否是是cmax?max=c输出输出max图图2.2例例2.5流程图流程图ok/方法方法1:采用:采用if中嵌套形式中嵌套形式intmain()inta,b,c,max;coutabc;couta=atb=btc=cb)if(ac)max=a;/ab且且acelsemax=c;/ab且且ac)max=b;/acelsemax=c;/a=b且且bccout最大数最大数max=max;return0;if 语句语句【例例2 26 6】【例例2.6】用嵌套用嵌套if语句完成语句完成【例例2.5】的任务。的任务。okok/方法方法2:采用:采用else中嵌套形式中嵌套形式intmain()inta,b,c,max;coutabc;couta=atb=btc=cb&ac)max=a;elseif(ba&bc)max=b;elsemax=c;cout最大数为最大数为:max=max;return 0;if 语句语句【例例2 26 6】okok【例例2.72.7】某商场优惠活动规定,某种商品单某商场优惠活动规定,某种商品单价价为为8080元元,一一次次购购买买5 5件件以以上上(包含5件)1010件件以以下下(不包含10件)打打9 9折折,一一次次购购买买1010件件以以上上(包含10件)打打8 8折折。设设计计程程序序根根据据客客户户的的购购买买量量计计 算总价。算总价。算法算法1、输入购买件数、输入购买件数count,设置单价设置单价price=80(元元)2、根据根据count值确定折扣值确定折扣discount;3、实际售价实际售价amount=price*count*discount;4、输出输出amount的值。的值。算法细化:算法细化:2.1、if(count=5&count=10)discount=0.8;if if 语句语句【例例2 27 7】okint main()float price=80,discount,amount;/单单价价,折折扣扣,总总价价 int count;/购买件数购买件数 cout输入购买件数输入购买件数:count;if(count5)discount=1;else if(count10)discount=0.9;else discount=0.8;amount=price*count*discount;cout购买件数:购买件数:countendl;cout单价:单价:pricet折扣:折扣:“discountendl;cout总价:总价:amount0,方程有两个不同实根;方程有两个不同实根;*若若delta0?否否输输出出两两个个相相等实根等实根否否是是输出输出无实根无实根 if if 语句语句【例例2 28 8】ok#include#include using namespace std;int main()float a,b,c;float delta,x1,x2;const float zero=0.0001;/定义一个很小的常数定义一个很小的常数cout输入三个系数输入三个系数a(a!=0),b,c:abc;couta=atb=btc=cendl;delta=b*b-4*a*c;求一元二次方程的根源程序求一元二次方程的根源程序 if if 语句语句【例例2 28 8】okif(fabs(delta)zero)/绝对值很小的数即被认为是绝对值很小的数即被认为是0cout方程有两个相同实根方程有两个相同实根:;coutx1=x2=-b/(2*a)0)delta=sqrt(delta);x1=(-b+delta)/(2*a);x2=(-b-delta)/(2*a);cout方程有两个不同实根方程有两个不同实根:;coutx1=x1tx2=“x2endl;else cout方程无实根方程无实根!endl;/delta0return 0;请在请在VC+VC+平台上运行,输入不同的系数,使程序所有分支都平台上运行,输入不同的系数,使程序所有分支都可以被执行一次。可以被执行一次。if if 语句语句【例例2 28 8】ok不带不带breakbreak的开关语句实例的开关语句实例【例例2.9】运运输输公公司司对对所所运运货货物物实实行行分分段段计计费费。设设运运输里程为输里程为s,则运费打折情况如下:则运费打折情况如下:s250不打折扣不打折扣250=s5002%折扣折扣500=s10005%折扣折扣1000=s20008%折扣折扣2000=s300010%折扣折扣3000=s15%折扣折扣2000=s300010%折扣折扣1000=s20008%折扣折扣500=s10005%折扣折扣250=s5002%折扣折扣s250不打折扣不打折扣不带不带breakbreak的开关语句实例的开关语句实例okintmain()intc,s;doublep,w,d,f;cout输入运输单价输入运输单价p,重量,重量w和里程和里程s:pws;f=0;c=s/250;switch(c)default:d=0.15;f+=p*w*(s-3000)*(1-d);s=3000;case8:case9:case10:case11:d=0.1;f+=p*w*(s-2000)*(1-d);s=2000;case4:case5:case6:case7:d=0.08;f+=p*w*(s-1000)*(1-d);s=1000;case2:case3:d=0.05;f+=p*w*(s-500)*(1-d);s=500;case1:d=0.02;f+=p*w*(s-250)*(1-d);s=250;case0:d=0;f+=p*w*s*(1-d);cout运输单价运输单价:pt重量重量:wt里程里程:sendl;cout折扣后运费折扣后运费:fendl;return0;请在请在VC+平台上运行,输入不同的里程。平台上运行,输入不同的里程。ok【例例2.10】设计一个计算器程序,实现加、减、乘、除运算。设计一个计算器程序,实现加、减、乘、除运算。分析:分析:读入两个操作数和运算符,根据运算符完成相应运算。读入两个操作数和运算符,根据运算符完成相应运算。#includeusingnamespacestd;intmain()floatnum1,num2;charop;cout输入操作数输入操作数1,运算符,操作数,运算符,操作数2:num1opnum2;switch(op)case+:coutnum1opnum2=num1+num2endl;break;case-:coutnum1opnum2=num1-num2endl;break;case*:coutnum1opnum2=num1*num2endl;break;case/:coutnum1opnum2=num1/num2endl;break;default:coutop是无效运算符是无效运算符!;return0;常量表达式采用字符型,上机运行一下。常量表达式采用字符型,上机运行一下。ok while 语句语句【例例2.11】【例例2.11】求求1+2+3+4+100的值。的值。okN N个连续整数相加算法个连续整数相加算法1 1、设置变量、设置变量i i用来放加数,变量用来放加数,变量sumsum用来放被加数与用来放被加数与和值和值,并初始化并初始化;2 2、从第一个数开始,依次将加数赋给、从第一个数开始,依次将加数赋给i i,并进行操作,并进行操作sumsumsum+isum+i,称为累加;,称为累加;3 3、输出、输出sumsum;细化算法细化算法2 2:while(while(还有加数还有加数)i=i=当前加数;当前加数;sum+=i;sum+

    注意事项

    本文(基本控制结构程序设计(精品).ppt)为本站会员(hwp****526)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开