
B MÔN TIN H CỘ Ọ TR NG ĐI H C HOA LƯỜ Ạ Ọ Ư
M C L CỤ Ụ
Bài 1: NGÔN NG L P TRÌNH PASCALỮ Ậ .......................................................... 3
1.Giới thiệu về ngôn ngữ lập trình Turbo Pascal ........................................................... 3
2. Các thành phần cơ bản trong ngôn ngữ Pascal ........................................................ 4
3. Cấu trúc chung của một chương trình Turbo Pascal ................................................. 5
4. Sử dụng phần mềm Turbo Pascal ............................................................................ 9
CÂU HỎI ÔN TẬP ......................................................................................................... 15
Bài 2: CÁC KHÁI NI M TRONG PASCALỆ ...................................................... 17
1. Hằng, biến, biểu thức .............................................................................................. 17
2. Câu lệnh và lời chú thích .......................................................................................... 18
3. Nhập dữ liệu ............................................................................................................ 20
4. Xuất dữ liệu ............................................................................................................... 22
CÂU HỎI ÔN TẬP ......................................................................................................... 26
Bài 3: CÁC KI U D LI U ĐN GI NỂ Ữ Ệ Ơ Ả .......................................................... 28
1. Khái niệm về kiểu dữ liệu ......................................................................................... 28
2. Kiểu số nguyên ......................................................................................................... 29
3. Kiểu số thực .............................................................................................................. 35
4. Kiểu ký tự (CHAR) .................................................................................................... 37
5. Kiểu Logic (BOOLEAN) ............................................................................................ 40
6. Kiểu liệt kê và kiểu đoạn con .................................................................................... 42
BÀI TẬP ........................................................................................................................ 46
Bài 4: CÁC CÂU L NH ĐI U KHI NỆ Ề Ể .............................................................. 48
1. Câu lệnh IF ............................................................................................................... 48
2. Câu lệnh CASE ......................................................................................................... 51
3. Câu lệnh lặp biết trước só lần lặp (FOR .. TO .. DO) .............................................. 54
4. Câu lệnh lặp WHILE..DO ......................................................................................... 57
5. Câu lệnh lặp REPEAT ..UNTIL ................................................................................. 59
BÀI TẬP ........................................................................................................................ 61
Bài 5: CH NG TRÌNH CONƯƠ .......................................................................... 64
1. Khái niệm chương trình con ..................................................................................... 64
2. Hàm (FUNCTION) ................................................................................................... 64
3. Thủ tục (PROCEDURE) ........................................................................................... 70
4. Tham trị và tham biến ............................................................................................... 73
5. Phạm vi tác dụng của các khai báo .......................................................................... 76
6. Sự đệ quy .................................................................................................................. 79
7. Các ví dụ về chương trình con ................................................................................. 80
Ngôn ng l p trình Pascalữ ậ
1

B MÔN TIN H CỘ Ọ TR NG ĐI H C HOA LƯỜ Ạ Ọ Ư
CÂU HỎI ÔN TẬP – BÀI TẬP ...................................................................................... 83
Bài 6: CÁC C U TRÚC D LI U PH C H PẤ Ữ Ệ Ứ Ợ ............................................... 86
1. Dữ liệu kiểu mảng ..................................................................................................... 86
2. Kiểu chuỗi ký tự ........................................................................................................ 91
3. Dữ liệu kiểu bản ghi .................................................................................................. 96
4. Dữ liệu kiểu tập hợp (SET) và tệp tin (FILE) .......................................................... 102
CÂU HỎI ÔN TẬP ....................................................................................................... 112
Bài 7: L P TRÌNH NÂNG CAOẬ ....................................................................... 123
1. Con tr và bi n đngỏ ế ộ ..................................................................................... 123
1.1. Khái niệm ............................................................................................................. 123
1.2. Kiểu dữ liệu con trỏ - biến con trỏ ....................................................................... 123
1.3. Địa chỉ của một đối tượng ................................................................................... 124
1.4. Các thủ tục và hàm tác động trên con trỏ ........................................................... 124
1.5. Cấp phát động ..................................................................................................... 125
2.Danh sách liên k tế ........................................................................................... 126
2.1. Định nghĩa ............................................................................................................ 126
2.2. Danh sách liên kết ngược ................................................................................... 127
2.3. Hàng đợi Queue - Danh sách liên kết thuận ....................................................... 127
2.4. Các thao tác trên danh sách ............................................................................... 129
3. T o th vi n các ch ng trình con (UNIT)ạ ư ệ ươ .................................................. 129
3.1. Khái niệm đơn vị chương trình (Unit) .................................................................. 129
3.2. Cấu trúc một Unit ................................................................................................. 130
4. Đ h a và âm thanhồ ọ ....................................................................................... 131
4.1. Đồ họa .................................................................................................................. 131
4.2. Các đối tượng đồ họa .......................................................................................... 132
4.3. Các thủ tục và hàm liên quan đến Đặt - nhận màu - nét và dáng điệu chữ. ..... 133
5. M t s bài toán ng d ngộ ố ứ ụ ............................................................................. 138
Ngôn ng l p trình Pascalữ ậ
2

