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