pascal的有关问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pascal的有关问题相关的知识,希望对你有一定的参考价值。

请问pascal中的函数的名称及其用法
谢谢!最好详细一些

Pascal语言函数集(含Delphi控件属性)

abort 函数
引起放弃的意外处理
abs 函数 绝对值函数
addexitproc 函数 将一过程添加到运行时库的结束过程表中
addr 函数
返回指定对象的地址
adjustlinebreaks函数 将给定字符串的行分隔符调整为cr/lf序列
align 属性 使控件位于窗口某部分
alignment 属性 控件标签的文字位置
allocmem 函数
在堆栈上分配给定大小的块
allowgrayed 属性 允许一个灰度选择
ansicomparestr 函数 比较字符串(区分大小写)
ansicomparetext 函数 比较字符串(不区分大小写)
ansilowercase 函数 将字符转换为小写
ansiuppercase 函数 将字符转换为大写
append 函数
以附加的方式打开已有的文件
arctan 函数 余切函数
assignfile 函数 给文件变量赋一外部文件名
assigned 函数 测试函数或过程变量是否为空
autosize 属性 自动控制标签的大小
backgrounddi2001.jpg 属性 背景色
beginthread 函数
以适当的方式建立用于内存管理的线程
bevelinner 属性
控件方框的内框方式
bevelouter 属性 控件方框的外框方式
bevelwidth 属性 控件方框的外框宽度
blockread 函数 读一个或多个记录到变量中
blockwrite 函数 从变量中写一个或多个记录
borderstyle 属性 边界类型
borderwidth 属性 边界宽度
break 命令 终止for、while、repeat循环语句
brush 属性 画刷
caption 属性 标签文字的内容
changefileext 函数 改变文件的后缀
chdir 函数 改变当前目录
checked 属性 确定复选框选中状态
chr 函数 返回指定序数的字符
closefile 命令 关闭打开的文件
color 属性 标签的颜色
columns 属性 显示的列数
comparestr 函数 比较字符串(区分大小写)
concat 函数 合并字符串
continue 命令 继续for、while、repeat的下一个循环
copy 函数 返回一字符串的子串
cos 函数
余弦函数
ctl3d 属性 是否具有3d效果
cursor 属性
鼠标指针移入后的形状
date 函数 返回当前的日期
datetimetofiledate函数 将delphi的日期格式转换为dos的日期格式
datetimetostr 函数 将日期时间格式转换为字符串
datetimetostring 函数 将日期时间格式转换为字符串
datetostr 函数 将日期格式转换为字符串
dayofweek 函数 返回星期的数值
dec 函数 递减变量值
decodedate 函数 将日期格式分解为年月日
decodetime 函数 将时间格式分解为时、分、秒、毫秒
delete 函数 从字符串中删除子串
deletefile 命令 删除文件
diskfree 函数 返回剩余磁盘空间的大小
disksize 函数 返回指定磁盘的容量
dispose 函数 释放动态变量所占的空间
disposestr 函数 释放字符串在堆栈中的内存空间
ditherbackgrounddi2001.jpg?
使背景色的色彩加重或减少50%
dragcursor 属性 当鼠标按下时光标的形状
dragmode 属性 按动的作用方式
dropdowncount 属性 容许的显示数据项的数目
editmask 属性 编辑模式
enabled 属性 是否使标签呈现打开状态
encodedate 函数 将年月日合成为日期格式
encodetime 函数
将时、分、秒、毫秒合成为时间格式
endmargin 属性 末尾边缘
eof 函数 对有类型或无类型文件测试是否到文件尾
eoln 函数 返回文本文件的行结束状态