B MÔN TIN H CỘ Ọ TR NG ĐI H C HOA LƯỜ Ạ Ọ Ư
Bài 1: NGÔN NG L P TRÌNH PASCALỮ Ậ
1.Gi i thi u v ngôn ng l p trình Turbo Pascalớ ệ ề ữ ậ
PASCAL là ngôn ng l p trình b c cao đc giáo s Niklaus Wirth tr ng điữ ậ ậ ượ ư ở ườ ạ
h c K thu t Zurich (Th y sĩ) thi t k và công b vào năm 1971. Ông đt tên cho ngônọ ỹ ậ ụ ế ế ố ặ
ng c a mình là Pascal đ t ng nh nhà toán h c n i ti ng ng i Pháp th k 17:ữ ủ ể ưở ớ ọ ổ ế ườ ở ế ỷ
Blaise Pascal, ng i đã sáng ch ra chi c máy tính c khí đu tiên c a nhân lo i. Quaườ ế ế ơ ầ ủ ạ
th i gian s d ng, Pascal ngày càng đc đông đo ng i dùng đánh giá cao, và trờ ử ụ ượ ả ườ ở
thành m t trong các ngôn ng l p trình giáo h c ph bi n nh t hi n nay.ộ ữ ậ ọ ổ ế ấ ệ
Thành công c a ngôn ng Pascal ch nó là ngôn ng đu tiên đa ra và th hi nủ ữ ở ỗ ữ ầ ư ể ệ
đc khái ni m ượ ệ l p trình có c u trúcậ ấ . Ý t ng v m t ch ng trình có c u trúc xu tưở ề ộ ươ ấ ấ
phát t suy nghĩ cho r ng có th chia m t bài toán l n, ph c t p thành nhi u bài toánừ ằ ể ộ ớ ứ ạ ề
nh , đn gi n h n. N u m i bài toán nh đc gi i quy t b ng m t ch ng trình con,ỏ ơ ả ơ ế ỗ ỏ ượ ả ế ằ ộ ươ
thì khi liên k t các ch ng trình con này l i s t o nên m t ch ng trình l n gi i quy tế ươ ạ ẽ ạ ộ ươ ớ ả ế
đc bài toán ban đu. ượ ầ
B ng cách chia m t ch ng trình thành các ch ng trình con nh v y, ng i l pằ ộ ươ ươ ư ậ ườ ậ
trình có th l p trình đ gi i quy t riêng l t ng ph n m t, t ng kh i m t, ho c có thể ậ ể ả ế ẻ ừ ầ ộ ừ ố ộ ặ ể
t ch c đ nhi u ng i cùng tham gia, m i ng i ph trách m t vài kh i. Ðc bi t khiổ ứ ể ề ườ ỗ ườ ụ ộ ố ặ ệ
ph i thay đi hay s a ch a trong m t kh i thì đi u đó s ít nh h ng đn các kh iả ổ ử ữ ộ ố ề ẽ ả ưở ế ố
khác.
Tính c u trúc c a ngôn ng Pascal còn th hi n trong vi c t ch c các câu l nh vàấ ủ ữ ể ệ ệ ổ ứ ệ
t ch c d li u. T các l nh đã có, ng i l p trình có th nhóm chúng l i v i nhau vàổ ứ ữ ệ ừ ệ ườ ậ ể ạ ớ
đt gi a hai t khóa ặ ữ ừ Begin và End t o thành m t câu l nh m i ph c t p h n g i là câuạ ộ ệ ớ ứ ạ ơ ọ
l nh ghép. Ðn l t mình, hai hay nhi u l nh ghép l i có th đc nhóm l i đ t oệ ế ượ ề ệ ạ ể ượ ạ ể ạ
thành m t câu l nh ghép ph c t p h n n a,.v.v. T ng t nh th , ngôn ng Pascalộ ệ ứ ạ ơ ữ ươ ự ư ế ữ
cũng cho phép xây d ng các ki u d li u ph c t p h n t các ki u d li u đã có.ự ể ữ ệ ứ ạ ơ ừ ể ữ ệ
Pascal là m t ngôn ng không ch ch t ch v m t cú pháp mà còn ch t ch v m tộ ữ ỉ ặ ẽ ề ặ ặ ẽ ề ặ
d li u. M i bi n, m i h ng tham gia trong ch ng trình luôn có m t ki u d li u xácữ ệ ỗ ế ỗ ằ ươ ộ ể ữ ệ
đnh và ch nh n nh ng giá tr có cùng ki u d li u v i nó. Ði u này bu c ng i l pị ỉ ậ ữ ị ể ữ ệ ớ ề ộ ườ ậ
trình ph i n m ch c cú pháp và luôn chú ý đn tính t ng thích c a các bi u th c vả ắ ắ ế ươ ủ ể ứ ề
m t ki u d li u. Chính vì th , l p trình b ng ngôn ng Pascal là m t c h i t t khôngặ ể ữ ệ ế ậ ằ ữ ộ ơ ộ ố
ch rèn luy n t duy mà còn rèn luy n tính c n th n và chính xác.ỉ ệ ư ệ ẩ ậ
Ngày nay, Ngôn ng Pascal đc dùng đ vi t các ch ng trình ng d ng trongữ ượ ể ế ươ ứ ụ
nhi u lĩnh v c. V i văn ph m sáng s a, d hi u, v i kh năng đ m nh, Pascal đcề ự ớ ạ ủ ễ ể ớ ả ủ ạ ượ
xem là ngôn ng thích h p nh t đ gi ng d y các tr ng ph thông và đi h c.ữ ợ ấ ể ả ạ ở ườ ổ ạ ọ
Ngôn ng l p trình Pascalữ ậ
3

B MÔN TIN H CỘ Ọ TR NG ĐI H C HOA LƯỜ Ạ Ọ Ư
2. Các thành ph n c b n trong ngôn ng Pascalầ ơ ả ữ
2.1. T p ký t c b nậ ự ơ ả
M i ngôn ng đu đc xây d ng t m t t p ký t nào đó. Nhi u ký t nhóm l iỗ ữ ề ượ ự ừ ộ ậ ự ề ự ạ
v i nhau t o nên các t . Nhi u t liên k t v i nhau theo m t qui t c ng pháp nh t đnhớ ạ ừ ề ừ ế ớ ộ ắ ữ ấ ị
(g i là văn ph m) thì t o nên các m nh đ. Trong các ngôn ng l p trình, m nh đ, cònọ ạ ạ ệ ề ữ ậ ệ ề
đc g i là câu l nh. M t t p h p các câu l nh đc s p x p theo m t tr t t nh tượ ọ ệ ộ ậ ợ ệ ượ ắ ế ộ ậ ự ấ
đnh nh m ch th cho máy các thao tác ph i th c hi n t o thành m t ch ng trình. Cácị ằ ỉ ị ả ự ệ ạ ộ ươ
ch ng trình đc so n th o b i ng i l p trình và đc l u tr trên đĩa d i d ngươ ượ ạ ả ở ườ ậ ượ ư ữ ướ ạ
các t p tin.ậ
Ngôn ng Pascal đc xây d ng trên b ký t c b n, g m:ữ ượ ự ộ ự ơ ả ồ
oCác ch cái la tinh: A, B, C,...,Z, a, b, c,..., zữ
oCác ch s :0, 1, 2, 3, 4, 5, 6, 7, 8, 9ữ ố
oCác ký hi u đc bi t: +, -, *, /, =, <, {, }, [, ], %, $, &, #, ... ệ ặ ệ
oKý t g ch n i ‘_’ và ký t tr ng ‘ ‘ (space)ự ạ ố ự ắ
2.2. T khóa(key word):ừ
Có m t s t đc Pascal dành riêng cho vi c xây d ng các câu l nh, các khai báo,ộ ố ừ ượ ệ ự ệ
các phép tính,... g i là t khóa. Vi c s d ng các t khóa đòi h i ph i tuân th đúng quyọ ừ ệ ử ụ ừ ỏ ả ủ
t c đ ra, và đc bi t là ng i l p trình không đc đt m t tên m i (tên bi n, tênắ ề ặ ệ ườ ậ ượ ặ ộ ớ ế
h ng, tên hàm, tên th t c,...) trùng v i m t trong các t khóa. D i đây là danh sách cácằ ủ ụ ớ ộ ừ ướ
t khóa c a Pascal:ừ ủ
absolute, and, array, begin, case, const, div, do, downto, else, end, file, for, forward,
function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not,
of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type,
unit, until, uses, var, while, with, xor
Các t khóa có th vi t d i d ng ch hoa hay ch th ng hay xen k ch hoa v iừ ể ế ướ ạ ữ ữ ườ ẽ ữ ớ
ch th ng đu đc. ữ ườ ề ượ Ví d vi t ụ ế begin hay Begin hay BEGIN là nh nhau.ư
2.3. Tên (identifier)
Các bi n, các h ng, các hàm, các th t c, ... đc s d ng trong ch ng trình đuế ằ ủ ụ ượ ử ụ ươ ề
c n ph i đt tên, còn g i là các ầ ả ặ ọ đnh danhị. Các tên này do ng i l p trình t đt và ph iườ ậ ự ặ ả
đm b o đúng quy t c: tên ph i b t đu b ng ch cái, k đó có th là ch cái, ch s ,ả ả ắ ả ắ ầ ằ ữ ế ể ữ ữ ố
hay d u g ch n i ‘_’. Tênấ ạ ố không đc đt trùng v i t khóa. Chi u dài c a tên t i đa làượ ặ ớ ừ ề ủ ố
127 ký t . Thông th ng tên nên đt ng n g n và có tính g i nh .ự ườ ặ ắ ọ ợ ớ
D i đây là ví d v các tên đc đt đúng:ướ ụ ề ượ ặ
Ngôn ng l p trình Pascalữ ậ
4

