清华大学计算中心:《计算机程序设计基础》第五章 结构化程序设计概论

iEmail:gaolin@cic,tsinghua.edu.cn 算 机Te:62792961 程 序 设 计 基 础 乔林 计算机程序设计基础 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 1 计 算 机 程 序 设 计 基 础 乔 林 计算机程序设计基础 Email: qiaolin@cic.tsinghua.edu.cn Tel: 62792961

第五章结构化程序设计概论 机 程 序·学习目标 设 计 熟悉数据的基本概念,掌握数据的表示方法 基 础 熟悉代码的基本概念,掌握代码的控制方法 熟悉算法的基本概念,了解算法、程序与代码的 关系 掌握结构化程序设计的一般方法 了解问题规模与程序控制结构之间的关系 掌握程序测试的基本方法与手段 了解代码优化的基本策略 清华大学计算中心 http://learn.tsinghua.edu.cn 2
清华大学计算中心 http://learn.tsinghua.edu.cn 2 计 算 机 程 序 设 计 基 础 第五章 结构化程序设计概论 • 学习目标 – 熟悉数据的基本概念,掌握数据的表示方法 – 熟悉代码的基本概念,掌握代码的控制方法 – 熟悉算法的基本概念,了解算法、程序与代码的 关系 – 掌握结构化程序设计的一般方法 – 了解问题规模与程序控制结构之间的关系 – 掌握程序测试的基本方法与手段 – 了解代码优化的基本策略

计 算 5.1数据的基本概念 机 程 序·数据与信息 设 计·数据与地址 基 础 数据类型 文字常量 变量 声明 清华大学计算中心 http://learn.tsinghua.edu.cn 3
清华大学计算中心 http://learn.tsinghua.edu.cn 3 计 算 机 程 序 设 计 基 础 5.1 数据的基本概念 • 数据与信息 • 数据与地址 • 数据类型 • 文字常量 • 变 量 • 声 明

计 算 数据与数据类型 机 程 序·数据与信息 设 计 数据:数据特征、数据名称与特征值 基 础 信息:数据所具有的意义 数据并不能解释自身,程序不了解数据的意义 数据类型:对数据进行分类 每一类数据具有同样的存储表示(存储分配格 式),同样的操作集 基本数据类型(预定义数据类型)与用户自定义 类型(用户可按需创建新的数据类型) 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 4 计 算 机 程 序 设 计 基 础 数据与数据类型 • 数据与信息 – 数据:数据特征、数据名称与特征值 – 信息:数据所具有的意义 – 数据并不能解释自身,程序不了解数据的意义 • 数据类型:对数据进行分类 – 每一类数据具有同样的存储表示(存储分配格 式),同样的操作集 – 基本数据类型(预定义数据类型)与用户自定义 类型(用户可按需创建新的数据类型)

文字与 计算机程序设计基础 文字常量:程序中出现的值 只能以值的形式标识,其值不可改变 若要声明严格意义的常量,使用c99的 const 文字常量不可寻址,而普通常量可以寻址 变量:程序中定义和命名的数据对象 四个基本特征:VANT 先声明后使用 在程序执行期间,可改变变量的值,不能改变变 量的名称、类型与地址 清华大学计算中心 http://learn.tsinghua.edu.cn 5
清华大学计算中心 http://learn.tsinghua.edu.cn 5 计 算 机 程 序 设 计 基 础 文字与量 • 文字常量:程序中出现的值 – 只能以值的形式标识,其值不可改变 – 若要声明严格意义的常量,使用 C99 的 const – 文字常量不可寻址,而普通常量可以寻址 • 变量:程序中定义和命名的数据对象 – 四个基本特征:VANT – 先声明后使用 – 在程序执行期间,可改变变量的值,不能改变变 量的名称、类型与地址

计算机程序设计 声明 序·数据标识的目的:区分数据 模拟世界中各种数据的联系,构造具有复杂结构的数据 基 础°声明的目的 将程序执行时数据对象的名字与类型信息通知编译器, 在数据对象与数据值及存储位置间建立关联 辅助编译器选择合适的存储表示 使得类型检查静态化,减少程序错误 声明与定义 声明并不一定就是定义,声明虽引入名字,但只有那些 确实在程序中引入了实体的声明才是定义 清华大学计算中心 http://learn.tsinghua.edu.cn 6
清华大学计算中心 http://learn.tsinghua.edu.cn 6 计 算 机 程 序 设 计 基 础 声 明 • 数据标识的目的:区分数据 – 模拟世界中各种数据的联系,构造具有复杂结构的数据 • 声明的目的 – 将程序执行时数据对象的名字与类型信息通知编译器, 在数据对象与数据值及存储位置间建立关联 – 辅助编译器选择合适的存储表示 – 使得类型检查静态化,减少程序错误 • 声明与定义 – 声明并不一定就是定义,声明虽引入名字,但只有那些 确实在程序中引入了实体的声明才是定义

计 算 5.2代码的基本概念 机 程 序·表达式语义 设 计·赋值与初始化 基 础 代码与计算 控制流 断言与程序不变量 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 7 计 算 机 程 序 设 计 基 础 5.2 代码的基本概念 • 表达式语义 • 赋值与初始化 • 代码与计算 • 控制流 • 断言与程序不变量

