




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,Chap5选择控制结构,算法的描述方法用于单分支控制的if语句用于双分支控制的if-else语句用于多路选择的switch语句关系运算符条件运算符逻辑运算符,.,2,生活中的问题求解:Problem:烤蛋糕(BakingaCake)Howtosolve:Start将烤箱预热准备一个盘子在盘子上抹上一些黄油将面粉、鸡蛋、糖和香精混合在一起搅拌均匀将搅拌好的面粉团放在盘子上将盘子放到烤箱内End,生活中的问题求解(ProblemSolvingProcess),.,3,Problem:准备早餐(PrepareaBreakfast),分治策略(DivideandConquerStrategy),1.Start2.准备早餐3.End,.,4,1.Start2.准备早餐2.1准备一个金枪鱼三明治2.2准备一些薯条2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),.,5,1.Start2.准备早餐2.1准备一个金枪鱼三明治2.1.1拿来两片面包2.1.2准备一些金枪鱼酱2.2准备一些薯片2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),.,6,1.Start2.准备早餐2.1准备一个金枪鱼三明治2.1.1拿来两片面包2.1.2准备一些金枪鱼酱2.2准备一些薯片2.2.1将土豆切成片2.2.2油炸这些土豆片2.3冲一杯咖啡3.End,分治策略(DivideandConquerStrategy),.,7,分治策略(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,.,8,面向过程的程序=数据结构+算法计算机中的算法(Algorithm)为解决一个具体问题而采取的、确定的、有限的操作步骤,仅指计算机能执行的算法,算法的概念及其描述方法,.,9,有穷性在合理的时间内完成确定性,无歧义如果x0,则输出Yes;如果x0,则输出No有效性能有效执行负数开平方没有输入或有多个输入有一个或多个输出,算法的特性,.,10,自然语言描述传统流程图(Flowchart)在1966年,Bohra与Jacopini提出N-S结构化流程图1973年,美国学者I.Nassi和B.Shneiderman提出伪码(Pseudocode)表示,算法的描述方法,.,11,Flowchartrepresentsalgorithmgraphically.,流程图(Flowchart),.,12,计算机中的问题求解过程,Example:买苹果,计算价钱Calculateanddisplaythepriceofanumberofapplesifthequantityinkgandpriceperkgaregiven.,quantitypricePerkg,price,price=quantity*pricePerkg,Input,Process,Output,Firstidentifytheinputandoutputoftheproblem.,.,13,给变量赋值赋值表达式语句赋值表达式;price=quantity*pricePerkg;输入输出数据标准库函数调用语句scanf(%d,顺序结构(SequenceStructure),.,14,计算两整数的最大值,num1num2,max,?,Input,Process,Output,.,15,DoubleSelection,选择结构(分支结构)(SelectionStructure),关系运算符与关系表达式,.,17,用于单分支控制的条件语句(SingleSelection),stepa,condition,stepm,stepn,stepb,true,false,PseudocodeStructurestepaifstartstepmstepnend_ifstepb,.,18,Thestructureissimilartosingleselection(flowchart),ifStatement,Syntax:if(expression)statement;orif(expression)statement1;statement2;,.,19,ifStatement,Syntax:if(expression)statement;orif(expression)statement1;statement2;,.,20,#includemain()inta,b,max;printf(Inputa,b:);scanf(%d%d,Inputa,b:2015max=20_,单分支(1):计算两整数的最大值,.,21,单分支(2):求绝对值,输入1个整数,输出它的绝对值(实现fabs函数),当number=0时,保持不变,.,22,源程序-求绝对值,#includeintmain(void)intnumber;printf(Enteranumber:);scanf(%d,Enteranumber:10Theabsolutevalueis10.,Enteranumber:-300Theabsolutevalueis300.,.,23,PseudocodeStructureStepaifstartStepmStepnend_ifelsestartStepxStepyend_elseStepz,Stepa,condition,Stepm,Stepn,Stepz,true,false,Stepx,Stepy,用于双分支控制的条件语句(DoubleSelection),.,24,Thestructureissimilartodoubleselection(flowchart),if-elseStatement,Syntax:if(expression)statement1;elsestatement2;,orif(expression)statement1;statement2;elsestatement3;statement4;,.,25,Flowchart:CalculatetheMaximum,Inputaandb,Outputmax,ab?,maxb,maxa,Start,End,计算两整数的最大值,.,26,scanf(%d,%d,if(ab)max=a;elsemax=b;,TurnFlowcharttoCProgram,计算两整数的最大值,printf(max=%dn,max);,.,27,#includemain()inta,b,max;printf(Inputa,b:);scanf(%d,%d,if(ab)max=a;if(ab?a:b;,条件运算符和条件表达式,.,29,双分支(2):判断数字的奇偶性,例3-7输入1个整数,判断该数是奇数还是偶数,number%2=0,读入一个整数if(该数能被2整除)则该数为偶数else该数为奇数,.,30,源程序-判断数字的奇偶性,#includeintmain(void)intnumber;printf(Enteranumber:);scanf(%d,Enteranumber:329Tnenumberisodd.,Enteranumber:1028Tnenumberiseven.,.,31,用于多分支控制的条件语句(1)(MultipleSelection),Multi-wayifStepaif(expression1)Stepmif(expression2)StepnStepz,Stepa,expression1,Stepm,Stepn,Stepz,true,false,expression2,true,false,.,32,用于多分支控制的条件语句(2)(MultipleSelection),CascadedifStepaif(expression1)Stepmelseif(expression2)StepnelseStepxStepz,Stepa,expression1,Stepm,Stepn,Stepz,true,false,expression2,true,false,Stepx,.,33,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,.,35,嵌套的ifelse语句,if(表达式1)if(表达式2)语句1else语句2elseif(表达式3)语句3else语句4,用于多分支控制的条件语句(3)(MultipleSelection),.,36,嵌套的if-else结构示例:,设计程序,从键盘任意输入三个整数,编程输出三者之中的最小数。If(a=b)if(c=a)min=c;elsemin=a;elseif(c=b)min=c;elsemin=b;,temp=a0”后变量a、b、c的值分别是。,.,59,题目:,设有变量说明“inta=12,b=15,c;”,则对表达式c=(a|(b-=a)求值后,变量b和c的值分别为。A)3,1B)15,12C)15,1D)3,12,.,60,if(ch=a实现多路选择,判断输入字符的类型:,.,61,测试的主要方式给定特定的输入,运行被测软件检查软件的输出是否与预期结果一致测试用例的选取方法尽量覆盖所有分支,减少重复覆盖测试的目的通过运行测试用例找出软件中的Bug成功的测试在于发现迄今为止尚未发现的Bug测试人员的主要任务是站在使用者的角度,通过不断使用和攻击,尽可能多地找出Bug测试的过程就像黑客的攻击过程,专门找软件漏洞,本章扩充内容,.,62,采用测试用例,通过运行程序查找程序错误的方法实质是一种抽样检查,彻底的测试是不可能的彻底的测试不现实,要考虑时间、费用等限制,不允许无休止的测试测试只能证明程序有错,不能证明程序无错E.W.Dijkstra测试能提高软件质量,但提高软件质量不能依赖于测试,本章扩充内容,.,63,白盒测试(结构测试)在完全了解程序的结构和处理过程的情况下,按照程序内部的逻辑测试程序,检验程序中的每条逻辑路径是否都能按预定要求正确工作主要用于测试的早期黑盒测试(功能测试)把系统看成一个黑盒子,不考虑程序内部的逻辑结构和处理过程,只根据需求规格说明书的要求,设计测试用例,检查程序的功能是否符合它的功能说明主要用于测试的后期,软件测试方法的分类,.,64,#include#includemain()floata,b,c;printf(Inputthethreeedgelength:);scanf(%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3-取代基-6-吡唑类衍生物:合成路径与生物活性的深度剖析
- 信息过载对认知功能的影响-洞察及研究
- 深度学习在信息抽取中的应用-洞察及研究
- 智能金融创新与风险管理-洞察及研究
- 民族关系与经济发展-洞察及研究
- 激光切割中的能量转换与利用-洞察及研究
- 人类活动对鸟类生态位影响-洞察及研究
- 建材产业数字化转型与碳中和目标的融合-洞察及研究
- B2B平台用户体验研究-洞察及研究
- 种植土豆土地转让合同6篇
- 2024年下半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
- 2025廉洁答题题库与答案
- 矿山支护工培训课件
- 整本书阅读教学课件
- 2025东莞市公安局长安分局警务辅助人员招聘考试笔试试题(含答案)
- 急性ST段抬高型心肌梗死的护理课件
- DBJ50-T-200-2024 建筑桩基础技术标准
- 内分泌健康宣教
- 【高朋律师事务所】RWA发展研究报告:法律、监管和前瞻(2025年)
- 2025至2030中国电动汽车用电动机行业项目调研及市场前景预测评估报告
- 2025年福州房地产市场分析报告
评论
0/150
提交评论