Hướng Dẫn Download & Cài Đặt Hate Pascal If You Can

Link download :   https://goo.gl/U2Wxnu Home:  http://hatepascalifucan.byethost3.com/

Thứ Sáu, 31 tháng 3, 2017

CHƯƠNG TRÌNH CON VÀ ÐƠN VỊ CHƯƠNG TRÌNH Phần 3



Lập trình một bài toán lớn rất phức tạp và vất vả nếu nó phải sử dụng nhiều thuật toán lập đi lập lại. Việc tạo ra nhiều mẫu chương trình con nhằm giảm nhẹ công việc của một lập trình viên (programmer). Tuy nhiên, mỗi chương trình con chỉ có ứng dụng được trong chính chương trình chứa nó mà thôi. Ðể khỏi mất thời gian để viết lại chúng, người ta biến mỗi chương trình con thành các module độc lập, được biên dịch sẵn và lưu trữ trên đĩa như một thư viện. Khi cần ta cứ việc gọi các module này ra mà không cần phải viết lại chúng. Mỗi module như vậy được gọi là một đơn vị chương trình, hay gọi tắt là UNIT. 
           Khái niệm Unit đã được vào sử dụng từ chương trình Pascal version 4.0 trở đi. Có hai loại Unit là các Unit chuẩn do Turbo Pascal tạo sẵn và các Unit tự tạo do người lập trình tự viết ra.

a. Một số Unit chuẩn trong Turbo Pascal 5.5 trở đi 
* Unit SYSTEM           : gồm các hằng, biến, kiểu, hàm, thủ tục trong version 3.0
* Unit CRT                  : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
                chế  độ Text của version 5.5
* Unit PRINTER          : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
   chế độ in ấn.           
* Unit GRAPH             : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
   chế độ đồ thị của version 5.5
* Unit TURBO3           : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
                                                   chế  độ Text của version 3.0
* Unit GRAPH3           : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
                                                  chế độ đồ thị của version 3.0
* Unit DOS                 : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến hệ                                          điều hành MS-DOS
* Unit OVERLAY         : gồm các hằng, biến, kiểu, hàm, thủ tục liên quan đến
  việc truy xuất đĩa phủ lấp khi chạy chương trình. 
            Các Unit trên được lưu trữ trong tập tin TURBO.TPL của Turbo Pascal. 
            Chúng ta có thể sử dụng chương trình TPUMOVER.EXE để lấy ra hoặc đưa vào một hay nhiều Unit nhằm tiết kiệm bộ nhớ hay tăng cường tiện ích sử dụng.
  b. Cách gọi Unit
Muốn sử dụng UNIT thì trong đầu chương trình ta phải khai báo Unit theo cú pháp sau: 
                        USES <Tên Unit> [ { , <Tên Unit> } ] ; 
Ví dụ 7.10                    USES  CRT, GRAPH ;
Ðặc biệt, chỉ riêng Unit SYSTEM thì không cần phải khai báo.
  c. Một số thủ tục và hàm trong Unit CRT
* ClrScr          : thủ tục xóa màn hình
* ClrEol           : thủ tục xóa ký tự bên phải con trỏ màn hình, sau khi xóa con trỏ                  vẫn ở tại chỗ
* InsLine         : thủ tục xen vào một hàng ở vị trí con trỏ màn hình
* DelLine         : thủ tục xóa bỏ một hàng ở vị trí con trỏ màn hình
* GotoXY(XPos, Ypos): đưa con trỏ màn hình về vị trí có tọa độ Xpos và
                                                Ypos.   X có giá trị từ 1 - 80, và Y có giá trị từ 1 - 25
* Delay(time): tạo thời gian trễ tính theo milisecond. Time là một số nguyên
           dùng để làm chậm chương trình cho ta kịp quan sát dữ liệu
* Sound(F)      :   thủ tục tạo ra âm thanh với tần số F (hz). F là số nguyên
* NoSound      :   thủ tục tắt âm thanh
* LowVideo và NormVideo: thủ tục màn hình, khi gọi LowVideo thì mọi ký tự viết ra màn hình có độ sáng yếu dần đi cho đến khi nhận thủ tục NormVideo mới về độ sáng bình thường.
* TextBackGround (color):  thủ tục chọn màu nền, color  cho ở bảng (từ 1 -7)
* KeyPressed: hàm cho giá trị kiểu kết quả Boolean, cho giá trị là True nếu có một phím được bấm.
* TextColor (color):  thủ tục chọn màu chữ, color lấy ở bảng 
               Các hằng số màu của CRT unit
