1 / 14
文档名称:

挽救的文档.doc

格式:doc   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

挽救的文档.doc

上传人:xxj16588 2016/4/10 文件大小:0 KB

下载得到文件列表

挽救的文档.doc

文档介绍

文档介绍:挽救的文档过程与函数前面我们曾经学****了程序设计中的三种基本控制结构(顺序、分支、循环) 。用它们可以组成任何程序。但在应用中,还经常用到子程序结构。通常, 在程序设计中, 我们会发现一些程序段在程序的不同地方反复出现, 此时可以将这些程序段作为相对独立的整体, 用一个标识符给它起一个名字, 凡是程序中出现该程序段的地方, 只要简单地写上其标识符即可。这样的程序段,我们称之为子程序。子程序的使用不仅缩短了程序, 节省了内存空间及减少了程序的编译时间, 而且有利于结构化程序设计。因为一个复杂的问题总可将其分解成若干个子问题来解决, 如果子问题依然很复杂, 还可以将它继续分解, 直到每个子问题都是一个具有独立任务的模块。这样编制的程序结构清晰, 逻辑关系明确, 无论是编写、阅读、调试还是修改, 都会带来极大的好处。在一个程序中可以只有主程序而没有子程序( 本章以前都是如此), 但不能没有主程序, 也就是说不能单独执行子程序。 pascal 中子程序有两种形式:函数和过程。一、函数在此之前, 我们曾经介绍并使用了 pascal 提供的各种标准函数, 如 ABS, 等等,这些函数为我们编写程序提供了很大的方便。但这些函数只是常用的基本函数,编程时经常需要自定义一些函数。(一)函数的说明在 pascal 中,函数也遵循先说明后使用的规则,在程序中,函数的说明放在调用该函数的程序( 主程序或其它子程序) 的说明部分。函数的结构主程序的结构很相似。函数定义的一般格式: function < 函数名> (< 形式参数表>):< 类型>;{ 函数首部} var { 局部变量说明部分} begin { 函数体} ... { 函数语句} 函数名:= 表达式 end; 说明:①函数由首部与函数体两部分组成。②函数首部以关键字 function 开头。③函数名是用户自定义的标识符。④函数的类型也就是函数值的类型, 所求得的函数值通过函数名传回调用它的程序。可见,函数的作用一般是为了求得一个值。⑤形式参数简称形参, 形参即函数的自变量。自变量的初值来源于函数调用。在函数中,形参一般格式如下: 变量名表 1 :类型标识符 1 ;变量名表 2 :类型标识符 2; ...; 变量名表 n :类型标识符 n 可见形参表相当于变量说明, 对函数自变量进行说明, 但应特别注意:此处只能使用类型标识符,而不能直接使用类型。⑥当缺省形参表( 当然要同时省去一对括号)时, 称为无参函数。⑦函数体与程序体基本相似,由说明部分和执行部分组成。⑧函数体中的说明部分用来对本函数使用的标号、常量、类型、变量、子程序加以说明,这些量只在本函数内有效。⑨函数体的执行部分由 begin 开头, end 结束, 中间有若干用分号隔开的语句,只是 end 后应跟分号, 不能像程序那样用句号"." 。⑩在函数体的执行部分, 至少应该给函数名赋一次值, 以使在函数执行结束后把函数值带回调用程序。(二)函数的调用我们可以在任何与函数值类型兼容的表达式中调用函数,或者说, 函数调用只能出现在允许表达式出现的地方, 或作为表达式的一个因子。函数调用方式与标准函数的调用方式相同。函数调用的一般格式: <函数名> 或<函数名>(实在参数表) 说明:①实在参数简称实参。实参的个数必须与函数说明中形参的个数一致,实参的类型与形参的类型应当一一对应。②调用函数时,一般的,实参必须有确定的值。③函数调用的步骤为:计算实参的值, " 赋给" 对应的形参; (三)函数的应用举例例1 求正整数 A和B 之间的完全数. 分析:所谓完全数是指它的小于该数本身的因子之和等于它本身,如6=1+2+3,6 即是一个完全数。因此我们可定义一个布尔型函数 perfect(x), 若x 是完全数, 其值为 TURE, 否则为 FALSE 。整个程序算法如下: for i:=A toB do if perfect(i) then writeln(i); 源程序如下: program ex7_1; var i,a,b,c : integer; function perfect(x:integer):boolean; var k,sum : integer; begin { 累加 x 所有小于本身的因数} sum:=1; for k:=2 tox div 2 do ifx mod k=0 then sum:=sum+k; { 判断 x 是否是完全数} perfect:=x=sum; { 将结果赋值给函数名} end;{end of perfect} begin{ 主程序开始} readln(a,b); if a>b then begin c:=a; a:=b; b:=c; end; write('Input a,b:'); writeln('