第2章程序的灵魂一算法 ■程序=数据结构+算法 程序包括:数据的描述和操作的描述 程序=数据结构+算法+程序设计方法+语言工具和环境 算法是灵魂,数据结构是加工对象 语言是工具,编程要有合适的方法 算法解决的是“做什么”和“怎么做”的 问题
第2章 程序的灵魂 — 算 法 算法是灵魂,数据结构是加工对象 语言是工具,编程要有合适的方法 程序包括:数据的描述和操作的描述 算法解决的是“做什么”和“怎么做”的 问题 程序= 数据结构 + 算法 程序=数据结构+算法+程序设计方法+语言工具和环境
本章内容 1算法的概念 2算法的特性 3.算法的表示 4结构化程序设计方法
1.算法的概念 2.算法的特性 3. 算法的表示 4.结构化程序设计方法 本章内容
算法的概念 1.算法的概念 广义地讲-算法是为完成一项任务所应当遵照的一步一步的 规则的、精确的、无歧义的描述,它的总步数是有限的。 狭义地讲-算法是解决一个问题采取的方法和步骤的描述。 2.算法的描述 ■日常自然语言 ■伪代码(自然语言与程序设计语言相结合) 流程图(传统流程图、NS流程图) ■程序设计语言
算法的概念 1.算法的概念 广义地讲--算法是为完成一项任务所应当遵照的一步一步的 规则的、精确的、无歧义的描述,它的总步数是有限的。 狭义地讲-- 算法是解决一个问题采取的方法和步骤的描述。 2.算法的描述 日常自然语言 伪代码(自然语言与程序设计语言相结合) 流程图(传统流程图、N—S流程图) 程序设计语言
3.简单的算法举例 例1:交换两个变量a,b的值 算法:(1)a=>t (2)b=>a (3)t>b 例2.打印50个学生中成绩高于80分的学生学号(Ni表 示学号,G表示成绩) (1)i1 (2)如果G>80则打印NiGi (3)ii+1 (4)如果i<=50,返回(2)继续执行;否则,算法结束
例1:交换两个变量a,b的值 算法:⑴ a=>t ⑵ b=>a ⑶ t=>b 例2. 打印50个学生中成绩高于80分的学生学号(Ni表 示学号, Gi表示成绩 ) (1) i=1 (2) 如果Gi>80 则 打印Ni Gi (3) i=i+1 (4) 如果i<=50,返回(2)继续执行;否则,算法结束 3. 简单的算法举例
算法的特性 1.有穷性 2.确定性 3.有效性 4.有0个或多个输入 5.有一个或多个输出
算法的特性 1. 有穷性 2. 确定性 3. 有效性 4. 有0个或多个输入 5. 有一个或多个输出
怎样表示一个算法 1用自然语言表示算法 2传统流程图 传统流程图中的基本符号 起止框 I/O框 判断框 处理框 流程线 连接点
怎样表示一个算法 1.用自然语言表示算法 2.传统流程图 处理框 起止框 I/O框 判断框 流程线 连接点 传统流程图中的基本符号
3改进的流程图 三种基本结构的表示 (1)顺序结构 (2)选择结构 语句1 Y<条件 语句2 语句1 语句2
三种基本结构的表示 条件 语句1 语句2 语句1 Y N 语句2 (2)选择结构 3.改进的流程图 (1)顺序结构
(3)循环结构 a)当型循环 while b)直到循环 Until 条件 N 语句 条件 语句
(3)循环结构 a) 当型循环 While b) 直到循环 Until 条件 语句 Y N 条件 语句 N Y
三种基本结构的特点: (1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行到 (4)结构内不存在死循环
三种基本结构的特点: (1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行到 (4)结构内不存在死循环
开始 输入A 例:从10个数中选出 最大的数的流程图 ax 再输入A A>=Max Max =A N=N+1 打印Max 结束
N=Max Max =A 输入A 开始 再输入A N=N+1 打印Max 结束 N Y N Y 例: 从10个数中选出 最大的数的流程图