标题：pascal函数
数学函数与过程
过程：　
inc(i) 使i:=i+1; 
inc(i,b) 使i:=i+b; 
dec(i) 使i:=i-1; 
dec(i,b) 使i:=i-b; 
randomize 随机数的种子函数，在每次设置随机数时都要把这个函数放在最前面。
函数：
abs(x) 求x的绝对值。例：abs(-3)=3 x为整数.
chr(x) 求编号x对应的字符。例：chr(65)='A' chr(97)='a' chr(48)='0' x为非负整数.
ord(x) 求字符x对应的编号。例：ord(‘A')=65 ord(‘a')=97 另外：ord(false)=0 ord(true)=1 x为字符或数字或布尔量.
sqr(x) 求x的平方。例：sqr(4)=16 x为整数.
sqrt(x) 求x的正根。例：sqrt(16)=4 (ps：负数是不能进行运算的，如果需要就要先取绝对值：sqrt(-4)是错的，应该为sqrt(abs(-4))结果为实数.
round(x) 求x的四舍五入。例：round(4.5)=5 x实数.
trunc(x) 求x的整数部分。例：trunc(5.6)=5 结果是integer型 x为实数.
int(x) 求x的整数部分。例：int(5.6)=5.0 结果是real型 x为实数.
frac (x) 求x的小数部分。例：frac(5.6)=0.6 x为实数.
pred(x) 求x的前导。例：pred(‘b')='a' pred(5)=4 pred(true)=false x为字符或数字或布尔量.
succ(x) 求x的后继。例：succ(‘b')='c' succ(5)=6 succ(false)=true x为字符或数字或布尔量.
odd(x) 判断x是否为奇数。如果是值为true，反之值为false。例：odd(2)=false odd(5)=true x为整数.
power(a,n) 求a的n次方。例：power(2,3)=8 {只有在开启math库时才可以使用}a,n为整数，但是不能求高精度数.
random(n) 取0~n-1之间的随机数(不能取到n) 。n为整数.
max(x,y):返回x和y中的较大值。x,y整数.
min(x,y):返回x和y中的较小值。x,y整数.
字符串函数与过程
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
10.求字符串长度。 
例：length（‘qwert’）结果：5
标准函数
标准函数。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。
各单元的函数与过程
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个字节的长整形格式 
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版本crt单元assigncrt(f) p 将文本文件f与显示器crt建立联系 
clreol p 清除当前行光标所在位置以后的字符 
clrscr p 清除当前窗口或屏幕，光标返回到左上角 
cursoroff 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 在屏幕定义一个文本窗口其他单元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单元）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
原型：function ldexp(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中