[分享]Pascal中部分常用函数、过程(最后更新日期2005-3-22)
供大家参考!^_^
PASCAL中所有单元常用过程,函数列表 SYSTEM TP的运行库,包括常用的标准函数和过程,可以在程序中直接使用,不需USES语句说明。 DOS 具有日期、时间、目录查找、程序执行等功能 CRT 具有屏幕模式控制、扩展键盘码、颜色、窗口、声音等功能 PRINTER 支持打印输出操作。 GRAPH 高级图形软件包,支持多种图形适配器。 GRAPH3 实现TP3.0的图形软件包。 TURBO3 兼容TP3.0的源程序。 OVERLAY 实现高级覆盖管理
一、子程序设计的需要: 1.细化算法的过程,可以将每一个子问题运用一段相对独立的小程序来解决; 2.一些具有相同或功能相似的程序段在程序中的不同位置反复出现,可以将这样的程序段做成一个整体,用一个标识符给它起一个名字,凡是需要这个程序段的地方只要简单地引用其标识符即可。 3.子程序包括过程和函数两种形式。
二、函数 1.标准函数 :由Pascal定义的函数。如我们熟悉的ord,chr等,程序员编程时直接引用就行了。 2.自定义函数:由程序员在程序中定义后再使用。 (1)自定义函数的定义 function 函数名(形参表):函数类型; { ————函数首部} var {————局部变量说明部分} begin {————函数体} ... {————函数语句} ... 函数名:=表达式 end; (2)函数的调用:函数在语法上相当于一个表达式,所以,调用时,函数不能独立成为一个语句;它可以出现在任何表达式可以出现的地方。 例如赋值语句的右边: X:=函数名(实在参数表); {————X的类型与函数类型必须一致} 又,如果函数类型是boolean,则还可以出现在条件语句中,充当条件表达式: if 函数名(实在参数表) then ……
三、过程 1.标准过程:由Pascal定义的过程。如我们熟悉的read,write等,程序员编程时直接引用就行了。 2.自定义过程:由程序员在程序中定义后再使用。 (1) 过程的定义 procedure 过程名(形式参数表); {————过程首部} var {————说明部分} begin {————过程体} ... ... end; (2)过程的调用:过程在语法上相当于一个语句,所以,调用时,直接写下就行: 过程名(实在参数表);
四、子程序中的参数 1.局部变量和全局变量 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 2.变量的作用域 (1)变量的作用域和它被定义的位置有关: 在哪里被定义,它的作用范围就在那里:全局变量作用域是整个程序;局部变量作用域是定义该变量的子程序 (2)全局变量与局部变量同名时: 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。 3.值形参和变量形参 值形参——传值 变量形参——传地址
以下为部分函数、过程列表(按字母表顺序排列):
求绝对值函数abs(x) 定义:function Abs(X): (Same type as parameter); 说明:X可以是整型,也可以是实型;返回值和X的类型一致例子: var r: Real; i: Integer; begin r := Abs(-2.3); { 2.3 } i := Abs(-157); { 157 } end.
打开文件Append过程 定义:procedure Append(f:file of 类型); 说明:打开一个存在的文本文件,并将文件指针指向文件末尾准备添加元素 例子: var f:file of 类型; begin assign(f,'文件完全路径'); append(f); end.
建立文件联系Assign过程 定义:procedure Assign(f:file of 类型;c:string); 说明:将字符串C所表示的外部文件名赋给文件变量F 例子: var f:text; begin assign(f,'C:\pascal.txt'); end.
终止循环Break过程 定义:procedure Break; 说明:中止或结束循环 例子: var i:integer; begin for i:=1 to 10 do begin if i<=5 then write(i) else break; end; end. 输出结果为:12345
将ASCII码值转为字符Chr函数 定义:function chr(x:integer):char; 说明:求ASCII码值为X的字符 例子: var i:integer; begin for i:=1 to 255 do write(i:4,chr(i)); end.
关闭文件Close过程 定义:procedure Close(f:file of 文件类型); 说明:关闭文件 注意:在完成文件操作后,必须将此文件用Close关闭,否则数据将丢失! 例子: var f:text; begin assign(f,'C:\Pascal.txt'); close(f); end.
复制子串copy 定义: function Copy(S: String; Index: Integer; Count: Integer): String; 注意:S 是字符串类型的表达式。Index和Count是整型表达式。Copy 返回S中从Index开始,Count个字符长的一个子串。 例子: var S: String; begin S := 'ABCDEF'; S := Copy(S, 2, 3); { 'BCD' } end.
递减Dec过程 定义:procedure Dec(x,y:integer); 说明:表示x:=x-y,当y=1时,其表达式可以写为Dec(x) 例子: var i:integer; begin i:=10; repeat dec(i); write(i); until i=0; end. 输出结果:9876543210
删除子串delete 定义:procedure Delete(var S: String; Index: Integer; Count:Integer);
注意:S 是字符串类型变量。 Index和Countare是整型表达式。Delete 删除S中从Index开始的Count个字符。如果Index大于S的长度,则不删除任何字符;如果Count大于S中从Index开始的实际字符数,则删除实际的字符数。
例子: var s: string; begin s := 'Honest Abe Lincoln'; Delete(s,8,4); Writeln(s); { 'Honest Lincoln' } Delete(s,9,10); Writeln(s); { 'Honest L' } 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.
插入子串insert 定义:procedure Insert(Source: String; var S: String; Index: Integer);
注意:Source 是字符串类型的表达式。 S 是任意长度字符串类型变量。Index 是整型表达式。Insert 把 Source插在S中Index处。如果结果字符串的长度大于255,那么255之后的字符将被删除。
例子: var S: String; begin S := 'Honest Lincoln'; Insert('Abe ', S, 8); { 'Honest Abe Lincoln' } 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.
求长度length 定义:function Length(S: String): Integer; 例子: var S: String; begin Readln (S); Writeln('"', S, '"'); Writeln('length = ', Length(S)); end.
求子串起始位置pos 定义:function Pos(Substr: String; S: String): Byte;
注意:Substr和S字符串类型表达式。Pos在S中搜索Substr并返回一个integer值。这个值是Substr的第一个字符在S中的位置。如果在S中没有找到Substr,则Pos返回0。
例子: var S: String; begin S := ' 123.5'; { Convert spaces to zeroes } while Pos(' ', S) > 0 do S[Pos(' ', S)] := '0'; 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, ' rounds to ', Round(1.5)); { 2 } Writeln(-1.4, 'rounds to ', Round(-1.4));{ -1 } Writeln(-1.5, 'rounds to ', Round(-1.5));{ -2 } end.
求平方根函数sqrt(x)和平方函数sqr(x) 定义: 平方根:function 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 }
数值转为字符串str 定义: procedure Str(X [: Width [: Decimals ]]; var S:string);
注意:将数值X转成字符串形式。 例子: var S: string[11]; begin Str(I, S); IntToStr := S; end; begin Writeln(IntToStr(-5322)); Readln; end.
截尾函数trunc(x) 定义:function Trunc(X: Real): Longint; 注意:X是实型表达式. Trunc 返回Longint型的X的整数部分例子: begin Writeln(1.4, ' becomes ', 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.
字符串转为数值val 定义: procedure Val(S; var V; var Code: Integer); 在这里: S 是由一系列数字字符构成的字符串类型变量;。 V 是整型或实型变量; Code 是Integer型变量
注意:Val将S转为它的数值形式。 例子: var s:string;I, Code: Integer; begin s:='1234'; val(s,i,code); writeln(i); { 1234 } end.
字符完全串连+ 定义:操作符+把两个字符串联在一起。 例子: var s1,s2,s:string; begin s1:='Turbo '; s2:='pascal'; s:=s1+s2; { 'Turbo pascal' } end.
字符串压缩空格串连- 定义:操作符-去掉第一个字符串最后的空格后,将两个字符串联在一起。 例子: var s1,s2,s:string; begin s1:='Turbo '; s2:='pascal'; s:=s1-s2; { 'Turbopascal' } end.
[此贴子已经被作者于2005-3-22 21:17:56编辑过] |