种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

pascal函式

(2019-08-02 08:15:29) 百科综合
pascal函式

pascal函式

编程中通常所用到的函式之一,特殊的需要调用资料库,如:uses math

基本介绍

  • 中文名:pascal函式
  • 外文名:Pascal function
  • 所属:PASCAL
  • 类型:PASCAL自带的函式
  • 特点:通常可以直接调用

过程

1.标準过程:由Pascal定义的过程。如我们熟悉的read,write等,程式设计师编程时直接引用就行了。
2.自定义过程:由程式设计师在程式中定义后再使用。
(1) 过程的定义
procedure 过程名(形式参数表); {————过程首部}
var {————说明部分}
begin {————过程体}
...
...
end;
(2)过程的调用:过程在语法上相当于一个语句,所以,调用时,直接写下就行:
过程名(实在参数表);
//--
System单元函式/过程
//--
过程:
inc(i) 使i:=i+1; inc(i,b) 使i:=i+b; dec(i) 使i:=i-1; dec(i,b) 使i:=i-b;
//--
randomize 初始化随机数发生器。如果没有使用randomize,则random函式将使用第一次调用时的返回值.
//--
常用过程列表:
APPEND(F) P 打开一个存在的文本档案,并将档案指针指向档案末尾準备添加元素
ASSIGN(F,C) P 将字元串C所表示的外部档案名称赋给档案变数F
ASSIGNED(X) P 测试程式当中的指针或变数是否为空
BLOCKREAD(F,D,NUM) P 读类型档案。
BLOCKWRITE(F,D,NUM) P 写无类型档案
BREAK P 中止或结束循环
CHDIR(PATH) P 改变当前目录
CLOSE(F) P 关闭档案
CONTINUE P 继续循环
DELETE(S,POS,LEN) P 删除一个字元串的子串
DISPOSE(P) P 释放一个动态变数
ERASE(F) P 删除一个存在的外部档案。
EXIT P 过程中止
FILLCHAR(D,LEN,DATE) P 填充数值或字元
FLUSH(F) P 清空档案快取区
FREEMEM(P,I) P 释放变长动态变数
GETDIR(DRV,PATH) P 取当前盘,当前目录
GETMEM(P,I) P 分配变长的动态变数,并把块地址存放在一个指针变数中
HALT P 立即中止程式执行,返回TP编辑器或DOS
MKDIR(PATH) P 建立一个子目录
MOVE(S,D,LEN) P 快传送
NEW(P) P 建立一个新的动态变数
randomize p 初始化随机数发生器
read/readln(f,x) p 读入/输入数据
rename(f,str) p 给一个外部档案改名
reset(f) p 打开档案,并将档案指针指向开始,并準备读数据
rewrite(f) p 打开档案,并将档案指针指向开始,準备写资料
rmdir(path) p 删除一个子目录
runerror p 停止程式的运行
scrollto p 滚动显示视窗的某部分内容
seek(f,n) p 将档案指针定位于档案f的第n个档案成分上
settextbuf(f) p 将输入/出缓冲区与一个文本档案建立关联
truncate(f) p 截去档案当前指针以后的内容
val(s,r,p) p 将一个字元串转换成数值
writeln(f,x) p 输出
{备注:f:function;p:procedure}

标準函式

标準函式。Turbo Pascal语言提供了自变数为整型量的标準函式有顺序函式算术函式和转换函式等。
标準函式是Turbo Pascal语言预先定义的,它们实际上是能完成特定功能的称步子程式的程式段。每个标準函式都用一个标识符来标识,每个标準函式都能完成一个特定的功能,在程式中可以直接调用它们。Turbo Pascal语言中某些标準函式与数学中的函式有相似之处。

整数类型

整型是顺序类型,即所有的整型数都是按一定的顺序排列的。如3的后序数是4,350的后序数是351。以后介绍的布尔型、字元型、枚举类型和子界类型等都是顺序类型。顺序函式可以对顺序类型数据进行操作,但要注意它们自变数的取值範围。
①前趋函式:Pred(x)函式值为x-l,例如:
Pred (6)=5 Pred (-21)=-22
②后继函式:Succ (x)函式值为x+l,例如:
Succ (l5)=16 Succ (-114)= -113
③绝对值函式:Abs (x)函式值为|X|,例如:
Abs (-119)=119 Abs (101)=101
④平方函式:Sqr (x)函式值为X*X,例如:
Sqr (-5)=25 Sqr (l0)= 100
以上四个函式的结果仍是整型数。
⑤奇函式:Odd (x),函式的结果为布尔型。当X为奇数时,函式值为true;当X为偶数时,函式值为false,例如:
Odd (13)= True Odd (16)= False
⑥字元函式:Chr (X),函式值是序号的ASCII字元,属字元型,例如:
Chr (65)=’A’ Chr (66)=’B’

实数类型

