Pascal程序设计中函数的调用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012-07-13###########商#丘#师#范2学0院1计2算-机07科-学1系3#毕#永#青###2#0#12-07-13######## [摘 要]在 Pascal表达式的计算过程中,经常用到函数,函数的调用在表达式中优先级高,计算时是按表达式的优先次序完成,但也 有特殊情况,本文通过实例加以说明。 [关键词]Pascal程序设计 表达式 函数调用 Pascal程序设计中,表达式可以是简单的常数、常量、变量、函数或 5 13 4 4 6 3 12 8 若把 16 语句改为 a:=q(z)*q(2),则输出结果是 它们之间的算术运算、逻辑运算、关系运算等。在写 Pascal表达式时要 注意以下几点: 1)所有表达式必须以线性形式写出,因此分子、分母、指数、下标等 都必须写在同一行上。 5 4 18 13 4 6 3 10 2)只能使用合法的标识符。 3)乘号必须用符号“*”明确指出,不得省略。 4)函数的自变量可以是任意表达式。且函数的自变量一定要写在 从上述例子中可以看出,函数调用不是完全按照表达式规则进行 括号中。 的,特殊情况必须特殊对待,16 语句的调用,就是先计算 q(z),然后再计 算 q(2)的。 5)为了指定运算的次序可以利用括号,且只有一种括号—圆括 号。 例 2: 已知三角形的两边 a、b 及夹角 α,求对边 c 及面积 s。然后求 a+5, b+10,α+15° 时的 c 及 s。 程序如下: 01 PR O G R A M exam 2(Input,O utput); 02 V A R 03 a ,b,alfa,c,s:real; 04 PR O CED U R E cs(a,b,alfa:real;V A R c,s:real); 6)表达式按下列运算优先规则计算: a)有圆括号的先计算,有多层括号的,最内层括号先计算。 b)在同一表达式中的运算符按下列次序计算: ①函数 ②N O T ③A N D ,*,/,D IV ,M O D ④O R ,+,- ⑤,=,=,,=, 05 06 07 08 09 BEG IN A lfa:=alfa*3.14159/180; C:=sqrt(a*a+b*b-2*a*b*cos(alfa)); S:=0.5*a*b*sin(alfa) EN D ; c)在同一子表达式中,同一优先级的运算按从左到右的次序进行。 下面通过实例说明在表达式中函数调用的特例。为了方便说明,在 每一行语句前都加上了行号: 例 1: 01 PR O G R A M exam (Input,O utput); 02 V A R a,x,y,z:Integer; 03 PR O CED U R E p(x,y:integer;V A R z:Integer); 10 BEG IN 11 12 13 14 15 16 17 R ead(a,b,alfa); W riteln‘( a=’,a,’b=’,b’alfa=’,alfa); Cs(a,b,alfa,c,s); W riteln‘( c=’,c,’s=’,s); Cs(a+5,b+10,alfa+15,c,s); W riteln‘( a=’,a+5,’b=’,b+10,’alfa=’,alfa+15); 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 BEG IN Z:=y-x-z; W riteln(x:3,y:3,z:3) EN D ; FU N CTIO N q(m :Integer):Integer; BEG IN Z:=z+m ; Q :=Succ(m ) EN D ; BEG IN X :=4;y:=6;z:=3;p(5,x+y+z,x); W riteln(x:3,y:3,z:3); a:=q(2)*q(z); W riteln(a:3,z:3) EN D . W riteln‘( c=’,c’s=’,s) 18 EN D . 本例程序同样是调用,但在这里用了过程,情况就不一样了,不妨 把过程定义为函数,结果就与例 1 相同了。 综上所述,在 Pascal表达式的计算过程中,函数调用有特殊情况。 参考文献 [1]陶龙芳等.全国计算机等级考试二级教程——Pascal语言程序 设计.高等教育出版社,1998 年 8 月. [2]郑启华.PA SC A L 程序设计(第二版).清华大学出版社,2001 年 9 月. [3]李光琳.PA SC A L 程序设计方法.四川大学出版社,1994 年 12 月. 该程序执行后,输出结果是 (上接第 251 页) 进入系统登录界面,根据身份的不同可以登录相应 为选择题、判断题、填空题,不同类型的试题在不同的选项卡中显

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档