erase 命令 删除外部文件
exceptaddr 函数 返回引起当前意外的地址
exclude 函数 从集合中删除一些元素
exceptobject 函数 返回当前意外的索引
exit 命令 立即从当前的语句块中退出
exp 函数 指数函数
expandfilename 函数 返回包含绝对路径的字符串
extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义
extractfiledir 函数 返回驱动器和路径
extractfileext 函数 返回文件的后缀
extractfilename 函数 返回文件名
extractfilepath 函数 返回指定文件的路径
fileage 函数 返回文件已存在的时间
fileclose 命令 关闭指定的文件
filecreate 命令 用指定的文件名建立新文件
filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式
fileexists 函数 检查文件是否存在
filegatattr 函数 返回文件的属性
filegetdate 函数 返回文件的dos日期时间标记
fileopen 命令 用指定的存取模式打开指定的文件
filepos 函数 返回文件的当前指针位置
fileread 命令 从指定的文件读取
filesearch 命令 在目录中搜索指定的文件
fileseek 函数 改变文件的指针
filesetattr 函数 设置文件属性
filesetdate 函数 设置文件的dos日期时间标记
filesize 函数 返回当前文件的大小
filewrite 函数 对指定的文件做写操作
fillchar 函数 用指定的值填充连续字节的数
findclose 命令 终止findfirst/findnext序列
findfirst 命令 对指定的文件名及属性搜索目录
findnext 命令 返回与文件名及属性匹配的下一入口
floattodecimal 函数 将浮点数转换为十进制数
floattostrf 函数 将浮点数转换为字符串
floattostr 函数 将浮点数转换为字符串
floattotext 函数 将给定的浮点数转换为十进制数
floattotextfmt 函数 将给定的浮点数转换为十进制数
flush 函数 将缓冲区的内容刷新到输出的文本文件中
fmtloadstr 函数
从程序的资源字符串表中装载字符串
fmtstr 函数 格式化一系列的参数,其结果以参数
result 返回
font 属性 设置字体
format 函数 格式化一系列的参数并返回pascal字符串
formatbuf 函数 格式化一系列的参数
formatdatetime函数 用指定的格式来格式化日期和时间
formatfloat 函数 指定浮点数格式
frac 函数 返回参数的小数部分
freemem 函数 按给定大小释放动态变量所占的空间
getdir 返回指定驱动器的当前目录
getheapstatus 返回内存管理器的当前状态
getmem 建立一指定大小的动态变量,并将指针指向该处
getmemorymanager 返回内存管理器的入口点
glyph 函数 按钮上的图象
halt 停止程序的执行并返回到操作系统
hi 返回参数的高地址位
high 返回参数的上限值
hint 属性 提示信息
int 返回参数的整数部分
include 添加元素到集合中
insert 在字符串中插入子串
inttohex 将整型数转换为十六进制数
inttostr 将整型数转换为字符串
ioresult 返回最新的i/o操作完成状态
isvalidident 测试字符串是否为有效的标识符
items 属性 默认显示的节点
kind 属性 摆放样式
largechange 属性 最大改变值
layout 属性 图象布局
length 函数 返回字符串的动态长度
lines 属性 缺省显示内容
ln 函数
自然对数函数
lo 函数 返回参数的低地址位
loadstr 函数 从应用程序的可执行文件中装载字符资源
lowercase 函数 将给定的字符串变为小写
low 函数 返回参数的下限值
max 属性 最大值
maxlength 属性 最大长度
min 属性 最小值
mkdir 命令 建立一子目录
move 函数 从源到目标复制字节
multiselect 属性 允许同时选择几个数据项
name 属性 控件的名字
new 函数 建立新的动态变量并设置一指针变量指向它
newstr 函数 在堆栈上分配新的字符串
now 函数 返回当前的日期和时间
odd 测试参数是否为奇数
onactivate 事件 焦点移到窗体上时触发
onclick 事件 单击窗体空白区域触发
ondblclick 事件 双击窗体空白区域触发
onclosequery 事件 使用者试图关闭窗体触发
onclose 事件 窗体关闭后才触发
oncreate 事件 窗体第一次创建时触发
ondeactivate 事件 用户切换到另一应用程序触发
ondragdrop 事件 鼠标拖放操作结束时触发
ondragover 事件 有其他控件从他上面移过触发
onmousedown 事件 按下鼠标键时触发
onmouseup 事件 释放鼠标键时触发
onmousemove 事件 移动鼠标时触发
onhide 事件 隐藏窗体时触发
onkeydown 事件 按下键盘某键时触发
onkeypress 事件 按下键盘上的单个字符键时触发
onkeyup 事件 释放键盘上的某键时触发
onpaint 事件 窗体上有新部分暴露出来触发
onresize 事件 重新调整窗体大小触发
onshow 事件 在窗体实际显示之前瞬间触发
ord 返回序数类的序数
outlinestyle 属性 类型
outofmemoryerror 引起
outofmemory 意外
pageindex 属性 页索引
pages 属性 页
paramcount 函数 返回在命令行上传递给程序的参数数量
paramstr 函数 返回指定的命令行参数
pen 属性 画刷设置
pi 函数 返回圆周率pi
picture 属性 显示图象
pictureclosed 属性 设置closed位图
pictureleaf 属性 设置leaf位图
pictureminus 属性 设置minus位图
pictureopen 属性 设置open位图
pictureplus 属性 设置plus位图
pos 函数 在字符串中搜索子串
pred 函数 返回先前的参数
random 函数 返回一随机函数
randomize 函数 用一随机数初始化内置的随机数生成器
read 函数 对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中
readln 函数 执行read过程,然后跳到文件下一行
readonly 属性 只读属性
reallocmem 函数 分配一动态变量
rename 函数 重命名外部文件
renamefile 函数 对文件重命名
reset 函数 打开已有的文件
rewrite 函数 建立并打开一新的文件
rmdir 函数 删除空的子目录
round 函数 将实数值舍入为整型值
runerror 函数 停止程序的执行
scrollbars 属性 滚动条状态
seek 函数 将文件的当前指针移动到指定的组件上
seekeof 函数 返回文件的文件结束状态
seekeoln 函数 返回文件的行结束状态
selectedcolor 属性 选中颜色
setmemorymanager 函数 设置内存管理器的入口点
settextbuf 函数 给文本文件指定i/o缓冲区
shape 属性 显示的形状
showexception 函数 显示意外消息与地址
sin 函数 正弦函数
sizeof 函数 返回参数所占的字节数
smallchange 属性 最小改变值
sorted 属性 是否允许排序
sqr 函数 平方函数
sqrt 函数 平方根函数
startmargin 属性 开始边缘
state 属性 控件当前状态
str 函数 将数值转换为字符串
stralloc 函数
给以null结束的字符串分配最大长度-1的缓冲区
strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数
strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串
strcomp 函数 比较两个字符串
strcopy 函数 将一个字符串复制到另一个字符串中
strdispose 函数 释放堆栈上的字符串
strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针
strend 函数 返回指向字符串尾部的指针
stretch 属性 自动适应控件的大小
strfmt 函数 格式化一系列的参数
stricomp 函数 比较两个字符串(不区分大小写)
stringtowidechar 函数 将ansi字符串转换为unicode字符串
strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串
strlcomp 函数 以最大长度比较两个字符串
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 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中
writeln 命令 执行write过程,然后输出一行结束标志
widecharlentostring 函数 将ansi字符串转换为unicode字符串
widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量
widechartostring 函数 将unicode字符串转换为ansi字符串
widechartostrvar 函数 将unicode字符串转换为ansi字符串变量

Pascal中的常用数学函数

求绝对值函数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

Pascal函数实例

标准数据类型的含义及符号

(1)整型数的取值范围:-32768<=n<=32768;整型运算操作:+、-、*、div、mod;整型关系操作:=、<>、>=、<=,结果为布尔型;有关整型的标准函数:

整型函数

函数名 函数值 例
前接函数 pred(x) x-1 pred(4)=3
后继函数 succ(x) x+1 succ(-3)=-2
绝对值函数abs(x) |x| abs(-1)=1
平方函数sqr(x) x^2 sqr(-5)=25
奇函数 odd(x) x为奇数时值为True odd(1)=true
x为偶数时值为False odd(16)=false
字符函数chr(x) 序号为x的ASCII字符 chr(65)=\'\'a\'\'
a对应的序号65

(2)实型数的绝对值取值范围:1E-38~1E+38;计算机实数的表示标准形式往往类如1.2E-8,-1234.56E+3等形式;实数范围比整数大,但实型数的运算速度比整形数慢,另外实型数在存储时会出现小的误差;
实型的运算操作:+、-、*、/。只要有一个运算对象是实型量,其运算结果总是实型量,即其可与整型量混合计算。

实型的关系操作;=、<>、>=、<=,结果为布尔型,即两种结果:true或false。

实型函数种类:
abs(x);
sqr(x);
sin(x)正弦函数,求数学三角正弦函数的值,如sin(1.570789)=0.99999,注意X值要以弧度作单位;
cos(x)余弦函数;
arctan(x)反正切函数;
ln(x)自然对数;
exp(x)指数函数;求ex的值。
Sqrt(x)平方根函数;如sqrt(1.44)=1.2
trunc(x)截尾函数;截去实数x的小数部分,保留整数,例:trunc(-3.3)=-3;
round(x)舍入函数;将实数x四舍五入得到最接近的整数,例;round(3.3)=3,round(-8.9)=-9;

注意:实型数据没有pred和succ函数。

(3)布尔型数据的值只有两个:false和true,前者序号为0,后者序号为1。布尔类型数据最少,但用途广泛,主要用于程序设计中的流程控制和逻辑判断。

布尔型数据可作如下运算操作:
not(逻辑非),and(逻辑与),or(逻辑与)。

布尔型的标准函数:
ORD(X) 序号函数,例:ORD(FALSE)=0,ORD(TRUE)=1;
RRED(X) 前趋函数,例:PRED(TRUE)=FALSE,但X的值为TRUE时,只有前接值,没有后趋值;
SUCC(X)后继函数,例:SUCC(FALSE)=TRUE,但X的值为FALSE时,只有后继值,没有前趋值;
EOF(X)和EOLN(X)文件结束函数,行结束函数,此处不予以讨论。

(4)字符型数据取值范围:ASCⅡ码表中的一部分,包含几十个大小写英文字母与数字及数字、各种符号(含空格),注意每个字符符号均有相应的序号,而序号可视为整型数,所以字符型与整型是可以转换的。

在PASCAL程序中,用单引号括起来的一个字符表视字符型数据,如\'\'A\'\',\'\'8\'\',\'\'+\'\',\'\' \'\',分别表示字母A,数字8,字符+和空格。注意整型或实型的8与字符型的8是有本质的区别的。

字符型数据不可直接进行运算操作+、-、*、/;

字符型数据可做如下关系操作:>,<,=,<>,<=,>=,运算结果是布尔类型的值,即TRUE或FALSE。

字符性的标准函数:
ORD(x) 求X的序号,例如:ORD(\'\'C\'\')=67;ORD(\'\'0\'\')=48;ORD(\'\'A\'\')=65;
ORD(\'\'A\'\')=97;
PRED(X) 求X的前接值,例如:PRED(\'\'6\'\')=\'\'5\'\';
SUCC(X) 求X的后续值,例如:SUCC(\'\'6\'\')=\'\'7\'\'
CHR(X) 求序号为X的相应自负,是ORD的逆函数,例如:CHR(67)=\'\'C\'\';
CHR(ORD(\'\'X\'\')-1);

例如如下关系也成立;
ORD(\'\'9\'\')-ORD(\'\'1\'\')=57-49=8;
SUCC(X)=CHR(ORD(X)+1);如SUCC(\'\'B\'\')=CHR(ORD(\'\'B\'\')+1)=CHR(66+1)-C\'\';
PRED(X)=CHR(ORD(X)-1);如PRED( \'\'B\'\')=CHR(ORD(\'\'B\'\')-1)=CHR(66-1)=\'\'A\'\'。
参考技术A http://www.ycyz.com.cn/lyx/CHENGXU/NOIP/PASCALjiao%27an.htm

参考资料:http://www.ycyz.com.cn/lyx/CHENGXU/NOIP/PASCALjiao%27an.htm

参考技术B Pascal语言函数集(含Delphi控件属性)

abort 函数
引起放弃的意外处理
abs 函数 绝对值函数
addexitproc 函数 将一过程添加到运行时库的结束过程表中
addr 函数
返回指定对象的地址
adjustlinebreaks函数 将给定字符串的行分隔符调整为cr/lf序列
align 属性 使控件位于窗口某部分
alignment 属性 控件标签的文字位置
allocmem 函数
在堆栈上分配给定大小的块
allowgrayed 属性 允许一个灰度选择
ansicomparestr 函数 比较字符串(区分大小写)
ansicomparetext 函数 比较字符串(不区分大小写)
ansilowercase 函数 将字符转换为小写
ansiuppercase 函数 将字符转换为大写
append 函数
以附加的方式打开已有的文件
arctan 函数 余切函数
assignfile 函数 给文件变量赋一外部文件名
assigned 函数 测试函数或过程变量是否为空
autosize 属性 自动控制标签的大小
backgrounddi2001.jpg 属性 背景色
beginthread 函数
以适当的方式建立用于内存管理的线程
bevelinner 属性
控件方框的内框方式
bevelouter 属性 控件方框的外框方式
bevelwidth 属性 控件方框的外框宽度
blockread 函数 读一个或多个记录到变量中
blockwrite 函数 从变量中写一个或多个记录
borderstyle 属性 边界类型
borderwidth 属性 边界宽度
break 命令 终止for、while、repeat循环语句
brush 属性 画刷
caption 属性 标签文字的内容
changefileext 函数 改变文件的后缀
chdir 函数 改变当前目录
checked 属性 确定复选框选中状态
chr 函数 返回指定序数的字符
closefile 命令 关闭打开的文件
color 属性 标签的颜色
columns 属性 显示的列数
comparestr 函数 比较字符串(区分大小写)
concat 函数 合并字符串
continue 命令 继续for、while、repeat的下一个循环
copy 函数 返回一字符串的子串
cos 函数
余弦函数
ctl3d 属性 是否具有3d效果
cursor 属性
鼠标指针移入后的形状
date 函数 返回当前的日期
datetimetofiledate函数 将delphi的日期格式转换为dos的日期格式
datetimetostr 函数 将日期时间格式转换为字符串
datetimetostring 函数 将日期时间格式转换为字符串
datetostr 函数 将日期格式转换为字符串
dayofweek 函数 返回星期的数值
dec 函数 递减变量值
decodedate 函数 将日期格式分解为年月日
decodetime 函数 将时间格式分解为时、分、秒、毫秒
delete 函数 从字符串中删除子串
deletefile 命令 删除文件
diskfree 函数 返回剩余磁盘空间的大小
disksize 函数 返回指定磁盘的容量
dispose 函数 释放动态变量所占的空间
disposestr 函数 释放字符串在堆栈中的内存空间
ditherbackgrounddi2001.jpg?
使背景色的色彩加重或减少50%
dragcursor 属性 当鼠标按下时光标的形状
dragmode 属性 按动的作用方式
dropdowncount 属性 容许的显示数据项的数目
editmask 属性 编辑模式
enabled 属性 是否使标签呈现打开状态
encodedate 函数 将年月日合成为日期格式
encodetime 函数
将时、分、秒、毫秒合成为时间格式
endmargin 属性 末尾边缘
eof 函数 对有类型或无类型文件测试是否到文件尾
eoln 函数 返回文本文件的行结束状态

erase 命令 删除外部文件
exceptaddr 函数 返回引起当前意外的地址
exclude 函数 从集合中删除一些元素
exceptobject 函数 返回当前意外的索引
exit 命令 立即从当前的语句块中退出
exp 函数 指数函数
expandfilename 函数 返回包含绝对路径的字符串
extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义
extractfiledir 函数 返回驱动器和路径
extractfileext 函数 返回文件的后缀
extractfilename 函数 返回文件名
extractfilepath 函数 返回指定文件的路径
fileage 函数 返回文件已存在的时间
fileclose 命令 关闭指定的文件
filecreate 命令 用指定的文件名建立新文件
filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式
fileexists 函数 检查文件是否存在
filegatattr 函数 返回文件的属性
filegetdate 函数 返回文件的dos日期时间标记
fileopen 命令 用指定的存取模式打开指定的文件
filepos 函数 返回文件的当前指针位置
fileread 命令 从指定的文件读取
filesearch 命令 在目录中搜索指定的文件
fileseek 函数 改变文件的指针
filesetattr 函数 设置文件属性
filesetdate 函数 设置文件的dos日期时间标记
filesize 函数 返回当前文件的大小
filewrite 函数 对指定的文件做写操作
fillchar 函数 用指定的值填充连续字节的数
findclose 命令 终止findfirst/findnext序列
findfirst 命令 对指定的文件名及属性搜索目录
findnext 命令 返回与文件名及属性匹配的下一入口
floattodecimal 函数 将浮点数转换为十进制数
floattostrf 函数 将浮点数转换为字符串
floattostr 函数 将浮点数转换为字符串
floattotext 函数 将给定的浮点数转换为十进制数
floattotextfmt 函数 将给定的浮点数转换为十进制数
flush 函数 将缓冲区的内容刷新到输出的文本文件中
fmtloadstr 函数
从程序的资源字符串表中装载字符串
fmtstr 函数 格式化一系列的参数,其结果以参数
result 返回
font 属性 设置字体
format 函数 格式化一系列的参数并返回pascal字符串
formatbuf 函数 格式化一系列的参数
formatdatetime函数 用指定的格式来格式化日期和时间
formatfloat 函数 指定浮点数格式
frac 函数 返回参数的小数部分
freemem 函数 按给定大小释放动态变量所占的空间
getdir 返回指定驱动器的当前目录
getheapstatus 返回内存管理器的当前状态
getmem 建立一指定大小的动态变量,并将指针指向该处
getmemorymanager 返回内存管理器的入口点
glyph 函数 按钮上的图象
halt 停止程序的执行并返回到操作系统
hi 返回参数的高地址位
high 返回参数的上限值
hint 属性 提示信息
int 返回参数的整数部分
include 添加元素到集合中
insert 在字符串中插入子串
inttohex 将整型数转换为十六进制数
inttostr 将整型数转换为字符串
ioresult 返回最新的i/o操作完成状态
isvalidident 测试字符串是否为有效的标识符
items 属性 默认显示的节点
kind 属性 摆放样式
largechange 属性 最大改变值
layout 属性 图象布局
length 函数 返回字符串的动态长度
lines 属性 缺省显示内容
ln 函数
自然对数函数
lo 函数 返回参数的低地址位
loadstr 函数 从应用程序的可执行文件中装载字符资源
lowercase 函数 将给定的字符串变为小写
low 函数 返回参数的下限值
max 属性 最大值
maxlength 属性 最大长度
min 属性 最小值
mkdir 命令 建立一子目录
move 函数 从源到目标复制字节
multiselect 属性 允许同时选择几个数据项
name 属性 控件的名字
new 函数 建立新的动态变量并设置一指针变量指向它
newstr 函数 在堆栈上分配新的字符串
now 函数 返回当前的日期和时间
odd 测试参数是否为奇数
onactivate 事件 焦点移到窗体上时触发
onclick 事件 单击窗体空白区域触发
ondblclick 事件 双击窗体空白区域触发
onclosequery 事件 使用者试图关闭窗体触发
onclose 事件 窗体关闭后才触发
oncreate 事件 窗体第一次创建时触发
ondeactivate 事件 用户切换到另一应用程序触发
ondragdrop 事件 鼠标拖放操作结束时触发
ondragover 事件 有其他控件从他上面移过触发
onmousedown 事件 按下鼠标键时触发
onmouseup 事件 释放鼠标键时触发
onmousemove 事件 移动鼠标时触发
onhide 事件 隐藏窗体时触发
onkeydown 事件 按下键盘某键时触发
onkeypress 事件 按下键盘上的单个字符键时触发
onkeyup 事件 释放键盘上的某键时触发
onpaint 事件 窗体上有新部分暴露出来触发
onresize 事件 重新调整窗体大小触发
onshow 事件 在窗体实际显示之前瞬间触发
ord 返回序数类的序数
outlinestyle 属性 类型
outofmemoryerror 引起
outofmemory 意外
pageindex 属性 页索引
pages 属性 页
paramcount 函数 返回在命令行上传递给程序的参数数量
paramstr 函数 返回指定的命令行参数
pen 属性 画刷设置
pi 函数 返回圆周率pi
picture 属性 显示图象
pictureclosed 属性 设置closed位图
pictureleaf 属性 设置leaf位图
pictureminus 属性 设置minus位图
pictureopen 属性 设置open位图
pictureplus 属性 设置plus位图
pos 函数 在字符串中搜索子串
pred 函数 返回先前的参数
random 函数 返回一随机函数
randomize 函数 用一随机数初始化内置的随机数生成器
read 函数 对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中
readln 函数 执行read过程,然后跳到文件下一行
readonly 属性 只读属性
reallocmem 函数 分配一动态变量
rename 函数 重命名外部文件
renamefile 函数 对文件重命名
reset 函数 打开已有的文件
rewrite 函数 建立并打开一新的文件
rmdir 函数 删除空的子目录
round 函数 将实数值舍入为整型值
runerror 函数 停止程序的执行
scrollbars 属性 滚动条状态
seek 函数 将文件的当前指针移动到指定的组件上
seekeof 函数 返回文件的文件结束状态
seekeoln 函数 返回文件的行结束状态
selectedcolor 属性 选中颜色
setmemorymanager 函数 设置内存管理器的入口点
settextbuf 函数 给文本文件指定i/o缓冲区
shape 属性 显示的形状
showexception 函数 显示意外消息与地址
sin 函数 正弦函数
sizeof 函数 返回参数所占的字节数
smallchange 属性 最小改变值
sorted 属性 是否允许排序
sqr 函数 平方函数
sqrt 函数 平方根函数
startmargin 属性 开始边缘
state 属性 控件当前状态
str 函数 将数值转换为字符串
stralloc 函数
给以null结束的字符串分配最大长度-1的缓冲区
strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数
strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串
strcomp 函数 比较两个字符串
strcopy 函数 将一个字符串复制到另一个字符串中
strdispose 函数 释放堆栈上的字符串
strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针
strend 函数 返回指向字符串尾部的指针
stretch 属性 自动适应控件的大小
strfmt 函数 格式化一系列的参数
stricomp 函数 比较两个字符串(不区分大小写)
stringtowidechar 函数 将ansi字符串转换为unicode字符串
strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串
strlcomp 函数 以最大长度比较两个字符串
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 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中
writeln 命令 执行write过程,然后输出一行结束标志
widecharlentostring 函数 将ansi字符串转换为unicode字符串
widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量
widechartostring 函数 将unicode字符串转换为ansi字符串
widechartostrvar 函数 将unicode字符串转换为ansi字符串变量

Pascal中的常用数学函数

求绝对值函数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

Pascal函数实例

标准数据类型的含义及符号

(1)整型数的取值范围:-32768<=n<=32768;整型运算操作:+、-、*、div、mod;整型关系操作:=、<>、>=、<=,结果为布尔型;有关整型的标准函数:

整型函数

函数名 函数值 例
前接函数 pred(x) x-1 pred(4)=3
后继函数 succ(x) x+1 succ(-3)=-2
绝对值函数abs(x) |x| abs(-1)=1
平方函数sqr(x) x^2 sqr(-5)=25
奇函数 odd(x) x为奇数时值为True odd(1)=true
x为偶数时值为False odd(16)=false
字符函数chr(x) 序号为x的ASCII字符 chr(65)=\'\'a\'\'
a对应的序号65

(2)实型数的绝对值取值范围:1E-38~1E+38;计算机实数的表示标准形式往往类如1.2E-8,-1234.56E+3等形式;实数范围比整数大,但实型数的运算速度比整形数慢,另外实型数在存储时会出现小的误差;
实型的运算操作:+、-、*、/。只要有一个运算对象是实型量,其运算结果总是实型量,即其可与整型量混合计算。

实型的关系操作;=、<>、>=、<=,结果为布尔型,即两种结果:true或false。

实型函数种类:
abs(x);
sqr(x);
sin(x)正弦函数,求数学三角正弦函数的值,如sin(1.570789)=0.99999,注意X值要以弧度作单位;
cos(x)余弦函数;
arctan(x)反正切函数;
ln(x)自然对数;
exp(x)指数函数;求ex的值。
Sqrt(x)平方根函数;如sqrt(1.44)=1.2
trunc(x)截尾函数;截去实数x的小数部分,保留整数,例:trunc(-3.3)=-3;
round(x)舍入函数;将实数x四舍五入得到最接近的整数,例;round(3.3)=3,round(-8.9)=-9;

注意:实型数据没有pred和succ函数。

(3)布尔型数据的值只有两个:false和true,前者序号为0,后者序号为1。布尔类型数据最少,但用途广泛,主要用于程序设计中的流程控制和逻辑判断。

布尔型数据可作如下运算操作:
not(逻辑非),and(逻辑与),or(逻辑与)。

布尔型的标准函数:
ORD(X) 序号函数,例:ORD(FALSE)=0,ORD(TRUE)=1;
RRED(X) 前趋函数,例:PRED(TRUE)=FALSE,但X的值为TRUE时,只有前接值,没有后趋值;
SUCC(X)后继函数,例:SUCC(FALSE)=TRUE,但X的值为FALSE时,只有后继值,没有前趋值;
EOF(X)和EOLN(X)文件结束函数,行结束函数,此处不予以讨论。

(4)字符型数据取值范围:ASCⅡ码表中的一部分,包含几十个大小写英文字母与数字及数字、各种符号(含空格),注意每个字符符号均有相应的序号,而序号可视为整型数,所以字符型与整型是可以转换的。

在PASCAL程序中,用单引号括起来的一个字符表视字符型数据,如\'\'A\'\',\'\'8\'\',\'\'+\'\',\'\' \'\',分别表示字母A,数字8,字符+和空格。注意整型或实型的8与字符型的8是有本质的区别的。

字符型数据不可直接进行运算操作+、-、*、/;

字符型数据可做如下关系操作:>,<,=,<>,<=,>=,运算结果是布尔类型的值,即TRUE或FALSE。

字符性的标准函数:
ORD(x) 求X的序号,例如:ORD(\'\'C\'\')=67;ORD(\'\'0\'\')=48;ORD(\'\'A\'\')=65;
ORD(\'\'A\'\')=97;
PRED(X) 求X的前接值,例如:PRED(\'\'6\'\')=\'\'5\'\';
SUCC(X) 求X的后续值,例如:SUCC(\'\'6\'\')=\'\'7\'\'
CHR(X) 求序号为X的相应自负,是ORD的逆函数,例如:CHR(67)=\'\'C\'\';
CHR(ORD(\'\'X\'\')-1);

例如如下关系也成立;
ORD(\'\'9\'\')-ORD(\'\'1\'\')=57-49=8;
SUCC(X)=CHR(ORD(X)+1);如SUCC(\'\'B\'\')=CHR(ORD(\'\'B\'\')+1)=CHR(66+1)-C\'\';
PRED(X)=CHR(ORD(X)-1);如PRED( \'\'B\'\')=CHR(ORD(\'\'B\'\')-1)=CHR(66-1)=\'\'A\'\'。
very good
good
welcome
5
2

45
5
64
65464
64
4165
4654
64
6
46
46
4
63
31

416
46
4
41
31
54
64
参考技术C .选择排序

选择排序的基本思想是:

对待排序的记录序列进行n-1遍的处理,第1遍处理是将L[1..n]中最小者与L[1]交换位置,第2遍处理是将L[2..n]中最小者与L[2]交换位置,......,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。

例1:输入序列数据按非减顺序输出.

程序如下:

program xzpx;
const n=7;
var a:array[1..n] of integer;
i,j,k,t:integer;
begin
write('Enter date:');
for i:= 1 to n do read(a[i]);
writeln;
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if a[j]<a[k] then k:=j;
if k<>i then
begin t:=a[i];a[i]:=a[k];a[k]:=t;end;
end;
write('output data:');
for i:= 1 to n do write(a[i]:6);
writeln;
end.

2.插入排序
插入排序的基本思想:经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置p,原来p后的元素一一向右移动一个位置,使得L[1..i]又是排好序的序列。

例2:输入序列数据按非减顺序输出.

程序1:

program crpx;
const n=7;
var a:array[1..n] of integer;
i,j,k,t:integer;
begin
write('Enter date:');
for i:= 1 to n do read(a[i]);
writeln;
for i:=2 to n do
begin
k:=a[i];j:=i-1;
while (k<a[j]) and (j>0) do
begin a[j+1]:=a[j];j:=j-1 end;
a[j+1]:=k;
end;
write('output data:');
for i:= 1 to n do write(a[i]:6);
writeln;
end.

3.冒泡排序

冒泡排序又称交换排序其基本思想是:对待排序的记录的关键字进行两两比较,如发现两个

记录是反序的,则进行交换,直到无反序的记录为止。

例:输入序列数据按非减顺序输出。

程序1:

program mppx;
const n=7;
var a:array[1..n] of integer;
i,j,k,t:integer;
begin
write('Enter date:');
for i:= 1 to n do read(a[i]);
for i:=1 to n -1 do
for j:=n downto i+1 do
if a[j-1]<a[j] then
begin t:=a[j-1];a[j-1]:=a[j];a[j]:=t end;
write('output data:');
for i:= 1 to n do write(a[i]:6);
writeln;
end.

程序2:

program mppx;
const n=7;
var a:array[1..n] of integer;
i,j,k,t:integer;
bool:boolean;
begin
write('Enter date:');
for i:= 1 to n do read(a[i]);
i:=1;bool:=true;
while (i<n) and bool do
begin
bool:=false;
for j:=n downto i+1 do
if a[j-1]<a[j] then
begin t:=a[j-1];a[j-1]:=a[j];a[j]:=t;bool:=true end;
i:=i+1;
end;
write('output data:');
for i:= 1 to n do write(a[i]:6);
writeln;
end.

程序3:

program mppx;
const n=7;
var a:array[1..n] of integer;
i,j,k,t:integer;
begin
write('Enter date:');
for i:= 1 to n do read(a[i]);
writeln;
k:=n;
while k>0 do
begin
j:=k-1;k:=0;
for i:=1 to j do
if a[i]>a[i+1] then
begin t:=a[i];a[i]:=a[i+1];a[i+1]:=t;k:=i;end;
end;
write('output data:');
for i:= 1 to n do write(a[i]:6);
writeln;
end.

返回

4.2快速排序

快速排序的思想是:先从数据序列中选一个元素,并将序列中所有比该元素小的元素都放到它的右边或左边,再对左右两边分别用同样的方法处之直到每一个待处理的序列的长度为1, 处理结束.

例:输入一组数据小到大排序.

程序1:

program kspv;
const n=7;
type
arr=array[1..n] of integer;
var
a:arr;
i:integer;
procedure quicksort(var b:arr; s,t:integer);
var i,j,x,t1:integer;
begin
i:=s;j:=t;x:=b[i];
repeat
while (b[j]>=x) and (j>i) do j:=j-1;
if j>i then begin t1:=b[i]; b[i]:=b[j];b[j]:=t1;end;
while (b[i]<=x) and (i<j) do i:=i+1;
if i<j then begin t1:=b[j];b[j]:=b[i];b[i]:=t1; end
until i=j;
b[i]:=x;
i:=i+1;j:=j-1;
if s<j then quicksort(b,s,j);
if i<t then quicksort(b,i,t);
end;
begin
write('input data:');
for i:=1 to n do read(a[i]);
writeln;
quicksort(a,1,n);
write('output data:');
for i:=1 to n do write(a[i]:6);
writeln;
end.

程序2:

program kspv;
const n=7;
type
arr=array[1..n] of integer;
var
a:arr;
i:integer;
procedure quicksort(var b:arr; s,t:integer);
var i,j,x:integer;
begin
i:=s;j:=t;x:=b[i];
repeat
while (b[j]>=x) and (j>i) do j:=j-1;
if j>i then begin b[i]:=b[j];i:=i+1;end;
while (b[i]<=x) and (i<j) do i:=i+1;
if i<j then begin b[j]:=b[i];j:=j-1; end
until i=j;
b[i]:=x;
i:=i+1;j:=j-1;
if s<j then quicksort(b,s,j);
if i<t then quicksort(b,i,t);
end;
begin
write('input data:');
for i:=1 to n do read(a[i]);
writeln;
quicksort(a,1,n);
write('output data:');
for i:=1 to n do write(a[i]:6);
writeln;
end.

返回

4.3希尔排序

基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序或冒泡排序。

序列分割方法:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序或冒泡排序,排序就完成。增量序列一般采用:d1=n div 2 ,di=di-1 div 2 ;i=2,3,4.....其中n为待排序序列的长度。

程序1:(子序列是插入排序)

program xepx;
const n=7;
type
arr=array[1..n] of integer;
var
a:arr;
i,j,t,d:integer;
bool:boolean;
begin
write('input data:');
for i:=1 to n do read(a[i]);
writeln;
d:=n;
while d>1 do
begin
d:=d div 2;
for j:=d+1 to n do
begin
t:=a[j];i:=j-d;
while (i>0) and (a[i]>t) do
begin a[i+d]:=a[i];i:=i-d;end;
a[i+d]:=t;
end;
end;
write('output data:');
for i:=1 to n do write(a[i]:6);
writeln;
end.

程序2:(子序列是冒泡排序)

program xepx;
const n=7;
type
arr=array[1..n] of integer;
var
a:arr;
i,temp,d:integer;
bool:boolean;
begin
write('input data:');
for i:=1 to n do read(a[i]);
writeln;
d:=n
while d>1 do
begin
d:=d div 2;
repeat
bool:=true;
for i:=1 to n-d do
if a[i]>a[i+d] then
begin temp:=a[i];a[i]:=a[i+d];a[i+d]:=temp; bool:=false end;
until bool;
end;
write('output data:');
for i:=1 to n do write(a[i]:6);
writeln;
end.

返回

4.4 堆排序与二叉树排序

1.堆排序

堆:设有数据元素的集合(R1,R2,R3,...Rn)它们是一棵顺序二叉树的结点且有

Ri<=R2i 和Ri<=R2i+1(或>=)

堆的性质:堆的根结点上的元素是堆中的最小元素,且堆的每一条路径上的元素都是有序的。

堆排序的思想是:

1)建初始堆(将结点[n/2],[ n/2]-1,...3,2,1分别调成堆)

2)当未排序完时

输出堆顶元素,删除堆顶元素,将剩余的元素重新建堆。

程序如下:

program duipx;
const n=8;
type arr=array[1..n] of integer;
var a:arr;i:integer;
procedure sift(var a:arr;l,m:integer);
var i,j, t:integer;
begin
i:=l;j:=2*i;t:=a[i];
while j<=m do
begin
if (j<m) and (a[j]>a[j+1]) then j:=j+1;
if t>a[j] then
begin a[i]:=a[j];i:=j;j:=2*i; end
else exit;
a[i]:=t;
end;

end;
begin
for i:=1 to n do read(a[i]);
for i:=(n div 2) downto 1 do
sift(a,i,n);
for i:=n downto 2 do
begin
write(a[1]:4);
a[1]:=a[i];
sift(a,1,i-1);
end;
writeln(a[1]:4);
end.

2.二叉树排序

排序二叉树:每一个参加排列的数据对应二叉树的一个结点,且任一结点如果有左(右)子树,则左(右)子树各结点的数据必须小(大)于该结点的数据。中序遍历排序二叉树即得排序结果。程序如下:

program pxtree;
const
a:array[1..8] of integer=(10,18,3,8,12,2,7,3);
type point=^nod;
nod=record
w:integer;
right,left:point ;
end;
var root,first:point;k:boolean;i:integer;
procedure hyt(d:integer;var p:point);
begin
if p=nil then
begin
new(p);
with p^ do begin w:=d;right:=nil;left:=nil end;
if k then begin root:=p; k:=false end;
end
else with p^ do if d>=w then hyt(d,right) else hyt(d,left);
end;
procedure hyt1(p:point);
begin
with p^ do
begin
if left<>nil then hyt1(left);
write(w:4);
if right<>nil then hyt1(right);
end
end;
begin
first:=nil;k:=true;
for i:=1 to 8 do hyt(a[i],first);
hyt1(root);writeln;
end.

返回

4.5 归并排序

归并就是将多个有序的数列合成一个有序的数列。将两个有序序列合并为一个有序序列叫二路归并(merge).归并排序就是n长度为1的子序列,两两归并最后变为有序的序列。

1.二路归并

例1:将有序表L1=(1,5,7),L2=(2,3,4,6,8,9,10)合并一个有序表 L.

program gb;

const m=3;n=7;

type arrl1=array[1..m] of integer;

arrl2=array[1..n] of integer;

arrl=array[1..m+n] of integer;

var a:arrl1;

b:arrl2;

c:arrl;

i,j,k,r:integer;

begin

write('Enter l1(sorted):');

for i:=1 to m do read(a[i]);

write('Enter l2(sorted):');

for i:=1 to n do read(b[i]);

i:=1;j:=1;k:=0;

while (i<=m) and (j<=n) do

begin

k:=k+1;

if a[i]<=b[j] then begin c[k]:=a[i];i:=i+1; end

else begin c[k]:=b[j];j:=j+1;end;

end;

if i<=m then for r:=i to m do c[m+r]:=a[r];

if j<=n then for r:=j to n do c[n+r]:=b[r];

writeln('Output data:');

for i:=1 to m+n do write(c[i]:5);

writeln;

end.

2.归并排序

program gbpx;
const maxn=7;
type arr=array[1..maxn] of integer;
var a,b,c:arr;
i:integer;
procedure merge(r:arr;l,m,n:integer;var r2:arr);
var i,j,k,p:integer;
begin
i:=l;j:=m+1;k:=l-1;
while (i<=m)and (j<=n) do
begin
k:=k+1;
if r[i]<=r[j] then begin r2[k]:=r[i];i:=i+1 end
else begin r2[k]:=r[j];j:=j+1 end
end;
if i<=m then
for p:=i to m do begin k:=k+1;r2[k]:=r[p] end;
if j<=n then
for p:=j to n do begin k:=k+1;r2[k]:=r[p] end;
end;
procedure mergesort( var r,r1:arr;s,t:integer);
var k:integer; c:arr;
begin
if s=t then r1[s]:=r[s] else
begin
k:=(s+t) div 2;
mergesort(r,c,s,k);
mergesort(r,c,k+1,t);
merge(c,s,k,t,r1)
end;
end;
begin
write('Enter data:');
for i:= 1 to maxn do
read(a[i]);
mergesort(a,b,1,maxn);
for i:=1 to maxn do
write(b[i]:9);
writeln;
end.

返回

4.6 线形排序

以上我们讨论的算法均是基于比较的排序算法,在排序算法中有基于数字本身的算法:计数、桶、基数排序。

1.计数排序

基本思想是对于序列中的每一元素x,确定序列中小于x的元素的个数。

例:n个整数序列且每个值在[1,m],排序之。

program jspx;
const m=6;n=8;
var i,j:integer;
a,b:array[1..n] of integer;
c:array[1..m] of integer;
begin
writeln('Enter data:');
for i:=1 to n do read(a[i]);
for i:=1 to m do c[i]:=0;
for i:=1 to n do c[a[i]]:=c[a[i]]+1;
for i:=2 to m do c[i]:=c[i]+c[i-1];
for i:=n downto 1 do
begin
b[c[a[i]]]:=a[i];
c[a[i]]:=c[a[i]]-1;
end;
writeln('Sorted data:');
for i:= 1 to n do
write(b[i]:6);
end.

2.桶排序

桶排序的思想是若待排序的记录的关键字在一个明显有限范围内(整型)时,可设计有限个有序桶,每个桶装入一个值,顺序输出各桶的值,将得到有序的序列。

例:输入n个0到100之间的整数,由小到大排序输出。

program tpx;
const n=7;
var b:array[0..100] of integer;
k:0..100;
i:integer;
begin
write('Enter date:(0-100)');
for i:=0 to 100 do b[i]:=0;
for i:= 1 to n do
begin
read(k);
b[k]:=b[k]+1;
end;
writeln('Output data:');
for i:=0 to 100 do
while b[i]>0 do begin write(i:6);b[i]:=b[i]-1 end;
writeln;
end.

3.基数排序

基本思想是对n个元素依次按k,k-1,...1位上的数字进行桶排序。

program jspx;
const n=8;
type link=^node;
node=record
data:integer;
next:link;
end;
var i,j,l,m,k:integer;
a:array[1..n] of integer;
s:string;
q,head:array[0..9] of link;
p,p1:link;
begin
writeln('Enter data:');
for i:=1 to n do read(a[i]);
for i:=5 downto 1 do
begin
for j:=0 to 9 do
begin
new(head[j]);
head[j]^.next:=nil;
q[j]:=head[j]
end;
for j:=1 to n do
begin
str(a[j],s);
for k:=1 to 5-length(s) do
s:='0'+ s;
m:=ord(s[i])-48;
new(p);
p^.data:=a[j];
p^.next:=nil;
q[m]^.next:=p;
q[m]:=p;
end;
l:=0;
for j:=0 to 9 do
begin
p:=head[j];
while p^.next<>nil do
begin
l:=l+1;p1:=p;p:=p^.next;dispose(p1);a[l]:=p^.data;
end;
end;
end;
writeln('Sorted data:');
for i:= 1 to n do
write(a[i]:6);
end.

4.7各种排序算法的比较

1.稳定性比较

插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的

选择排序、希尔排序、快速排序、堆排序是不稳定的

2.时间复杂性比较

插入排序、冒泡排序、选择排序的时间复杂性为O(n2)

其它非线形排序的时间复杂性为O(nlog2n)

线形排序的时间复杂性为O(n);

3.辅助空间的比较

线形排序、二路归并排序的辅助空间为O(n),其它排序的辅助空间为O(1);

4.其它比较

插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。

反而在这种情况下,快速排序反而慢了。

当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。

若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。

当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。

当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下。

宜用归并排序。

当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序

求素数:
程序如下
program lx;
label 10;
var
a;array[1..200]of integer;
x, y , n:integer;
begin
for x:=2 to 200 do begin
for y:=2 to x-1 do
if x mod y =0 then goto 10;
n:=n+1;
a[n]:=x;
10:
end;
end.

delphi中的各种文件类型介绍

1.DPR: Delphi Project文件,包含了Pascal代码。应用系统的工程文件
2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元。
3.DFM:Delphi Form File,描述窗体或数据模块及其组件属性的二进制文件。窗体界面文件, 同PAS文件同名,而
  且一一对应, 定义了窗体属性和构件的属性,
4.BPG Borland Project Group 工程项目包, 多个工程文件DPR的集合
5().DOF Delphi Option File 选项文件, 包括编译信息等, 是一个文本文件件,可以看看
6().CFG Project Configuration File 编译器可读的配置文件
7().DSK Desktop Setting File 保存工程文件的桌面摆布情况, 下次打开时可以恢复上次保存的桌面状态
8().DSM 集成开发环境IDE的临时保存文件, 有时IDE总出错, 可以将这个文件删掉, 系统会重新生成
9.RES Resource File Windows 的资源文件, 可以定义光标, 位图, 图标资源, 可以使用ImageEditor编辑
  (博客中有相关例子)
10.DCU Delphi Compile Unit 编译后的单元文件, 程序连接时需要它
11.DLL Dymanic-link libraries Windows 动态链接库
12.EXE Executable File 编译生成的可执行文件
13.DPK Delphi Packge Source包文件的源代码
14.BPL Borland Package library 包, 是一种特殊的DLL文件, 用于代码重用和减少可执行文件的长度
15().~*   : Delphi生成的备份文件,在版本控制库//?及发布代码中不应该出现这些文件,如果修改了某个文件却因某些原因没有保存的话,可以尝试使用这些文件恢复。
16.bmp/wmf/emf/gif/jpg/pcx/png/tiff/ico/cur/ani :图形/图标/光标文件,这些文件如果使用到了也需要进源代码库。
17().bpg :工程组文件(Borland Project Group File),文本格式,需要进源代码库;bpg文件其实是makefile格式//?makefile格式,要编译bpg文件可以使用make工具//?,语法如下:
make -f %FileName%
18.bpl :运行时刻包文件,是一种Borland定义的特殊格式的dll,简单的说与普通dll的差别就是bpl有一些共用的部分只使用了同一引用,而dll使用了多份拷贝,因此才会使得bpl与dll的某些方面的差别很显
此类型文件是否进源代码库需要根据其用途来判断,一般情况下源代码编译出来的bpl无需进库,但是如果此bpl是IDE的扩充插件,可能也需要进库,此外如果第三方组件没有提供源码仅提供了此文件,则此文件也需要进源代码库。
bpr/bpf/bpj/h/cpp ;BCB(Borland C++ Builder)相关文件,如果工程使用了BCB,则需要进源代码库,但在我们的工程中应该不需要这些文件。
19().cab :ActiveX控件包文件,如果是工程使用到的第三方控件,则需要进源代码库。
20.cfg :编译工程时的配置文件。dcc32.exe 程序编译工程时使用cfg文件的顺序为:首先使用dcc32.exe同目录下的dcc32.cfg文件,然后使用待编译文件同目录下的dcc32.cfg 文件,最后使用待编译文件同目录下的同名的cfg文件,为了保证在不同的机器环境下编译的结果的同一性,此文件需要进源代码库。
21().dci :Code Insight文件,保存了代码模板(Code template),一般情况下无需进源代码库。
22().dcp :包含了包(Package)的头信息和包中单元文件的dcu/dpu文件的二进制映像文件,dcp与bpl的差别可以用dcu与dll/exe的差别来理解,delphi编译使用到包的文件时需要此包的dcp文件,此文件可由源代码生成,一般无需进源代码库。
23().dct :Component Template文件,如果工程使用到了component template则需要进源代码库。
24.dcu/dpu :单元(unit)对应的二进制映像文件,dpu是Linux系统下的dcu格式。dcu/dpu是pas的二进制的中间格式,相应的dfm/xfm文件没有链接进dcu/dpu中。一般情况下无需进源代码库,除非是在第三方库以dcu形式提供时。
25().ddp/dti :Diagram文件。Delphi 7提供了Diagram功能,可以在单元文件中使用图形化的描述,此类型文件对编译源代码无影响,但是如果使用了diagram功能,则此文件对理解单元可能会比较有用,在我们的工程中应该无需将这些文件进源代码库,即使有这些文件也可能是因为切换到diagram页卡生成的。
26.dfm/xfm :窗体文件。xfm是交叉平台源代码使用的窗体文件。dfm/xfm有两种格式,一种是二进制格式,一种是文本格式,为了便于版本控制,需要使用文本格式,文本格式也存在多种格式,Delphi7的文本格式的dfm/xfm保存如中文等使用的是unicode编码值,而Delphi7之前的使用的直接就是ansi,Delphi7支持打开原有格式的dfm文件。需要进源代码库。
27.dll/so :动态链接库文件。so为Linux下的动态链接库文件。如果是编译出来的dll/so文件,无须进源代码库,如果是工程使用到的第三方库则需要进源代码库。
28().dmt :Menu Template文件,一般无需进源代码库。
29.dof/kof :Delphi编译工程时的选项文件(Project options file),kof是Linux平台下的dof文件。此文件包含了Delphi的Project->Options的信息,也包含了编译配置的信息,此外还包含了目录,链接,版本,条件开关等等。一般情况下dof是同名cfg文件的超集(dof与cfg的格式不一样)。文本格式,为了保证在不同的机器环境下编译的结果的同一性,此文件需要进源代码库。
30.dpc/pce :包集合文件和包集合编辑文件。Delphi支持将多个包(Package)并入到一个文件中,使用此格式文件可以便于分发多个包给其他开发者,使用此格式可以很简便的配置IDE环境。此文件需要进源代码库。
31.dpk/dpkw :包文件。dpkw是交叉平台下的dpk文件。包文件列出了包所包含的文件和包所依赖的包,以及包描述信息,包编译选项等。文本格式,需要进源代码库。
32.dpr :工程文件。文本格式,需要进源代码库。
33.drc :包资源文件,提供如组件图标等包所需的资源。二进制格式,如果是包使用到的dcr则需要进源代码库。
34().drl/dro :Repository文件。Delphi提供了repository功能,可以使开发人员共享开发模板,合理使用repository功能可以加快开发速度,开发组配置好共享的repository就可以使用repository了。如未使用到repository功能则无需进源代码库。
35.dsk :Desktop文件。保存了IDE的布局(也可能包含浏览记号,视乎IDE的设定),为防止开发人员的IDE布局设置。文本格式,此文件不应进源代码库。
36.exe :可执行文件。如非第三方组件,无需进源代码库。
37.hlp/cnt/toc/chm: 帮助文件。需进源代码库。
38().idl :接口定义语言文件。IDL定义了接口,COM和CORBA开发经常会使用到IDL。文本格式,需进源代码库。
39.inc: Include文件。与C++的include不一样。可嵌入Delphi的源代码文件中,Delphi编译是遇$I到include文件时相当于Copy一份inc文件的内容到当前位置,一般用于提取一些重复的每个单元都需要定义的内容,或用于定义通用的编译器指示字条件,甚至可以使用Delphi的inc机制实现C++的范型(可惜不能支持操作符重载)。文本格式,需进源代码库。
40().inf/reg :注册文件。文本格式,需进源代码库。
41.ini :初始化配置文件。如果是做为初始设定的配置文件,则需要进源代码库,如果是运行期生成的配置文件,则无需进源代码库。
42.int :单元的接口部分定义文件。将Delphi的单元的Interface部分提取出来的文件,此类文件类似C++的头文件,但是仅供开发人员参考单元接口部分定义,不参与编译。文本格式,无需进源代码库。
43.()lib :导入库文件。供C++使用的dll的导入库文件,Delphi无需lib文件。如果需要给C++开发者使用某些dll,则需要提供相应的lib文件。可进源代码库。
44.log :日志文件。文本格式,无需进源代码库。
45().map :可执行文件布局文件。文本格式,无须进源代码库。
46.mdb/dbf/gd*/db/mdx/dbt/ndx/mb/val/qbe/px/x*/y* :桌面数据库文件。依据工程决定是否需要进源代码库。
47.obj/o :目标文件。二进制格式,如为源代码$L链接的目标文件,需要进源代码库。
48.ocx :Activex控件文件。二进制格式,如为源代码使用到的第三方控件,则需要进源代码库。
49.pas :单元文件。文本格式,需要进源代码库。
50.rc :资源脚本文件。经使用brcc32.exe编译后成为res文件。文本格式,需要进源代码库。
51.res :资源文件。包含了程序的主图标,字符串表,图标,图形等等。二进制格式,需要进源代码库。
52().rps/dfn :多国语言翻译文件。DelphiI的DE提供了一种多国语言支持机制。dfn为二进制格式,如果工程采用Delphi提供的此机制国际化,则需要将这些文件进源代码库。
53().rsm: 调试符号信息文件。一些额外的调试工具需要调试符号信息,如果要支持这些工具,则需要提供rsm文件。二进制格式,无需进源代码库。
54().sql/tql :SQL语句和SQL模板文件。二进制格式,需进源代码库。
55().stat :工程统计信息文件。文本格式,无需进源代码库。
56().tds :外部调试符号表文件。无需进源代码库。
57().todo :Todo列表文件。无需进源代码库。
58.upg :升级信息文件。无需进源代码
 
59.ddp:文件就是Delphi Diagram Portfolio简写,是用来保存Code Editor中的Diagram//?信息的。一般一个项目要考个别只需要 dpr,dfm,pas文件即可,如果有cfg,res也一块考(后两个文件很少用到)
60.dof: 为项目选项文件(一般没用)。

参考:http://www.cnblogs.com/key-ok/p/4367800.html

 

以上是关于pascal的有关问题的主要内容,如果未能解决你的问题,请参考以下文章

pascal exitcode=255 是啥错误?

[leetcode-118-Pascal's Triangle]

pascal 齐王点兵的故事

delphi文件类型

pascal算法问题

delphi中的各类文件类型(转)