[パスカル – TUT] 投稿 8: ユニット

プログラミングオブジェクトおよび大いに多くを行っているプログラムのサブルーチンの作成. しかしながら, このプログラムは、それらが含まれているプログラムの中で唯一の子が有効です, 他のプログラムでそれらを書き換える必要このサブルーチンを使用したいです, ので、非常に骨の折れます. 克服するために、, 人々は通常、サブルーチンは、スタンドアロンモジュールを使用して収集し、ディスク上のプリコンパイル. 後で, 任意のプログラムは、それらを書き換えることなく、このサブルーチンを再利用することができます. UNITと呼ばれるこのようなモジュール.

標準ユニットの2種類があり、プログラマが作成したパスカルユニットとユニットは、独自のサービスを作成されています.

パスカル

1. 標準ユニットの一部

ザ·. 標準ユニットの一部

– ユニットのCRT: 定数を含みます, タイプ, 変数, 顎, テキスト表示モードに関する手順 (テキストモード).
– ユニットPRINTER: 定数を含みます, タイプ, 変数, 顎, ポートLPT1を介して印刷モードに関連する手順 (コネクタDB25).
– ユニットGRAPH: 定数を含みます, タイプ, 変数, 顎, グラフィックモードに関連する手順.
– ユニットDOS: 定数を含みます, タイプ, 変数, 顎, 手順は、レジスタの直接処理することを含みます, オペレーティングシステムMS-DOSの機能に、割り込みやCALL.
– ユニットOVERLAY: 定数を含みます, タイプ, 変数, 顎, 実行可能コードのレイアウトに関する手順は、ディスク上でアクセス可能です (ロード/エレガント) 代わりに、プログラムを実行するときにメモリにすべてを一度に置くの.

あなたが公共のユニットを使用したい場合は、我々はプログラムでそのユニット名を宣言する必要があります (ユニットシステムとしてパスカルのデフォルトの単位を除きます) 構文で”

USES <tên unit>;

B. 一般的にCRTユニットに使用されるいくつかの関数およびプロシージャ
– ClrScr: 手順は、画面を削除します.
– GotoXY(X, と: バイト): カラム位置xにカーソルを移動, 画面上のYライン. 共通, テキストモードの画面(CO80) 持っている 25 現在 (ラインから 1 流れるように 25) と 80 ポスト (ポスト 1 コラム 80). したがって、画面の左上隅である座標 (1, 1), 右下の座標であります (80, 25) .
– ディレイ(ミズ: 単語): ミリ秒単位で手続きミリ秒の遅延プログラム.
– 音(ヘルツ: 単語): 手順は、内部スピーカーから音発します (内蔵スピーカー) Hzの周波数.
– NOSOUND: 音を停止する手順.
– keyPressedイベント: キーが押された場合ハム結果がTRUEであります.
– Readkey: キーボードバッファからキーを読み取ります.
– テキストの背景(色: バイト): 背景色を選択するための手順. 私達はちょうどコマンドの前にこのコマンドを配置することによって、画面全体の背景色を設定することができますclrscr.
– textcolorは(色: バイト): テキストの色のための手順.
ここでは定義済みの定数をPASCAL色のリストです.
•ブラック= 0 ブラック.
•青= 1 ブルー.
•緑= 2 グリーン.
•シアン= 3 エッグブルーフルート.
•赤= 4 赤.
•マゼンタ= 5 パープル蓮.
•ブラウン= 6 ブラウン.
•LightGrayの= 7 ライトグレー.
•DarkGray = 8 濃いグレー.
•水色= 9 青色光.
•ライトグリーン= 10 緑色の光.
•LightCyan = 11 鮮やかなブルーフルートの卵.
•LightRed = 12 赤信号.
•LightMagenta = 13 明るい紫色の蓮.
•黄色= 14 黄色.
•白= 15 ホワイト.
(8 黒からLightGrayのへの最初の統治は、テキストの色と背景色の両方に適用されます. 残りの定数値は、唯一のテキストの色に適用されます).
色 + 点滅します: 点滅の手紙.

2. 建設ユニット

ザ·. ステップ 1
パスカルは.PASで終わるファイルを作成し、以下に示すように構成されています, ファイル名と一致しなければならないユニットの名前をメモ. ユニットのパターン (ファイル名は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キーを押すことができません:
– コンパイルを選択してください (Altキー + ℃).
– 選択された先のディスクを移動し続けます. 注意: コピー先のディスクは、ディスク装置上に作成され, メモリはRAMユニット上に生成されます.
– メニューを選択し、機能complieのcomplieを選択 (Altキー + F9). ディスク上のこの時間は、我々は、拡張TPUを作成するユニットファイルの名前として表示されます. ここからは, 一つは、上記の用途として文でそれを呼び出すことにより、本機を使用することができます.

例:

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