
程序设计基础(B)I 主讲:刘晓红 Tel:13969301061 Email:Ixhsdut@163.com Office:西9#409 ACM Lab:西9#409、501、504、508 1/33
程序设计基础(B)I 1/33 主讲:刘晓红 Tel:13969301061 Email:lxhsdut@163.com Office:西9#409 ACM Lab:西9#409、501、504、508

第2章 算法设计基础 鸣谢张立红老师整理 2/33
第2章 算法设计基础 鸣谢张立红老师整理 2/33

程序设计的目的:计算机按照设定的执行流程完成指定任务。 序设计的关键: ①对什么样的数据进行处理? ◆明确处理对象,给出准确的数据化描述; ◆根据需求,确定数据类型、元素之间的相互关系,组织数据的存 储结构。 ②如何对数据进行处理? ◆明确对处理对象的操作流程; ◆程序的指令组成,指令的排列顺序
① 对什么样的数据进行处理 ? ◆明确处理对象,给出准确的数据化描述; ◆根据需求,确定数据类型、元素之间的相互关系,组织数据的存 储结构 。 ② 如何对数据进行处理 ? ◆明确对处理对象的操作流程; ◆程序的指令组成,指令的排列顺序。 程序设计的目的:计算机按照设定的执行流程完成指定任务。 程序设计的关键:

程序=数据结构+算法 对数据的描述,即数据结 构。在C语言中,系统提 供的数据结构,是以数据 类型的形式出现的。 对数据处理的描述,即计 算机算法。算法是为解决 获得图灵奖的Pascal之父 一个问题而采取的方法和 Niklaus Wirth 步骤,是程序的灵魂。 瑞典人伯克利斯坦福 4/33
程序=数据结构+算法 ◼ 对数据处理的描述,即计 算机算法。算法是为解决 一个问题而采取的方法和 步骤,是程序的灵魂。 获得图灵奖的Pascal之父 Niklaus Wirth 瑞典人 伯克利 斯坦福 ◼ 对数据的描述,即数据结 构。在C语言中,系统提 供的数据结构,是以数据 类型的形式出现的。 4/33

本章知识点 2.1什么是算法 ■2.2算法的特征 ■2.3算法的表示方法(重点) ■2.4程序设计中常用的方法 恩 5/33
本章知识点 ◼ 2.1 什么是算法 ◼ 2.2 算法的特征 ◼ 2.3 算法的表示方法(重点) ◼ 2.4 程序设计中常用的方法 5/33

2.1什么是算法 程序=数据结构+算法。 算法:解决问题的方法与步骤。 程序:算法的具体实现。 程序设计语言: 是程序开发工具,即是将算法转化为程序的开发工具 学习程序设计,不仅要熟练掌握程序设计语言 本身的特点、语法规则等,更重要的是掌握分 析问题、解决问题的方法,就是锻炼分析、分 解,最终归纳整理出算法的能力。 6/33
程序 = 数据结构 + 算法。 算法:解决问题的方法与步骤。 程序:算法的具体实现。 程序设计语言: 是程序开发工具,即是将算法转化为程序的开发工具 学习程序设计,不仅要熟练掌握程序设计语言 本身的特点、语法规则等,更重要的是掌握分 析问题、解决问题的方法,就是锻炼分析、分 解,最终归纳整理出算法的能力。 2.1 什么是算法 6/33

2.1.2计算机算法的分类 计算机算法可分为两大类别: 1)数值运算算法 2)非数值运算算法 ,数值运算的目的是求数值解 例如:求方程的根 ,非数值运算包括的面十分广泛,最常见的是用 于事务管理领域 例如:如图书检索、学籍管理
2.1.2 计算机算法的分类 ➢ 计算机算法可分为两大类别: 1)数值运算算法 2)非数值运算算法 ➢ 数值运算的目的是求数值解 例如:求方程的根 ➢ 非数值运算包括的面十分广泛,最常见的是用 于事务管理领域 例如:如图书检索、学籍管理

2.1.3 简单的算法举例 例2.1求1×2×3×4×5 原始方法: 太繁琐 >步骤1:求1*2,得到结果2。 ,步骤2:将步骤1得到的2再乘以3,到结果6。 ,步骤3:将6再乘以4,得24。 >步骤4:将24再乘以5,得120。 120-最后的结果。 求1×2×3×4×5×6×.×100?
2.1.3 简单的算法举例 ◼ 原始方法: ➢ 步骤1:求1*2,得到结果2。 ➢ 步骤2:将步骤1得到的2再乘以3,得到结果6。 ➢ 步骤3:将6再乘以4,得24。 ➢ 步骤4:将24再乘以5,得120。 120-最后的结果。 例2.1 求1×2×3×4×5 太繁琐 求1×2×3×4×5 ×6×. ×100?

例2.1求1×2×3×4×5 算法: 5改为10,求什么? ① 设变量p为被乘数,变量为乘数 ② 初值p=1,i=1 ③ 令p与i相乘,乘积仍放在变量p中,即: p*i→p ④ 使i的值加1,即i+1→i ⑤ 如果i不大于5,返回重新执行③:否则,结束 最后得到p的值就是5!的值
新算法: ① 设变量p为被乘数,变量i为乘数 ② 初值 p=1,i=1 ③ 令 p 与 i 相乘,乘积仍放在变量 p 中,即: p*ip ④ 使 i 的值加1,即 i+1 i ⑤ 如果 i 不大于 5,返回重新执行 ③;否则,结束 ⑥ 最后得到 p 的值就是 5! 的值 5改为10,求什么? 例2.1 求1×2×3×4×5

例2.1的扩展:求1×3×5×7×9 新算法: ① 设变量p为被乘数,变量为乘数 ② 初值p=1,i=2 ③ 令p与i相乘,乘积仍放在变量p中,即: p*i→p ④ 使i的值加2,即i+2→i ⑤ 如果ⅰ不大于9,返回重新执行③:否则,结束 最后得到p的值就是1×3×5×7×9的值
新算法: ① 设变量p为被乘数,变量i为乘数 ② 初值 p=1,i=2 ③ 令 p 与 i 相乘,乘积仍放在变量 p 中,即: p*ip ④ 使 i 的值加2,即 i+2 i ⑤ 如果 i 不大于 9,返回重新执行 ③;否则,结束 ⑥ 最后得到 p 的值就是 1×3×5×7×9 的值 例2.1的扩展: 求1×3×5×7×9