1、,算法的概念,算法的特性,怎样表示一个算法,第2章 程序的灵魂算法,C语言程序设计 第二章 程序的灵魂算法,结构化程序设计方法,C语言程序设计 第二章 程序的灵魂算法,程序包括的内容: 数据结构:数据的类型和组织形式 算法:操作步骤的描述,Nikiklaus Wirth提出:,教材认为:,程序,=算法+数据结构+程序设计方法+语言工具和环境,灵魂,加工对象,工具,C语言程序设计 第二章 程序的灵魂算法,2.1 算法的概念 为解决一个问题而采取的方法和步骤,就成为算法。例如:歌曲的乐谱,建造房子等。 算法核心是解决“做什么”和“怎么做”的问题。 可以有多种方法,一般采用简单和运算步骤少的。准确、
2、高效 计算机算法类别 数值运算算法 非数值运算算法,C语言程序设计 第二章 程序的灵魂算法,2.2 算法的特性 有穷性在合理范围内可完成 确定性无歧义性 有零个或多个输入从外界得到信息 有一个或多个输出问题的答案 有效性每步有确定的结果,C语言程序设计 第二章 程序的灵魂算法,2.3 怎样表示一个算法 自然语言表示 易懂,文字冗长,易歧义性 流程图表示 用流程图符号构成,直观,易懂N-S流程图表示 伪代码表示 计算机语言表示,顺序结构选择结构循环结构,C语言程序设计 第二章 程序的灵魂算法,传统流程图流向混乱、可读性差,所以应该采用结构化流程图。 结构化程序设计基本思想:任何程序都可以用三种基
3、本结构表示,限制使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序优点:结构清晰,易读,提高程序设计质量和效率,三种基本结构顺序结构,C语言程序设计 第二章 程序的灵魂算法,选择结构,二分支选择结构,多分支选择结构,C语言程序设计 第二章 程序的灵魂算法,循环结构,当型循环结构,直到型循环结构,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,C语言程序设计 第二章 程序的灵魂算法,三种基本结构的共同特点: 只有一个入口; 只有一个出口; 结构内的每一部分都有机会被执行到; 结构内不存在“死循环”。,C语言程序设计 第二章 程序的灵魂算法,2.4 结构化程序设计方法 结构化程序:用三种基本结构组成的程序 基本设计思路: 复杂问题分解成 几个最基本问题,再分别处理。 采用的方法: 自顶向下; 逐步细化; 模块化设计:复杂问题按功能分成多个子模块 结构化编码:正确采用三种基本结构实现,C语言程序设计 第二章 程序的灵魂算法,课后作业 编写一个程序,输入a、b、c三个值,输出其中最大值。(此处只画出流程图),