[帕斯卡尔 – TUT] 帖子 8: 单元

在程序的子程序,使得编程对象以及更多创作. 然而, 本图显示了只适用于计划,单独持有它们, 您要使用该程序的另一个程序都需要重写它们, 所以需要时间. 为了弥补, 常用的子程序被分组到一个独立的模块中并预编译在磁盘上. 后, 任何程序都可以重用这些子程序而不必重写它们. 这样的模块称为 UNIT 。.

UNIT有两种类型:Pascal的标准Unit和程序员自己创建的Unit.

帕斯卡

1. 一些标准单位

该. 一些标准单位

– 单位 CRT: 由常量组成, 类型, 变量, 颚, 与文本屏幕模式相关的程序 (文本模式).
– 单位打印机: 由常量组成, 类型, 变量, 颚, 通过 LPT1. 端口与打印模式相关的程序 (连接器 DB25).
– 单位图表: 由常量组成, 类型, 变量, 颚, 与图形模式相关的程序.
– 第二单元: 由常量组成, 类型, 变量, 颚, 涉及直接处理寄存器的程序, 中断和调用 MS-DOS 函数.
– 单元叠加: 由常量组成, 类型, 变量, 颚, 将要访问的可执行代码放在磁盘上所涉及的过程 (负载/标签) 而不是在运行程序时将所有时间都放在内存中.

当我们要使用一个Unit时,我们必须在程序的开头声明那个Unit名称 (减去 Pascal 的默认单位,例如 SYSTEM . 单位) 使用语法”

USES <tên unit>;

B. Unit CRT中一些常用的函数和程序
– ClrScr: 清除屏幕的过程.
– 转到XY(X, 和: 字节): 将光标移动到列位置x, 在屏幕上Y进线. 常见, 屏幕文本模式(Co80) 有 25 当前 (从线 1 以行 25) 和 80 职位 (职位 1 柱 80). 所以在屏幕的左上角的坐标是 (1, 1), 坐标右下角被 (80, 25) .
– 延迟(女士: 字): 以毫秒为单位的程序毫秒的延迟方案.
– 声音(赫兹: 字): 程序发出的声音通过扬声器内 (内置扬声器) Hz频率.
– NOSOUND: 程序停止声音.
– 的keyPressed: 如果一个键被按下火腿结果为TRUE.
– Readkey: 读从键盘缓冲器键.
– 文字背景(颜色: 字节): 程序用于选择背景颜色. 您可以通过将此命令放在 ClrScr 之前来设置全屏的背景颜色。.
– 文字颜色(颜色: 字节): 为字母选择颜色的过程.
这是 Pascal 定义的颜色常量列表.
• 黑色 = 0 黑色的.
• 蓝色 = 1 蓝色的.
• 绿色 = 2 绿色的.
• 青色 = 3 笛蛋绿.
• 红色 = 4 红色的.
• 洋红色 = 5 紫莲花.
• 棕色 = 6 棕色的.
• 浅灰色 = 7 浅灰.
• 深灰色 = 8 深灰色.
• 淡蓝色 = 9 亮蓝色.
• 浅绿色 = 10 亮绿色.
• 浅青色 = 11 明亮的八哥蛋绿色.
• 浅红色 = 12 亮红.
• 淡洋红色 = 13 明亮的莲花瓣.
• 黄色 = 14 黄色的.
• 白色 = 15 白色的.
(8 从 Black 到 LightGray 的第一个常量适用于文本颜色和背景颜色. 其余常量仅适用于字体颜色).
肤色 + 眨: 闪烁的字母.

2. 建筑单位

该. 步 1
创建一个具有 .PAS 扩展名和结构的 Pascal 文件,如下所示, 注意单位名称必须与文件名匹配. 单位样本表格 (文件名为 MyUnit.pas):

Unit MyUnit ;
Interface
Khai báo Uses
Khai báo Const, Type, Var
Khai báo Procedure, Function
Implementation
Khai báo Uses
Khai báo Const, Type, Var
Cài đặt các Procedure, Function
Begin
	Các lệnh khởi tạo – chỉ xuất hiện khi có từ khoá Begin
End;

UNIT <Tên Unit>; {Tên unit bắt buộc phải trùng với tên tập tin}
INTERFACE {Không có dấu ; ở đây}
{Đây là phần giao diện của Unit. Trong phần này chúng ta sẽ khai báo các unit
đã có mà các unit này sử dụng, khai báo các hằng, kiểu, biến mà các chương
trình khác sẽ sử dụng. Khai báo các hàm, thủ tục mà chương trình khác sẽ gọi
tới, chỉ khai báo tên chương trình con, các tham số, kiểu kết quả. Những hàm,
thủ tục thiết lập ở phần sau mà không khai báo trong phần này thì các chương
trình khác không gọi tới được.}
IMPLEMENTATION {Không có dấu ; ở đây}
{Đây là phần hiện thực các hàm, thủ tục đã khai báo trong phần Interface. Trong
phần này nếu có các chương trình con được dùng riêng bên trong Unit mà không
khai báo trong phần Interface, các chương trình con này sẽ không thể truy cập
được bởi người dùng Unit.}

BEGIN
{Phần chứa các câu lệnh sẽ được thực thi ngay trước khi câu lệnh đầu tiên của
chương trình gọi Unit này được thực hiện. Phần này không bắt buộc phải có, tuy
nhiên trong trường hợp đó vẫn phải giữ lại từ khóa "END." dưới đây.}
END.

B. 步 2
单元不是为了运行而设计的,而是为了编译和上盘,所以我们不能按CTRL+F9而是按照下面的顺序:
– 选择编译菜单 (一切 + Ç).
– 继续选择 Destination 将其更改为 Disk. 注意: 目标磁盘是在磁盘上创建单元, 内存是在RAM内存上创建单元.
– 再次选择Complie菜单,再次选择Complie功能 (一切 + F9). 现在磁盘上出现一个文件,是我们创建的单元的名称,扩展名为 TPU. 从这里开始, 我们可以通过在上面提到的USES语句中调用它来使用这个单元.

例:

Unit MyUnit; {Trùng tên với tập tin MyUnit.pas}
INTERFACE
Function HamMu(a: Real; n: Integer): Real;
Function GiaiThua(n: Integer): Longint;
Function USCLN(X,Y:Word):word;
IMPLEMENTATION
	Function HamMu(a: Real; n: Integer): Real;
	Var tam: Real;
	i: Integer;
	Begin
		tam := 1;
		For i:=1 to n do
			tam := tam * a;
		HamMu := tam;
	End;

	Function GiaiThua(n: Integer): Longint;
	Var tam: Longint;
	i: Integer;
	Begin
		tam := 1;
		For i:=1 to n do
			tam := tam * i;
		GiaiThua := tam;
	End;

	Procedure HoanChuyen(var x,y:word);
	Var Tam:word;
	begin
		Tam:=x;
		x:=y;
		y:=Tam;
	End;

	Function USCLN(x,y:Word):word;
	begin
		While (y<>0) DO
		Begin
			if (x<y) then HoanChuyen(x,y)
			else x:=x-y;
		End;
		USCLN:=x;
	End;
END.


原创文章 : vietsource.net