在下列算术函式中,X可以是实型或整型数的表达式。对于函式Abs和Sqr,其结果类型和变数X的类型相同,其他算术函式的结果类型都是实型。
绝对值函式Abs(x):函式值为x的绝对值。
平方函式Sqr (x):函式值为x的平方。
小数函式Frac (x):函式值为x的小数部分。
整数函式Int (x):函式值为x的整数部分。
正弦函式Sin (x):函式值为x的正弦,其中,的单位为弧度。
余弦函式Cos (x):函式值为x的余弦,其中,的单位为弧度。
指数函式Exp (x):函式值为e^x。
对数函式Ln (X):函式值为x的自然对数。
平方正根根函式的Sqrt (x):函式值为x的平方正根。注意:sqrt的值参x即使是整数,返回值也是实数。如果要取整,要用函式trunc(在“数学函式与过程”里已说明,这里不再说明)
反正切函式Arctan(x):函式值为x的反正切,单位为弧度。
随机函式Random:无自变数时,函式值取(0,1)间的随机小数;有自变数且为Word类型时,函式值取(0,自变数)间的随机整数。

字元类型

Turbo Pascal语言提供如下自变数为字元型的标準函式,其中Chr为字元型。
后继函式Succ (ch):例如,Succ (’8’)='9’ Succ (’E’)='F’
对字元集的最后一个字元,Succ函式无意义。
前趋函式Pred (ch):例如,Pred (’7’)='6’ Pred (’B’)=' A’
序数函式Ord (ch)::给出字元ch在ASCII字元集中的序号,结果为整型。
注意:Ord (’7’)<>7,正确的是:Ord (’7’)=Ord(’0’)+7=48+7=55
若ch是数字字元,则Ord (ch)-Ord ('0')是该数字字元的数值,例如:Ord (’7’)-Ord(’0’)=7
前面介绍的字元函式Chr (i)是Ord (ch)的逆函式,例如:Chr (55)= ’7’ Chr (Ord(’A’))='A’
四、布尔类型函式
Turbo Pascal语言提供布尔型函式主要是几个字元型函式。
Ord (B) 例如:Ord (false)=0 Ord (true)=1。

字元串

1. 连线运算(函式) concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。
例:concat('11','aa')='11aa';
2. 求子串。 (函式)Copy(s,I,L) 从字元串s中截取第I个字元开始,长度为L的子串。
例:copy('abdag',2,3)='bda'
3. 删除子串。(过程) Delete(s,I,L) 从字元串s中删除第I个字元开始,长度为L的子串。
例:s:='abcde';delete(s,2,3);结果s:='ae'
4. 插入子串。 (过程)Insert(s1,s2,I) 把s1插入到s2的第I个位置。
例:s:='abc';insert('12',s,2);结果s:='a12bc'
5. 求字元串长度 (函式)length(s) 。
例:length('12abc')=5
6. 搜寻子串的位置 (函式)pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字元在s2中的位置,若不是子串,则返回0。
例:pos('ab','12abcd')=3
7.字元的大写转换。(函式)Upcase(ch) 求字元ch的大写体。
例:upcase('a')='A'
8. 数值转换为数串。 (过程)Str(x,s) 把数值x化为数串s。
例:str(12345,s); 结果s='12345'
9. 数串转换为数值。 (过程)val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字元的序数。
例:val('1234',x,I);结果 x:=1234

各单元

SYSTEM TP的运行库,包括常用的标準函式和过程,可以在程式中直接使用,不需USES语句说明
DOS 具有日期、时间、目录查找、程式执行等功能
CRT 具有萤幕模式控制、扩展键盘码、颜色、视窗、声音等功能
PRINTER 支持列印输出操作
GRAPH 高级图形软体包,支持多种图形适配器
GRAPH3 实现TP3.0的图形软体包
TURBO3 兼容TP3.0的源程式
OVERLAY 实现高级覆盖管理
WINDOWS 专供Windows使用的图形界面单元

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 输出

dos

getdate p 返回系统当前日期
detftime p 返回最后一次写入的日期和时间
gettime p 返回系统当前时间
packtime p 转换系统日期和时间,封装成4个位元组的长整形格式
setdatep 设定系统当前日期
setftimep 写入新的系统日期和时间,覆盖系统最后一次写入的 系统日期和时间档案
settimep 设定系统当前时间
uppacktime p 将系统日期和时间转换成纪录格式
diskfree f 返回指定磁碟可用剩余空间
disksize f 返回指定磁碟的总容量
get/setverity p 返回/设定dos状态下的磁碟读写标记
fexpand f 返回函式名的全称
fsearch f 在一个目录中查找档案
fsplit f 将一个档案名称分成目录、档案名称、扩展名
findfirstp 在当前目录或指定目录下查找第一个与给定属性相匹配的档案名称
findnext p 返回下一个满足匹配条件的档案名称
getfattr p 返回档案的属性
setfattr p 设定档案属性
gerintvec p 返回某箇中断变数值
intrp 执行软中断
msdos p 执行dos系统调用
setintvec p 设定中断值
exec p 通过一个特定命令行执行特定程式段
keep p 中断程式的执行但仍驻留在记忆体中
swapvectors p 用当前变数交换所有中断变数值
dosexitcode f 回到子程式出口
dosversion f 显示dos版本

