—♦ Forum K10 SP Tin ♦—

Học không chơi phí thời thanh niên,chơi mà không học bán rẻ tương lai !


    modum..........................................

    Share
    avatar
    Admin
    Moderators
    Moderators

    Tổng số bài gửi : 152
    Join date : 12/09/2011
    Age : 26
    Đến từ : hà giang

    modum..........................................

    Bài gửi by Admin on 11/11/2011, 12:36

    ĐƠ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.


    _____________________________________________



      Hôm nay: 19/11/2018, 00:25