Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » Đơn vị chương trình và thư viện chuẩn

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Đơn vị chương trình và thư viện chuẩn

Module by: Thu Nguyen. E-mail the author

Summary: Đơn vị chương trình và thư viện chuẩn

CHƯƠNG 3: ĐƠN VỊ CHƯƠNG TRÌNH VÀ THƯ VIỆN CHUẨN

1. Khái niệm đơn vị chương trình:

Thuật ngữ Unit trong Pascal được gọi 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 dễ dàng thiết kế chương trình.

Lệnh tham chiếu đến Unit được đặt ở đầu chương trình với cú pháp:

USES tênUnit;

Ví dụ: Uses CRT,Graph;

Các Unit được tổ chức trong Pascal dưới 2 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, ví dụ Turbo.TPL

Khi file Turbo.exe được gọi, nghĩa là chương trình Pascal được khởi động từ file Turbo.tpl cũng tự động được tải vào bộ nhớ. Lúc này các Unit chứa trong các thư viện chuẩn sẽ sẵn sàng được tham chiếu đến. Việc truy cập đến các Unit trong thư viện chuẩn nhanh hơn so với truy cập vào các Unit độc lập vì chúng đã thường trú trong bộ nhớ.

2. Thư viện chuẩn:

Thư viện chuẩn của Pascal có tên là Turbo.tpl, thư viện này chứa 5 Unit:

2.1 Crt

CRT bao gồm các thủ tục quản lý màn hình, bàn phím và âm thanh.

2.2 Dos:

Unit này chứa các chức năng quản lý tệp, đĩa, ngày tháng.

2.3 Overlay:

Unit này được sử dụng khi chương trình nguồn có dung lượng lớn. Sử dung Overlay để tải từng phần chương trình nguồn vào bộ nhớ để chạy.

2.4 Printer:

Unit này định nghĩa tên máy in là LST. Việc kết xuất thông tin bằng lệnh Write khi tham chiếu đến LST sẽ cho phép ta in ra máy in các kết quả bài toán.

2.5 System:

Đây là đơn vị cơ bản và quan trọng nhất của pascal, nó chứa các thủ tục vào ra như Read, Write…Khi Pascal được khởi động và thư viện chuẩn được nạp vào bộ nhớ thì Unit này cũng tự động liên kết với mọi chương trình, vì thế ở đầu chương trình không cần đến lời gọi Uses System.

  1. Xây dựng Unit:

Cấu trúc một Unit bao gồm 4 phần cơ bản sau:

  • Phần tiêu đề:

Unit tenUnit;

Lưu ý rằng Pascal quy định bắt buộc tên Unit sau này sẽ được dùng làm tên tệp để lưu trữ tệp nguồn của Unit.

  • Phần khai báo chung

Bắt đầu bằng từ khóa INTERFACE.

Trong phần này ta 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 các Unit sẽ sử dụng.

Ví dụ chúng ta xây dựng một Unit lấy tên là HHP (hình học phẳng) trong đó có các hàm tính diện tích, chu vi các hình chữ nhật, tam giác, hình tròn. Khi đó phần khai báo chung sẽ là:

INTERFACE

Function dtcn(a,b:real):real;

Function dttg(a,b,c:real):real;

Function dttr(a:real):real;

Function cvcn(a,b:real):real;

Function cvtg(a,b,c:real):real;

Function cvtr(a:real):real;

  • Phần nội dung:

Bắt đầu bằng từ khóa IMPLEMENTTATION. Tại đây ta sẽ xây dựng các hàm, thủ tục mà tên của chúng đã được giới thiệu ở phần Interface.

Ví dụ:

IMPLEMENTATION

Function dtcn(a,b:real):real;

Var s:real;

Begin

S:=a*b;

Dtcn:=s;

End;

…..

Function cvcn(a,b:real):real;

Var c:real;

Begin

c:=(a+b)*2;

cvcn:=c;

End;

….

  • Phần khởi động:

Phần khởi động đặt giữa 2 từ khóa Begin và End, sau End là dấu . Trong phần này ta đưa vào các lệnh gán giá trị ban đầu cho các biến.

Phần khởi động không bắt buộc phải có, trong trường hợp không có phần này thì ta bỏ đi từ khóa Begin.

* Cấu trúc tổng thể của một Unit:

UNIT  <Tên Unit>;    {phải trùng với tên file}

INTERFACE

    USES ............;

    CONST..........;

    TYPE ............;

    VAR  .............;

    Procedure  <Tên thủ tục>[(Các tham số)];

    Function  <Tên hàm>[(Các tham số)]:<Kiểu hàm>;

IMPLEMENTATION

    Procedure  <Tên thủ tục>[(Các tham số)];

    [Các khai báo]

    Begin

        .............

    End;

 

    Function  <Tên hàm>[(Các tham số)]:<Kiểu hàm>;

    [Các khai báo]

    Begin

        .............

    End;

END.

  • Phần hướng dẫn:

Mỗi khi xây dựng xong cần có phần hướng dẫn để người sử dụng không gặp phải các lỗi khi chương trình tham chiếu đến Unit

Ví dụ: cách sử dụng Unit HHP tính diện tích chu vi tam giác

Program tinh_dtcv;

Uses crt,hhp;

Var m,n,q:real;

Begin

Clrscr;

Write(‘Cho biet 3 canh’); readln(a,b,c);

If(a+b>c) and (a+c>b) and (b+c>a) then

Begin

Writeln( ‘Dien tich tam giac la’,dttg(a,b,c):5:2);

Writeln( ‘chu vi tam giac la’,cvtg(a,b,c):5:2);

End

Else

Writeln(‘So lieu da cho khong tao thanh tam giac’);

Readln;

End.

Bài tập 1 a) Xây dựng Unit HHP. Unit này tạo nên một số hàm dùng để tính diện tích, chu vi các hình tròn, chữ nhật, tam giác.

b) sử dụng Unit HHP tính diện tích, chu vi hình CN, hình tròn.

Bài tập 2:  a) Tạo Unit MYTOOL lưu ở file MYTOOL.PAS.

UNIT  MYTOOL;      

INTERFACE

    USES CRT;

    VAR  m:Integer;

    Function  UCLN(a,b:Integer):Integer;

    Function  NGUYENTO(n:Word):Boolean;

IMPLEMENTATION

    Function  UCLN(a,b:Integer):Integer;

    Begin

        While a<>b Do

           Begin

               If a>b Then a:=a-b  Else  b:=b-a;

           End;

        UCLN:=a;

    End;

    Function  NGUYENTO(n:Word):Boolean;

    Var d,i:Word;

    Begin

        d:=0;

        For i:=2 To n DIV 2 Do

           If n MOD i=0 Then d:=d+1;

        NGUYENTO:=d=0;

    End;

END.

 b) Viết một chương trình có sử dụng Unit MYTOOL.

Uses Crt, MyTool;

Var  a,b:Integer;

Begin

    CLRSCR;

    Write(10,5,’CHUONG TRINH MINH HOA’);

    Write(‘Nhap a = ‘); Readln(a);

    Write(‘Nhap b = ‘); Readln(b);

    Writeln(‘UCLN cua ‘,a,’ va ‘,b,’ la:’,UCLN(a,b));

    Write(‘Nhap m = ‘); Readln(m);

    If  NGUYENTO(m) Then

        Writeln(m,’ la so nguyen to!’)

    Else

        Writeln(m,’ khong phai la so nguyen to!’);

    Readln;

End. 

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks