1.算术函数
函数标识符 自变量类型 意义 结果类型
abs 整型、实型 绝对值 同自变量
abs(-7.49)=7.49
arctan 整型、实型 反正切 实型
arctan(0)=0.0
cos 整型、实型 余弦 实型
cos(pi)=-1.0
sin 整型、实型 余弦 实型
sin(pi)= 0
exp 整型、实型 指数 实型
frac 整型、实型 小数部分 实型
frac(-3.71)=-0.71
int 整型、实型 整数部分 实型
int(-3.71)=-3.0
ln 整型、实型 自然对数 实型
pi 无自变量 圆周率 实型
sqr 整型、实型 平方 同自变量
sqr(4)=16
sqrt 整型、实型 平方根 实型
sqrt(4)=2
2.标量函数
函数标识符 自变量类型 意义 结果类型
odd 整型 判断奇数 布尔型
odd(1000)=false
odd(3)=true
pred 离散类型 求前趋 同自变量
pred(2000)=1999
pred('x')='w'
succ 离散类型 求后继 同自变量
succ(2000)=2001
succ('x')='y'3.
转换函数
函数标识符 自变量类型 意义 结果类型
chr byte型 自量对应的字符 字符型
ord 离散类型 自量对应的序号 longint
round 实型 四舍五入 longint
trunc 实型 截断取整 longint
杂类函数
函数标识符 自变量类型 意义 结果类型
random 无自变量 [0,1)之间的随机实数 real
random word [0,自变量)之间的随机整数 wird
randomize 无自变量 用一随机值初始化内部随机数产生器 longint
upcase 字符型 使小写英文字母变为大写 字符型
div整除整型整型
mod取余整型整型
<> 不等于 简单类型 布尔型
算术表达式中各个运算符的次序为: ( )-->函数-->*,/,div,mod-->+,1
(1)字符串函数
函数名 自变量及类型 意义 结果类型
concat s1[,s2……,sN]:string 连接字符串序列 string
copy s:string,index,count:integer 返回串s的一个子串 string
length s:string 返回串s的动态长度 integer
pos substr,s:string 返回子串substr在串s中的起始位置 byte
(1)字符串过程
过程名 自变量及类型 意义
delete var s,source:string;index,count:integer 从串S中删除一个子串
insert var s:string;index:integer; 在串S中插入一个指定子串
str var x[:width[:Decimals]];s:string 把一数值转换成相应的字符串表示
val var s:string;code:integer 把一字符串转换成相应的数值
1.值参数
形式参数表中前面没有var,后有类型的参数。它类似过程和函数的局部变量,仅为过程和函数的执行提供初值而不影响调用时实际参数的值。在调用过程或应用函数时,值参数所对应的实际参数必须是表达式,而且它的值不能使文件类型或包括文件类型的值。实参必须和形参赋值相容。
2.变量参数
形式参数表中前面有var后由类型的参数。如果需要子程序向调用程序返回值时,应采用变量参数。变量参数要求它的实参是和它同一类型的变量。因为在子程序执行时,遇到对相应形参的引用式定值,就是对相应实参的引用式定值,即对形参的任何操作就是对实参本身的操作。
3.无类型变量参数
形式参数表中前面有var而后面没有类型的参数。形参是无类型变量,对应的实参允许为任意类型的变量,但要在子程序中设置的强制类型转换(类型名(无类型变量参数名)),将无类型变量参数改变为相应类型。
4.子程序参数
用过程首部或函数首部作为形式参数。
其中nil是Turbo Pascal保留字,表示“空”,相当于C里面的null
类型文件
按数据的二进制代码形式存放时的文件称为类型文件。如果再按照组成类型文件的元素数据结构分,又可以分为有类型文件和无类型文件。其定义为:
type 类型名=file of 基类型;{有类型文件}
类型名=file; {无类型文件}
例如:var f:file of integer;
说明f为名的变量对应文件将用于存放整数。
var g:file;
说明g为名的变量对应文件的数据无任何规定。
Turbo Pascal有关类型文件的函数和过程
(1)assign过程
形式:assign(f,str);
功能:将文件名字符串str赋给文件变量f,程序对文件变量f的操作代替对文件str的操作。
(2)rewrite过程
形式:rewrite(f);
功能:建立并打开一个新的允许写磁盘文件,其文件名必须先由assign过程赋给变量f。这时,指向文件元素的指针指向第一个元素,rewrite过程所建立的文件为空文件。
(3)reset过程
形式:reset(f);
功能:打开一个已经存在的磁盘文件,其文件名必须先由assign过程赋给变量f,该文件只能读,指向文件元素的指针指向第一个元素。
(4)read过程
形式:read(f,var表);
功能:从磁盘文件f中,将数据依次读到var表表示的各个变量中。
(5)write过程
形式:write(f,var表);
功能:将var表所表示的各个变量的值依次写到磁盘文件f上。
(6)close过程
形式:close(f);
功能:关闭和f关联的磁盘文件,在写操作时自动产生一个文件结束标志。
(7)seek过程
形式:seek(f,n);
功能:把文件指针移到f指明文件的第n个元素。
(8)eof函数
形式:eof(f);
功能:若文件指向文件尾,则返回true,否则返回false。
对有类型文件的写操作步骤为:
assign(f,str);
rewrite(f);
write(f,var表);
close(f);
对有类型文件的读操作步骤为:
assign(f,str);
reset(f);
read(f,var表);
close(f);
例:在磁盘上建立一个1~50的平方数的数据文件zhoufei.dat。要求以一个数,这个数的平方数的格式写入。
program zhoufei;
var f:file of integer;
i:integer;
begin
assign(f,'zhoufei.dat');
rewrite(f);
for i:=1 to 50 do write(f,i,sqr(i));
close(f)
end.
文本文件
文本文件的内容有ASCII字符集中的字符组成,因此文本文件也称ASCII码文件,它可以用DOS中的type命令列出内容。文本文件具体是由一系列行组成,每一行可以包括0个或多个字符型成分,并以也行结束符结尾,文本文件类型TXT和类型文件file of char区别在于后者不包含行结束符。
文本文件和类型文件在读写上的差别在于前者只能按次序顺序读写,而后者可以不按照次序读写。适用文本文件的函数和过程除了用于类型文件操作的过程和函数外主要还有:
(1)readln过程
形式:readln(f,var表);或readln(f);
功能:从磁盘文件f中,将数据依次读到var表表示的各变量中(其中readln(f)只读数据),并将文件指针移到行结束符后,就是下一行开头。
(2)writeln过程
形式:writeln(f,var表)或writeln(f);
功能:将var表所表示的各个变量的值依次写到磁盘文件f上去(writeln(f)不写值),然后再写一个行结束符。
(3)append过程
形式:append(f);
功能:打开一个已经存在的磁盘文件,其文件名必须和assign过程中的变量名f相对应,该文件只能写,此时文件指针指向文件尾。
(4)eoln函数
形式:eoln(f);
功能:若文件指针指向行结束符或文件结束符,则返回true,否则返回false。
对文本文件的写操作步骤:
assign(f,str);
rewrite(f); 或append(f);
write(f,var表);或writeln(f);
close(f);
对文本文件的读操作步骤:
assign(f,str);
reset(f);
readln(f,var表);或readln(f);
close(f);
例:随机产生30个随机整数存放于文本文件zhoufei.txt 中
program zhoufei;
const n=30;
var ra:text;
i:integer;
begin
randomize;
assign(ra,'zhoufei,txt');
rewrite(ra);
for i:=1 to n do writeln(ra,random(100));
close(ra)
end.