PASCAL函数过程表

时间:2021-04-12 17:33:58
目录:
1、数学函数;
2、所有单元;
3、SYSTEM单元(不需要uses语句);
4、DOS单元;
5、CRT单元;
6、其他单元;
7、常用函数;
8、不常用函数;
9、退出方法。  
 
 
1、数学函数 
 求绝对值函数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. 

取整函数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, ' 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. 

四舍五入函数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. 

取小数函数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) 
定义: 
平方根: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 }  
 
2、所有单元 
 SYSTEM TP的运行库,包括常用的标准函数和过程,可以在程序中直接使用,不需USES语句说明。 
DOS 具有日期、时间、目录查找、程序执行等功能 
CRT 具有屏幕模式控制、扩展键盘码、颜色、窗口、声音等功能 
PRINTER 支持打印输出操作。 
GRAPH 高级图形软件包,支持多种图形适配器。 
GRAPH3 实现TP3.0的图形软件包。 
TURBO3 兼容TP3.0的源程序。 
OVERLAY 实现高级覆盖管理  
 
3、SYSTEM单元 
 SYSTEM单元常用过程与函数 
ABS(X) F 求变量的绝对值 
ADDR(X) F 测变量地址 
APPEND(F) P 打开一个存在的文本文件,并将文件指针指向文件末尾准备添加元素 
ARCTAN(X) F 反正切 
ASSIGN(F,C) P 将字符串C所表示的外部文件名赋给文件变量F 
ASSIGNED(X) P 测试程序当中的指针或变量是否为空 
BLOCKREAD(F,D,NUM) P 读类型文件。 
BLOCKWRITE(F,D,NUM) P 写无类型文件 
BREAK P 中止或结束循环 
CHDIR(PATH) P 改变当前目录 
CHR(X) F 求ASCII码值为X的字符 
CLOSE(F) P 关闭文件 
CONCAT(S1,S2...S3) F 字符串合并 
CONTINUE P 继续循环 
COPY(S,POS,LEN) F 返回一个字符串的子串 
COS(X) F 余弦函数 
CSEG F 返回CS寄存器的当前值 
DEC(X) F X:=X-1 
DELETE(S,POS,LEN) P 删除一个字符串的子串 
DISPOSE(P) P 释放一个动态变量 
DSEG F 返回DS寄存器的当前值 
EOF(F) F 判断文件是否结束 
EOLN(F) F 判断文件类型中的一行是否结束 
ERASE(F) P 删除一个存在的外部文件。 
EXIT P 过程中止 
EXP(X) F 以E为底的指数函数 
FILEPOS(F) F 文件记录的当前位置 
FILESIZE(F) F 文件记录数 
FILLCHAR(D,LEN,DATE) P 填充数值或字符 
FLUSH(F) P 清空文件缓存区 
FRAC(X) F 取实形变量的小数部分 
FREEMEM(P,I) P 释放变长动态变量 
GETDIR(DRV,PATH) P 取当前盘,当前目录 
GETMEM(P,I) P 分配变长的动态变量,并把块地址存放在一个指针变量中 
HALT P 立即中止程序执行,返回TP编辑器或DOS 
HI(I) F 返回一个变量的高位字节 
INSERT(S,D,POS) F 在一个字符串中某一位置开始插入一个子串 
INT F 取整数部分 
IORESULT F 返回最后一次输入/出操作的结果状态 
LENGTH(S) F 取字符串的长度 
LN(R) F 求自然对数 
LO(I) F 返回一个变量的低位字节 
MAXAVAIL F 返回最大内存空间 
MEMAVAIL F 返回可用内存数目 
MKDIR(PATH) P 建立一个子目录 
MOVE(S,D,LEN) P 快传送 
NEW(P) P 建立一个新的动态变量 
ODD(X) F 判断一个变量的值是否为奇数 
OFS(X) F 侧变量偏移地址 
ORD(CH) F 求一个字符的ASCII码值 
PARAMCOUNT F DOS参数串长度 
PARAMSTR(N) F DOS参数串 
PI F 圆周率的值 
pos(str1,str2) f 测一个字符串中包含的另一个子串的开始位置 
pred(x) f 求前驱 
ptr(i) f 指针赋值 
random f 返回0~1之间的随机实数 
randomize p 初始化随机数发生器 
read/readln(f,x) p 读入/输入数据 
rename(f,str) p 给一个外部文件改名 
reset(f) p 打开文件,并将文件指针指向开始,并准备读数据 
rewrite(f) p 打开文件,并将文件指针指向开始,准备写资料 
rmdir(path) p 删除一个子目录 
round(x) f 求实数的近似数 
runerror p 停止程序的运行 
scrollto p 滚动显示窗口的某部分内容 
seek(f,n) p 将文件指针定位于文件f的第n个文件成分上 
seekrof(f) f 定位到文件尾 
seekroln(f) f 定位到行尾 
seg(n) f 测变量段地址 
settextbuf(f) p 将输入/出缓冲区与一个文本文件建立关联 
sin(x) f 正弦函数 
sizeof(x) f 测变量大小 
sptr f 返回sp寄存器的当前值 
sqr(x) f 平方 
sqrt(x) f 平方根 
sseg f 返回ss寄存器的当前值 
str(i,s) f 将一个整数转换成字符串 
succ(X) f 后继函数 
swap(x) f 交换一个变量的高位和低位字节 
trunc(x) f 截去实数的小数部分 
truncate(f) p 截去文件当前指针以后的内容 
upcase(ch) f 将小写字母转换成大写字母 
val(s,r,p) p 将一个字符串转换成数值 
writeln(f,x) p 输出  
 
4、DOS单元 
 dos单元常用过程与函数 
getdate p 返回系统当前日期 
detftime p 返回最后一次写入的日期和时间 
gettime p 返回系统当前时间 
packtime p 转换系统日期和时间,封装成4个字节的长整形格式 
setdate p 设置系统当前日期 
setftime p 写入新的系统日期和时间,覆盖系统最后一次写入的系统日期和时间文件 
settime p 设置系统当前时间 
uppacktime p 将系统日期和时间转换成纪录格式 
diskfree f 返回指定磁盘可用剩余空间 
disksize f 返回指定磁盘的总容量 
get/setverity p 返回/设置dos状态下的磁盘读写标记 
fexpand f 返回函数名的全称 
fsearch f 在一个目录中查找文件 
fsplit f 将一个文件名分成目录、文件名、扩展名 
findfirst p 在当前目录或指定目录下查找第一个与给定属性相匹配的文件名 
findnext p 返回下一个满足匹配条件的文件名 
getfattr p 返回文件的属性 
setfattr p 设置文件属性 
gerintvec p 返回某个中断变量值 
intr p 执行软中断 
msdos p 执行dos 系统调用 
setintvec p 设定中断值 
exec p 通过一个特定命令行执行特定程序段 
keep p 中断程序的执行但仍驻留在内存中 
swapvectors p 用当前变量交换所有中断变量值 
dosexitcode f 回到子程序出口 
dosversion f 显示dos版本  
 
5、CRT单元 
 crt单元 
assigncrt(f) p 将文本文件f与显示器crt建立联系 
clreol p 清除当前行光标所在位置以后的字符 
clrscr p 清除当前窗口或屏幕,光标返回到左上角 
delay(t) p 等待t毫秒 
delline p 清除光标所在行上所有内容 
gotoxy(x,y) p 将光标移到屏幕某处 
highvideo p 选择高亮度显示字符 
insline p 在当前光标位置插入空行 
keypressed f 测定键盘输入状态 
lowvideo p 低亮度显示字符 
normvideo p 选择正常文本属性从光标所在位置开始显示字符 
nosound p 关闭内部扬声器 
readkey p 等待从键盘输入一个字符 
sound(hz) p 以hz指定的频率发声 
textbackground(soor) p 设置正文背景颜色 
textcolor(color) p 设置正文前景颜色 
textmode p 选择特定的文本显示模式 
wherex/y f 返回当前光标位置的坐标值 
window(x1,y1,x2,y2) p 在屏幕定义一个文本窗口  
 
 
6、其他单元 
 其他单元 
