- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
过程与函数 ; 子程序的使用不仅缩短了程序,节省了内存空间及减少了程
序的编译时间,而且有利于结构化程序设计。因为一个复杂的问
题总可将其分解成若干个子问题来解决,如果子问题依然很复杂,
还可以将它继续分解,直到每个子问题都是一个具有独立任务的
模块。这样编制的程序结构清晰,逻辑关系明确,无论是编写、
阅读、调试还是修改,都会带来极大的好处 ;一、函数 在此之前,我们曾经介绍并使用了pascal提供的各种标准函数,
如ABS,SUCC等等,这些函数为我们编写程序提供了很大的方便。但
这些函数只是常用的基本函数,编程时经常需要自己定义一些函数。 ;例、输入 x的值,计算y。已知;说明: ①函数由首部与函数体两部分组成。 ②函数首部以关键字function开头。 ③函数名是用户自定义的标识符。 ④函数的类型也就是函数值的类型,所求得的函数值通过函数名
传回调用它的程序。可见,函数的作用一般是为了求得一个值。 ;2、函数的调用 函数在语法上相当于一个表达式,所以,调用时,函数不能独立
成为一个语句;它可以出现在任何表达式可以出现的地方。
例如赋值语句的右边: X:=函数名(实在参数表); {X的类型与函数类型必须一致}
又,如果函数类型是boolean,则还可以出现在条件语句中,
充当条件表达式: if 函数名(实在参数表) then ……; 形参:全称为“形式参数”是在定义函数名和函数体的时候使用的
参数,目的是用来接收调用该函数时传递的参数.
实参:全称为“实际参数”是在调用时传递给该函数的参数 ;例、求五边形的面积。边长L1—L7由键盘读入。;program area;
var
l1,l2,l3,l4,l5,l6,l7,s:real;
function ts(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
ts:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
begin
read(l1,l2,l3,l4,l5,l6,l7);
s:=ts(l1,l2,l6)+ts(l3,l6,l7)+ts(l4,l5,l7);
writeln(‘area=’,s);
end.;编一程序,求从10名同学中选出3名代表,有几种不同的选法。
?(公式:C(m,n)=m!/n!*(m-n)!从m中选n) ;例:求正整数A和B之间的完全数(A<B). 分析:所谓完全数是指它的小于该数本身的因子之和等于它本
身,如6=1+2+3,6即是一个完全数。因此我们可定义一个布尔型
函数perfect(x),若x是完全数,其值为TURE,否则为FALSE。 ;program ex;var i,a,b : integer;function perfect(x:integer):boolean; var k,sum : integer; begin {累加x所有小于本身的因数} sum:=1; for k:=2 to x div 2 do if x mod k=0 then sum:=sum+k; {判断x是否是完全数} perfect:=x=sum; {将结果赋值给函数名} end; {end of perfect} begin {主程序开始} write(''Input a,b:''); repeat {输入0<a<b} readln(a,b); until (a>0)and(b>0)and(a<b); writeln(''List of all perfect numbers:''); {从a到b逐个判断,是完全数则打印出来} for i:=a to b do if perfect(i) then write
文档评论(0)