pascal技巧.pdf

上传人:索**** 文档编号:76248899 上传时间:2023-03-08 格式:PDF 页数:8 大小:17.59KB
返回 下载 相关 举报
pascal技巧.pdf_第1页
第1页 / 共8页
pascal技巧.pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《pascal技巧.pdf》由会员分享,可在线阅读,更多相关《pascal技巧.pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Pascal 的多种退出语句用法break是用来退出 其所在的循环语句即:不论在任何一个循环语句中执行了 break 的话,马上退出这个语句。相当于:goto 这一层循环语句最末尾一句的下一句。例如:var i:integer;begin for i:=1 to 10 do begin 1 writeln(i);break;writeln(i+1);end;readln end.执行结果:1 可见第一次循环时,执行了 1 句 后,执行 break,然后马上退出了这个for 语句。*注意:以上两个语句只 对 它们所在的那层循环语句起作用,也就是说:如果有多个循环语句相嵌套,其中某一层执行了con

2、tinue/break 语句,它们并不能影响上面几层的循环语句。exit是退出当前程序块;即:在任何子程序中执行 exit,那么将退出这个子程序;如果是在主程序中执行 exit,那么将退出整个程序。相当于:goto 这个程序块的 末尾的 end 例如:试除法判断素数时,一旦整除,就把函数值赋为false,然后 exit;*注意:类似上面的,exit也是只对当前这一个子程序产生作用,如果多重嵌套子程序,那么其中某个子程序执行了exit以后,将返回到调用它的那个语句的下一个语句。halt :没什么好说的,退出整个程序,Game Over.例如:搜索时,一旦找到一个解,就打印,然后执行halt,退出

3、整个程序。使用exit,halt 应该注意的地方:要注意所有可能会退出子程序或主程序的地方均要妥善处理好善后工作,比如文件是否关闭,输出是否完整等。最后说一句,使用这些语句使得程序结构不止有一个出口,破坏了结构化程序设计的标准控制结构,使程序难以调试(但是往往便于编写),应尽量避免使用,因为它们完全可以用其它语句代替,所以,除非使用这些语句能给编写程序带来较大的方便,且可读性不受到影响,才值得一用(其实我用的也不少,呵呵).关于 fillchar 的使用和讨论离竞赛越来越近了,大家听说过fillchar 这个标准过程吧。很好用的。var a:array 1.10 of arrtype;执行 f

4、illchar(a,sizeof(a),0);当 arrtype为1.real(其他差不多)使得 a 中的元素全部成为0.0 2.integer(byte,word,longint,shortint都相同)全部为 0 3.boolean 全部为 false 4.char 全部为#0 执行 fillchar(a,size(a),1);写几个特殊的1.integer 全部为 157(不知道为什么)2.real 很大的一个数,同上。3.boolean 全部为 true 4.byte,shortint 全部为 1,所以 integer不行可以暂时用这两个嘛。要不然就减去156 文件类型的使用对于我们来

5、说,我们只必须掌握文本文件(或称正文文件,text)的读写即可:1.文本文件的定义:文本文件不是简单地由某类型的元素序列所组成,它的基本元素是字符,由它们构成行,若干行组成一份原文。由于各行的长度可以不同,所以文本文件只能顺序地处理。文本文件的定义如下:var fp:text;2.文本文件的读操作:(1)调用 assign过程,把磁盘文件赋予文本文件变量;assign(fp,filename);(2)调用 reset过程,为读操作做准备;reset(fp);(3)在需要读数据的位置调用read过程或 readln 过程。readln(fp,var1,var2,.,varn);3.文本文件的写操

6、作:(1)调用 assign过程,把磁盘文件赋予文本文件变量;assign(fp,filename);(2)调用 rewrite 过程,为读操作做准备;rewrite(fp);(3)在需要读数据的位置调用write 过程或 writeln 过程。writeln(fp,var1,var2,.,varn);4.文本文件的关闭操作:close(fp);5.文本文件的其他操作:(1)EOF(fp)布尔函数,用于判断文件结束否。(2)EOLN(fp)布尔函数,用于判断行结束否。例:从文件ex.in 中输入 n 个数,并将它们按照逆序输出到文件ex.out 中。输入文件ex.in 的格式:第一行是一个数n

7、;第二行是 n 个整数;当读到的 n 值为 0,表示文件结束。练习:1.编写程序从磁盘上读取一个由100 个实数组成的实型数据文件(indata.dat),以此文件中所有大于平均值的实数建立一个名为“above.dat”的文件,其余的建立一个名为“rest.dat”的文件。2.写一个程序,把文本文件中所有GOOD 改为 BAD。Pascal中的常用数学函数求绝对值函数abs(x)定义:function Abs(X):(Same type as parameter);说明:X 可以是整型,也可以是实型;返回值和X 的类型一致例子:var r:Real;i:Integer;begin r:=Abs

