TURBO PASCAL
BÀI 01 : GIỚI THIỆU VỀ TURBO PASCAL .
I. GIỚI THIỆU VỀ TURBO PASCAL :
1. GIỚI THIỆU :
• Turbo Pascal là ngôn ngữ lập trình cao cấp .
• Turbo Pascal có những đặc điểm nổi bật như sau :
Là ngôn ngữ có tính đònh kiểu chặt chẻ .
Là ngôn ngữ mang tính cấu trúc . Tính cấu trúc của Turbo Pascal thể hiện
trên 3 mặt sau :
Cấu trúc về mặt dữ liệu : Từ các dữ liệu chuẩn hay dữ liệu cấu trúc ,
người lập trình có thể xây dựng các kiểu dữ liệu phức tạp hơn .
Cấu trúc về mặt lệnh : Từ các lệnh đơn hay lệnh cấu trúc , người lập
trình có thể nhóm chúng lại với nhau và đặt giữa 2 từ khóa BEGIN … END để có được
câu lệnh phức tạp hơn gọi là câu lệnh phức hay câu lệnh ghép .
Cấu trúc về mặt chương trình : Một chương trình có thể được chia
thành nhiều chương trình con dưới dạng các thủ tục , các hàm , các đơn thể , các đơn vò
độc lập với chương trình chính mà sự tương tác giữa chúng là dữ liệu đưa vào và nhận
lại kết quả .
2. CÁC PHÍM CHỨC NĂNG :
F1 – Help : phím này dùng để hiển thò thông tin , trợ giúp cho người lập
trình làm việc dễ dàng hơn .
F2 – Save : phím này dùng để ghi nội dung tập tin vào đóa .
F3 – Load : phím này dùng để mở một tập tin đã có sẳn trên đóa .
F9 – Make : phím này dùng để kiểm tra lổi về cú pháp của chương trình .
Vệt sáng báo lổi ở vò trí nào thì lỗi ở ngay vò trí đó .
Ctrl – F9 ( Run ) : tổ hợp phím này dùng để chạy thử chương trình sau khi
đã kiểm tra xong các lỗi về cú pháp .
F10 – Menu : phím này sẽ đưa con trỏ lên thanh thực đơn ngang .
FILE EDIT
Khi không muốn làm việc trên thanh thực đơn ngang nữa ta nhấn phím ESC để con
trỏ trở về thân chương trình của Pascal .
II. CƠ SỞ CỦA NGÔN NGỮ TURBO PASCAL :
1. BỘ TỪ VỰNG CỦA TURBO PASCAL :
• Ký tự chữ : a, b , … , z ; A , B , … , Z .
• Ký tự số : 0 , 1 , … , 9 , a , b , … f ( hoặc A , B , … , F ) .
• Ký tự đặc biệt :
Ký tự đơn : + , - , * , / , …
Ký tự kép : := ( phép gán ) , < > ( khác nhau ) , < ( nhỏ hơn ) , <=
( nhỏ hơn hoặc bằng ) , …
• Từ khóa là từ riêng của Turbo Pascal như : begin , end , if , then , else , …
• Từ đònh hướng chuẩn .
2. DANH HIỆU :
• Danh hiệu là một chuỗi liên tiếp các ký tự chữ , số , gạch nối và không được ngắt
khoảng bởi khoảng trắng , phím TAB , phím ENTER .
• Danh hiệu bắt đầu bằng ký tự chữ hoặc dấu gạch nối .
• Danh hiệu có chiều dài tùy ý nhưng chỉ có 63 ký tự đầu tiên là có nghóa và không
phân biệt chữ in với chữ thường .
BÀI 02 : MẪU MỘT CHƯƠNG TRÌNH TRONG PASCAL .
1. CẤU TẠO CỦA MỘT CHƯƠNG TRÌNH :
[ PROGRAM < TÊN CHƯƠNG TRÌNH > ; ]
[ PHẦN KHAI BÁO ]
BEGIN
[ CÁC LỆNH ]
END .
2. GIẢI THÍCH :
* [ … ] : Ký hiệu này biểu thò phần bên trong ngoặc có hay không cũng được .
* < … > : Ký hiệu này biểu thò phần bên trong ngoặc bắt buộc phải có .
* PROGRAM , BEGIN , END là các từ khóa .
* Tên chương trình đặt ra phải có ý nghóa đặc trưng cho chương trình . tên phải viết liền nhau hoặc
nối bằng dấu gạch nối , kết thúc phải có dấu chấm phẩy ( ; ) .
* Phần khai báo không nhất thiết phải đầy đủ các khai báo sau đây :
USES TÊN UNIT ;
LABEL KHAI BÁO NHÃN ;
CONST KHAI BÁO HẰNG ;
TYPE KHAI BÁO KIỂU ;
VAR KHAI BÁO BIẾN ;
PROCEDURE KHAI BÁO THỦ TỤC ;
FUNCTION KHAI BÁO HÀM ;
• Khai báo hằng : Khai báo hằng bắt đầu bằng từ khóa CONST sau đó là tên hằng và giá trò
của hằng .
• Khai báo kiểu : Ngoài các kiểu dữ liệu chuẩn , các kiểu dữ liệu tự tạo phải khai báo bằng
từ khóa TYPE .
• Khai báo biến : Các biến được khai báo sau từ khóa VAR , nếu có nhiều biến cùng kiểu dữ
liệu thì giữa chúng phân cách nhau bởi dấu phẩy ( , ) tiếp đó là dấu hai chấm ( : ) rồi đến
kiểu dữ liệu của biến , cuối cùng là dấu chấm phẩy ( ; ) .
• Khai báo thủ tục và hàm :
♣ Nếu là những thủ tục và hàm chuẩn ( có sẵn trong thư viện của Pascal ) thì khi cần sử
dụng ta chỉ việc liệt kê tên thủ tục hoặc hàm tại vò trí ta muốn .
♣ Nếu là những thủ tục và hàm tự tạo thì :
♠ Đối với thủ tục : phải bắt đầu bằng từ khóa PROCEDURE tiếp đó là tên thủ
tục , danh sách các tham số hình thức nếu có thì phải để trong cặp dấu ngoặc
đơn , cuối cùng là dấu chấm phẩy ( ; ) .
♠ Đối với hàm : phải bắt đầu bằng từ khóa FUNCTION tiếp đó là tên hàm ,
danh sách các tham số hình thức nếu có thì phải để trong cặp dấu ngoặc đơn ,
dấu hai chấm và kiểu của hàm , kết thúc là dấu chấm phẩy .
* Bắt đầu viết chương trình phải bằng từ khóa BEGIN và kết thúc bằng từ khóa END cuối cùng
là dấu chấm ( . ) .
* Thân chương trình có thể là các câu lệnh :
• Câu lệnh gán : được thể hiện bằng hai ký hiệu là dấu hai chấm và dấu bằng ( := ) . Câu
lệnh gán có ý nghóa gán giá trò ở bên phải cho một biến ở bên trái .
• Câu lệnh đơn : là câu lệnh thực hiện một tác vụ ( công việc ) . Câu lệnh đơn có thể là câu
lệnh rỗng , câu lệnh tính toán biểu thức hoặc câu lệnh gọi thủ tục hay hàm .
• Câu lệnh cấu trúc : còn gọi là câu lệnh phức là câu lệnh được sử dụng trong trường hợp
nếu ta muốn thực hiện nhiều tác vụ ở nơi mà Pascal chỉ cho phép viết một câu lệnh . Câu
lệnh cấu trúc bao gồm một số các câu lệnh được đặt phân cách nhau bởi dấu chấm phẩy
( ; ) và toàn bộ được đặt giữa hai từ khóa BEGIN và END ;
* Các phép toán thường dùng :
• Các phép toán số học gồm : cộng ( + ) ; trừ ( - ) ; nhân ( * ) ; chia ( / ) .
• Các phép toán quan hệ gồm : bằng nhau “ = ”, nhỏ hơn “ < ”, nhỏ hơn hoặc bằng “ <= ”,
lớn hơn “ > ”, lớn hơn hoặc bằng “ >= ”, khác nhau “ < >” .
• Các phép toán logic gồm : phủ đònh “ not ”, giao “ and ”, hợp “ or ”, chỉ hoặc “ xor ” .
BÀI 03 : XUẤT _ NHẬP DỮ LIỆU TRONG PASCAL .
I. NHẬP DỮ LIỆU :
READ ( DANH SÁCH BIẾN ) ;
READLN ( DANH SÁCH BIẾN ) ;
READLN ;
• Các lệnh này dùng để nhập các giá trò vào từ bàn phím cho danh sách biến theo thứ tự liệt
kê .
• Ta thường dùng để nhập cho các biến có kiểu nguyên , kiểu thực , kiểu ký tự nhưng không
nhập cho kiểu luận lý .
• Sự khác nhau giữa ba câu lệnh trên là sự khác nhau của vò trí con trỏ sau khi kết thúc câu
lệnh :
♣ Cú pháp đầu : Con trỏ ở ngay sau giá trò vừa nhập .
♣ Cú pháp giữa : Con trỏ chuyển xuống đầu dòng tiếp theo .
♣ Cú pháp cuối : Dừng chương trình lại .
II. XUẤT DỮ LIỆU :
WRITE ( Item1 , Item2 , Item3 , … , ItemN ) ;
WRITELN ( Item1 , Item2 , Item3 , … , ItemN ) ;
WRITELN ;
• Các lệnh này dùng để xất dữ liệu ra màn hình .
• Item là các mục cần viết ra ; có thể là một biểu thức , một giá trò , một biến , một hằng , …
• Sự khác nhau giữa ba câu lệnh trên là sự khác nhau của vò trí con trỏ sau khi kết thúc câu
lệnh :
♣ Cú pháp đầu : Con trỏ ở ngay sau giá trò của ItemN .
♣ Cú pháp giữa : Con trỏ chuyển xuống đầu dòng tiếp theo .
♣ Cú pháp cuối : Không in ra gì cả và con trỏ xuống đầu dòng tiếp theo .
• Chú ý : ( Đònh dạng xuất )
♣ Đối với kiểu nguyên , kiểu ký tự , kiểu luận lý thì ta thường dùng :
WRITE ( BIẾN : m ) ;
WRITELN ( BIẾN : m ) ;
Máy sẽ bố trí giá trò của biến từ bên phải sang bên trái m vò trí . Nếu thừa chỗ nó
sẽ để trống phần bên trái .
♣ Đối với kiểu số thực thì ta thường dùng :
WRITE ( BIẾN : m : n ) ;
WRITELN ( BIẾN : m : n ) ;
Giá trò của biến được viết từ vò trí m tính từ phải sang trái , trong đó có n số thập
phân .
III. CÁC VÍ DỤ MINH HỌA :
1. Viết chương trình tính chu vi và diện tích hình tam giác khi biết độ dài ba cạnh của
nó .
Program Tam_giac ;
Var
a , b , c : word ;
cv , dt : real ;
Begin
Writeln ( ‘ Chuong trinh tinh chu vi va dien tich hinh tam giac ‘ ) ;
Writeln ( ‘ Khi biet do dai ba canh cua tam giac do ‘ ) ;
Write ( ‘ Nhap vao do dai canh thu nhat a = ‘ ) ;
readln ( a ) ;
Write ( ‘ Nhap vao do dai canh thu hai b = ‘ ) ;
readln ( b ) ;
Write ( ‘ Nhap vao do dai canh thu ba c = ‘ ) ;
readln ( c ) ;
cv := a + b + c ;
dt := sqrt ( (cv/2) * ((cv/2) – a ) * (( cv/2) – b ) * ((cv/2) – c )) ;
writeln ( ‘ Chu vi hinh tam giac la : ‘ , cv :20 : 0 ) ;
writeln ( ‘ Dien tich hinh tam giac la : ‘ , dt :20 : 2 ) ;
readln ;
End .
2. Viết chương trình tính chu vi và diện tích hình bình hành khi biết độ dài hai cạnh
liên tiếp của nó và góc hợp bởi hai cạnh đó .
Program Hinh_binh_hanh ;
Var
a , b : word ;
goc , cv , dt : real ;
Begin
Writeln ( ‘ Chuong trinh tinh chu vi va dien tich hinh binh hanh ‘ ) ;
Write ( ‘ Khi biet do dai hai canh cua hinh binh hanh ‘ ) ;
Writeln ( ‘ va goc hop boi hai canh do ‘ ) ;
Write ( ‘ Nhap vao do dai canh thu nhat a = ‘ ) ;
readln ( a ) ;
Write ( ‘ Nhap vao do dai canh thu hai b = ‘ ) ;
readln ( b ) ;
Write ( ‘ Nhap vao goc hop boi hai canh do goc = ‘ ) ;
readln ( goc ) ;
cv := ( a + b ) * 2 ;
dt := a * b * sin ( goc ) ;
writeln ( ‘ Chu vi hinh binh hanh la : ‘ , cv :20 : 0 ) ;
writeln ( ‘ Dien tich hinh binh hanh la : ‘ , dt :20 : 2 ) ;
readln ;
End .
BÀI 04 : BIẾN VÀ CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PASCAL .
I. BIẾN :
• Biến là một đại lượng có thể thay đổi giá trò trong khi chạy chương trình .
• Tên biến là tên của ô nhớ chứa dữ liệu ( chứa giá trò của biến ) .
• Tên biến là một chuỗi liên tiếp các chữ cái , chữ số , dấu gạch nối . Ký tự đầu tiên phải
là một chữ cái ; không được dùng các từ khóa , các ký tự đặc biệt .
• Khai báo biến :
VAR
Tênbiến1 , tênbiến2 , … , tênbiếnN : Kiểu dữ liệu của biến ;
II. CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PASCAL :
Các kiểu dữ liệu trong Pascal do Pascal đònh nghóa sẵn , ta khai báo xong thì có thể sử dụng
1. KIỂU NGUYÊN :
Tên kiểu Phạm vi sử dụng Kích thước vùng nhớ
Byte 0 → 255 1 byte
Word 0 → 65535 2 bytes
Shortint - 128 → 127 1 byte
Integer -32768 → 32767 2 bytes
Longint - 2,14 tỷ → 2,14 tỷ 4 bytes
• Khi cộng , trừ , tính toán , ta phải lưu ý đến phạm vi sử dụng vì nếu
vượt quá phạm vi giới hạn cho phép thì máy sẽ báo lỗi hoặc cho ra
kết quả sai .
• Có hai phép toán dùng cho số nguyên là :
♣ MOD là phép chia lấy phần dư .
♣ DIV là phép chia lấy phần nguyên .
• Ví dụ : 5 mod 2 → Kết quả là : 1
5 div 2 → Kết quả là : 2
( Vì 5 chia 2 được 2 dư 1 ) .
2. KIỂU THỰC :
Tên kiểu Phạm vi sử dụng Kích thước vùng nhớ
Real - 2,9 . 10
39
→ 1,7 . 10
38
6 bytes
• Ta dùng dấu ‘.’ Thay cho dấu ‘,’ để ngăn cách giữa phần nguyên
và phần thập phân .
• Ta nên đònh dạng biến khi xuất kết quả ( cách viết có quy cách ) .
• Ta không được sử dụng các phép toán MOD và DIV cho số thực .
3. KIỂU KÝ TỰ :
Tên kiểu Phạm vi sử dụng Kích thước vùng nhớ
Char 256 ký tự trong bảng mã ASCII 1 byte
• Chỉ nhận một ký tự .
• Phải được dặt giữa hai dấu nháy .
Ví dụ : ‘A’ ; ‘B ’ ; ‘1 ’ ; ‘a’ ; …
• Dùng dấu # với mã ASCII .
Ví dụ : # 65 ≈ ‘A’
4. KIỂU LOGIC :
Tên kiểu Phạm vi sử dụng Kích thước vùng nhớ
Boolean Chỉ nhận một trong hai giá trò
TRUE hoặc FALSE
1 byte
• Ta thường gặp ở một số mệnh đề toán học , một câu nói , …
• Các phép toán sử dụng : > ; < ; >= ; <= ; < > ; AND ; OR ;
NOT ; XOR ( nếu khác nhau cho ra giá trò TRUE , giống nhau cho ra
giá trò FALSE ) .
IV. CÁC VÍ DỤ MINH HỌA :
1. Viết chương trình nhập vào một ký tự chữ thường rồi đổi thành chữ hoa .
Program Doi_chu_thuong_ra_chu_hoa ;
Var
a , b , ch : char ;
Begin
Writeln ( ‘ Chuong trinh doi chu thuong ra chu hoa ‘ ) ;
Writeln ( ‘ ………………………………………………………………………………… ‘ ) ;