




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章选择控制结构,C语言程序设计基础教学系,本章学习内容,算法的描述方法用于单分支控制的if语句用于双分支控制的if-else语句用于多路选择的switch语句break语句在switch语句中的作用关系运算符条件运算符逻辑运算符程序测试,生活中的问题求解:Problem:烤蛋糕(BakingaCake)Howtosolve:Start将烤箱预热准备一个盘子在盘子上抹上一些黄油将面粉、鸡蛋、糖和香精混合在一起搅拌均匀将搅拌好的面粉团放在盘子上将盘子放到烤箱内End,5.1生活中与计算机中的问题求解(ProblemSolvingProcess),分治策略(DivideandConquerStrategy),Problem:准备早餐(PrepareaBreakfast),1.Start2.准备早餐3.End,1.Start2.准备早餐2.1准备一个金枪鱼三明治2.2准备一些薯条2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),1.Start2.准备早餐2.1准备一个金枪鱼三明治2.1.1拿来两片面包2.1.2准备一些金枪鱼酱2.2准备一些薯片2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),1.Start2.准备早餐2.1准备一个金枪鱼三明治2.1.1拿来两片面包2.1.2准备一些金枪鱼酱2.2准备一些薯条2.2.1将土豆切成条2.2.2油炸这些土豆条2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),分治策略(DivideandConquerStrategy),1.Start2.准备早餐2.1准备一个金枪鱼三明治2.1.1拿来两片面包2.1.2准备一些金枪鱼酱2.2准备一些薯条2.2.1将土豆切成条2.2.2油炸这些土豆条2.3冲一杯咖啡2.3.1烧些开水放入杯中2.3.2在水杯中加入一些咖啡和糖3.End,5.2算法的概念及其描述方法,面向对象程序=对象+消息面向过程的程序=数据结构+算法计算机中的算法(Algorithm)为解决一个具体问题而采取的、确定的、有限的操作步骤,仅指计算机能执行的算法Aspecificandstep-by-stepsetofinstructionsforcarryingoutaprocedureorsolvingaproblem,usuallywiththerequirementthattheprocedureterminateatsomepoint,5.2算法的概念及其描述方法,算法的特性有穷性在合理的时间内完成确定性,无歧义如果x0,则输出Yes;如果x0,则输出No有效性能有效执行负数开平方没有输入或有多个输入有一个或多个输出,5.2算法的概念及其描述方法,算法的描述方法自然语言描述传统流程图(Flowchart)在1966年,Bohra与Jacopini提出N-S结构化流程图1973年,美国学者I.Nassi和B.Shneiderman提出伪码(Pseudocode)表示,流程图(Flowchart),Flowchartrepresentsalgorithmgraphically.,计算机中的问题求解过程,Example:买苹果,计算价钱Calculateanddisplaythepriceofanumberofapplesifthequantityinkgandpriceperkgaregiven.,quantitypricePerkg,price,price=quantity*pricePerkg,Input,Process,Output,Firstidentifytheinputandoutputoftheproblem.,顺序结构(SequenceStructure),给变量赋值赋值表达式语句赋值表达式;price=quantity*pricePerkg;输入输出数据标准库函数调用语句scanf(%d,【例5.1】计算两整数的最大值,num1num2,max,?,Input,Process,Output,DoubleSelection,选择结构(分支结构)(SelectionStructure),选择结构和条件判断,C语言有两种选择语句:(1)if语句,实现单分支双分支和多分支的选择结构(2)switch语句,实现多分支的选择结构,5.3关系运算符与关系表达式,5.4用于单分支控制的条件语句(SingleSelection),stepa,condition,stepm,stepn,stepb,true,false,PseudocodeStructurestepastartifstepmstepnend_ifstepb,ifStatement,Thestructureissimilartosingleselection(flowchart),Syntax:if(expression)statement;orif(expression)statement1;statement2;,ifStatement,Thestructureissimilartosingleselection(flowchart),Syntax:if(expression)statement;orif(expression)statement1;statement2;,#includemain()inta,b,max;printf(Inputa,b:);scanf(%d,%d,Inputa,b:_,Inputa,b:2015_,Inputa,b:2015max=20_,【例5.1】计算两整数的最大值,PseudocodeStructureStepastartifStepmStepnend_ifelsestartStepxStepyend_elseStepz,Stepa,condition,Stepm,Stepn,Stepz,true,false,Stepx,Stepy,5.5用于双分支控制的条件语句(DoubleSelection),if-elseStatement,Thestructureissimilartodoubleselection(flowchart),Syntax:if(expression)statement1;elsestatement2;,orif(expression)statement1;statement3;elsestatement2;statement4;,Flowchart:CalculatetheMaximum,Inputaandb,Outputmax,ab?,maxb,maxa,Start,End,【例5.2】计算两整数的最大值,scanf(%d,%d,if(ab)max=a;elsemax=b;,TurnFlowcharttoCProgram,【例5.2】计算两整数的最大值,printf(max=%dn,max);,#includemain()inta,b,max;printf(Inputa,b:);scanf(%d,%d,if(ab)max=a;if(ab?a:b;,5.6条件运算符和条件表达式,【例5.3】,5.7用于多分支控制的条件语句(MultipleSelection),Multi-wayifStepaif(expression1)Stepmif(expression2)StepnStepz,Stepa,expression1,Stepm,Stepn,Stepz,true,false,expression2,true,false,5.7用于多分支控制的条件语句(MultipleSelection),CascadedifStepaif(expression1)Stepmelseif(expression2)StepnelseStepxStepz,Stepa,expression1,Stepm,Stepn,Stepz,true,false,expression2,true,false,Stepx,If复合语句,(1)if(ab)printf(“max=%dn”,a);c=a;(2)if(ab)printf(“max=%dn”,a);c=a;/同1语言逻辑意义不同!else/错误,无ifelse配对!注:ifelse是一条语句!(3)if(ab);/常见使用错误,用if语句处理选择结构举例,1、计算并输出三个整数的最大值(略)2、例5.3(思考题)输入两个实数,按代数值由小到大的顺序输出这两个数。,解题思路:只需要做一次比较,然后进行一次交换即可用if语句实现条件判断关键是怎样实现两个变量值的互换,A,B,互换前,A,B,互换后,用if语句处理选择结构举例,A,B,C,用if语句处理选择结构举例,A,B,C,用if语句处理选择结构举例,A,B,C,用if语句处理选择结构举例,#includeintmain()floata,b,t;scanf(%f,%f,将a和b的值互换,如果ab,选择结构,用if语句实现的,#includeintmain()floata,b,t;scanf(%f,%f,例5.3(思考题)输入3个数a,b,c,要求按由小到大的顺序输出。,解题思路:可以先用伪代码写出算法:ifab,a和b对换(a是a、b中的小者)ifac,a和c对换(a是三者中最小者)ifbc,b和c对换(b是三者中次小者)顺序输出a,b,c,#includeintmain()floata,b,c,t;scanf(%f,%f,%f,如果ab,将a和b对换,a是a、b中的小者,#includeintmain()floata,b,c,t;scanf(%f,%f,%f,如果ac,将a和c对换,a是三者中的小者,#includeintmain()floata,b,c,t;scanf(%f,%f,%f,如果bc,将b和c对换,b是三者中的次小者,例5.4求方程的解。,解题思路:处理以下各情况,不是二次方程,有两个相等实根,有两个不等实根。,有两个共轭复根。应当以p+qi和p-qi的形式输出复根其中,p=-b/2a,q=()/2a,#include#include#includeintmain()doublea,b,c,disc,x1,x2,realpart,imagpart;scanf(%lf,%lf,%lf,实型不能用if(a=0),elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(hasdistinctrealroots:%8.4fand%8.4fn,x1,x2);else,realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:n);printf(%8.4f+%8.4fin“,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);return0;,realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:n);printf(%8.4f+%8.4fin“,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,ima
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州生态渔业有限责任公司面向社会招聘综合笔试历年参考题库附带答案详解
- 2025证大集团招聘15名工作人员笔试历年参考题库附带答案详解
- 2025福建福州地铁2号线校园招聘笔试历年参考题库附带答案详解
- 2025福建省海峡人才报社有限责任公司招聘全媒体业务工作人员3人笔试历年参考题库附带答案详解
- 2025福建安溪城市建设发展有限公司招募职业经理人笔试历年参考题库附带答案详解
- 2025甘肃平凉灵台县绿色果品有限责任公司招聘4人笔试历年参考题库附带答案详解
- 2025湖南怀化市中方县产业投资发展集团有限公司招聘8人笔试历年参考题库附带答案详解
- 2025安徽岳西县事业单位引进急需紧缺专业人才3人模拟试卷及答案详解(网校专用)
- 2025年滨州水务发展集团有限公司权属公司公开招聘国有企业工作人员笔试笔试历年参考题库附带答案详解
- 2025山东日照经济技术开发区区属国有企业招聘工作人员拟聘用人员(二)笔试历年参考题库附带答案详解
- 人美版美术六年级上册全册教案
- GB/T 21499-2024粮油检验稻谷和糙米潜在出米率测定方法
- (版)科学道德与学风建设题库
- GB/Z 44314-2024生物技术生物样本保藏动物生物样本保藏要求
- 2023年全国职业院校技能大赛-融媒体内容策划与制作赛项规程
- 《电力建设施工企业安全生产标准化实施规范》
- 糖尿病周围神经病变知多少课件
- 新概念英语青少版入门 A-Unit-1课件(共98张)
- 儿童肺炎支原体肺炎诊疗指南(2023年版)解读
- 个人履职考核情况表
- 中小学消防安全、交通安全、食品安全、防溺水、防欺凌系统安全教育主题课件
评论
0/150
提交评论