第2章算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出: 数据结构+算法=程序 确切的说,除上述要素外,还要采取结构化程序设计的方法和 用何种语言来设施。 程序=数据结构+算法+程序设计方法+语言工具及环境
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出: 数据结构+算法=程序 确切的说,除上述要素外,还要采取结构化程序设计的方法和 用何种语言来设施。 程序=数据结构+算法 +程序设计方法+语言工具及环境
数据结构: 反映各种类型数据的构造形式,是计算机加工处理的对象 算法: 为解决某一特定问题而采取的确定的有限的步骤,它是程序 设计的灵魂,解决做什么和怎么做 程序设计方法: 根据数据类型和算法用计算机语言加以实现,程序中的操作 语句实际上是算法的具体体现,不了解算法就谈不上程序设计。 语言工具和环境: 用计算机语言编制的程序需相应的编译系统和硬件环境加以 实施
数据结构: 反映各种类型数据的构造形式,是计算机加工处理的对象 算法: 为解决某一特定问题而采取的确定的有限的步骤,它是程序 设计的灵魂,解决做什么和怎么做 程序设计方法: 根据数据类型和算法用计算机语言加以实现,程序中的操作 语句实际上是算法的具体体现,不了解算法就谈不上程序设计 语言工具和环境: 用计算机语言编制的程序需相应的编译系统和硬件环境加以 实施
计算机求解问题的步骤 问题定义--明确问题 需求分析-精确描述 系统设计--模型或算法 系统实现--程序编制 系统运行--运行、求解
计算机求解问题的步骤 问题定义 ---- 明确问题 需求分析 ---- 精确描述 系统设计 ---- 模型或算法 系统实现 ---- 程序编制 系统运行 ---- 运行、求解
22算法的概念 做事情都有——方法、步骤(顺序)—决定事情成 败 1、算法:计算机求解末个问题而采用的具体方法、步骤 2、两大类计算机算法: 数值运算算法:求数值解、成熟 非数值运算算法:事务管理、广泛 3、算法的特性(p18):有穷性、确定性、有效性等 4、算法的描述:有多种 归纳为两大类:文字 图形(符号)
2.2 算法的概念 做事情都有——方法、步骤(顺序)——决定事情成 败 1、算法:计算机求解末个问题而采用的具体方法、步骤 2、两大类计算机算法: 数值运算算法:求数值解、成熟 非数值运算算法:事务管理、广泛 3、算法的特性(p18):有穷性、确定性、有效性等 4、算法的描述:有多种 归纳为两大类:文字 图形(符号)
23算法的描述 算法常用的方法: 自然语言、传统流程图、结构化流程图、伪代码等 23.1用自然语言表示算法 自然语言: 人们日常使用的语言,可以是英、中、中英文结合 特点:通俗易懂 缺点:文字冗长,易出现岐义性,表示算法的含义不太严格。 ,根据上下文才能判断其含义
2.3 算法的描述 算法常用的方法: 自然语言、传统流程图、结构化流程图、伪代码等 2.3.1用自然语言表示算法 自然语言: 人们日常使用的语言,可以是英、中、中英文结合 特点: 通俗易懂 缺点: 文字冗长,易出现岐义性,表示算法的含义不太严格 ,根据上下文才能判断其含义
23.2用流程图表示算法 ANSI规定的流程图符号,已为世界各国采用,用图框表示 操作,用图形表示算法 特点:直观、形象、灵活、易于理解,可表示任何算法。一 起止框: 输入输出框:∠ 判别框: 处理框: 流程线 注释框: 连接点:
2.3.2用流程图表示算法 ANSI规定的流程图符号,已为世界各国采用,用图框表示 操作,用图形表示算法。 特点:直观、形象、灵活、易于理解,可表示任何算法。 起止框: 输入输出框: 判别框: 处理框: 流程线: 注释框: 连接点:
233用N-S流程图表示算法 1973年美国学者LNa和B. Shneiderman提出了一种新的流程 图形式 特点:去掉带箭头的流程线,全部算法在一个矩形框内,在 该框内还可包含从属于它的框,这种流程图称为N-S结构化 流程图,受到人们欢迎。 A—B 成立、P 当P1成立 A 不成立 B A 直到P1成立
2.3.3 用N-S流程图表示算法 1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程 图形式 特点:去掉带箭头的流程线,全部算法在一个矩形框内,在 该框内还可包含从属于它的框,这种流程图称为N-S结构化 流程图,受到人们欢迎。 A B 成立 A B 不成立 P 当P1成立 A A 直到P1成立
23.4用伪代码表示算法 它是介于自然语言和计算机语言之间的文字和符号 来描述算法。 特点:自上而下书写,每行表示一个基本操作,可 用中、英、中英书写。 原则:意思要表达清楚,格式要清晰易懂
2.3.4 用伪代码表示算法 它是介于自然语言和计算机语言之间的文字和符号 来描述算法。 特点:自上而下书写,每行表示一个基本操作,可 用中、英、中英书写。 原则:意思要表达清楚,格式要清晰易懂
100 例:计算S=∑n,写出其算法。 自然语言述 1.0→单元 2.1→n单元 3.S+n→S 4.n+1→n 5.判断n≤100 是,转3;否则转6 6.输出S的值
用伪代码表示 开始 BEGIN(算法开始) t 2→→i tXi- ×i→→t While i5 i+1→i print t 打印t END(算法结束 打印t/ 〔结束〕
例:求 5! 用流程图算法 开始 1→ t 2→ i t×i→ t i+1→ i i >5 打印 t 结束 N Y 2→i 1 →t t ×i →t i +1 →i 直到 i >5 打印t 用N-S图 表示算法 用伪代码表示 BEGIN(算法开始) 1→t 2→i While i<=5 {t×i →t i+1 →i } print t END(算法结束)