I. Cấu trúc lựa chọn
9.5. Một số chư ơng trình con của Turbo Pascal
Mỗi loại PASCAL có các ch ơng trình con bổ sung và mở rộng khác.
Ng ời đọc có thể tra cứu tất cả các thủ tục và hàm của Turbo Pascal trong quyển Turbo Pascal, cẩm nang tra cứu. Trong
phạm vi của giáo trình này, chúng tôi chỉ xin giới thiệu một vài thủ tục và hàm để tham khảo.
Procedure GotoXY(X,Y) Crt
Đ a con trỏ của màn hình về vị trí có tọa độ X và Y trên màn hình. Hai hàm WhereX, WhereY cho ta toạ độ của con trỏ tại thời điểm gọi hai hàm này.
Procedure ClrScr; Crt
Xoá toàn bộ màn hình và đặt con trỏ tại Toạ độ 0,0 Procedure ClrEol Crt
Xoá từ vị trí con trỏ đến hết dòng. Sau khi xoá vị trí con trỏ không thay đổi
Procedure DelLine Crt
Xoá dòng chứa con trỏ. Các dòng ở d ới dồn lên trên để thay thế Procedure insLine Crt
Chèn một dòng trắng vào vị trí con trỏ.
Procedure LowVideo và NormVideo Crt
Sau khi gọi LowVideo, mọi kí tự viết ra màn hình đều có độ sáng yếu đi cho tới khi gọi thủ tục NormVideo.
Procedure Delay(T)
Tạo ra thời gian trễ T (ms). T là một số nguyên. Delay th ờng đ ợc dùng để làm chậm ch ơng trình lại cho ta quan sát.
Procedure Sound(F) và NoSound
Tạo ra dao động âm thanh với tần số là F (F nguyên) cho đến khi ta gọi NoSound
Procedure Exit System
Khi đ ợc thực hiện trong ch ơng trình con, exit làm cho ch ơng trình con đó kết thúc vô điều kiện và quay về ch ơng trình gọi nó. Khi đ ợc thực hiện trong câu lệnh của ch ơng trình chính thì
ch ơng trình chính sẽ kết thúc luôn
Procedure Halt(exitCode:Word) System
Dừng hoạt động ch ơng trình và trở về hệ điều hành. ExitCode là một biến kiểu Word xác định mã thoát của ch ơng trình. Có thể dùng Halt không tham số t ong ứng nh Halt(0)
Function Keypress Crt
Cho giá trị True khi ta ấn một phím nào đó và kí tự đó còn nằm đợi trong bộ nhớ đệm của bàn phím ch a đ ợc lấy ra để xử lý. Hàm này không có tác dụng khi ấn phím Ctrl, Alt, Shift một cách đơn lẻ, không cùng các phím chữ và số khác.
Function ReadKey
Hàm ReadKey đọc một kí tự từ bàn phím. Nếu biến Keypress là True tr ớc khi gọi ReadKey thì kí tự đ ợc đọc vào ngay lập tức không chờ ấn Enter. Nếu Keypress là False, ReadKey đợi cho
đến khi có một phím đ ợc ấn. Kí tự đ ợc đọc không hiện lên trên màn hình.
Các phím đặc biệt trên bàn phím phát ra các mã quét mở rộng.
Phím đặc biệt là các phím chức năng nh F1, F2,... phím
điều khiển con trỏ, phím Alt,... Khi một phím đặc biệt đ ợc ấn, đầu tiên ReadKey trả lại kí tự 0 và sau đó trả mã quét mở rộng. Kí tự 0 (null) không đ ợc phát ra trong bất kì tr ờng hợp nào khác, nh vậy bạn đảm bảo kí tự tiếp theo là mã quét mở réng.
Function Frac(X)
Cho giá trị phần thập phân của số thực X Function Int(X)
Cho giá trị phần nguyên của số thực X Function RanDom
Cho giá trị số thực RanDom. RanDom là một số ngẫu nhiên nằm trong khoảng 0 và 1
Function RanDom(Number)
Cho giá trị số thực RanDom. RanDom là một số ngẫu nhiên nằm trong khoảng 0 và Number. Number là một số nguyên
Procedure RanDomize
Là thủ tục đảm bảo cho hàm RanDom bắt đầu chạy với một số ngẫu nhiên. Cần gọi thủ tục này tr ớc khi dùng các hàm RanDom.
Function UpCase(ch) cho kí tự hoa t ơng ứng với ký tự Ch Bài tập
9.1 Viết ch ơng trình nhập vào 5 số từ bàn phím và in ra số lớn nhất, số nhỏ nhất trong 5 số đó. Sử dụng ch ơng trình tìm số lớn nhất, nhỏ nhất trong 2 số làm ch ơng trình con.
9.2. Viết ch ơng trình nhập 3 số từ bàn phím và tìm USCLN của 3 số đó. Sử dụng ch ơng trình tìm USCLN của 2 số làm ch ơng trình con.
9.3. Viết một hàm để tính tiền điện nh sau:
Function Tiendien(SoKW:integer):LongInt;
trong đó SoKW: là số KW điện tiêu thụ trong tháng
Hàm TienDien trả về trị số là số tiền điện phải trả. Cách tính tiền điện nh sau:
Từ KW thứ 1 đến 50: 250 đồng/KW
Từ KW thứ 51 đến 70: 300 đồng/KW Từ KW 71 đến 100: 350 đồng/KW
Từ KW thứ 101 trở lên: 400 đồng/KW
9.4. Tạo các hàm xử lý chuỗi với tên và chức năng nh sau:
a. Function Left(S:String; n:byte):String
Chức năng: cho kết quả là một chuỗi con lấy ra n ký tự từ chuỗi S tính từ vị trí ngoài cùng bên trái sang phải của chuỗi b. Function RIGHT(S:String;n:byte):String
Chức năng: Cho kết quả là một chuỗi con lấy ra n ký từ từ chuỗi S tính từ vị trí ngoài cùng bên phải sang trái của chuỗi c. Fuction RTRIM(S:String):String
Chức năng: loại bỏ các ký tự trắng nằm ở phần cuối của chuỗi S
d. Function LTRIM(S:String):String
Chức năng: Loại bỏ các ký tự trắng nằm ở đầu chuỗi S e. Function IIF(a:boolean;S1,S2:String):String
Chức năng: Trả về chuỗi S1 nếu a=TRUE, về S2 nếu a=False VÝ dô: IIF(Tuoi<17,'Thieu nien','Thanh nien');
9.5. Viết ch ơng trình dùng giải thuật đệ qui để tính giá trị của hàm F(n). Biết hàm này đ ợc tính theo công thức sau:
F(0)=0 F(1)=1
F(n)-F(n-1)=2*(F(n-1)-F(n-2) )