chain(f) p 目标程序链接 
execute(f) p 执行目标程序 
mark(p) p 标记动态变量 
release(p) p 释放动态变量区 
srtinit p 屏幕初始化 
crtline p 汉字屏幕方式转换 
graphbackground(color) p 选择背景色 
graphcolormode p 中分辨率彩色图形方式,320*200彩色 
graphmode p 中分辨率黑白图形方式,320*200黑白 
graphwindow(x1,y1,x2,y2,color)p 定义图形方式窗口 
hires p 高分辨率单色图形方式,640*200黑白 
hirescolor(color) p 高分辨率彩色图形方式,640*200彩色 
palette(color) p 中分辨率彩色图形颜色组 
ovrpath(path) p 指定覆盖文件路径 
draw(x1,y1,x2,y2,color) p 画线 
intr(n,m) p 8086中断调用 
plot(x,y,color) p 画点 
random(integer) f 产生随机整数 
seg(x) f 测变量段地址 
colortable(c1,c2,c3,c4) p 重定义颜色组 
arc(x,y,radius,color) p 画圆弧 
circle(x,y,radius,color) p 画圆 
getpic(buffer,x1,x2,y1,y2) p 屏幕转储到屏幕 
putpic(buffer,x,y) p 缓冲器转储到屏幕 
getdotcolor(x,y) p 读点 
fillscreen(color) p 填充屏幕 
fillshape(x,y,fillcol,bordercol) p 填充一个区域  
 
 
7、其他常用函数 
 function binstr(value:longint;cnt:byte):string; 
将value转二进制,取后cnt个字符所成字串 
function lowercase(c:char or string):char or string; 
upcase 的反函数 
procedure setlength(var s:string;len:longint); 
将s长度定为len 
function power(base,expon:real):real; 
base的expon次方 
strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 
strlen 函数 返回字符串中的字符数 
strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 
strlicomp 函数 以最大长度比较两个字符串(不区分大小写) 
strlower 函数 将字符串中的字符转换为小写 
strmove 函数 将一个字符串中的字符复制到另一个字符串中 
strnew 函数 在堆栈上分配一个字符串 
strpas 函数 将以null结束的字符串转换为pascal类的字符串 
strpcopy 函数 将pascal类的字符串复制为以null结束的字符串 
strplcopy 函数 从pascal类的最大长度字符串复制为以null结束的字符串 
strpos 函数 返回一个字符串在另一个字符串中首次出现指针 
strrscan 函数 返回字符串中最后出现字符的指针 
strscan 函数 返回字符串中出现首字符的指针 
strtodate 函数 将字符串转换为日期格式 
strtodatetime 函数 将字符串转换为日期/时间格式 
strtofloat 函数 将给定的字符串转换为浮点数 
strtoint 函数 将字符串转换为整型 
strtointdef 函数 将字符串转换为整型或默认值 
strtotime 函数 将字符串转换为时间格式 
strupper 函数 将字符串中的字符转换为大写 
style 属性 类型选择 
suce 函数 返回后继的参数 
swap 函数 交换参数的高低地址位 
tabs 属性 标记每一项的内容 
tabindex 属性 标记索引 
text 属性 显示的文本 
texttofloat 函数 将字符串(以null结束的格式)转换为浮点数 
time 函数 返回当前的时间 
timetostr 函数 将时间格式转换为字符串 
trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符 
trimleft 函数 从给定的字符串中删除首部的空格及控制字符 
trimright 函数 从给定的字符串中删除尾部的空格及控制字符 
trunc 函数 将实型值截取为整型值 
truncate 函数 截去当前文件位置后的内容 
unselectedcolor 属性 未选中颜色 
upcase 将字符转换为大写 
uppercase 将给定的字符串变为大写 
val 函数 将字符串转换为整型值 
vararraycreate 函数 以给定的界限和维数建立变体数组 
vararraydimcount 函数 返回给定变体的维数 
vararrayhighbound 函数 返回给定变体数组维数的上界 
vararraylock 函数 锁定给定的变体数组 
vararraylowbound 函数 返回给定变体数组维数的下界 
vararrayof 函数 返回指定变体的数组元素 
vararrayredim 函数 通过改变上限来调整变体的大小 
vararrayunlock 函数 解锁指定的变体数组 
varastype 函数 将变体转换为指定的类型 
varcase 函数 将变体转换为指定的类型并保存他 
varclear 函数 清除指定的变体 
varcopy 函数 将指定的变体复制为指定的变体 
varformdatetime 函数 返回包含日期时间的变体 
varisarray 函数 测试变体是否为数组 
varisempty 函数 测试变体是否为unassigned varisnull 函数 测试变体是否为null 
vartodatetime 函数 将给定的变体转换为日期时间 
vartype 函数 将变体转换为指定的类型并保存他 
visible 属性 控件的可见性 
wantreturns 属性 为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件  
 
 
8、其他不常用函数 
 Addr 
