欢迎来到天天文库
浏览记录
ID:36611844
大小:2.72 MB
页数:83页
时间:2019-05-09
《《C语言第三章》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章算法基础与程序控制结构信息学院自动化仪表研究所本章主要内容程序设计方法简述算法与流程图算法的两种表示法两种流程图三种基本结构选择结构程序设计if…else语句switch语句循环结构程序设计四种循环语句常用算法枚举法(穷举法)归纳法(递推法)一、程序设计方法简述1、计算机处理问题的过程【例一】让某学生解方程ax2+bx+c=0求解过程:①分析问题这是一个一元二次方程(代数问题,须中学代数知识)②确定处理方案用求根公式③确定解题步骤确定a、b、c的值求出b2-4ac的值如果b2-4ac>0(双实根)X1=……X2=……如果b2-4ac=0(单实根)X
2、1=X2=……如果b2-4ac<0(双复根)X1=……X2=……④根据上述步骤计算⑤写出答案,整理、分析结果一、程序设计方法简述1、计算机处理问题的过程NikiklausWirth提出:程序=数据结构+算法(做什么,如何做)完整的程序设计应该是:程序=算法+数据结构+程序设计方法+语言工具和环境灵魂加工对象工具2、编程要诀——自顶向下,逐步求精“先大纲,后文章”用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做“自顶向下,逐步细化”。如同写文章:分几部分——每部分几个问题——每个问题几点……优点:不易顾此失彼;易于检查;减
3、少后期修改工作量对于面向过程的程序设计语言:程序=数据结构+算法对比:文章=材料+构思2、编程要诀——自顶向下,逐步求精“先大纲,后文章”自顶向下,逐步细化方法的优点:考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分修改有关段落即可,与其它部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。一、程序设计方法简述3、程序测试目的发现程序中的错误(Bug)程序错误◆语法错误(编译系统检查)◆逻辑错误(编程人员检查)方法与技术测试是以程序通过了编译,没有语法和连接错误为前提。在此基
4、础上运行一组数据,来检测程序的逻辑错误。这一组测试数据应是以“任何程序都是有错误的”为前提精心设计出来的。它不仅应含有被测程序各种情况下的代表性输入数据,还应包括程序执行这些数据后预期的结果。其他著名计算机软件科学家E.W.Dijkstra曾断言:“程序测试只能证明错误的存在,而不能证明错误的不存在”。可以证明,除了很小的程序外,无论使用任何方法,要想做到彻底的测试,即发现程序中的所有错误,是不现实的。常见所谓“β版”商业软件,就是软件正式发行前的测试版本。二、算法与流程图1、算法(algorithm)P14算法:解题思路(解题步骤等)算法表示方式:伪码
5、(pseudocode)用人类语言的形式(通常是英语)表示算法。伪码不在计算机上执行,仅供程序员缩写程序之前构思时用(*注意伪码程序只包含执行语句,没有声明语句,后者仅仅是给编译器提供的信息)流程图(flowchart)用图示方式表示算法编程依据(便于检查)编程时用使用流程图的优点:不易出错/便于编程/便于别人阅读和检查程序。通常编程的技术路线是:用伪码和自顶向下、逐步求精的方法来制定算法,然后再编写相应的C语言程序。复杂程序处理部分宜用流程图表示程序处理的过程。二、算法与流程图1、算法(algorithm)示例:根据学生成绩输出评定结果。伪码语句示例之
6、一ifstudent’sgradesgreaterthanorequalto60display”Passed”elsedisplay”Failed”伪码语句示例之二如果学生成绩大于或等于60显示”及格”否则显示”不及格”C语言源程序段示例if(grade>=60)printf(“Passed!”);elseprintf(“Failed”);二、算法与流程图2、传统流程图P19特点:直观形象;使用流线。缺点:占面积大,使用流线任意转移,易出现“乱麻”现象,造成编程与阅读程序困难。二、算法与流程图3、N-S结构化流程图P26-2777年美学者I.Nassi和
7、B.Scheiderman提出。特点①取消流线②不允许流程任意转移,只能从上而下顺序执行③规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算法(结构化设计)。优点算法清晰,流程不会无规律乱转移。二、算法与流程图4、三种基本结构P23-26通常情况下,程序中的语句是以所编写的顺序一句接一句地执行,这种执行方法称为“顺序执行”。许多C语句能够让程序员指定不按编写顺序执行下一条执行语句,这种执行方法称为“控制转移”。Bohm和Jacopini的研究证实,所有的程序都能够只用三种控制结构编写,即◆顺序结构◆选择结构(selectionstruct
8、ure)◆循环结构(repetitionstructure)顺序结构是C语言的基
此文档下载收益归作者所有