浙江大学:程序设计专题(PPT讲稿)结构化程序设计与递归函数(刘新国)

程序设计专题一 结构化程序设计与递归函数 主讲教师:刘新国
主讲教师: 刘新国

专题要点 ◇用结构化程序设计的思想解决问题 ◇将多个函数组织起来,将多个源程序文件组 织起来 ◇理解程序设计规范及其重要性 ◇函数嵌套求解复杂的问题 ◇理解和使用函数递归 ◇类型定义与宏定义 ◇编译预处理
用结构化程序设计的思想解决问题 将多个函数组织起来,将多个源程序文件组 织起来 理解程序设计规范及其重要性 函数嵌套求解复杂的问题 理解和使用函数递归 类型定义与宏定义 编译预处理

程序结构 maino 函数1函数2 函数m 函数函数 函数 函数 12
main( ) 函数1 函数2 … … 函数m 函数 1_1 函数 1_2 函数 m_1 函数 m_n … …

函数定义 ◇好的函数名字:描述函数所做的所有事情。如: ◆ checkUrderinto e ca l mOnth l y Revenues(.) ◇一个函数只实现一个功能 ◇函数参数: ◇按照输入-修改-输出的顺序排列参数 ◎考虑对参数采用某种表示输入、修改、输出的命名规则 使用所有的参数 把状态或出错变量放在最后 ◇不要把函数的参数用作工作变量 在接口中对参数的假定加以说明 尽可能少的参数(限制在大约7个以内)
好的函数名字:描述函数所做的所有事情。如: checkOrderInfo(...) calcMonthlyRevenues(...) 一个函数只实现一个功能 函数参数: 按照输入-修改-输出的顺序排列参数 考虑对参数采用某种表示输入、修改、输出的命名规则 使用所有的参数 把状态或出错变量放在最后 不要把函数的参数用作工作变量 在接口中对参数的假定加以说明 尽可能少的参数(限制在大约7个以内) 4

2.源程序文件组织 ◇,C文件:实现文件 函数实现 全局变量定义 ◇.h文件:自定义的头文件 ◇类型定义,函数说明 ◇一个程序通常包含多个.c和,h文件 几个到几千个 ◆系统越大越复杂,文件越多
.c文件:实现文件 函数实现 全局变量定义 .h文件:自定义的头文件 类型定义,函数说明 一个程序通常包含多个.c和.h文件 几个到几千个 系统越大越复杂,文件越多 5

头文件(h文件) 为了方便模块函数被其他模抉调用,编写头文件,保存: 宏定义 常量定义 ◇数据类型定义 外部变量声明 函数声明(函数原型要求) ◇正确使用头文件可提高代码的可读性、可维护性、以及 开发效率 ◇在.C文件中通过命令包含.h头文件。例如: #include stdio. h #inc lude " mydata. h ◇包含自定义的头文件时,一般用
为了方便模块函数被其他模块调用,编写头文件,保存: 宏定义 常量定义 数据类型定义 外部变量声明 函数声明(函数原型要求) 正确使用头文件可提高代码的可读性、可维护性、以及 开发效率 在.c文件中通过命令包含.h头文件。例如: #include #include "mydata.h" 包含自定义的头文件时,一般用" " 6

文件模块(.C文件) ◇编译单元 ◇在编译一个.C文件时,预处理器首先递归包含 头文件,形成一个含有所有必要信息的单个源 文件。 每个.c文件都对应一个编译单元,生成一个目 标文件 ◇连接程序 把各个目标程序中产生的符号联系起来,构成 个可执行程序
编译单元 在编译一个.c文件时,预处理器首先递归包含 头文件,形成一个含有所有必要信息的单个源 文件。 每个.c文件都对应一个编译单元,生成一个目 标文件 连接程序 把各个目标程序中产生的符号联系起来,构成 一个可执行程序。 7

模央编峄链接 编译 progl.C :/ al.h,., b1. h pI 编译 可执行 h.. c2. h prog 链接 文件 编译 progM.c a h, b. h.c. h prom.o w量
8 prog1.c a1.h, …, b1.h prog2.c a2.h, …, c2.h progM.c a.h, b.h, c.h …… prog1.o 编译 prog2.o 编译 progM.o …… 编译 链接 可执行 文件

头文件编写 ◇头文件由三部分内容组成 ◇版权声明和版本信息(起始处) 预处理块 ◇定义和申明 ◇结构和枚举类型定义 ◇ typedef定义和宏定义 ◇具名常量定义 ◇外部变量声明 ◇函数申明 ◇头文件应该只用于声明,不应该包含 “占据存储空间的变量或函数”的定义
头文件由三部分内容组成: 版权声明和版本信息(起始处) 预处理块 定义和申明 结构和枚举类型定义 typedef定义和宏定义 具名常量定义 外部变量声明 函数申明 头文件应该只用于声明,不应该包含 “占据存储空间的变量或函数”的定义 9