语法 function Addr(var f:text); 
说明 addr返回一个变量,类型或过程的地址。结果为指针类型 
assigncer 
语法 procedure assigncrt(var f:file;name:string); 
说明 将文件f的内容输于显示器上 
bolckread 
语法 procedure blockread(var f:file; var b:type; numrecs:integer;varecsread:integer); 
说明 从无类型文件f中读出number 个记录,放在缓冲区b .recsread表示了实际读出的记 
录数。注意:只有pc\ms-dos版才支持recsread 
bolckwrite 
语法 procedure blockwrite(var f:file; var b:type; numrecs:integer); 
说明 从缓冲区b读出numrecs个记录至无类型文件中。 
chdir 
表示的目录.语法 procedure chdir (s:string); 
说明 将当前的目录换为s所 
filesize 
语法 function(f:file):integer; 
说明 返回f当前所含的记录数。 
filepos 
语法 function(f:file):integer; 
说明 返回文件f指针所指向的记录号 
fillpoly(dos) 
语法 frocedure fillpoly(munpoints:word;var polypoints); 
说明 用munpoints个点画一个多边形,数组munpoints含多边形的顶点坐标 
flush 
说明 procedure flush(var f:file) 
语法 刷新用于输出文件f的全部磁盘缓冲区 
frac 
语法 function frac(r:real):real; 
说明 返回实数r的小数部分 
fsearch (dos) 
语法 function fsearch(path:pathstr;dirlist:string):pathstr 
说明 查找dirlist目录中的与path相匹配的文件。如果找到则以一个字符串返回结果,否则返回的函数 值为一空串 
insline 
语法 procedure insline; 
说明 在当前光标的所在位置插入一空行 
mark 
语法 procedure mark(p:pionter) 
说明 贮存了当前堆顶端知底于指针p中 
maxavaih 
语法 function maxavil:longint 
说明 返回堆中最大的*块的尺寸 
menavail 
语法 function memavail:longint 
说明 返回堆中*空间的总长度 
mkdir 
语法 procedure mkdir(s:string) 
说明 以字符串s命名建立一个目录(文件夹) 
parammstr 
语法 function paramstr(i;word:string); 
说明 返回命令行所指定的参数。例如 paramstr(1)返回第一个参数。在dos3.0以上的版本 返回执行文 件的路径和文件名 
randomize 
语法 function randomize; 
说明 初始化随机产生程序。其基数存放在长整型randseed中 
release 
语法 procedure falease(var p;pointer) 
说明 释放由mark命令所设置的内存。用mark于贮存指针的堆地址 
rename 
语法 procedure rename(var f:file;s:string) 
说明 将文件f的文件名变为字符串s 
rmdir 
语法 procedure rmdir(s:string) 
说明 删除目录s(文件夹) 
sound (crt单元) 
sound(i:integer) 
利用内部扬声器发音 
seekeof 
语法 function seekeof(var file):boolean 
说明 与eof相似,只是在测试文件结束前要跳过空格,制表符号和文件的结束符(cr/cf) 
truncate 
语法 procedure trunvate 
说明 在当前文件f指针处强行结束文件,文件指针后的内容丢失  
 
 
9、退出方法 
 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语句。 {*****} 注意 : 以上两个语句 只 对 它们所在的 那层循环语句 起作用, 
也就是说 : 如果有多个 循环语句 相嵌套, 其中 某一层 执行了 
continue / break 语句, 它们并不能影响上面几层的 
循环语句。 

exit 是退出当前程序块; 
即 : 在任何子程序 中执行 exit , 那么 将退出 这个子程序; 
如果是在 主程序中执行 exit , 那么将退出整个程序。 
相当于 : goto 这个程序块 的 末尾 的 end 例如 : 试除法判断素数时,一旦整除,就把函数值赋为false ,然后exit; 
{******}注意 : 类似上面的 , exit也是只对当前 这一个 子程序产生作用, 
如果多重嵌套子程序 , 那么其中某个子程序执行了exit以后, 
将返回到 调用它的那个语句 的下一个语句。 

halt : 没什么好说的,退出整个程序,Game Over.