c语言-选择控制结构.ppt_第1页
c语言-选择控制结构.ppt_第2页
c语言-选择控制结构.ppt_第3页
c语言-选择控制结构.ppt_第4页
c语言-选择控制结构.ppt_第5页
免费预览已结束,剩余65页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chap5选择控制结构 算法的描述方法用于单分支控制的if语句用于双分支控制的if else语句用于多路选择的switch语句关系运算符条件运算符逻辑运算符 生活中的问题求解 Problem 烤蛋糕 BakingaCake Howtosolve Start将烤箱预热准备一个盘子在盘子上抹上一些黄油将面粉 鸡蛋 糖和香精混合在一起搅拌均匀将搅拌好的面粉团放在盘子上将盘子放到烤箱内End 生活中的问题求解 ProblemSolvingProcess Problem 准备早餐 PrepareaBreakfast 分治策略 DivideandConquer Strategy 1 Start2 准备早餐3 End 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 2准备一些薯条2 3冲一杯咖啡3 End 分治策略 DivideandConquer Strategy 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 1 1拿来两片面包2 1 2准备一些金枪鱼酱2 2准备一些薯片2 3冲一杯咖啡3 End 分治策略 DivideandConquer Strategy 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 1 1拿来两片面包2 1 2准备一些金枪鱼酱2 2准备一些薯片2 2 1将土豆切成片2 2 2油炸这些土豆片2 3冲一杯咖啡3 End 分治策略 DivideandConquer Strategy 分治策略 DivideandConquer Strategy 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 面向过程的程序 数据结构 算法计算机中的算法 Algorithm 为解决一个具体问题而采取的 确定的 有限的操作步骤 仅指计算机能执行的算法 算法的概念及其描述方法 有穷性在合理的时间内完成确定性 无歧义如果x 0 则输出Yes 如果x 0 则输出No有效性能有效执行负数开平方没有输入或有多个输入有一个或多个输出 算法的特性 自然语言描述传统流程图 Flowchart 在1966年 Bohra与Jacopini提出N S结构化流程图1973年 美国学者I Nassi和B Shneiderman提出伪码 Pseudocode 表示 算法的描述方法 Flowchartrepresentsalgorithmgraphically 流程图 Flowchart 计算机中的问题求解过程 Example 买苹果 计算价钱Calculateanddisplaythepriceofanumberofapplesifthequantityinkgandpriceperkgaregiven quantitypricePerkg price price quantity pricePerkg Input Process Output Firstidentifytheinputandoutputoftheproblem 给变量赋值赋值表达式语句赋值表达式 price quantity pricePerkg 输入输出数据标准库函数调用语句scanf d 顺序结构 SequenceStructure 计算两整数的最大值 num1num2 max Input Process Output DoubleSelection 选择结构 分支结构 SelectionStructure 关系运算符与关系表达式 用于单分支控制的条件语句 SingleSelection stepa condition stepm stepn stepb true false PseudocodeStructurestepaifstartstepmstepnend ifstepb Thestructureissimilartosingleselection flowchart ifStatement Syntax if expression statement orif expression statement1 statement2 ifStatement Syntax if expression statement orif expression statement1 statement2 includemain inta b max printf Inputa b scanf d d Inputa b 2015max 20 单分支 1 计算两整数的最大值 单分支 2 求绝对值 输入1个整数 输出它的绝对值 实现fabs函数 当number 0时 保持不变 源程序 求绝对值 includeintmain void intnumber printf Enteranumber scanf d Enteranumber 10Theabsolutevalueis10 Enteranumber 300Theabsolutevalueis300 PseudocodeStructureStepaifstartStepmStepnend ifelsestartStepxStepyend elseStepz Stepa condition Stepm Stepn Stepz true false Stepx Stepy 用于双分支控制的条件语句 DoubleSelection Thestructureissimilartodoubleselection flowchart if elseStatement Syntax if expression statement1 elsestatement2 orif expression statement1 statement2 else statement3 statement4 Flowchart CalculatetheMaximum Inputaandb Outputmax a b max b max a Start End 计算两整数的最大值 scanf d d if a b max a elsemax b TurnFlowcharttoCProgram 计算两整数的最大值 printf max d n max includemain inta b max printf Inputa b scanf d d if a b max a if a b max b 双分支 1 计算两整数的最大值 includemain inta b max printf Inputa b scanf d d max a b a b 条件运算符和条件表达式 双分支 2 判断数字的奇偶性 例3 7输入1个整数 判断该数是奇数还是偶数 number 2 0 读入一个整数if 该数能被2整除 则该数为偶数else该数为奇数 源程序 判断数字的奇偶性 includeintmain void intnumber printf Enteranumber scanf d Enteranumber 329Tnenumberisodd Enteranumber 1028Tnenumberiseven 用于多分支控制的条件语句 1 MultipleSelection Multi wayifStepaif expression1 Stepm if expression2 Stepn Stepz Stepa expression1 Stepm Stepn Stepz true false expression2 true false 用于多分支控制的条件语句 2 MultipleSelection CascadedifStepaif expression1 Stepm elseif expression2 Stepn else Stepx Stepz Stepa expression1 Stepm Stepn Stepz true false expression2 true false Stepx If else if示例 分段计算水费 源程序 分段计算水费 includeintmain void doublex y printf Enterx scanf lf Enterx 0 5f 0 50 0 00 Enterx 9 5f 9 50 12 67 Enterx 21 3f 21 30 42 75 嵌套的if else语句 if 表达式1 if 表达式2 语句1else语句2elseif 表达式3 语句3else语句4 用于多分支控制的条件语句 3 MultipleSelection 嵌套的if else结构示例 设计程序 从键盘任意输入三个整数 编程输出三者之中的最小数 If a b if c a min c elsemin a else if c b min c elsemin b temp a b a b min temp c temp c 用于多路选择的switch语句 Thestructureissimilartomultipleselection flowchart switch expression casevalue1 statement1 break casevalue2 statement2 break default statementX break ImportantRule switch expression casevalue1 statement1 break casevalue2 statement2 break default statementX break 用于多路选择的switch语句 注意 Example switch month case1 printf January n break case2 printf February n break case3 printf March n break default printf Others n break printf End January JanuaryEnd 用于多路选择的switch语句 Example switch month case1 printf January n break case2 printf February n break case3 printf March n break default printf Others n break printf End March MarchEnd 用于多路选择的switch语句 Example switch month case1 printf January n break case2 printf February n break case3 printf March n break default printf Others n break printf End 用于多路选择的switch语句 Example switch month case1 printf January n break case2 printf February n case3 printf March n break default printf Others n break printf End 用于多路选择的switch语句 Example switch month case1 printf January n break case2 printf February n case3 printf March n break default printf Others n break printf End February March End 用于多路选择的switch语句 Example switch month case1 printf January n break case2 printf February n case3 printf March n break default printf Others n break printf End And ifmonth 1 And ifmonth 34 用于多路选择的switch语句 假设自动售货机出售4种商品 薯片 crisps 爆米花 popcorn 巧克力 chocolate 和可乐 cola 售价分别是每份3 0 2 5 4 0和3 5元 在屏幕上显示以下菜单 用户可以查询一个商品的价格 菜单样式 1 Selectcrisps 2 Selectpopcorn 3 Selectchocolate 4 Selectcola 0 Exit 示例 自动售货机 includeintmain void intchoice i doubleprice printf 1 Selectcrisps n printf 2 Selectpopcorn n printf 3 Selectchocolate n printf 4 Selectcola n printf 0 exit n printf Enterchoice scanf d 1 Selectcrisps 2 Selectpopcorn 3 Selectchocolate 4 Selectcola 0 ExitEnterchoice 1price 3 0Thanks 1 Selectcrisps 2 Selectpopcorn 3 Selectchocolate 4 Selectcola 0 ExitEnterchoice 7price 0 0Thanks 编程设计一个简单的计算器程序 要求用户从键盘输入如下形式的表达式 操作数1运算符op操作数2然后 计算并输出表达式的值指定的运算符为加 减 乘 除 示例 计算器程序 main intdata1 data2 定义两个操作符 charop 定义运算符 printf Pleaseentertheexpression scanf d c d 思考题 语句if 0 data2 的必要性 避免 除零错误 1998年11月 科学美国人 杂志描述了美国导弹巡洋舰约克敦号上的一起事故 除零错导致军舰推进系统的关闭为什么不用if data2 0 如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符 那么程序如何修改 main intdata1 data2 charop printf Pleaseentertheexpression scanf d c d 思考题 如果要求对浮点数进行运算 那么程序如何修改 修改例5 5程序 使其能进行浮点数的算术运算 同时允许使用字符 x与X作为乘号 并且允许输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符 main floatdata1 data2 charop printf Pleaseentertheexpression scanf f c f SymbolDescription 与 AND 当且仅当两者都为真 则结果为真 或 OR 只要两者中有一个为真 结果就为真 非 NOT 逻辑运算符和逻辑表达式 LogicalOperators 高 低 逻辑与 逻辑或 逻辑非 x 1 y 1 x 1 y 1 x 1 x 1 即x 1 逻辑运算符的含义 33 x 5 Question ch是大写英文字母 ch A ch Z 判断某一年year是否是闰年的条件是满足下列二者之一能被4整除 但不能被100整除 能被400整除 year 4 0 year 100 0 year 400 0优先级 year 4 0 year 100 0 year 400 0 逻辑运算符和逻辑表达式 LogicalOperators Example a 1 b 5 0 1 b 5 0 b 5 0 短路特性 尽量使用最少的操作数来确定表达式的值 这就意味着表达式中的某些操作数可能不会被计算 题目 若有变量说明 inta 0 b 1 c 2 执行语句 if a 0 后变量a b c的值分别是 题目 设有变量说明 inta 12 b 15 c 则对表达式c a b a 求值后 变量b和c的值分别为 A 3 1B 15 12C 15 1D 3 12 if ch a 实现多路选择 判断输入字符的类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论