B MÔN TIN H CỘ Ọ TR NG ĐI H C HOA LƯỜ Ạ Ọ Ư
Delta, X1, X2, i, j , Chuc_vu, Luong, So_luong, Don_gia.
Còn các tên: 3ABC, In, Chu vi, Ma-so là sai vì:
3ABC: b t đu b ng sắ ầ ằ ố
Chu vi: có ch a ký t tr ngứ ự ắ
Ma-so: ký t ‘-’ là d u tr ch không ph i g ch n i.ự ấ ừ ứ ả ạ ố
In: trùng v i t khóa Inớ ừ
Cũng gi ng nh t khóa,ố ư ừ Tên không phân bi t vi t ệ ế hoa hay vi t ếth ngườ . Ví dụ
vi t X1 hay x1 cũng ch là m t tên thôi.ế ỉ ộ
Trong Pascal có m t s tên đã đc đt s n r i, g i là tên chu n, ch ng h n:ộ ố ượ ặ ẵ ồ ọ ẩ ẳ ạ
Abs, Arctan, Boolean, Byte, Char, Cos, Copy, Delete, Eof, False, Longint, Ord,
Integer, Real, Readln, Writeln, True, Text, ...
M c dù ng i l p trình có th đt m t tên m i trùng v i m t trong các tên chu n,ặ ườ ậ ể ặ ộ ớ ớ ộ ẩ
song, đ đ nh m l n, chúng ta nên tránh đi u này.ể ỡ ầ ẫ ề
3. C u trúc chung c a m t ch ng trình Turbo Pascalấ ủ ộ ươ
3.1. Ví d m đu ụ ở ầ
Đ có m t cái nhìn t ng quan tr c khi đi vào các v n đ chi ti t c a ngôn ngể ộ ổ ướ ấ ề ế ủ ữ
Pascal, hãy cùng xem xét ch ng trình sau: ươ
Bài toán và ch ng trình:ươ
Vi t ch ng trình đ nh p vào đ dài hai c nh c a m t hình ch nh t, tính và inế ươ ể ậ ộ ạ ủ ộ ữ ậ
lên màn hình di n tích và chu vi c a hình ch nh t đó.ệ ủ ữ ậ
N u g i hai c nh c a hình ch nh t là a và b, g i di n tích và chu vi l n l t làế ọ ạ ủ ữ ậ ọ ệ ầ ượ
S và P thì công th c tính S và P là:ứ
S = a.b
P = 2(a+b)
Ch ng trình c th nh sauươ ụ ể ư :
PROGRAM VIDU1;
{ Tinh dien tich va chu vi hinh chu nhat }
Uses CRT;
Var
a, b, S, P: Real ;
Begin
Clrscr;
Ngôn ng l p trình Pascalữ ậ
5