浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)程序设计专题——结构化程序设计与递归函数

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

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

结构化程序设计 ◇使用结构化程序设计方法解决复杂的问题 把大问题分解成若干小问题,小问题再进一步 分解成若干更小的问题 ◇写桯序时,用 maino解决整个问题,它调用解 决小问题的函数 这些函数又进一步调用解决更小问题的函数, 从而形成函数的嵌套调用
使用结构化程序设计方法解决复杂的问题 把大问题分解成若干小问题,小问题再进一步 分解成若干更小的问题 写程序时,用main()解决整个问题,它调用解 决小问题的函数 这些函数又进一步调用解决更小问题的函数, 从而形成函数的嵌套调用

程序结构 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个以内) 5

例程10-1]计算常用圆形体体积 设计一个常用圆形体体积计算器,采用命令方式 输入1、2、3,分别选择计算球体、圆柱体、圆 锥体的体积,并输入计算所需相应参数。 析 ◇输入1、2、3选择计算3种体积,其他输入结束计算 ◆设计一个控制函数caO,经它辨别圆形体的类型 再调用计算球体、圆柱体、圆锥体体积的函数 令设计单独的函数计算不同圆形体的体积
设计一个常用圆形体体积计算器,采用命令方式 输入1、2、3,分别选择计算球体、圆柱体、圆 锥体的体积,并输入计算所需相应参数。 分析: 输入1、2、3选择计算3种体积,其他输入结束计算 设计一个控制函数cal(),经它辨别圆形体的类型 再调用计算球体、圆柱体、圆锥体体积的函数 设计单独的函数计算不同圆形体的体积

程序结构 maino cal( vol ball( vol_ cylind() vol cone () ◇3层结构,5个函数 ◇降低程序的构思、编写、调试的复杂度 ◇可读性好
3层结构,5个函数 降低程序的构思、编写、调试的复杂度 可读性好 main( ) cal ( ) vol_ball ( ) vol_cylind ( ) vol_cone ( )

例10-1源程序 # define p|3.14159265 f (sek3) void cal( int sel break int main(void) e cal(se1 ); int sel whi le(1)I return 0: pr intf("1-计算球体体积\n"); pr intf("2-计算圆柱体积\n") pr intf("3-计算圆锥体积\n"); pr intf("其他一退出运行\n") pr intf(“请输入计算命令:”) scan f("%d",&se);
#define PI 3.14159265 void cal ( int sel ); int main(void) { int sel; while( 1 ){ printf(" 1-计算球体体积\n"); printf(" 2-计算圆柱体积\n"); printf(" 3-计算圆锥体积\n"); printf(" 其他 -退出运行\n"); printf(“请输入计算命令:”); scanf("%d",&sel); if (sel3) break else cal(sel); } return 0; }

主控函数Cl void cal( int sel double vol bal I(void) double vol cy l ind (void double vol cone(void) switch (sel) case1: printf("球体积为:%.2f\n", vol ball() break; case2: printf("圆柱体积为:%.2f\η", vol cyl ind()); break case3: printf("圆锥体积为:%.2fⅦn", vo cone()); break
void cal ( int sel ) { double vol_ball(void ); double vol_cylind(void ); double vol_cone(void ); switch (sel) { case 1: printf("球体积为:%.2f\n", vol_ball( )); break; case 2: printf("圆柱体积为:%.2f\n", vol_cylind( ) ); break; case 3: printf("圆锥体积为:%.2f\n", vol_cone( ) ); break; } }

球体体积函数 vol ball double vol balI() double r pr intf("请输入球的半径:"); scanf(%If, &r) return(4.0/3.0*P|**r*r)
double vol_ball( ) { double r ; printf("请输入球的半径:"); scanf("%lf",&r); return(4.0/3.0*PI*r*r*r); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(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
- 中科院昆明动物研究所培训:曙光5000A超级计算机.ppt
- 《网页设计教程》PPT课件:第9章 美化网页.ppt
- 《网页设计教程》PPT课件:第8章 网页表单的处理.ppt
- 《网页设计教程》PPT课件:第7章 在网页中使用超链接.ppt
- 《网页设计教程》PPT课件:第6章 网页图像处理.ppt
- 《网页设计教程》PPT课件:第5章 网页框架的处理.ppt
- 《网页设计教程》PPT课件:第4章 网页表格的处理.ppt
- 《网页设计教程》PPT课件:第3章 网页文本的处理.ppt
- 《网页设计教程》PPT课件:第2章 创建站点.ppt
- 《网页设计教程》PPT课件:第12章 利用ADO实现网页与数据库的链接.ppt
- 《网页设计教程》PPT课件:第11章 示例网页利用ASP实现交互功能.ppt
- 《网页设计教程》PPT课件:第10章 JavaScript和DHTML技术.ppt
- 《网页设计教程》PPT课件:第1章 网页制作初识.ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)程序设计专题——结构.pptx
- 分布式虚拟环境:虚拟现实的基础理论、算法及实现项目结题报告(分布并行图形绘制技术及系统).ppt
- 浙江大学:R语言基础(PPT讲稿).pptx
- 浙江大学信息与电子工程学系:《无线网络应用》课程教学资源(PPT讲稿)网线制作实验.ppt
- 浙江大学:《计算机控制装置》课程教学资源(PPT讲稿)计算机控制系统的抗干扰设计.ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)查找、排序.pptx
- 数据结构与控制算法分析(PPT专题讲稿)查找与排序.ppt
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)简单图形库介绍.pptx
- 浙江大学:《计算机辅助设计与图形学》课程教学资源(PPT讲稿)数据可视化基础.ppt
- Python的基本应用(PYTHON的入门应用).pptx
- 浙江大学计算机科学与技术学院:C语言程序设计基础与试验(PPT讲稿).ppt
- 耶鲁大学:A Sparse Parametric Mixture Model for BTF Compression, Editing and Rendering.ppsx
- 浙江大学:程序设计专题(PPT讲稿)结构化程序设计与递归函数(刘新国).pptx
- 浙江大学:循环结构(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