欢迎来到天天文库
浏览记录
ID:27197395
大小:228.51 KB
页数:49页
时间:2018-12-01
《函数与模块化程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章模块化程序设计1.概述:模块,函数,算法2.函数的定义与说明(重点)3.函数的调用(重点,难点递归调用)4.变量的作用域(重点)5.变量的存储属性(重点,难点)1*8.1概述6.1.1模块与函数1.功能模块求解较小问题的算法和程序称作“功能模块”,各功能模块可以先单独设计,然后将求解所有子问题的模块组合成求解原问题的程序。“自顶向下”的模块化程序设计方法:将一个大问题分解成多个解决小问题的模块的设计思想。2*2.由功能模块组成程序的结构图:主控模块模块1_1模块1_n模块2_1模块2_n模块n_1模块n_n模块1模块2模块n3.函数:完成相对独立功能的程序3*【例1
2、】输入年月日,计算出该日为该年的第几天。主控模块判断闰年求某月的天数输出输入求总天数图6-2程序结构图4*程序实现:(1)判断闰年。intleap(intyear){intlp;lp=(year%4==0&&year%100!=0
3、
4、year%400==0)?1:0;returnlp;}5*(2)求某月的天数。intmonth_days(intyear,intmonth){intds,d;switch(month){case1:case3:case5:case7:case8:case10:case12:d=31;break;case2:d=leap(year)?29:28
5、;break;default:d=30;}returnd;}6*(3)求天数和。intdays(intyear,intmonth,intday){inti,ds=0;for(i=1;i6、th,day);printf("%d-%d-%dis%dthdayoftheyear!",year,month,day,t_day);}注意:在完整的程序中,前三个函数应放在main()函数之前。8*8.1.2模块设计三个原则模块独立。功能独立的子功能模块之间的关系简单使用独立变量模块规模适当分解模块要注意层次对问题抽象化设计时细化9*8.2函数定义与使用一、标准库函数定义在不同的头文件中用户使用时,必须用#include“头文件”把相应的头文件包含到程序中来。#include/*包含math.h头文件*/#include/*包含st7、dio.h头文件*/main(){doublea,b;scanf(“%f“,&a);/*调用输入函数,输入变量a的值*/b=sin(a);/*调用sin函数,求sin(a)的值*/printf(“%6.4f”,b);}/*调用输出函数,输出变量b的值*/10*二、用户自定义函数函数类型无参函数函数的定义无参数说明有参函数定义的参数有一个或一个以上的参数空函数当定义的函数既无参数也无执行语句。空函数被调用时,什么也不做立即返回其调用函数。11*2.函数定义方式1函数返回值类型名函数名(参数列表)参数类型说明{局部变量说明;语句序列;}方式2函数返回值类型名函数名(参数类型说8、明及参数列表){局部变量说明;语句序列;}如:intmax(a,b)inta,b;如:intmax(inta,intb)12*【例2】定义符号函数sign。intsign(x)/*函数返回值类型未说明,默认为int,建议给出函数类型说明*/intx;/*形式参数说明*/{inty;/*函数体局部变量*/y=x>0?1:(x==0?0:-1);returny;/*返回函数值*/}注意:C语言函数分为两大部分:函数的说明部分函数体部分。13*函数各部分作用1)函数的说明部分函数说明部分说明函数的类型,函数名,参数表及参数类型。(1)函数的类型说明函数的类型即函数的返回值类型。9、若函数不提供返回值,则可定义其类型为:void。例如:voidputdata(inta)(2)函数名函数名又称函数标识符。命名遵循C语语言标识符的规定;函数名要反映函数完成的功能。14*(3)参数表参数表写在函数名后的()内,由一个或多个变量标识符及类型标识符组成。参数表中的变量称为形式参数,简称形参。若函数没有形参,则称为无参函数,其后“()”不能省略。参数必须指定类型。形参的类型说明有两种:方法1:intmax(a,b)inta,b;方法2:intmax(inta,intb)省略函数类型名时,C语言默认其为int型。15*
6、th,day);printf("%d-%d-%dis%dthdayoftheyear!",year,month,day,t_day);}注意:在完整的程序中,前三个函数应放在main()函数之前。8*8.1.2模块设计三个原则模块独立。功能独立的子功能模块之间的关系简单使用独立变量模块规模适当分解模块要注意层次对问题抽象化设计时细化9*8.2函数定义与使用一、标准库函数定义在不同的头文件中用户使用时,必须用#include“头文件”把相应的头文件包含到程序中来。#include/*包含math.h头文件*/#include/*包含st
7、dio.h头文件*/main(){doublea,b;scanf(“%f“,&a);/*调用输入函数,输入变量a的值*/b=sin(a);/*调用sin函数,求sin(a)的值*/printf(“%6.4f”,b);}/*调用输出函数,输出变量b的值*/10*二、用户自定义函数函数类型无参函数函数的定义无参数说明有参函数定义的参数有一个或一个以上的参数空函数当定义的函数既无参数也无执行语句。空函数被调用时,什么也不做立即返回其调用函数。11*2.函数定义方式1函数返回值类型名函数名(参数列表)参数类型说明{局部变量说明;语句序列;}方式2函数返回值类型名函数名(参数类型说
8、明及参数列表){局部变量说明;语句序列;}如:intmax(a,b)inta,b;如:intmax(inta,intb)12*【例2】定义符号函数sign。intsign(x)/*函数返回值类型未说明,默认为int,建议给出函数类型说明*/intx;/*形式参数说明*/{inty;/*函数体局部变量*/y=x>0?1:(x==0?0:-1);returny;/*返回函数值*/}注意:C语言函数分为两大部分:函数的说明部分函数体部分。13*函数各部分作用1)函数的说明部分函数说明部分说明函数的类型,函数名,参数表及参数类型。(1)函数的类型说明函数的类型即函数的返回值类型。
9、若函数不提供返回值,则可定义其类型为:void。例如:voidputdata(inta)(2)函数名函数名又称函数标识符。命名遵循C语语言标识符的规定;函数名要反映函数完成的功能。14*(3)参数表参数表写在函数名后的()内,由一个或多个变量标识符及类型标识符组成。参数表中的变量称为形式参数,简称形参。若函数没有形参,则称为无参函数,其后“()”不能省略。参数必须指定类型。形参的类型说明有两种:方法1:intmax(a,b)inta,b;方法2:intmax(inta,intb)省略函数类型名时,C语言默认其为int型。15*
此文档下载收益归作者所有