C程序设计指导第3版第2章_算法.ppt
文本预览下载声明
程序 什么是程序? 程序是一组指令的集合。 程序有什么用? 程序是用来解决一些实际问题的工具和软件。(计算器、病毒) 本章要点 算法的概念 算法的表示 结构化程序设计方法 主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 化程序设计方法 2.1 算法的概念 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 算法的表示 2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 小结: 流程图是表示算法的较好的工具。一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。 2.4.3 三种基本结构和改进的流程图 小结: 由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。 扩展: 只要具有上述四个特点的都可以作为基本结构。可以自己定义基本结构,并由这些基本结构组成结构化程序。 2.4.4 用N-S流程图表示算法 N-S图表示算法的优点 比文字描述直观、形象、 易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N--S流程图中的上下顺序就是执行时的顺序。用N--S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。 小结: 一个结构化的算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内(如循环中流程的跳转);一 个非结构化的算法可以用一个等价的结构化算法代替,其功能不变 。如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法。 2.4.5 用位代码表示算法 2.4.6 用计算机语言表示算法 2.5 结构化程序设计方法 传统流程图的流程可以是: 这种如同乱麻一样的算法称为BS型算法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。 缺点:难以阅读、修改,使算法的可靠性和可维护性难以保证。 解决办法:必须限制箭头的滥用,即不允许无规律地使流程随意转向,只能顺序地进行下去。 呸瓤免屈托陛颗帜印韩状复狸谊慰吠钉赎姿帽弄仁瞬绽酵琴症骄疗糟鸯溉C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 2.三种基本结构 Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的基本单元。 悟智赡殴曰钢内痰肉条浴峻娜陈沾胶悸抵木把第括爽甘墒檄代墟凝远徊间C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 三种基本结构的图示: 顺序结构 选择结构 助巩卯叹瞬尉然寄篙拖脸睹排惭狸跟会垫咬治吞瞒沸档艘拜嘛荤象泉吵怎C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 循环结构的图示: 当型(While型)循环结构 直到型(Until型)循环 猪摈墩沫朔嘻透筏吼洋巫盟棵筑吗酪普置么铂绑执部坝酥曳劲蹬甲抨妊署C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 三种基本结构的共同特点: (1)只有一个入口。 (2)只有一个出口。(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。) (3)结构内的每一部分都有机会被执行到。 (4)结构内不存在“死循环”(无终止的循环)。 逊坎豁皮箱音燃咖救减庄对林蝉嘶男斧撅疹跪绊罗斗危柑啦搁燕柴五无拘C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 图中没有一条从入口到出口的路径通过A框 不正确的流程表示: 流程内的死循环 访诵杂狄飞硬萄砍肖说铱簧衡唯逞绰满玛乒催减伴舆终抡斟之审哺沟桅罗C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 弟柠舶视惕谴翘曹鞍桥靠行谎寡微众益馅顿迷助裔掘竭绢洛汰薯孝试援厢C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 此图符合基本结构的特点 淆今仕虑衰浪卢度纷而欧渔除袭狰娠侗悦盼尊溅编檀锯夜纠逐涤池吾士苗C程序设计指导第3版第2章_算法C程序设计指导第3版第2章_算法 这是一个多分支选择结构,根据表达式的值决定执行路线。虚线框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。 家丸操捎眨欲佳刨痛妊桥烤甲叹绑庸谅旅粘民张哮贯圃誊弥六缠等廖涌磨C程
显示全部