计 算 表达式语义 机 程 序 表达式语义:表达式的求值顺序 设 C语言未规定表达式求值顺序,一般由操作符的优先级 计 与结合性决定 基 础·例外情况 递增递减操作符满足特定计算规则 不同编译器的实现可能不同:出于优化的目的,编译器 可能重排部分代码,表达式的求值顺序可能会发生用户 事先无法察觉的变化 既是优点(程序设计可以高度灵活)也是缺点(错 误的求值顺序带来错误的计算结果) 明确表达设计意图,尽量不在表达式中使用带副作用的 操作符,表达式应尽量简短 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 8 计 算 机 程 序 设 计 基 础 表达式语义 • 表达式语义:表达式的求值顺序 – C 语言未规定表达式求值顺序,一般由操作符的优先级 与结合性决定 • 例外情况 – 递增递减操作符满足特定计算规则 – 不同编译器的实现可能不同:出于优化的目的,编译器 可能重排部分代码,表达式的求值顺序可能会发生用户 事先无法察觉的变化 • 既是优点(程序设计可以高度灵活)也是缺点(错 误的求值顺序带来错误的计算结果) – 明确表达设计意图,尽量不在表达式中使用带副作用的 操作符,表达式应尽量简短

计 算 赋值与初始化 机 序·赋值:将数据对象与某个具体值相关联的基本操作 设 左值:出现在赋值号左边的数据对象具有左值,在程序 计 基 中表现为数据对象的地址 础 右值:出现在赋值号右边的数据对象具有右值,在程序 中表现为数据对象的值 例:x 初始化 初始化不是赋值:赋值可以在程序运行期间执行多次, 初始化只在为变量分配存储空间时执行一次 未初始化的数据对象只有左值没有右值,其存储内容维 持原先位序列,所以不要引用未初始化的数据对象 清华大学计算中心 http://learn.tsinghua.edu.cn
清华大学计算中心 http://learn.tsinghua.edu.cn 9 计 算 机 程 序 设 计 基 础 赋值与初始化 • 赋值:将数据对象与某个具体值相关联的基本操作 – 左值:出现在赋值号左边的数据对象具有左值,在程序 中表现为数据对象的地址 – 右值:出现在赋值号右边的数据对象具有右值,在程序 中表现为数据对象的值 – 例:x = x; • 初始化 – 初始化不是赋值:赋值可以在程序运行期间执行多次, 初始化只在为变量分配存储空间时执行一次 – 未初始化的数据对象只有左值没有右值,其存储内容维 持原先位序列,所以不要引用未初始化的数据对象!

计 算 代码与控制流 机 程 序·代码与计算:代码是计算的简洁表达 设 操作为程序的基本单位,一系列的操作构成计算以及计 计 基 算的顺序 础 静态代码文本与动态执行过程 程序在运行期间根据静态代码文本产生计算过程,即动 态执行过程 两者并不相同,优秀的程序员应保证两者尽可能匹配, 例如少用甚至不用goto语句 ·控制流 控制程序流向的程序结构:复合、分支、循环 清华大学计算中心 http://learn.tsinghua.edu.cn 10
清华大学计算中心 http://learn.tsinghua.edu.cn 10 计 算 机 程 序 设 计 基 础 代码与控制流 • 代码与计算:代码是计算的简洁表达 – 操作为程序的基本单位,一系列的操作构成计算以及计 算的顺序 • 静态代码文本与动态执行过程 – 程序在运行期间根据静态代码文本产生计算过程,即动 态执行过程 – 两者并不相同,优秀的程序员应保证两者尽可能匹配, 例如少用甚至不用goto语句 • 控制流 – 控制程序流向的程序结构:复合、分支、循环
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第四章 复合数据结构基础.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第三章 程序控制结构.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第一章 C语言的基本概念(主讲:乔林).ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第二章 基本数据类型及其运算.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第四章 函数和程序结构.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第三章 语句及控制结构.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第二章 数据类型、运算符与表达式.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第一章 程序设计概述.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第十章 位运算.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第五章 预处理命令.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第九章 文件.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第七章 指针.ppt
- 《程序设计语言》第8章 指针.ppt
- 《程序设计语言》第8章 编译预处理.ppt
- 《程序设计语言》第7章 函数.ppt
- 《程序设计语言》模拟试题.ppt
- 《程序设计语言》集中复习.ppt
- 《程序设计语言》第1章习题.ppt
- 《程序设计语言》第3章 语言翻译问题.ppt
- 《程序设计语言》第2章 机器体系机构对语言的影响.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of C(1.2)The feature of C.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二章 算法 algorithm.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of c.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 3 Data types, Operators and Expressions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 4 Input and Output.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 5 Control Flow.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 7 Arrays.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter Functions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第九章 预处理命令.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第十一章 结构体与共用体.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第十二章 文件.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)典型考题.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第四章 C语言简单程序设计.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业-选择.xls
- 《C程序设计语言》课程PPT教学课件(讲稿)知识点回顾.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业.xls
- 《C程序设计语言》课程PPT教学课件(讲稿)第5章 选择结构程序设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)知识点回顾.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)流程图.ppt
- 《C程序设计语言》课程教学资源(习题作业)作业.xls