欢迎来到天天文库
浏览记录
ID:39621619
大小:256.00 KB
页数:55页
时间:2019-07-07
《函数与过程的教学演示文稿(本人自己制作)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机程序设计的基本思想子程序:是指本身不能单独执行,需要其他程序调用才能执行的程序。子程序aaa主程序一个完整的pascal程序可以包含一个主程序和若干个子程序。这些子程序就是函数或过程,主要作用在于使程序结构清晰,养成模块化解决问题的习惯。函数在数学上,如果y的值随x的变化而变化,那么称y是x的函数,x是自变量。例如函数y=5x+8,当x=2时,y=18;当x=3时y=23Pascal语言借用数学上的“函数”术语,把完成某种计算的子程序定义为函数。函数标准函数:如abs(x)、sqr(x)、sqrt(x)、odd(x)、pred(x)suc
2、c(x)、ord(x)、trunc(x)、exp(x)、round(x)等。用户自定义函数:用户通过自己编程序设计的具有特定功能的函数。PASCAL给我们提供了一些标准函数,我们不用了解这些函数如何求出来的,只管直接调用它们,挺方便的。如正弦函数,余弦函数,算术平方根......有了这些函数,我们觉得很省事。如:求sqrt(1)+sqrt(2)+...+sqrt(100)=?这个程序我们可以这样编写:例1PROGRAMe1(input,output);VARi:integer;s:real;BEGINs:=0;fori:=1to10
3、0dos:=s+sqrt(i);writeln('s=',s);END.在这个程序里,我们直接用到了求平方根函数,至于sqrt(1),sqrt(2)如何求出来的我们不需过问,只管直接用它的结果便是了。我们来看看下面一个例子:求:1!+2!+3!+...+10!=?如果要编写程序,我们看到求阶乘的操作要执行10次,只不过每次所求的数不同。我们想:不至于编写10遍求阶乘的程序吧。我们希望有一个求阶乘的函数,假设为JS(X),那么我们就可以这样求这道题了:例2PROGRAMe1(input,output);VARi:integer;s:re
4、al;BEGINs:=0;fori:=1to10dos:=s+js(i);writeln('s=',s);END.现在的问题是:TURBOPASCAL没提供JS(X)这样一个标准函数,这个程序是通不过的。如果是PASCAL的标准函数,我们可以直接调用,如TRUNC(X),LN(X),SQRT(X)......而PASCAL提供给我们的可供直接调用的标准函数不多。没关系,我们编写自己的函数!自定义函数的格式Function函数名(形式参数):函数类型{函数首部}局部变量说明Begin语句1;语句2;。。。语句n函数名:=表达式End;我
5、们来分析一下,一个函数的编写可分成三部份:一是函数首部,即第一个语句。它必须以FUNCTION开头,函数名是自己取的,取名的原则是便于记忆,和文件名的取名规则类似。形式参数(简称形参)表以标识符的形式给出,相当于函数中的自变量。参数可以有多个,也可以有多种类型。不同类型的参数之间用“;”隔开,同类型的参数如有多个,则用“,”隔开,在其后得加上说明。如:FUNCTIONA1(A,B,C:INTEGER;D,E,F:REAL):REAL;在最后,函数属于哪种类型,还得表示出来。在本例中,该函数为实型。第二部分是函数的变量说明部分,对在本函数中将要用
6、到的变量作类型说明,这一点和以前学的变量一样。如果程序不用变量,则此部分也可省掉。第三部分是函数体,本函数的功能实现就在于此,编写的语句就在里面。有 关 说 明1、函数首部:(1)函数首部以保留字function开头。(2)函数名是用户自定义的标识符,如程序中的sum。在同一程序中,函数名不能与其他变量名重名,也不能再用作数组名或过程名等。(3)括号内的形式参数表,简称形参表。形式参数即函数的自变量。如程序中的n,其值来源于主程序的调用。当主程序调用函数时,形参才能得到具体的值并参与运算,求得函数值。(4)函数的类型就是函数值的类型。2、函数体
7、:与程序体基本相似,由说明部分和执行部分组成。(1)函数体中的说明部分,用来对本函数使用的常量、变量和类型加以说明,这些量只在本函数内使用,称为局部变量。与函数体外的同名变量无关。(2)函数的执行部分由begin开头,以end结束,中间有若干用分号隔开语句,只是end后应加分号,不能像程序末尾那样用句号。(3)在函数的执行部分,至少应该给函数名赋一次值,以便在函数执行结束后把函数值带回调用该函数的程序中。编写一求阶乘的函数。我们给此函数取一名字就叫JS。fUNCTIONjs(n:integer):longint;vari:integer;s:l
8、ongint;begins:=1;fori:=1tondos:=s*i;js:=s;end;在本例中,函数名叫JS,只有一个INTEGER型
此文档下载收益归作者所有