Hằng số color
Màu hiển thị
Giá trị
Black
Blue
Green
Cyan
Red
Magenta
Brown
LightGray
DarkGray
LightBlue
LightGreen
LightCyan
LightRed
LightMagenta
Yellow
White
Ðen
Xanh da trời
Xanh lá cây
Xanh lơ
Ðỏ
Tím
Nâu
Xám nhạt
Xám đậm
Xanh da trời nhạt
Xanh là cây nhạt
Xanh lơ nhạt
Ðỏ nhạt
Tím nhạt
Vàng
Trắng
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
             Ðể tạo ra màu nhấp nháy, ta cộng thêm hằng số Blink của CRT vào bất kỳ màu chữ mà ta chọn. Ta không thể làm nhấp nháy màu nền. 
Ví dụ để trình bày chữ vàng trên nền xanh, ta viết:
                        TextColor(Yellow) ;     TextBackground(Blue) ;
Muốn có một dòng chữ đỏ nhấp nháy thì ra lệnh:     
            TextColor(Red + Blink) ; 
* ReadKey : hàm có kiểu kết quả là Char, khi nhấn các phím chức năng trên bàn phím thì có kết quả là 1 ký tự mã ASCII. Nếu ký tự đầu tiên do ReadKey trả về bằng ASCII 0 thì ký tự kế theo sẽ chỉ định phím như ở bảng dưới. Các phím Home, phím mũi tên, ... luôn tạo nên một ký tự đi theo ASCII 0. Các phím chức năng từ F1 đến F10 sinh ra một trong 4 ký tự tùy theo ta dùng với tổ hợp phím Alt, Ctrl hay Shift hay dùng một mình.
                                                   Các phím chức năng đặc biệt
Tên phím
Bình thường
Alt
Ctrl
Shift
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Home
  .­
PageUp
  . ¬
  ® .
End
   ¯ .
PageDn
Ins
Del
: (59)
< (60)
= (61)
> (62)
? (63)
@ (64)
A (65)
B (66)
C (67)
D (68)
G (71)
H (72)
I (73)
K (75)
M (77)
O (79)
P (80)
Q (81)
R (82)
S (83)
h (104)
i (105)
j (106)
k (107)
l (108)
m (109)
n (110)
o (111)
p (112)
q (113)
^ (94)
- (95)
. (96)
a (97)
b (98)
c (99)
d (100)
e (101)
f (102)
g (103)
T (84)
U (85)
V (86)
W (87)
X (88)
Y (89)
Z (90)
[ (91)
\ (92)
] (93)



Ðể tạo ra một Unit của mình cần đi qua các bước sau:
Bước 1 :         Tạo ra một file Unit có phần mở rộng là .PAS với bố cục sau:
UNIT <Tên Unit> ; (* Chú ý : Tên Unit phải trùng với tên File *)
INTERFACE          (* Chú ý : Phần giao diện với bên ngoài, không có dấu ; ở đây *)
            [Uses <danh sách các unit>];  {Khai báo các unit dùng trong chương trình }
            [Khai báo các hằng, kiểu, biến dùng chung] ;
            [Khai báo các thủ tục, hàm (tên, danh sách tham số của thủ tục và hàm] ;
IMPLEMENTATION     (* Cài đặt các hàm, thủ tục của Unit, không có dấu ; ở đây *)
                       [Các khai báo kiểu, hằng, biến cục bộ ];
            [Nội dung cài đặt các thủ tục, hàm của unit ];
[BEGIN]                       (* Phần khởi tạo : Initialization Part *)
                       [Các lệnh khởi tạo ];
END.                           (* Dù có BEGIN để khởi tạo hay không, ở đây vẫn có END. *)
Bước 2 :         Dịch file này lên đĩa theo trình tự sau:
i). Gõ Alt - C  để vào Menu COMPILE
ii). Ði đến mục Destination và nhấn Enter để chương trình tự động đổi Memory thành Disk
iii). Gõ C (hoặc F9) để biên dịch chương trình tạo nên một file   .TPU
iv). Khi dịch xong gõ một phím bất kỳ. Sau đó ta có thể lập lại bước a và b
để chuyển Destination từ Disk sang Memory.

Ví dụ  7.11:    Tạo một UNIT tính Cộng, Trừ, Nhân, Chia cho học sinh tiểu học.

            Tên file Unit là TTIEUHOC.PAS với nội dung sau: 

UNIT  TTieuHoc ;                                {Phần đầu : Chương trình Toán Tiểu học }

