清华大学出版社 TSINGHUA UNIVERSITY PRESS 第二章 程序的灵魂一算法
第二章
清华大学出版社 TSINGHUA UNIVERSITY PRESS ●本章要点 算法的概念 算法的表示 结构化程序设计方法
⚫ 本章要点 算法的概念 算法的表示 结构化程序设计方法
清华大学出版社 TSINGHUA UNIVERSITY PRESS ●主要内容 21算法的概念 22简单算法举例 23算法的特性 24怎样表示一个算法 25化程序设计方法
⚫ 主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 化程序设计方法
清华大学出版社 TSINGHUA UNIVERSITY PRESS 著名计算机科学家沃思提出一个公式 数据结构+算法=程序□ 描述数据的类 对数据的操作 型、组织形式 步骤 教据结枘十犷法十程序设计方法十语言工具 C程序设计(第三版) http://ccf.tsinghuaedu.cn 4
C程序设计(第三版) http://ccf.tsinghua.edu.cn 4 著名计算机科学家沃思提出一个公式: 数据结构+ 算法 = 程序 数据结构+算法+程序设计方法+语言工具 描述数据的类 型、组织形式 对数据的操作 步骤
清华大学出版社 TSINGHUA UNIVERSITY PRESS 算法的概念 做事情都有方法、步骤(顺序)决定成败 著名计算机科学家沃思( Nikiklaus Wirth)提出 数据结构+算法=程序 描述数据的类描述对数据的 型、组织形式 操作步骤 §2.1算法的概念 做事情都有——方法、步骤顺序——决定事情成败 1.算法:计算机求解某一问题而采用的具体方法、步骤 2.两大类计算机算法:数值运算算法、非数值运算算法 (求数值解、成熟)(事务管理、广泛) 3.算法的特性(P18):有穷性、确定性、有效性等 4.算法描述:描述算法的方法有多种 C程序设计(第三版) http://ccf.tsinghuaedu.cn 5
C程序设计(第三版) http://ccf.tsinghua.edu.cn 5 算法的概念 做事情都有 方法、步骤(顺序) 决定成败
清华大学出版社 TSINGHUA UNIVERSITY PRESS §2.2算法的描述方法 常用的算法描述方法: ①带序号的自然语言描述(例21-例25) 易懂却不直观,不严格 ②流程图:灵活、自由、形象、直观,可表示任何算法 输入/输出处理判断起止连接点流程线 ③NS图(盒图):特点:完全去掉了带箭头的流程线算法的所有处理步骤 都写在一个大矩形框(表示简单、符合结构化思想) A B 处理 判断 循环 ④伪代码:用介于自然语言与计算机语言之间的文字及符号来描述算法 方便、易懂、便于向计算机语言过渡) C程序设计(第三版) http://ccf.tsinghuaedu.cn 6
C程序设计(第三版) http://ccf.tsinghua.edu.cn 6
清华大学出版社 TSINGHUA UNIVERSITY PRESS ①顺序结构 ②选择结构 ③循环结构根据条件P决定是否重复执行循环体中的操作 f 当P为真 A A 直到P为真 t 先判断,后执行 先执行,后判断 suM=o sum=0 while(i=100) d i sum+=i; 1o sum+=i i+十; while〔i<=100) C程序设计(第三版) http://ccf.tsinghuaedu.cn
C程序设计(第三版) http://ccf.tsinghua.edu.cn 7
清华大学出版社 TSINGHUA UNIVERSITY PRESS §23结构化程序设计方法 三种基本结构的共同特点 ①单入口单出口 ②结构内的每一部分都有机会被执行 ③不存在“死循环” 三、结构化程序设计的优点 用三种基本结构组成的程序是结构化程序 优点:易编、易读、易懂、易维护 强调捏庐设计风格和捏庐蜡的规范化 核心思想:自顶向下,步细化,模块化设计,结构化编码 如:学校办公自动化系统 C程序设计(第三版) http://ccf.tsinghuaedu.cn
C程序设计(第三版) http://ccf.tsinghua.edu.cn 8
清华大学出版社 TSINGHUA UNIVERSITY PRESS §23结构化程序设计方法 四、结构化程序设计过程 1确定算法:分析问题,(建立数学模型选择公式)写出算法描述 2编写程序:用计算机语言写出实现算法的程序 3.上机调试:输入(编辑)程序亠编译、连接、执行程序→输出结果 C程序设计(第三版) http://ccf.tsinghuaedu.cn
C程序设计(第三版) http://ccf.tsinghua.edu.cn 9
清华大学出版社 TSINGHUA UNIVERSITY PRESS §24程序、程序设计和程序设计语言 裎序:使用语言给计算机的一组指令序列 程序设计:为求解特定问题而编写的正确有效的程序 程序设计语言:编写程序所用的语言 C程序设计(第三版) http://ccf.tsinghuaedu.cn 10
C程序设计(第三版) http://ccf.tsinghua.edu.cn 10