包合(# include)头文件 ◇头文件可以嵌套包含 A.h包含B.h,B.h包含C.h,。。。 ◇避免循环包含(为什么),避免头文件被 多重复包含 ◇虽然函数、变量的声明都可以重复,不会影响 桯序编译和运行,但会增加编译处理的时间 当头文件中包含结构的定义、枚举定义等一些 定义时,这些定义是不可以重复的,必须通过 一定措施防止发生
头文件可以嵌套包含 A.h包含B.h,B.h包含C.h,。。。 避免循环包含(为什么),避免头文件被 多重复包含 虽然函数、变量的声明都可以重复,不会影响 程序编译和运行,但会增加编译处理的时间 当头文件中包含结构的定义、枚举定义等一些 定义时,这些定义是不可以重复的,必须通过 一定措施防止发生 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 耶鲁大学:A Sparse Parametric Mixture Model for BTF Compression, Editing and Rendering.ppsx
- 浙江大学计算机科学与技术学院:C语言程序设计基础与试验(PPT讲稿).ppt
- Python的基本应用(PYTHON的入门应用).pptx
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)数据可视化基础.ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)简单图形库介绍.pptx
- 数据结构与控制算法分析(PPT专题讲稿)查找与排序.ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)查找、排序.pptx
- 浙江大学:《计算机控制装置》课程教学资源(PPT讲稿)计算机控制系统的抗干扰设计.ppt
- 浙江大学信息与电子工程学系:《无线网络应用》课程教学资源(PPT讲稿)网线制作实验.ppt
- 浙江大学:R语言基础(PPT讲稿).pptx
- 分布式虚拟环境:虚拟现实的基础理论、算法及实现项目结题报告(分布并行图形绘制技术及系统).ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)程序设计专题——结构.pptx
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)程序设计专题——结构化程序设计与递归函数.pptx
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)SDL(Simple DirectMedia Layer)图形程序设计.pptx
- 《计算机辅助设计(CD)》课程教学大纲.pdf
- MATLAB简介.ppt
- 《数字图像处理技术 Digital Image Processing》课程教学资源(教学大纲).pdf
- linux系统知识培训(PPT讲稿).pptx
- 高性能计算机和曙光GHPC1000集群系统.ppt
- 曙光:机群应用开发(并行编程原理及程序设计)Parallel Programming - Fundamentals and Implementation(MPI并行程序设计 Parallel Programming with the Massage Passing Interface(MPI)).ppt
- 浙江大学:循环结构(PPT讲稿).pptx
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)基于图像的绘制技术 Image Based Rendering, IBR.ppt
- 浙江大学计算机系:网络图形技术 Chinagraph‘2000 讨论组.ppt
- 结构(9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针).ppt
- 大型综合程序范例解析(PPT讲稿).ppt
- 生物信息数据分析技能培训:计算机基础技能培训(linux基础知识).pptx
- 浙江大学:虚拟现实中基于图像的建模和绘制(报告PPT).ppt
- 《E-commerce 2014》电子商务(PPT讲稿)Chapter 9 Online Retail and Services.ppt
- 清华大学出版社:《WEB技术开发》课程教学资源(PPT课件)第1章 WEB开发技术概述.ppt
- 《E-commerce 2014》电子商务(PPT讲稿)Chapter 12 B2B E-commerce:Supply Chain Management and Collaborative Commerce.ppt
- 《WEB技术开发》教学资源(PPT讲稿)HTML AND CSS.ppt
- 《E-commerce 2014》电子商务(PPT讲稿)Chapter 5 E-commerce Security and Payment Systems.ppt
- 杭州电子科技大学:《计算机、互联网和万维网简介》教学资源(PPT课件)Chapter 01 C++ Programming Basics.ppt
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Chapter 10 Circuit Switching and Packet Switching.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第九章 模数转换器与数模转换器.ppt
- 电子科技大学计算机学院:《现代密码学》课程PPT教学课件(密码学基础)第一章 引言.ppt
- 西安电子科技大学:Operating-System Structures(PPT讲稿).pptx
- 《面向对象程序设计》课程PPT教学课件:第1章 Visual Basic概述(主讲:高慧).ppt
- JavaScript编程基础(JavaScript语法规则).ppt
- 长春大学旅游学院:《计算机网络与网络安全》课程教学资源(PPT课件)第6章 计算机网络与网络安全.ppt