3.1. Khái niệm đơn vị chương trình (Unit)
Thuật ngữ Unit trong ngôn ngữ lập trình Pascal được dịch là "đơn vị chương trình". Mỗi Unit được xem như một modul nhỏ chứa đựng một số công cụ cần thiết giúp cho người lập trình có thể dễ dàng thiết kế chương trình. Các Unit có thể gộp chung lại thành thư viện chương trình hoặc để phân tán trong một thư mục quy ước của Pascal .
Lệnh tham chiếu đến Unit được đặt ở đầu chương trình với cú pháp: USES tênunit; Các Unit được tổ chức trong Pascal dưới hai dạng:
* Các file độc lập với phần mở rộng là TPU (Turbo Pascal Unit), ví dụ GRAPH.TPU
* File thư viện chuẩn với phần mở rộng TPL (Turbo Pascal Library), ví dụ TURBO.TPL
Thư viện chuẩn của Pascal chứa đựng một số Unit cơ bản, hay được dùng đến, chúng được đóng gói lại và được để cùng chỗ với tệp khởi động TURBO.EXE.
3.2. Cấu trúc một Unit
Cấu trúc một UNIT bao gồm bốn phần cơ bản sau đây: a, Phần tiêu đề
Phần này chỉ gồm một dòng mở đầu là từ khoá UNIT sau đó là tên Unit, kết thúc dòng bằng dấu chấm phảy.
Unit tenUnit;
Tên Unit phải viết cách từ khoá Unit ít nhất một khoảng trống, các ký tự của tên phải viết liền nhau theo các quy định giống như tên chương trình, tên unit cần có tính chất gợi nhớ, không nên đặt tên quá dài .
b, Phần khai báo chung
Phần này bắt đầu bằng từ khoá INTERFACE
Bản thân từ khoá Interface có nghĩa là dùng chung, điều này quy ước rằng ở đây chúng ta phải khai báo các kiểu dữ liệu mới, các biến, hằng, hàm, thủ tục mà sau này các chương trình tham chiếu đến Unit sẽ sử dụng.
Phần nội dung bắt đầu bằng từ khoá IMPLEMENTATION. Tại đây chúng ta sẽ xây dựng nên các hàm, thủ tục mà tên của chúng đã được giới thiệu ở phần Interface. Việc xây dựng các chương trình con đã được giới thiệu ở phần lập trình cơ bản nên chúng ta không đề cập đến ở đây.
Chú ý:
• Những hàm và thủ tục chúng ta đã giới thiệu ở Interface thì bắt buộc phải được xây dựng ở đây bởi lẽ chúng chính là những gì mà các chương trình tham chiếu đến Unit cần sử dụng. Ngược lại trong phần này chúng ta có thể xây dụng các hàm và thủ tục khác hoặc khai báo các biến, hằng mới không có trong phần Interface, chúng được xem là phần riêng của Unit mà các chương trình tham chiếu đến Unit không được phép sử dụng.
d, Phần khởi động
Phần khởi động đặt giữa hai từ khoá BEGIN và END, sau End là dấu chấm giống như các chương trình Pascal bình thường. Phần khởi động là không bắt buộc phải có, trong trường hợp không có phần này thì chúng ta bỏ đi từ khoá BEGIN song vẫn phải có từ khoá END. để báo hiệu kết thúc Unit. Dưới đây là cấu trúc tổng thể của một Unit.
Unit Tên_Unit ; Interface ...
Uses Tên_Unit; (tên các Unit sẽ dùng trong các chương trình con của Unit này) Const .... (khai báo hằng)
Type ... (khai báo kiểu dữ liệu)
Var ... (khai báo biến cho các chương trình con trong Unit ) Tên các Procedure và Function của Unit
Implementation
(nội dung của từng chương trình con) Begin
Phần khởi tạo giá trị ban đầu (tuỳ chọn) End.
Về bản chất Unit cũng là một chương trình của Pascal, nó được xây dựng trên cơ sở các từ khoá và từ vựng mà Pascal đã thiết kế do vậy từ bên trong Unit chúng ta lại có thể tham chiếu đến các Unit khác không phân biệt là Unit chuẩn của Pascal hay Unit do người sử dụng tạo ra.
Ví dụ Xây dựng Unit HHP chứa hàm tính diện tích hình chữ nhật. Unit HHP;
Interface
Function dtcn(a,b: real): real; Implementation Function dtcn(a,b: real): real; Uses crt, dos; Var s: real; Begin
S:=a*b; Dtcn:=s; End;