(
课件网) 第三章 算法基础 算法 为什么要学习算法和程序设计? 根源在于:解决问题 1 计算机解决问题的过程 2 算法的概念及特征 CONTENT 3 算法的描述方法 4 三种基本程序结构 5 了解计算机程序设计语言的发展 算法 1 计算机解决问题的过程 1、分析问题 2、设计算法 3、编写程序 4、调试运行程序 解决问题 算法 2 算法 算法是指在有限的步骤内求解某一问题所使用的一组定义明确的规则。 简单的说,算法就是解决问题的具体方法和步骤 生活中的“算法” 制作美食 组装家具 算法有哪些特征? 算法 2 算法的特征 有穷性 确定性 数据输入 数据输出 可行性 1 2 3 4 5 一个算法所包含的计算步骤是有限的。 算法执行的每一个步骤必须有确切的定义,不能有模棱两可的情况。 一个算法有零个或多个数据输入。 一个算法有一个或多个数据输出,没有输出的算法是没有意义的。 每个步骤都可以在 有限时间内完成。 算法 3 算法的描述方法 1、自然语言描述(汉语、英语...) 例:比较x和y谁大? 自然语言描述:程序开始,如果x大于y,那么x大,否则y大,程序结束。 算法 图形 名称 功能 开始/结束框 表示算法的开始或结束 输入/输出框 表示算法中变量的输入或输出 处理框 表示算法中变量的计算与赋值 判断框 表示算法中的条件判断 流程线 表示算法中的流向 连接点 表示算法中的转接 3 算法的描述方法 2、流程图描述 算法 2、流程图描述算法: 例:求任意两个整数a,b的和? 3 算法的描述方法 算法 3、伪代码描述算法: 例:求整数a,b的和 input (a,b) sum=a+b print(sum) 3 算法的描述方法 算法 3 算法的描述方法 算法描述的方法 优势 不足 自然语言 用人们日常所用的语言,比较容易掌握。 当算法中含有多分支或循环操作较多时很难清晰地表示出来,由于自然语言的歧义性,容易导致算法执行的不确定性。 流程图 用程序框图来描述,流程描述清晰简洁。 所占篇幅较大,由于允许使用流程线,过于灵活,不受约束。 伪代码 用介于自然语言和计算机语言之间的文字和符号来描述,书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。 由于编程语言的种类繁多,伪代码的语句不容易规范,有时会产生误解。 算法 4 三种基本控制结构 代码段1 代码段2 顺序结构 代码段1 代码段2 条件 成立 不成立 代码段 条件 成立 不成立 选择结构 循环结构 任何算法都可以用顺序、选择、循环这三种基本控制结构的组合来表示。 算法 4 三种基本控制结构 1.顺序结构运用在生活中哪些地方? 2.选择结构运用在生活中哪些地方? 3.循环结构运用在生活中哪些地方? 爬楼梯、学习教材... 判断是否带伞、穿羽绒服、玩游戏... 工厂里的机器人重复劳动、不断走路... 算法 5 计算机程序设计语言的发展 计算机程序 1 计算机程序设计语言 2 即计算机可以识别、运行的指令集合。 一组用来定义计算机程序的语法规则,通常简称为“编程语言”。它是一种被标准化的交流技巧,用于向计算机发出指令。 步骤 算法 5 计算机程序设计语言的发展 1.机器语言: 2.汇编语言: 3.高级语言: 由0、1组成, 计算机能直接识别执行 类似于英语缩略词的符号语言, 计算机需翻译编译才能执行 接近数学语言或自然语言, 计算机需翻译编译才能执行。 例如:python、c++、Java等编程语言。 算法 5 计算机程序设计语言的发展 eg: 以9+8为例 机器语言 汇编语言 高级语言 机器语言 10110000 00001001 00000100 00001000 11110100 MOV AL,9 ADD AL,8 HTL print(9+8) 把加数9送到累加器上 加8 停止 算法 5 计算机程序设计语言的发展 机器语言 汇编语言 高级语言 机器语言 不需要翻译 移植性差 需要翻译 移植性较差 需要翻译 移植性非常好 算法 5 计 ... ...