crt

assigncrt(f) p 将文本档案f与显示器crt建立联繫
clreolp 清除当前行游标所在位置以后的字元
clrscr p 清除当前视窗或萤幕,游标返回到左上角
cursoroff p 关闭游标
delay(t) p 等待t毫秒
dellinep 清除游标所在行上所有内容
gotoxy(x,y) p 将游标移到萤幕某处
highvideop 选择高亮度显示字元
inslinep 在当前游标位置插入空行
keypressed f 测定键盘输入状态
lowvideop 低亮度显示字元
normvideop 选择正常文本属性从游标所在位置开始显示字元
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 在萤幕定义一个文本视窗

math

在FP中,Math库为我们提供了丰富的数学函式。以下介绍在OI中可能会用到的Math库中一些函式、过程。
使用方法:在程式头用Uses语句载入Math库
例子:
Program Ex_Math;
Uses Math;
Begin
Writeln(hypot(3,4));
End.
hypot
原型:function hypot(x:float;y:float):float
功能:返回直角三角形中较长边的长度,也就是sqrt(sqr(x)+sqr(y))
ceil
原型:function ceil(x:float):Integer
功能:返回比参数大的最小整数
引发错误:在x超出Integer的範围时会引发溢出错误
floor
原型:function floor(x:float):Integer
功能:返回参数小的最大整数
引发错误:在x超出Integer的範围时会引发溢出错误
power
原型:function power(base:float;exponent:float):float
功能:返回base的exponent次方
引发错误:在base为负数且exponent为小数时
intpower
原型:function intpower(base:float;const exponent:Integer):float
功能:返回base的exponent次方
ldexp
原型:functionldexp(x:float;const p:Integer):float
功能:返回2的p次方乘以x
log10
原型:function log10(x:float):float
功能:返回x的常用对数
log2
原型:function log2(x:float):float
功能:返回x以2为底的对数
logn
原型:function logn(n:float;x:float):float
功能:返回x以n为底的对数
Max
原型:function Max(a:Integer;b:Integer):Integer
function Max(a:Int64;b:Int64):Int64
function Max(a:Extended;b:Extended):Extended
功能:返回a与b中较大的一个
Min
原型:function Min(a:Integer;b:Integer):Integer
function Min(a:Int64;b:Int64):Int64
function Min(a:Extended;b:Extended):Extended
功能:返回a与b中较小的一个
arcsin
原型:function arcsin(x:float):float
功能:返回x的反正弦值,返回的是弧度指单位
arccon
原型:function arccon(x:float):float
功能:返回x的反余弦值,返回的是弧度指单位
tan
原型:function tan(x:float):float
功能:返回x的正切值,x以弧度为单位
cotan
原型:function cotan(x:float):float
功能:返回x的余切值,x以弧度为单位
arcsinh
原型:function arcsinh(x:float):float
功能:返回双曲线的反正弦
arccosh
原型:function arccosh(x:float):float
功能:返回双曲线的反余弦
arctanh
原型:function arctanh(x:float):float
功能:返回双曲线的反正切
sinh
原型:function sinh(x:float):float
功能:返回双曲线的正弦
cosh
原型:function sinh(x:float):float
功能:返回双曲线的正弦
tanh
原型:function sinh(x:float):float
功能:返回双曲线的正切
cycletorad
原型:function cycletorad(cycle:float):float
功能:返回圆的份数转换成弧度之后的值
degtorad
原型:function degtorad(deg:float):float
功能:返回角度转换成弧度之后的值
radtocycle
原型:function radtocycle(rad:float):float
功能:返回弧度转换成圆的份数之后的值
radtodeg
原型:function radtodeg(rad:float):float
功能:返回弧度转换成角度之后的值
MaxValue
原型:function maxvalue(const data:Array[] of float):float
function maxvalue(const data:Array[] of Integer):Integer
function maxvalue(const data:PFloat;const N:Integer):float
function maxvalue(const data:PInteger;const N:Integer):Integer
功能:返回数组中的最大值
MinValue
原型:function minvalue(const data:Array[] of float):float
function minvalue(const data:Array[] of Integer):Integer
function minvalue(const data:PFloat;const N:Integer):float
function MinValue(const Data:PInteger;const N:Integer):Integer
功能:返回数组中的最小值
sum
原型:function sum(const data:Array[] of float):float
function sum(const data:PFloat;const N:LongInt):float
功能:求数组中所有数之和
sumsandsquares
原型:procedure sumsandsquares(const data:Array[] of float;var sum:float;
var sumofsquares:float)
procedure sumsandsquares(const data:PFloat;const N:Integer;
var sum:float;var sumofsquares:float)
功能:将数组中的数求和放如num中,求平方和放入sumofsquares中

其他

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 填充一个区域
messagebox(icon,s,title,button) p 图示icon,内容s,标题title,按钮button的提示框(windows单元)

标 签

搜索
随机推荐

Powered By 种豆资源网||