8、(-2.3);2.3 i:=Abs(-157);157 end.取整函数int(x)定义:function Int(X:Real):Real;注意:X 是实型数,返回值也是实型的;返回的是X 的整数部分,也就是说,X 被截尾了(而不是四舍五入)例子:var R:Real;begin R:=Int(123.567);123.0 R:=Int(-123.456);-123.0 end.截尾函数trunc(x)定义:function Trunc(X:Real):Longint;注意:X 是实型表达式.Trunc 返回 Longint 型的 X 的整数部分例子:begin Writeln(1.4,be

9、comes,Trunc(1.4);1 Writeln(1.5,becomes,Trunc(1.5);1 Writeln(-1.4,becomes,Trunc(-1.4);-1 Writeln(-1.5,becomes,Trunc(-1.5);-1 end.四舍五入函数round(x)定义:function Round(X:Real):Longint;注意:X 是实型表达式.Round 返回 Longint 型的 X 的四舍五入值.如果返回值超出了Longint 的表示范围,则出错.例子:begin Writeln(1.4,rounds to,Round(1.4);1 Writeln(1.5,r

10、ounds to,Round(1.5);2 Writeln(-1.4,rounds to,Round(-1.4);-1 Writeln(-1.5,rounds to,Round(-1.5);-2 end.取小数函数frac(x)定义:function Frac(X:Real):Real;注意:X 是实型表达式.结果返回 X 的小数部分;也就是说,Frac(X)=X-Int(_X).例子:var R:Real;begin R:=Frac(123.456);0.456 R:=Frac(-123.456);-0.456 end.求平方根函数sqrt(x)和平方函数sqr(x)定义:平方根:funct

11、ion Sqrt(X:Real):Real;注意:X 是实型表达式.返回实型的X 的平方根.平方:function Sqr(X):(Same type as parameter);注意:X 是实型或整型表达式.返回值的类型和X 的类型一致,大小是X 的平方,即X*X.例子:begin Writeln(5 squared is,Sqr(5);25 Writeln(The square root of 2 is,Sqrt(2.0);1.414 基本程序结构和几个概念例:program pname;const n=4;type ar=array 1.4 of integer;var i:intege

12、r;a:ar;begin for i:=1 to n do read(ai);readln;for i:=n downto 1 do write(ai:4);writeln;end.以上是一个PASCAL 程序。从键盘读入4 个数据,逆序输出。一般来说,一个PASCAL 程序包括以下几个部分:程序头:program pname;其中,program 是保留字,表示程序从这个地方开始,pname是标识符,是程序的名字,可由程序员自定。保留字是PASCAL 选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其它使用。如上,“program”就有“程序从这里开始”这样一种特别的意义,而“c

13、onst”就有“常量说明从这里开始”的意义。我们不能再用“program”、“const”来作为其它变量、常量等的名字。标识符是以字母开头的字母数字串,其长度最大为8 个字符。用来表示常量、变量、类型、文件、过程、函数和程序的名字。如“pname”、“i”、“j”、“a1”就是合法的标识符;但“1a”、“#a”是非法的标识符。有一点要注意的是,在PASCAL中,字母除了作为字符值或字符串值之外,其大小写是无关的。如标识符“A1”和“a1”在 PASCLA 看来是同一标识符。在PASCAL 中除了保留字和自定义的标识符外,还有一类有特殊含义的标识符,这类标识符称为标准标识符。它们是用来标记程序中

14、经常引用的处理对象,如常量、函数。(PASCAL 定义的保留字和标准标识符附后)标识符在命名的时候要注意:1、名字要易记易读,有意义。如8 皇后问题程序名可以是“queen”也可以是“huanghou”等;2、不能用保留字、标准标识符作为自定义的标识符。说明部分:const n=4;type ar=array 1.4 of integer;var i:integer;a:ar;其中,const 部分是常量说明,说明一些在以下部分用到的,在整个程序执行过程不改变值的量。这些量PASCAL 称为常量。在程序中用到这个值的地方均用常量名来代替。如上题中定义“n=4”指本程序处理4 个数值,在下面的程

15、序体中就用“n”来代替具体的值(如for i:=1 to n)。如果要改变处理数据个数,则只在常量说明部分修改“n=4”这一句就行了,而不用在程序中每一个用到的地方都加以修改。这样不但在编写程序的时候很方便,也增加了程序的可读性,修改时更方便。常量说明在保留字“const”下开始。可以有多个语句。常量说明语句的格式是:“常量名=值;”。如“n=4;”。n 是常量名,4 是该常量的值,“;”是语句分隔符。type 部分是类型说明,说明一些在以下部分用到的数据类型。如数组、记录、指针等。类型说明在保留字“type”下开始。可以有多个语句。类型说明语句的格式是:“类型名=类型说明;”。如“ar=ar

16、ray 1.4 of integer;”。ar 是类型名,array 1.4 of integer是类型说明,“;”是语句分隔符。var 部分是变量说明。变量是指在程序执行过程中可以通过赋值语句或读语句来改变值的量。所有在程序中使用的变量都应该先在变量说明部分说明。PASCAL 中引用的每个变量都有“名字”和“类型”属性。变量说明“说明”的主要工作是告诉PASCA 下面程序中要用到这个名字的量,同时这个量的类型是什么。变量说明在保留字“var”下开始。可以有多个语句。变量说明语句的格式是:“变量名:变量类型;”。其中,如果有多个变量同一类型,则变量名与变量名之间用逗号分隔,变量名与变量类型之间

17、用冒号分隔。如“i:integer;”(i 是变量名,integer是类型名)、“i、j:integer;”(i、j 是变量名,integer是类型名),变量说明要注意:1、有效变量名称不能大于8 个字符;2、变量名称必须以字母开头;3、在同一个有效范围内变量名称必须唯一。各个说明部分均以该部分的保留字开始。如“const”开始常量说明;“type”开始类型说明;“var”开始变量说明。一个程序包含多少种类型的说明,看需要而定,不是每一个程序都必须同时包含这三种说明。如果程序不须要用到常量,则常量说明部分可以省略;如果不须要用到类型说明,则类型说明可省,PASCAL 还有一条规则:先说明后引用

18、。即所有在程序体中用到的“名字”必须都在说明部分说明过才能引用,否则就会出错,通不过编译,也执行不了。如上,类型“ar”先在类型说明中定义,然后在变量说明中引用;变量i 在变量说明中定义,在程序中引用。程序体:begin for i:=1 to n do read(ai);readln;for i:=n downto 1 do write(ai:4);writeln;end.程序体是以begin end.括起来的语句系列。“end”后面是一个小圆点,标识着程序结束,整个程序只有一个是一个程序的主要部分。编程要完成的工作大部分都在这里完成。程序体中每一语句均以“;”作为结束符。在书写程序时,以“

19、分层缩进”的风格来写,以便提高程序的可读性。所谓的“分层缩进”是指在逻辑上同一级的语句其起始点对齐,下一级的语句向右缩进。运算符表达式PASCAL 中的运算符有算术运算符和关系运算符。和我们在数学课中学的基本一样但在写法上有些不同,在写程序时要特别注意写法的不同:+加号 -减号 *乘号(数学中写为)/除号(数学中写为)MOD 取余如 8 MOD 2=0 7 MOD 2=1 2 MOD 3=2 DIV 取整如 8 DIV 2=4 7 DIV 2=3 2 DIV 3=0 在 PASCAL 只有上面6 种数学运算。其它的就只能利用这6 种运算的组合通过语句来实现。如a2(a 的平方)可以化成a*a。

20、大于 小于 不等于(数学中写为)=大于等于(数学中写为)变量、常量通过运算符连接起来的式子我们称为表达式。一个单独的变量或常量也是表达式。如a、a+3、a*3+b 都是表达式。写表达式时要注意PASCAL 表达式跟我们已经熟悉的数学表达式在格式上的区别:数学表达式 PASCAL表达式注意2a 2*a*号不能省略ab a/b 除号的写法ab ab 不等号的写法ab a=:=().,:$(*)其中,有些符号是以双字符作为一个整体,拆开后就失去原有的意义。如“”是一个表示“不等于”的关系运算符,如拆开后就变成了两个关系运算符,分别表示“小于”、“大于”。PASCAL 使用的保留字有:AND ARRA

21、Y BEGIN CASE CONST DIV DO DOWNTO ELSE END FILE FOR FUNCTION GOTO IF IN LABEL MOD NIL NOT OF PACKED PROCEDURE PROGRAM RECORD REPEAT SET THEN TO TYPE UNTIL VAR WHILE WITH FORWARD 常用的标准标识符有:标准常量:FALSE TRUE MAXINT MAXLONGINT 标准类型:INTEGER BOOLEAN REAL CHAR TEXT 标准文件:INPUT OUTPUT 标准函数:ABS ACTAN CHR COS EOF ELON EXP LN ODD ORD PRED ROUND SIN SQR SQRT SUCC TRUNC 标准过程:ASSIGN GET NEW DISPOSE PACK PUT READ READLN RESET REWRITE UNPACK WRITE WRITELN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com