C语言第三讲 程序结构 (上)

上传人:无*** 文档编号:250632089 上传时间:2024-11-03 格式:PPT 页数:41 大小:370.50KB
返回 下载 相关 举报
C语言第三讲 程序结构 (上)_第1页
第1页 / 共41页
C语言第三讲 程序结构 (上)_第2页
第2页 / 共41页
C语言第三讲 程序结构 (上)_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,第三讲 程序结构(上),2,主要内容,自顶向下的分析方法,函数的概念,系统函数的使用,无参无返回值函数,自顶向下的分析方法,分析问题的基本方法,案例示例,模块结构图,3,4,自顶向下的分析方法,分析问题的基本方法,把一些任务分割成小的更容易控制的大块,再继续细分为更小的任务,直到所有的小任务能很容易实现,功能分解,早起活动,起床,刷牙,洗脸,吃早饭,拿饭卡,去食堂,排队买饭,吃饭,收拾餐具,离开食堂,早读,5,6,实例分析,打印图形,女孩,房子,男孩,7,分析:,基本组件,圆,平行线,横线,交叉线,8,设计,画女孩,画一个圆,画一个三角形,画一个交叉线,画三角形,画交叉线,画一横线,9,结构图,10,模块的实现,-,函数,自顶向下的分析结果得到模块结构图,每一个模块在,C,程序中的实现与函数相对应。,当用,C,来编程序时,一个复杂的大程序可被分割成更容易控制的函数和子函数,函数的概念,几种不同的函数类别,main,函数,系统函数,用户自定义函数,函数的操作三步曲,定义函数,声明函数,调用函数,11,12,main,函数,void main(void),一个可执行的,C,程序包含一个且只包含一个,main,函数,main,函数是唯一由,系统自动调用,执行的函数,其它函数通过,函数调用语句,调用执行。,函数定义的一般形式,定义形式,函数类型 函数名(参数),函数类型的对应,void,无,return,具体数据类型,return,缺省 等价于,int,型,13,系统函数,系统函数介绍,使用系统函数,常用数学库函数,14,系统函数介绍,系统提供的一写好的功能代码,可以直接调用,系统函数的声明,系统函数的程序段:,stdio.h,:标准输入输出函数,math.h,:数学函数,string.h,:字符串处理函数,15,使用系统函数,中已定义,#include,-,引入系统函数的声明,按照函数调用的方法调用,使用函数三步曲,函数定义,函数声明,函数调用,16,17,C,函数中可调用其他函数,#include,void main(void),printf(“Hello C Worldn”);,printf(“Hello C World”);,18,printf-Formatted Print,printf,是一个实现复杂功能的系统函数,我们只需学会调用它,而不需要写函数,函数可以多次被调用,19,如何调用一个函数,printf,是函数的名称,使用一个函数,函数名后面一定要跟,(),(),里是函数的参数,.,它提供函数所需要的数据,.,例如需要显示的字符串是,printf,所需要的参数。,例如,add(23.5,67.8),包含两个参数,23.5,和,67.8,,参数之间以逗号分隔。,20,常用数学库函数,平方根函数,sqrt(x),绝对值函数,fabs(x),fabs(-3.56),的值为,3.56,幂函数,pow(x,n),:,x,n,pow(1.1,2),的值为,1.21,(即,1.12,),指数函数,exp(x),:,e,x,exp(2.3),的值为,e,2.3,以,e,为底的对数函数,log(x),:,ln x,log(123.45),的值为,4.815836,以,10,为底的对数函数,log10(x),:,log,10,x,log10(123.45),的值为,2.091491,。,21,例,2-5,计算存款的本息,输入存款金额,money,、存期,year,和年利率,rate,,根据公式计算存款到期时的本息合计,sum,(税前),输出时保留,2,位小数。,sum=money(1+rate),year,sum=money*pow(1+rate),year),22,例,2-5,程序,#include,#include,int main(void),int money,year;,double rate,sum;,printf(“Enter money:);,scanf(%d,printf(“Enter year:);,scanf(%d,printf(“Enter rate:);,scanf(%,lf,sum=money*,pow(1+rate),year),;,printf(sum=%.2f,sum);,return 0;,Enter money:,1000,Enter year:,3,Enter rate:,0.025,sum=1076.89,scanf(,%d,%d,%lf,&money,&year,&rate,);,用户自定义函数,-,无参无返回值函数,函数的定义,函数的声明,函数的调用,23,24,写自己的函数,void triangle(void),printf(*n);,printf(*n);,printf(*n);,无返回值函数,void,函数的作用仅仅是执行一系列的指令,与数学函数不同,无参无返回值的函数的定义,void,函数名(,void,),函数体,25,无参无返回值的函数的声明,void,函数名(,void,),;,函数声明的作用是告诉编译系统用户自定义函数的存在,编译系统在检查被调用的函数时要知道调用信息包括:函数名,参数,返回类型。,26,无参无返回值的函数的调用,函数名();,27,28,使用自己写的函数,:sample01_04.cpp,/*a program to output a triangle*/,#include,void triangle(void);,main(),printf(About to print a triangle);,triangle();,printf(That was it!n);,void triangle(void),printf(*n);,printf(*n);,printf(“*n”);,函数声明,函数调用,函数定义,调用我们自己写的函数,()中可以不包括任何东西,但()一定要写。,可放在,main,函数之前,也可以放在,main,函数的后面。但不能放在,main,函数函数体中,函数和函数之间地位是平等的,没有嵌套关系。,告诉编译器,存在着这样一个用户自定义的函数,及它的调用方法:名称、参数、返回值。,29,完成画简图的程序(,sample01_06.cpp,),完成画基本组件的函数,画一个圆,画一个横线,画一个交叉线,画一个平行线,完成画三角形的函数,画一个交叉线,画一个横线,在,main,函数中调用子函数完成画小女孩,画一个圆,画三角形,画一个交叉线,30,完成画基本组件的函数,/*,*Draws a circle,*/,void draw_circle(void),printf(*n);,printf(*n);,printf(*n);,/*,*Draws intersecting lines,*/,void draw_intersect(void),/*Use 2 s to print 1*/,printf(/n);,printf(/n);,printf(/n);,31,完成画基本组件的函数,/*,*Draws a base line,*/,void draw_base(void),printf(-n);,/*,*Draw a parallel,*/,void draw_parallel(void),printf(|n);,printf(|n);,32,完成画三角形的函数,/*,*Draws a triangle,*/,void draw_triangle(void),draw_intersect();,draw_base();,33,画小女孩,#include,/*function prototypes*/,void draw_circle(void);/*Draws a circle */,void draw_intersect(void);/*Draws intersecting lines*/,void draw_base(void);/*Draws a base line */,void draw_triangle(void);/*Draws a triangle */,int,main(void),/*Draw a circle.*/,draw_circle();,/*Draw a triangle.*/,draw_triangle();,/*Draw intersecting lines.*/,draw_intersect();,return(0);,34,关于程序的两个顺序,程序的执行顺序,从,main,函数开始执行,执行完,main,函数结束,遇到调用函数,执行转向被调用函数,执行完子函数,返回调用处,继续向下执行,程序的书写顺序,函数书写顺序与执行循序无关,函数定义写在函数调用之前,函数声明可省略,但不主张。,35,执行示例,36,有关函数的问题,我能多次调用一个函数吗?,自己写的函数能包含调用另一个函数的语句吗?,一个函数能包含语句吗?,YES to all three,37,思考,main,函数中三句语句功能还不明显,可增加一个函数,draw_girl,画小女孩,请修改程序,main,38,画小女孩函数,/*,*Draws a girl,*/,void draw_girl(void),/*Draw a circle.*/,draw_circle();,/*Draw a triangle.*/,draw_triangle();,/*Draw intersecting lines.*/,draw_intersect();,39,完成画小女孩程序,#include,/*function prototypes*/,void draw_circle(void);,void draw_intersect(void);*/,void draw_base(void);,void draw_triangle(void);,void draw_girl(void);,int,main(void),draw_girl();,return(0);,40,实践,修改,sample01_04.cpp,完成 小男孩和小房子函数,并在,main,函数中调用输出,修改,sample01_03.cpp:,打印四个三角形,改错题,error01_03.cpp,41,改错题,error01_03.cpp,void main(),printstar;,sayHello(void);,printstar;,void printStar(void),printf(“*”);,void sayHello(void),printf(“hello world!”);,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!