INTERFACE                                        {Phần giao diện}

            PROCEDURE Cong (Var So1, So2, So3 : Real) ;

            PROCEDURE Tru    (Var So1, So2, So3 : Real) ;

            PROCEDURE Nhan (Var So1, So2, So3 : Real) ;

            PROCEDURE Chia   (Var So1, So2, So3 : Real) ;

INPLEMENTATION                             {Phần cài đặt }

            PROCEDURE Cong ;

            BEGIN

                        IF So1 + So2 = So3 THEN Writeln ('Giỏi lắm ! Em đã làm đúng! ')

                        ELSE Writeln (' Rất tiếc, em đã làm sai ! ');

            END;

            PROCEDURE Tru ;

            BEGIN

                        IF So1 - So2 = So3 THEN Writeln (' Giỏi lắm ! Em đã làm đúng!')

                        ELSE Writeln (' Rất tiếc, em đã làm sai ! ');

            END;

            PROCEDURE Nhan ;

            BEGIN

                        IF So1 * So2 = So3 THEN Writeln ('Giỏi lắm ! Em đã làm đúng !')

                        ELSE Writeln (' Rất tiếc, em đã làm sai ! ');

            END;

            PROCEDURE Chia ;

            BEGIN

                        IF So2 = 0 THEN Writeln ('Số chia phải khác 0')

                                    ELSE

                                    IF So1 / So2 = So3 THEN Writeln ('Giỏi lắm! Em đã làm đúng! ')

                        ELSE Writeln (' Rất tiếc, em đã làm sai ! ');

                        END;

END.                                       {Chấm dứt UNIT } 
Sau khi gõ chương trình Unit trên, đổi Compile Destination thành Disk, biên dịch và tạo tập tin TTIEUHOC.TPU trên đĩa. 
Chương trình Pascal cho bài toán Cộng, trừ, Nhân, Chia dùng Unit TTIEUHOC: 

PROGRAM Toan_Tieu_Hoc ;

USES  CRT, TTieuHoc ;

VAR

            chon : Integer ;

            So1, So2, So3 : Real ; 

            PROCEDURE            Menu (Var chon : integer) ;

                        BEGIN

                                    ClrScr ;

                                    Writeln (' == TOÁN TIỂU HỌC == ') ;

                                    Writeln (' =    0.   Chấm dứt         = ') ;

                                    Writeln (' =    1.   Toán cộng         = ') ;

                                    Writeln (' =    2.   Toán trừ            = ') ;

                                    Writeln (' =    3.   Toán nhân        = ') ;

                                    Writeln (' =    4.   Toán chia          = ') ;

                                    Writeln (‘ ================== ‘) ;

                                    Write     (' Bạn chọn số mấy ?  ') ;

                                    Readln (chon);

                        END ; 

            PROCEDURE  nhapso (Var So1, So2, So3 : real );

                        BEGIN

                                    Write (' Nhập vào số thứ 1 :    ') ;  Readln(So1) ;

                                    Write (' Nhập vào số thứ 2 :    ') ;  Readln(So2) ;

                                    Write (' Kết quả là             :    ') ;  Readln (So3) ;   

                        END ; 

{=====================Chương Trình Chính  ========================}

            BEGIN

                   CLRSCR;

                   REPEAT

                        Menu (chon) ;

                        CASE chon OF

                                    1 : BEGIN

                                                Writeln ;

                                                Writeln (' ==  Toán cộng == ') ;

                                                Nhapso(So1, So2, So3) ;

                                                Cong(So1, So2, So3) ;

                                         END; 

                                    2 : BEGIN

                                                Writeln ;

                                                Writeln (' ==  Toán trừ == ') ;

                                                Nhapso(So1, So2, So3) ;

                                                Tru(So1, So2, So3) ;

                                         END;                       

                                    3 : BEGIN

                                                Writeln ;

                                                Writeln (‘ ==  Toán nhân == ‘) ;

                                                Nhapso(So1, So2, So3) ;

                                                Nhan(So1, So2, So3) ;

                                         END;                       

                                    4 : BEGIN

                                                Writeln ;

                                                Writeln (‘ ==  Toán chia == ‘) ;

                                                Nhapso(So1, So2, So3) ;

                                                Chia(So1, So2, So3) ;

                                         END;

                                    END;  {case}

                                    Writeln (' Gõ bất kỳ phím nào để tiếp tục ... ');

                                    Readln;

                        UNTIL chon = 0;

            END.                                       {Ngưng làm toán}

Không có nhận xét nào:

Đăng nhận xét