华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap10_函数与程序结构

Chap10函数与程序结构10.1圆形体积计算器10.2汉诺塔问题10.3长度单位转换10.4大程序构成
Chap 10 函数与程序结构 10.1 圆形体积计算器 10.2 汉诺塔问题 10.3 长度单位转换 10.4 大程序构成

本章要点■怎样把多个函数组织起来?■怎样用结构化程序设计的思想解决问题?■怎样用函数嵌套求解复杂的问题?■怎样用函数递归解决问题?■如何使用宏?(自学)■如何使用多文件模块构建较大规模程序(自学)
本章要点 ◼ 怎样把多个函数组织起来? ◼ 怎样用结构化程序设计的思想解决问题? ◼ 怎样用函数嵌套求解复杂的问题? ◼ 怎样用函数递归解决问题? ◼ 如何使用宏?(自学) ◼ 如何使用多文件模块构建较大规模程序(自学)

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

程序结构main()函数1函数2函数m函数函数函数函数m_1m_n1_11_2
main( ) 函数1 函数2 . . 函数m 函数 1_1 函数 1_2 函数 m_1 函数 m_n . . 程序结构

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

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

#definePl3.141592654void cal (int sel);例10-1源程序int main(void)( int sel;while(1 )printf("1-计算球体体积\n");printf("2-计算圆柱体积In");printf("3-计算圆锥体积In");printf("其他-退出程序运行In");printf(“请输入计算命令:");scanf("%d",&sel);if (sel 3)break;*输入非1~3,循环结束*else/*输入1~3,调用cal0*cal (sel);7return O;7
例10-1源程序 #define PI 3.141592654 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 (sel 3) break; /* 输入非1~3,循环结束 */ else cal (sel ); /* 输入1~3,调用cal() */ } return 0; }

*常用圆形体体积计算器的主控函数*void cal(intsel)double vol ball(void);double vol_cylind(void );double vol_cone(void );switch (sel)case 1:printf("球体积为:%.2fn",vol_ball());break;case 2:printf("圆柱体积为:%.2fin",vol_cylind());break;case 3:printf("圆锥体积为:%.2fln",vol_cone());break;/*计算圆锥体积V=h/3*Pl*r*r*doublevol_cone(){ doubler, h;printf("请输入圆锥的底圆半径和高:");scanf("%lf%if",&r,&h);return(P*r*r*h/3.0);7
/* 常用圆形体体积计算器的主控函数 */ 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; } } /* 计算球体体积 V=4/3*PI*r*r*r*/ double vol_ball( ) { double r ; printf("请输入球的半径:"); scanf("%lf",&r); return(4.0/3.0*PI*r*r*r); } /* 计算圆柱体积 V=PI*r*r*h */ double vol_cylind( ) { double r , h ; printf("请输入圆柱的底圆半径和高:"); scanf("%lf%lf",&r,&h); return(PI*r*r*h); } /* 计算圆锥体积 V=h/3*PI*r*r */ double vol_cone( ) { double r , h ; printf("请输入圆锥的底圆半径和高:"); scanf("%lf%lf",&r,&h); return(PI*r*r*h/3.0); }

10.1.2函数的嵌套调用顺序调用mainint main(void)y = fact(3);factmypowz = mypow(3.5, 2);maindouble fact(int n)factAmypowdouble mypow(double x, in n)t1
10.1.2 函数的嵌套调用 ◼ 顺序调用 int main(void) { . y = fact(3); . z = mypow(3.5, 2); . } double fact(int n) { . } double mypow(double x, in n) { . } main fact mypow main fact mypow

10.1.2函数的嵌套调用嵌套调用main1int main(void)calcal (sel);vol_ball7void cal (int sel)mainvol_ballvol_ball()caldouble vol_ball()H
◼ 嵌套调用 int main(void) { . cal (sel); . } void cal (int sel) { . vol_ball() . } double vol_ball( ) { . } main cal vol_ball main cal vol_ball 10.1.2 函数的嵌套调用
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap09_结构.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap08_指针.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap07_数组.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap06_回顾数据类型和表达式.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap05_函数.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap04_循环结构.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap03_分支结构.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap02_用C语言编写程序.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap01_概论.ppt
- 华南农业大学:《高级语言程序设计》课程教学大纲 Programming.pdf
- 华南农业大学:《高级语言程序设计》课程授课教案(负责人:刘财兴).pdf
- 《The Basics of Information Security》参考书籍PDF电子版(Understanding the Fundamentals of InfoSec in Theory and Practice,作者:Jason Andress).pdf
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第八章 网络安全.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第九章 网络管理.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第七章 多媒体联网.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第四章 网络层.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第六章 无线网和移动网.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第五章 链路层与局域网.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第二章 应用层.ppt
- 《计算机网络》课程PPT教学课件(自顶向下方法,中文第三版)第三章 运输层.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap11_指针进阶.ppt
- 华南农业大学:《高级语言程序设计》课程教学资源(PPT课件)chap12_文件.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第10章 过程.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第1章 Visual Basic程序设计概述(海南大学:吴星).ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第2章 程序设计入门.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第3章 VB语言基础.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第4章 基本的控制结构.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第5章 数组.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第6章 常用控件.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第7章 图形操作.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第8章 文件.ppt
- 《Visual Basic程序设计》课程电子教案(PPT课件)第9章 界面设计.ppt
- 海南大学:《Java语言程序设计》课程教学大纲 Java Programming.pdf
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第一章 Java入门(主讲:杨厚群).ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第七章 数组和向量.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第三章 控制语句.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第九章 创建用户界面.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第二章 基本数据类型与基本操作.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第五章 使用对象对象与类编写程序.ppt
- 海南大学:《Java语言程序设计》课程电子教案(PPT教学课件)第八章 图形程序设计入门.ppt