Tải bản đầy đủ (.pdf) (44 trang)

Giáo trình Pascal - Trường CĐSP Bến Tre pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (476.66 KB, 44 trang )

T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Giaùo trình
Ch biên: Võ Thanh Ânủ
Hi u đính và b sung: V ng Đ c Bìnhệ ổ ươ ứ
B n Tre, 5-2008ế
Trang 1
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
L i ng cho l n hi u đínhờ ỏ ầ ệ
Tài li u này đ c vi t l n đ u b i gi ng viên Võ Thanh Ân, theo yêu c u c a T bệ ượ ế ầ ầ ở ả ầ ủ ổ ộ
môn CNTT, vào tháng 3 năm 2004. Tài li u đ c vi t và trình bày khá m ch l c, g nệ ượ ế ạ ạ ọ
nh , d hi u và đã đ c dùng đ d y cho l p K2 CNTT.ẹ ễ ể ượ ể ạ ớ
Cho đ n nay do nh n th y c n có m t s đi u ch nh b sung nh m thích h p v iế ậ ấ ầ ộ ố ề ỉ ổ ằ ợ ớ
công tác gi ng d y h n nh :ả ạ ơ ư
1. Turbo Pascal, nh trình bày c a gi ng viên Võ Thanh Ân, không còn ch y t tư ủ ả ạ ố
trên n n Windows XP n a. Thay vào đó Borland Pascal ch y n đ nh h n.ề ữ ạ ổ ị ơ
2. Dù Pascal g n đây là ngôn ng b phê phán nhi u trong gi i l p trình viên vìầ ữ ị ề ớ ậ
nh ng y u kém c a nó. Ch y u do nó không cho phép quá t i các c u trúc dữ ế ủ ủ ế ả ấ ữ
li u và các hàm. Dù nó có kém so v i Borland C++ trong v n đ l p trìnhệ ớ ấ ề ậ
h ng đ i t ng, song do tính khúc chi t - m ch l c và trong sáng trong cúướ ố ượ ế ạ ạ
pháp c a ngôn ng , nó v n là ngôn ng r t t t đ d y cho ng i m i b t đ uủ ữ ẫ ữ ấ ố ể ạ ườ ớ ắ ầ
h c l p trình. V m t s ph m thì có l khó có ngôn ng nào t t h n.ọ ậ ề ặ ư ạ ẽ ữ ố ơ
3. C n nói t i Free Pascal, là m t phiên b n mi n phí hoàn toàn, gi l i đ cầ ớ ộ ả ễ ữ ạ ượ
h u h t cú pháp, t khóa, thao tác c a Borland Pascal và l i ch y n đ nh trênầ ế ừ ủ ạ ạ ổ ị
Windows XP.
4. Kinh nghi m cho th y sinh viên c a Khoa m y năm qua, do công tác tuy nệ ấ ủ ấ ể
sinh, có h th p yêu c u đ u vào. Do đó bu c ph i xem xét l i các giáo trìnhạ ấ ầ ầ ộ ả ạ
đã vi t đ giúp cho ng i h c - xu t phát đi m th p h n – v n có th đ tế ể ườ ọ ở ấ ể ấ ơ ẫ ể ạ
ch t l ng đ u ra theo yêu c u.ấ ượ ầ ầ
V i nh ng lí do đó, và do khi xem xét l i giáo trình này thì gi ng viên Võ Thanhớ ữ ạ ả
Ân đã không còn làm vi c t i T b môn CNTT, tôi quy t đ nh hi u đính l i tàiệ ạ ổ ộ ế ị ệ ạ
li u. Trên tinh th n tôn tr ng tác gi ban đ u c a tài li u này, ch nào có thêmệ ầ ọ ả ầ ủ ệ ở ỗ


vào ho c hi u đính thì tôi s dùng ặ ệ ẽ màu ch xanh d ng đ m v i font size nh h nữ ươ ậ ớ ỏ ơ
đ phân bi t.ể ệ
T b môn CNTT c m n gi ng viên Võ Thanh Ân vì đã cho phép ti p t c dùngổ ộ ả ơ ả ế ụ
giáo trình này và cũng mong r ng giáo trình cùng các hi u đính, ph l c m i sằ ệ ụ ụ ớ ẽ
giúp cho sinh viên h c t p hi u qu .ọ ậ ệ ả
V ng Đ c Bìnhươ ứ
(Tháng 01/2008)
Trang 2
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
M c l c ( Ph n 1)ụ ụ ầ
Ch ng I: GI I THI U NGÔN NG PASCAL VÀ BORLAND PASCAL 7.0ươ Ớ Ệ Ữ 5
I.GI I THI U NGÔN NG PASCAL.Ớ Ệ Ữ 5
1.Ngôn Ng PASCALữ 5
2.TURBO PASCAL 5
II.S D NG PASCAL 7.0Ử Ụ 6
1.Kh i Đ ng Turbo Pascalở ộ 6
2.Các Thao Tác Th ng S D ng Trên Turbo Pascalườ ử ụ 7
III.CÁC THÀNH PH N C B N C A NGÔN NG PASCALẦ Ơ Ả Ủ Ữ 8
1.B Ch Vi t – T Khoá – Tênộ ữ ế ừ 8
2.H ng – Ki u – Bi nằ ể ế 9
3.Bi u Th c – D u Ch m Ph y – L i Gi i Thíchể ứ ấ ấ ẩ ờ ả 10
4.C u Trúc C a M t Ch ng Trình Pascalấ ủ ộ ươ 11
Ch ng II: CÁC KI U VÔ H NG CHU N VÀ CÁC CÂU L NH Đ Nươ Ể ƯỚ Ẩ Ệ Ơ 13
I.CÁC KI U VÔ H NG CHU NỂ ƯỚ Ẩ 13
a.Các Ki u Vô H ng Chu n (Standard scalar types)ể ướ ẩ 13
b.M t S Phép Toán Trên Các Ki uộ ố ể 13
II.CÂU L NHỆ 15
1.Khái Ni m V M t Câu L nhệ ề ộ ệ 15
2.M t S L nh Đ nộ ố ệ ơ 16
Ch ng III: CÁC L NH CÓ C U TRÚCươ Ệ Ấ 20

I.L NH C U TRÚC R NHÁNHỆ Ấ Ẽ 20
1.D ng Không Đ y Đạ ầ ủ 20
2.D ng Đ y Đạ ầ ủ 20
II.L NH C U TRÚC L A CH NỆ Ấ Ự Ọ 21
1.D ng Không Đ y Đạ ầ ủ 21
2.D ng Đ y Đạ ầ ủ 21
III.CÁC L NH VÒNG L PỆ Ặ 22
1.L nh L p V i S L n Xác Đ nhệ ặ ớ ố ầ ị 22
2.L nh L p V i S L n L p Không Xác Đ nhệ ặ ớ ố ầ ặ ị 25
Ch ng IV: CH NG TRÌNH CONươ ƯƠ 27
I.KHÁI NI M V CH NG TRÌNH CONỆ Ề ƯƠ 27
II.HÀM (FUNCTION) 28
III.TH T C (PROCEDURE)Ủ Ụ 29
IV.L I G I CH NG TRÌNH CON VÀ V N Đ TRUY N THAM S .Ờ Ọ ƯƠ Ấ Ề Ề Ố 30
V.HO T Đ NG C A CH NG TRÌNH CON KHI Đ C G I VÀ S B TRÍẠ Ộ Ủ ƯƠ ƯỢ Ọ Ự Ố
BI N.Ế 32
VI.V N Đ TRUY N THAM S KHI G I CH NG TRÌNH CON.Ấ Ề Ề Ố Ọ ƯƠ 32
VII.TÍNH Đ QUI C A CH NG TRÌNH CONỆ Ủ ƯƠ 35
Ch ng 5: UNITươ 40
I.KHÁI NI M V UNITỆ Ề 40
1.Khái Ni m V Unitệ ề 40
2.Các Unit Chu nẩ 40
II.THI T L P UNITẾ Ậ 41
1.Các B c T o M t Unitướ ạ ộ 41
Trang 3
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
2.Ví d ng d ngụ ứ ụ 42
III.T P TIN TURBO.TPLẬ 43
Trang 4
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế

Ch ng I: GI I THI U NGÔN NG PASCAL VÀươ Ớ Ệ Ữ
BORLAND PASCAL 7.0
I. GI I THI U NGÔN NG PASCAL.Ớ Ệ Ữ
1. Ngôn Ng PASCALữ
Vào đ u nh ng năm 1970 do nhu c u h c t p c a sinh viên, giáo s Niklausầ ữ ầ ọ ậ ủ ư
Writh - Tr ng Đ i H c K Thu t Zurich - Th y Sĩ đã sáng tác m t ngôn ng l pườ ạ ọ ỹ ậ ụ ộ ữ ậ
trình c p cao cho công tác gi ng d y sinh viên. Ngôn ng đ c đ t tên là PASCALấ ả ạ ữ ượ ặ
đ t ng nh đ n nhà toán h c ng i Pháp Blaise Pascal.ể ưở ớ ế ọ ườ
Pascal là m t ngôn ng l p trình có c u trúc th hi n trên 3 ph ng di n.ộ ữ ậ ấ ể ệ ươ ệ
- V m t d li u: Ngoài các ki u d li u đ n gi n còn có các ki u d li u cóề ặ ữ ệ ể ữ ệ ơ ả ể ữ ệ
c u trúc. Ta có th xây d ng các ki u d li u ph c t p t các ki u d li u đãấ ể ự ể ữ ệ ứ ạ ừ ể ữ ệ
có.
- V m t câu l nh: T các câu l nh đ n gi n và l nh có c u trúc ta có th xâyề ặ ệ ừ ệ ơ ả ệ ấ ể
d ng các câu l nh h p thành.ự ệ ợ
- V m t ch ng trình: M t ch ng trình có th chia làm nhi u ch ng trìnhề ặ ươ ộ ươ ể ề ươ
con.
2. TURBO PASCAL
Khi m i ra đ i, ớ ờ Standart Pascal là m t ngôn ng đ n gi n, dùng đ gi ngộ ữ ơ ả ể ả
d y và h c t p, d n d n các u đi m c a nó đ c phát huy và tr thành m t ngônạ ọ ậ ầ ầ ư ể ủ ượ ở ộ
ng m nh. T Pascal chu n ban đ u, đã đ c nhi u công ty ph n m m c i ti n v iữ ạ ừ ẩ ầ ượ ề ầ ề ả ế ớ
nhi u thêm b t khác nhau.ề ớ
TURBO PASCAL là s n ph m c a hãng Borland đ c dùng r t ph bi n trênả ẩ ủ ượ ấ ổ ế
th gi i vì nh ng u đi m c a nó nh : t c đ nhanh, các c i ti n so v i Pascalế ớ ữ ư ể ủ ư ố ộ ả ế ớ
chu n phù h p v i yêu c u ng i dùng.ẩ ợ ớ ầ ườ
TURBO PASCAL 4.0 tr đi có c i ti n r t quan tr ng là đ a khái ni m Unitở ả ế ấ ọ ư ệ
đ có th d ch s n các Module trên đĩa, làm cho vi c l p trình tr nên ng n g n, dể ể ị ẵ ệ ậ ở ắ ọ ễ
dàng, ch ng trình vi t d hi u h n.ươ ế ễ ể ơ
T phiên b n 5.5 (ra đ i năm 1989) tr đi, Turbo Pascal có m t ki u d li uừ ả ờ ở ộ ể ữ ệ
hoàn toàn m i là ki u Object cho phép đ a các mã l nh xen k v i d li u. Ngoài raớ ể ư ệ ẽ ớ ữ ệ
nó còn th vi n đ ho r t phong phú v i nhi u tính năng m nh, ngôn ng l p trìnhư ệ ồ ạ ấ ớ ề ạ ữ ậ

c p cao Delphi cũng s d ng cú pháp t ng t nh Turbo Pascal.ấ ử ụ ươ ự ư
Turbo Pascal 7.0 là phiên b n cu i cùng c a Borland. Sau phiên b n này hãngả ố ủ ả
Borland chuy n sang Pascal For Windows trong m t th i gian ng n r i s n xu t DELPHI.ể ộ ờ ắ ồ ả ấ
Turbo Pascal 7.0 h tr m nh m l p trình h ng đ i t ng nh ng có nh c đi m là bỗ ợ ạ ẽ ậ ướ ố ượ ư ượ ể ị
l i “Devide by zero” trên t t c các máy có xung nh p l n h n 300 MHz. Gi i quy t v n đỗ ấ ả ị ớ ơ ả ế ấ ề
này có hai ph ng án:ươ
a. C p nh t file TURBO.TPL trong th m c \BP\BIN.ậ ậ ư ụ
b. S d ng Free Pascal.ử ụ
1
1
Gói ph n m m này có th download mi n phí t Internet (t khóa: Free Pascal) ho c h i chép t T b mônầ ề ể ễ ừ ừ ặ ỏ ừ ổ ộ
CNTT.
Trang 5
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Ngoài ra cũng nên l u ý là Turbo Pascal ch y ch đ th c (real mode) nên khi ch y trênư ạ ở ế ộ ự ạ
n n Windows XP nó hay kh i đ ng l i máy. Nên ch y Borland Pascal. Khi đó Windows sề ở ộ ạ ạ ẽ
t o m t môi tr ng DOS gi l p và ch y ch đ đa nhi m ti n l i h n.ạ ộ ườ ả ậ ạ ở ế ộ ệ ệ ợ ơ
II. S D NG PASCAL 7.0Ử Ụ
1. Kh i Đ ng Turbo Pascalở ộ
N u máy tính chúng ta đã cài đ t Turbo Pascal trên đĩa, ta có th kh i đ ngế ặ ể ở ộ
chúng nh sau (N u máy tính ch a có, chúng ta ph i cài đ t Turbo Pascal sau đó m iư ế ư ả ặ ớ
th c thi đ c)ự ượ
- T MS-DOS: Đ m b o r ng th m c hi n hành đúng v trí cài đ t (ho c dùngừ ả ả ằ ư ụ ệ ị ặ ặ
l nh PATH) Turbo Pascal. Ta đánh vào ệ TURBO r i Enter.ồ
- T Windows: Ta nên gi l p MS-DOS Mode cho t p tin ừ ả ậ ậ TURBO.EXE ho cặ
Shortcut c a nó, n u không m i khi ta th c thi TURBO PASCAL ch ng trìnhủ ế ỗ ự ươ
s thoát kh i Windows, tr v MS-DOS. Sau khi thoát Turbo Pascal ta ph iẽ ỏ ở ề ả
đánh l nh EXIT đ kh i đ ng l i Windows. Cách gi l p nh sau:ệ ể ở ộ ạ ả ậ ư
· Nh p chu t ph i lên t p tin TURBO.EXE ho c Shortcut c a nó, ch nắ ộ ả ậ ặ ủ ọ
Properties.

· Ch n th Program và đánh check nh hình sau.ọ ẻ ư
Ch n OK trên các h p tho i, sau đó kh i đ ng Turbo Pascal, màn hình so nọ ộ ạ ở ộ ạ
th o sau khi kh i đ ng TURBO PASCAL nh d i đây xu t hi n.ả ở ộ ư ướ ấ ệ
Trang 6
Click vào đây và
ch n nh hình d iọ ư ướ
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Cài đ t và s d ng Borland Pascal 7.0:ặ ử ụ
Gói cài đ t Borland Pascal th ng đ c đ t trong th m c BP70. M thặ ườ ượ ặ ư ụ ở ư
m c này và ch y file cài đ t INSTALL.EXE. Làm theo các h ng d n trongụ ạ ặ ướ ẫ
quá trình cài đ t. Thông th ng sau khi cài đ t xong, ch ng trình s đ cặ ườ ặ ươ ẽ ượ
đ t trong C:\BP. Hãy vào C:\BP\BIN đ c p nh t l i fileặ ể ậ ậ ạ Turbo.tpl (Chép
đè file cùng tên trong th m c \BP70\Huongdan\ lên file này). Thay vì ch yư ụ ạ
TURBO PASCAL (File th c thi: BP\BIN\Turbo.exe) hãy t o Shorcut và ch y BORLANDự ạ ạ
PASCAL (File th c thi: BP\BIN\ự BP.exe). Các thao tác s d ng trên Borland Pascal hoànử ụ
toàn gi ng v i các thao tác trên Turbo Pascal nói d i đây.ố ớ ướ
2. Các Thao Tác Th ng S D ng Trên Turbo Pascalườ ử ụ
Khi ta mu n ố t o m i ho c mạ ớ ặ ở m t t p tin đã có trên đĩa ta dùng phím ộ ậ F3. Sau
đó đ a vào tên và v trí c a t p tin. N u t p tin đã t n t i thì Turbo Pascal m n iư ị ủ ậ ế ậ ồ ạ ở ộ
dung lên cho ta xem, n u tên t p tin ch a có thì Turbo Pascal t o m t t p tin m i (v iế ậ ư ạ ộ ậ ớ ớ
tên mà ta đã ch đ nh).ỉ ị
Khi mu n ố l u l iư ạ t p tin ta dùng phím ậ F2. Tr c khi thoát kh i ch ng trình,ướ ỏ ươ
ta nên l u t p tin l i, n u ch a l u ch ng trình s h i ta có l u t p tin l i hayư ậ ạ ế ư ư ươ ẽ ỏ ư ậ ạ
không. N u ta ch n ế ọ Yes ( n phím Y) thì ch ng trình s ấ ươ ẽ l u l iư ạ , ch n ọ No ( n phímấ
N)ch ng trình s ươ ẽ không l uư .
M t s phím thông d ng c a TURBO PASCAL 7.0ộ ố ụ ủ
Bi uể
t ngượ
Tên phím Di n gi iễ ả


Enter Đ a con tr xu ng dòng.ư ỏ ố

Up Đ a con tr lên 1 dòng.ư ỏ

Down Đ a con tr xu ng 1 dòng.ư ỏ ố

Left Đ a con tr qua trái m t ký t .ư ỏ ộ ư
ư
Right Đ a con tr qua ph i m t ký t .ư ỏ ả ộ ự
Home Home Đ a con tr v đ u dòng.ư ỏ ề ầ
End End Đ a con tr v cu i dòng.ư ỏ ề ố
Pg Up Page Up Lên m t trang màn hình.ộ
Pg Down Page Down Xu ng m t trang màn hình.ố ộ
Del Delete Xoá ký t t i v trí con tr .ự ạ ị ỏ
ỏBack
BackSpace Xoá ký t tr c con tr .ự ướ ỏ
Insert Insert Thay đ i ch đ vi t xen hay vi t ch ng.ổ ế ộ ế ế ồ
F1 F1 G i ch ng trình giúp đ .ọ ươ ở
F2 F2 L u t p tin l i.ư ậ ạ
F3 F3 T o m i ho c m t p tin.ạ ớ ặ ở ậ
Trang 7
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
F4 F4 Th c thi ch ng trình đ n dòng ch a con tr .ự ươ ế ứ ỏ
F5 F5 Phóng l n c a s .ớ ử ổ
F6 F6 Chuy n đ i các c a s .ể ổ ử ổ
F7 F7 Ch y t ng dòng l nh (hàm xem nh m t l nh).ạ ừ ệ ư ộ ệ
F8 F8 Ch y t ng dòng l nh đ n.ạ ừ ệ ơ
F9 F9 Ki m tra l i ch ng trình.ể ỗ ươ
T h pổ ợ Alt
+

F9 Biên d ch ch ng trình.ị ươ
T h pổ ợ Ctrl
+
F9 Ch y ch ng trình.ạ ươ
T h pổ ợ Ctrl
+
N Thêm 1 dòng tr c con tr .ướ ỏ
T h pổ ợ Ctrl
+
Y Xoá m t dòng t i con tr .ộ ạ ỏ
T h pổ ợ Ctrl
+
K
+
B Đánh d u đ u kh i.ấ ầ ố
T h pổ ợ Ctrl
+
K
+
K Đánh d u cu i kh i.ấ ố ố
T h pổ ợ Ctrl
+
K
+
C Sao chép kh i.ố
T h pổ ợ Ctrl
+
K
+
V Di chuy n kh i.ể ố

T h pổ ợ Ctrl
+
K
+
Y Xoá kh i.ố
Trong Borland Pascal các thao tác kh i đ n gi n và d h n nh sau:ố ơ ả ễ ơ ư
+ Đánh d u kh i: SHIFT + (phím mũi tên)ấ ố
+ Copy kh i vào clipboard: CTRL+ Ins (phím Insert)ố
+ Dán kh i (đã copy vào clipboard) vào v trí m i: SHIFT+ Insố ị ớ
T h pổ ợ Ctrl
+
K
+
W
Ghi kh i lên đĩa thành m t t p tin (n i dung c aố ộ ậ ộ ủ
t p tin là kh i đã ch n).ậ ố ọ
T h pổ ợ Ctrl
+
K
+
R
Xen n i dung m t t p tin (t đĩa) vào sau v tríộ ộ ậ ừ ị
con tr .ỏ
T h pổ ợ Ctrl
+
K
+
H T t/M đánh d u kh i.ắ ở ấ ố
T h pổ ợ Ctrl
+

F4 Ki m tra giá tr bi n khi ch y ch ng trình.ể ị ế ạ ươ
T h pổ ợ Alt
+
X Thoát kh i ch ng trình.ỏ ươ
III. CÁC THÀNH PH N C B N C A NGÔN NG PASCALẦ Ơ Ả Ủ Ữ
1. B Ch Vi t – T Khoá – Tênộ ữ ế ừ
a. B ch vi tộ ữ ế
B ch trong ngôn ng Pascal g m:ộ ữ ữ ồ
· 26 ch cái la tinh l n: A, B, C… Zữ ớ
· 26 ch cái la tinh nh : a, b, c, … zữ ỏ
· D u g ch d i _ (đánh vào b ng cách k t h p phím Shift v i d u tr ).ấ ạ ướ ằ ế ợ ớ ấ ừ
· B ch s th p phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9ộ ữ ố ậ
· Các ký hi u toán h c: +, -, *, /, =, <, >, (, )ệ ọ
· Các ký hi u đ c bi t:ệ ặ ệ . , : ; [ ] ? % @ \ | ! # $ { }
· D u kho ng cách (kho ng tr ng – Space).ấ ả ả ắ
b. T khoáừ
Các t khoá là các t dành riêng (reserved words) c a Pascal mà ng i l pừ ừ ủ ườ ậ
trình có th s d ng chúng trong ch ng trình đ thi t k ch ng trình. Không đ cể ử ụ ươ ể ế ế ươ ượ
Trang 8
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
dùng t khoá đ đ t cho các tên riêng nh tên bi n, tên ki u, tên hàm… ừ ể ặ ư ế ể M t sộ ố từ
khoá c a Pascal g m:ủ ồ
Absolute
And
Array
Begin
Case
Const
Constructor
Desstructot

Div
Do
Downto
Else
End
External
File
For
Forward
Function
Goto
If
Implementation
In
Inline
Interface
Interrupt
Label
Mod
Nil
Not
Object
Of
Or
Packed
Procedure
Program
Record
Repeat
Set

Shl
Shr
String
Then
To
Type
Unit
Until
Uses
Var
Virtual
While
With
Xor
c. Tên
Tên hay còn g i là danh bi u (identifier) dùng đ đ t cho tên ch ng trình,ọ ể ể ặ ươ
h ng, ki u, bi n, ch ng trình con…tên đ c chia thành 2 lo i.ằ ể ế ươ ượ ạ
- Tên chu n đã đ c PASCAL đ t tr c, ch ng h n các hàm s SIN, COS, LN,ẩ ượ ặ ướ ẳ ạ ố
… h ng s PI, ki u INTEGER, BYTE, REAL… ằ ố ể
- Tên do ng i dùng t đ t. Dùng b ch cái, b ch s và d u g ch d i đườ ự ặ ộ ữ ộ ữ ố ấ ạ ướ ể
đ t tên, nh ng ph i tuân theo qui t c:ặ ư ả ắ
· B t đ u b ng ch cái ắ ầ ằ ữ ho c “_” sau đó là ch cái ho c ch s .ặ ữ ặ ữ ố
· L u ýư :
 Không có kho ng tr ng gi a tên.ả ố ở ữ
 Không đ c trùng v i t khoá.ượ ớ ừ
 Đ dài t i đa c a tên là 127 ký t , tuy nhiên c n đ t sao cho tênộ ố ủ ự ầ ặ
g n và có ý nghĩa.ọ
 Pascal không b t l i vi c đ t tên trùng v i tên chu n, nh ng khiắ ỗ ệ ặ ớ ẩ ư
đó ý nghĩa c a tên chu n không còn giá tr n a.ủ ẩ ị ữ
 Pascal không phân bi t ch hoa và ch th ng (case insensitive) trongệ ữ ữ ườ

t khóa, tên chu n hay tên. Ví d “ừ ẩ ụ BEGIN” hay “Begin” hay
“BeGin” là nh nhau. Tuy nhiên sinh viên nên t p thói quen vi t m tư ậ ế ộ
cách th ng nh t tên trong toàn b ch ng trình. Đi u này giúp cácố ấ ộ ươ ề
b n tránh các nh m l n gây t n thì gi khi chuy n sang l p trìnhạ ầ ẫ ố ờ ể ậ
b ng các ngôn ng có phân bi t ch hoa ch th ng (case sensitive)ằ ữ ệ ữ ữ ườ
nh ngôn ng C.ư ữ
2. H ng – Ki u – Bi nằ ể ế
a. H ng (Constant)ằ
H ng là m t đ i l ng không đ i trong quá trình th c hi n ch ng trình. Cóằ ộ ạ ượ ổ ự ệ ươ
hai lo i h ng là h ng chu n và h ng do ng i dùng đ nh nghĩa.ạ ằ ằ ẩ ằ ườ ị
Trang 9
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
- H ng chu n là h ng do Pascal đ nh s n, ví d h ng s PI, h ng s ch màuằ ẩ ằ ị ẵ ụ ằ ố ằ ố ỉ
RED=4,… Ng i s d ng không c n đ nh nghĩa l i n u th y không c n thi t.ườ ử ụ ầ ị ạ ế ấ ầ ế
Các h ng này đ c Pascal đ nh nghĩa s n trong các Unit. C n tham kh o h ngằ ượ ị ẵ ầ ả ướ
d n (help) đ i v i m i Unit đ bi t trong Unit có các h ng nào đã đ c đ nh nghĩa ẫ ố ớ ỗ ể ế ằ ượ ị
- H ng do ng i dùng đ nh nghĩa thông qua vi c khai báo. Cú pháp:ằ ườ ị ệ
Ví d :ụ Const A = 50;
Ch = ‘K’;
D = true;
b. Ki uể
M t ki u d li u là m t t p h p các giá tr mà m t bi n thu c ki u đó có thộ ể ữ ệ ộ ậ ợ ị ộ ế ộ ể ể
nh n đ c ậ ượ và m t t p h p các phép toán có th áp d ng trên các giá tr đó. Có haiộ ậ ợ ể ụ ị
lo i ki u là ki u chu n và ki u do ng i dùng đ nh nghĩa.ạ ể ể ẩ ể ườ ị
- Ki u chu n là ki u Pascal đ nh nghĩa s n: REAL, INTEGER, CHAR…ể ẩ ể ị ẵ
- Ki u do ng i l p trình đ nh nghĩa thông qua vi c khai báo ki u. Cú pháp:ể ườ ậ ị ệ ể
Ví d :ụ TYPE NguyenDuong = 1 MaxInt;
MaTran = [1 10,1 10] of Integer;
c. Bi nế
Bi n là m t ô nh trong b nh c a máy tính, giá tr c a bi n có th thay đ iế ộ ớ ộ ớ ủ ị ủ ế ể ổ

trong quá trình th c hi n ch ng trình, bi n s đ c gi i phóng (thu h i ô nh ) khiự ệ ươ ế ẽ ượ ả ồ ớ
ch ng trình k t thúc. ươ ế
Ch ng trình qu n lý bi n thông qua tên bi n và m i bi n t ng ng v i m tươ ả ế ế ỗ ế ươ ứ ớ ộ
ki u d li u nh t đ nh.ể ữ ệ ấ ị
Bi n tr c khi s d ng ph i đ c khai báo. Cú pháp:ế ướ ử ụ ả ượ
Ví d :ụ VAR a, b, c: Integer;
X, Y: Real;
I, J: NguyenDuong; {Đã đ nh nghĩa tr c}ị ướ
3. Bi u Th c – D u Ch m Ph y – L i Gi i Thíchể ứ ấ ấ ẩ ờ ả
a. Bi u th cể ứ
Là m t ph n c a câu l nh bao g m h ng, bi n, hàm đ c liên k t v i nhauộ ầ ủ ệ ồ ằ ế ượ ế ớ
b ng các phép toán và các d u ngo c đ n ( ).ằ ấ ặ ơ
Trang 10
CONST <Tên h ng> = <Giá tr h ng>;ằ ị ằ
[<Tên h ng> = <Giá tr h ng>;]ằ ị ằ
TYPE <Tên ki u> = <Ki u>;ể ể
[<Tên ki u> = <Ki u>;]ể ể
VAR <Tên bi n>[<, Tên bi n>]: <Ki u>;ế ế ể
[<Tên bi n>[<,Tên bi n>]: <Ki u>;]ế ế ể
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Ví d : (-b + sqrt(delta))/(2*a)ụ
Th t th c hi n các phép toán trong m t bi u th c nh sauứ ự ự ệ ộ ể ứ ư :
o Các thành ph n trong c p ngo c trong cùng đ c th c hi n tr c r i t i cácầ ặ ặ ượ ự ệ ướ ồ ớ
thành ph n trong c p ngo c phía ngoài k ti p.ầ ặ ặ ế ế
o Các phép toán nhân (*) và chia (/) (có cùng m c u tiên) và đ c th c hi nứ ư ượ ự ệ
tr c so v i các phép toán c ng (+) và tr (-) (có cùng m c u tiên). Ví dướ ớ ộ ừ ứ ư ụ
nh trong (x*y –z) phép nhân s đ c th c hi n tr c phép tr .ư ẽ ượ ự ệ ướ ừ
o N u hai phép toán liên ti p có cùng m c u tiên thì th t th c hi n là tế ế ứ ư ứ ự ự ệ ừ
trái qua ph i. Ví d nh trong (x*y/z) phép nhân s đ c th c hi n tr c.ả ụ ư ẽ ượ ự ệ ướ
2


o Riêng đ i v i bi u th c gán thì th t th c hi n là t ph i qua trái.ố ớ ể ứ ứ ự ự ệ ừ ả
b. D u ch m ph yấ ấ ẩ
D u ch m ph y (;) dùng đ ngăn cách gi a các câu l nh. Sau m t câu l nhấ ấ ẩ ể ữ ệ ộ ệ
ph i có d u ch m ph y (tr m t vài tr ng h p đ t bi t).ả ấ ấ ẩ ừ ộ ườ ợ ặ ệ
Ví d : Write(‘Nhap so a:’)ụ ; Readln(a);
c. L i gi i thíchờ ả
Trong khi l p trình nhi u lúc c n ph i đ a vào l i gi i thích, nh m di n gi iậ ề ầ ả ư ờ ả ằ ễ ả
công vi c mà đo n ch ng trình đó th c hi n, làm cho ng i đ c ch ng trình dệ ạ ươ ự ệ ườ ọ ươ ễ
hi u. Dĩ nhiên, vi c thêm l i gi i thích này không làm nh h ng đ n vi c th c thiể ệ ờ ả ả ưở ế ệ ự
và k t qu ch ng trình. L i gi i thích có th đ t b t c v trí nào trong ch ngế ả ươ ờ ả ể ặ ấ ứ ị ươ
trình, nh ng ph i n m trong c p d u { và } ho c (* và *).ư ả ằ ặ ấ ặ
Ví d : {Day la phan giai thich}ụ
4. C u Trúc C a M t Ch ng Trình Pascalấ ủ ộ ươ
M t ch ng trình Pascal g m 2 ph n chính: Ph n khai báo và ph n thânộ ươ ồ ầ ầ ầ
ch ng trình. Khi th c thi, ch ng trình Pascal s th c thi ươ ự ươ ẽ ự tu n tầ ự t ng l nh m t ừ ệ ộ theo
nh th t đã đ c vi tư ứ ự ượ ế , tr khi g p các c u trúc đi u khi n r nhánh ho c l pừ ặ ấ ề ể ẻ ặ ặ , b t đ uắ ầ
t thân ch ng trình chính.ừ ươ
a. Ph n khai báoầ
Ph n khai báo có th có các m c sau:ầ ể ụ
· Tên ch ng trìnhươ PROGRAM <Tên ch ng trình>;ươ
· Khai báo s d ng unitử ụ USES <Tên Unit>[,<Tên Unit>];
· Khai báo nhãn LABEL <Tên nhãn>[,<Tên nhãn>];
· Khai báo h ngằ CONST
· Khai báo ki uể TYPE
· Khai báo bi nế VAR
· Khai báo ch ng trình con (s trình bày ph n sau).ươ ẽ ầ
2
L u ýư : Trong l p trình hai bi u th c (x*y/z) và (x/z*y) không ph i bao gi cũng cho cùng k t qu .ậ ể ứ ả ờ ế ả
Trang 11

T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
b. Ph n thân ch ng trìnhầ ươ
B t đ u b ng t khoá ắ ầ ằ ừ BEGIN và k t thúc b ng t khoá ế ằ ừ END. (end và d uấ
ch m). Gi a BEGIN và END. là các câu l nh.ấ ữ ệ
Ví dụ:
PROGRAM MyFirstProg;
VAR i: Integer;
BEGIN
{Các câu l nh vi t đây}ệ ế ở
END.
Trang 12
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Ch ng II: CÁC KI U VÔ H NG CHU N VÀ CÁCươ Ể ƯỚ Ẩ
CÂU L NH Đ NỆ Ơ
I. CÁC KI U VÔ H NG CHU NỂ ƯỚ Ẩ
a. Các Ki u Vô H ng Chu n (Standard scalar types)ể ư ớ ẩ
Ki u vô h ng (scalar type) là ki u d li u g m m t t p các giá tr c a nóể ướ ể ữ ệ ồ ộ ậ ị ủ
s p x p theo m t th t tuy n tính. Ki u vô h ng chu n (Standard scalar type) làắ ế ộ ứ ự ế ể ướ ẩ
ki u vô h ng do Pascal đ nh nghĩa s n. D i đây là danh sách các ki u vô h ngể ướ ị ẵ ướ ể ướ
chu n cùng v i mi n giá tr và kích th c mà m i ki u chi m trong b nh .ẩ ớ ề ị ướ ỗ ể ế ộ ớ
Stt Ki uể Kích th cướ Mi n xác đ nhề ị
1. Boolean 1 byte FALSE TRUE
2. Char 1 byte 256 ký t c a b ng mã ASCII.ự ủ ả
3. Shortint 1 byte -128 127
4. Byte 1 byte 0 255
5. Integer 2 byte -32768 32767
6. Word 2 byte 0 65535
7. Longint 4 byte -2147483648 2147483647
8. Real 6 byte 2.9E-39 1.7E+38
9. Single 4 byte 1.5E-45 3.4E+38

10. Double 8 byte 5.0E-324 1.7E+308
11. Extended 10 byte 3.4E-4932 1.1E+4932
12. Comp 8 byte -9.2E-18 9.2E+18
Trong đó 7 ki u đ u g i là ki u đ m đ c (ordinal type), còn các ki u sau làể ầ ọ ể ế ượ ể
không đ m đ c.ế ượ
b. M t S Phép Toán Trên Các Ki uộ ố ể
i. Các phép toán trên ki u sể ố
Các phép toán này r t g n gũi v i chúng ta, do chúng ta s d ng chúng h ngấ ầ ớ ử ụ ằ
ngày trong đ i s ng.ờ ố
Phép
toán
Ý nghĩa Ki u đ i sể ố ố
Ki u trể ả
về
Ví dụ

L y đ i sấ ố ố
S nguyên, số ố
th cự
Gi ng đ i số ố ố
Đ i s c a 2 là -2ố ố ủ
+
C ngộ
S nguyên, số ố
th cự
Gi ng đ i số ố ố
10 + 9  19

Trừ
S nguyên, số ố

th cự
Gi ng đ i số ố ố
10 - 9  1
*
Nhân
S nguyên, số ố
th cự
Gi ng đ i số ố ố
10*9  90
/
Chia
S nguyên, số ố S th cố ự
10 / 4  2.5
Trang 13
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
th cự
Div
Chia l y ph n nguyênấ ầ
S nguyênố S nguyênố
10 div 3  3
Mod
Chia l y ph n dấ ầ ư
S nguyênố S nguyênố
10 mod 3  1
ii. M t S Hàm Sộ ố ố
D i đây là m t s hàm đ c Pascal thi t k s n. Ng i s d ng có th g iướ ộ ố ượ ế ế ẵ ườ ử ụ ể ọ
và s d ng chúng ử ụ mà không c n ph i khai báo unit qua câu khai báo USES.ầ ả
3
Hàm Ý nghĩa Ki u đ i sể ố ố
Ki u trể ả

về
Ví dụ
ABS(x) Tr tuy t đ i xị ệ ố
S nguyên, s th cố ố ự
Gi ng đ iố ố
số
Abs(-2)  2
SQR(x) Bình ph ng xươ
S nguyên, s th cố ố ự
Gi ng đ iố ố
số
Sqr(2)  4
SQRT(x) Căn b c hai xậ
S nguyên, s th cố ố ự S th cố ự
Sqrt(9)  3
EXP(x) Hàm e
x
S nguyên, s th cố ố ự S th cố ự
Exp(3) 
3
e
LN(x) Hàm
log
x
e
S nguyên, s th cố ố ự S th cố ự
Ln(2) 
2
log
e

SIN(x)
Hàm l ng giácượ S nguyên, s th cố ố ự S th cố ự
Sin(PI)  0
COS(x)
Hàm l ng giácượ S nguyên, s th cố ố ự S th cố ự
Cos(PI)  1
ARCTAN(x)
Hàm l ng giácượ S nguyên, s th cố ố ự S th cố ự
Arctan(1) 
4
π
SUCC(x)
Succ(x)  x + 1
S nguyênố S nguyênố
PRED(x)
Pred(x)  x −1
S nguyênố S nguyênố
ROUND(x)
Làm tròn S th cố ự S nguyênố
Round(8.6)  9
TRUNC(x)
Làm tròn S th cố ự S nguyênố
Trunc(8.6)  8
ORD(x)
L y mã ASCIIấ Ký tự S nguyênố
Ord(‘a’)  97
CHR(x)
ký t ự  mã
ASCII
S nguyênố Ký tự

Chr(65)  ‘A’
ODD(x)
Ki m ch n lể ẳ ẽ S nguyênố Logic
Odd(5)  True
iii. Các phép toán logic
Các phép toán logic, toán h ng c a nó ph i là m t ki u Boolean. Toán h ngạ ủ ả ộ ể ạ
cũng nh các k t qu c a phép toán ch nh n 1 trong 2 giá tr : ho c là TRUE ho c làư ế ả ủ ỉ ậ ị ặ ặ
FALSE (không có giá tr khác).ị
Các toán t logic tác đ ng lên ki u Boolean, cho k t qu là ki u Boolean ANDử ộ ể ế ả ể
(và), OR (ho c), XOR, NOT (ph đ nh). Sau đây là b ng chân tr c a các toán t này.ặ ủ ị ả ị ủ ử
3
Th t ra chúng thu c v Unit SYSTEM.TPUậ ộ ề
Toán h ngạ
X
Toán h ngạ
Y
X OR Y X AND Y X XOR Y NOT X
FALSE FALSE FALSE FALSE FALSE TRUE
FALSE TRUE TRUE FALSE TRUE TRUE
TRUE FALSE TRUE FALSE TRUE FALSE
TRUE TRUE TRUE TRUE FALSE FALSE
Trang 14
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Các phép toán lôgic còn áp d ng đ c cho ki u s nguyên, trên c s bi u di n nhụ ượ ể ố ơ ở ể ễ ị
phân c a s nguyên đó. Ví d xét hai s nguyên X và Y l n l t b ng 10 và 22, thu c ki uủ ố ụ ố ầ ượ ằ ộ ể
byte. Bi u di n nh phân c a X là 0000 1010 và c a Y là 0001 0110. Khi đó phép toán đ cể ễ ị ủ ủ ượ
th c hi n theo th t t ng bit nh sau:ự ệ ứ ự ừ ư
X 0 0 0 0 1 0 1 0
Y 0 0 0 1 0 1 1 0
X AND Y 0 0 0 0 0 0 1 0

V y (10 AND 22) cho k t qu là 2ậ ế ả
X 0 0 0 0 1 0 1 0
Y 0 0 0 1 0 1 1 0
X OR Y 0 0 0 1 1 1 1 0
V y (10 OR 22) cho k t qu là 30ậ ế ả
X 0 0 0 0 1 0 1 0
Y 0 0 0 1 0 1 1 0
X XOR Y 0 0 0 1 1 1 0 0
V y (10 XOR 22) cho k t qu là 28ậ ế ả
Còn có hai phép toán bit n a là SHIFT LEFT và SHIFT RIGHT, l n l t đ c kíữ ầ ượ ượ
hi u là SHL và SHR. Phép toán SHL làm đ y các bit lên m t s v trí v bên trái và thêmệ ẩ ộ ố ị ề
các giá tr 0 vào các bit t n cùng bên ph i. Cú pháp:ị ậ ả
<Bi u th c nguyên> SHL <s bit>ể ứ ố
Ví d :ụ
X 0 0 0 0 1 0 1 0
X SHL 1 0 0 0 1 0 1 0 0 {Đ y v bên trái 1 bit}ẩ ề
X SHL 2 0 0 1 0 1 0 0 0 {Đ y v bên trái 2 bit}ẩ ề
V y (10 SHL 1) cho k t qu 20ậ ế ả
(10 SHL 2) cho k t qu 40ế ả
Th c hi n t ng t đ i v i phép toán SHRự ệ ươ ự ố ớ
II. CÂU L NHỆ
1. Khái Ni m V M t Câu L nhệ ề ộ ệ
- M t câu l nh ộ ệ đ nơ xác đ nh m t công vi c mà ch ng trình ph i th c hi n đị ộ ệ ươ ả ự ệ ể
x lý các d li u đã đ c mô t và khai báo. Các câu l nh đ c phân cách b iử ữ ệ ượ ả ệ ượ ở
d u ; (ch m ph y). D u ; có tác d ng ngăn cách gi a các câu l nh, nó khôngấ ấ ẩ ấ ụ ữ ệ
thu c vào câu l nh.ộ ệ
Ví d :ụ
CLRSCR; {Xóa màn hình}
Writeln(‘Nhap vao day mot so nguyen:’); {Thông báo nh p li u}ậ ệ
Trang 15

T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Readln(SoNguyen); {Ch nh p li u}ờ ậ ệ
Writeln(‘Binh phuong cua no la: ’,SoNguyen*SoNguyen); {K t xu t}ế ấ
- Câu l nh h p thànhệ ợ : N u trong ch ng trình có nhi u câu l nh liên ti p c n đ cế ươ ề ệ ế ầ ượ
x lí và xem nh m t câu l nh đ n chúng ta c n bao nó gi a hai t khóa BEGIN vàử ư ộ ệ ơ ầ ữ ừ
END;
- Câu l nh có c u trúcệ ấ : Bao g m c u trúc r nhánh, c u trúc đi u ki n ch n l a, c uồ ấ ẽ ấ ề ệ ọ ự ấ
trúc l p. ặ M i câu l nh có c u trúc xác đ nh m t câu l nh t ng đ ng m t câuỗ ệ ấ ị ộ ệ ươ ươ ộ
l nh đ n.ệ ơ Trong câu l nh có c u trúc có th ch a nhi u câu l nh h p thành.ệ ấ ể ứ ề ệ ợ
Ví dụ:

….
Writeln(‘Cho biet so tuoi:’);
Câu l nh đ n.ệ ơ
Readln(Tuoi);
Câu l nh đ nệ ơ
IF (Tuoi<4) THEN
Câu l nh có c u trúc, xem nh m t câu l nh đ n.ệ ấ ư ộ ệ ơ
Writeln(‘Ban con be qua. Chua phuc vu duoc’)
ELSE
Begin
Câu l nh h p thành t hai câu l nh đ nệ ợ ừ ệ ơ
Write(‘ Ban chon mon an nao:’);
Readln(MonAn);
End;
Writeln(‘Xin cho doi it phut!’); Câu l nh đ nệ ơ .

2. M t S L nh Đ nộ ố ệ ơ
a. L nh gánệ
L nh gán dùng đ gán giá tr c a m t bi u th c vào m t bi n. Giá tr bi uệ ể ị ủ ộ ể ứ ộ ế ị ể

th c khi tính xong s đ c gán vào bi n. ứ ẽ ượ ế Phép gán đ c th c hi n theo th t t ph iượ ự ệ ứ ự ừ ả
qua trái. D i đây là cú pháp và ví d v l nh gán.ướ ụ ề ệ
Program LenhGan;
Var x, y, z: Integer;
Begin
x := 1;
Trang 16
Cú pháp: <Tên bi n> := <Bi u th c>ế ể ứ
T i v trí này bi n x có giá tr là 1. Bi n y có ạ ị ế ị ế
giá tr là 2 tr c khi th c hi n phép gán, và có ị ướ ự ệ
giá tr 3 sau khi th c hi n phép gán.ị ự ệ
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
y := 2;
y:=y+x;
z := x + y;
End.
Chú ý
- Khi m t giá tr gán cho bi n, nó s thay th giá tr cũ mà bi n đã l u gi tr cộ ị ế ẽ ế ị ế ư ữ ướ
đó (bi n s nh n giá tr m i).ế ẽ ậ ị ớ
- Trong l nh gán, ệ bi u th c bên ph i và bi u th c bên trái phép gán ph i cùngể ứ ở ả ể ứ ở ả
ki u d li u. N u không s có thông báo l i “Type Mismatch” khi biên d ch ch ngể ữ ệ ế ẽ ỗ ị ươ
trình.
4
b. L nh vi t d li u ra màn hìnhệ ế ữ ệ
Đ ể xu t d li u ra thi t b (m c đ nh là ấ ữ ệ ế ị ặ ị vi t d li u ra màn hình) Pascal có 3ế ữ ệ
m u vi t sau:ẫ ế
· Write(M c1, M c2,…, M cN);ụ ụ ụ
· Writeln(M c1, M c2,…, M cN);ụ ụ ụ
· Writeln;
Trong đó M c1, M c2,…,M cụ ụ ụ N là các m c c n vi t (c n đ a ra màn hình).ụ ầ ế ầ ư

Có th là m t trong các lo i d i đây.ể ộ ạ ướ
· Bi nế Write( i, j );
· Bi u th cể ứ Write( -c / (2*a) );
· H ngằ Write( PI );
· Giá tr ki u vô h ng chu nị ể ướ ẩ Write( 19, 29, True, ’a’ );
· M t chu i văn b nộ ỗ ả Write( ‘How are you?’ );
Th t c Writeln; dùng đ xu ng dòng. L nh Writeln(M c1, M c2,…,M củ ụ ể ố ệ ụ ụ ụ n);
làm vi c đ n gi n là đ t con tr xu ng đ u dòng ti p theo. Do đó l nh này t ngệ ơ ả ặ ỏ ố ầ ế ệ ươ
đ ng v i l nh h p thành: Begin Write(M c1, M c2,…,M cươ ớ ệ ợ ụ ụ ụ n); Writeln; End;
- Vi t ki u s nguyênế ể ố
· Vi t không qui cáchế : Các s nguyên s đ c vi t ra v i s ch đúngố ẽ ượ ế ớ ố ỗ
b ng v i s ch s mà nó c n có.ằ ớ ố ữ ố ầ
Ví d :ụ
Var i: Integer;
Begin
i := 123;
Writeln( i );
Write(-234567);
End.
· Vi t có qui cáchế : Ta b trí s ch c đ nh đ vi t s nguyên, b ng cáchố ố ỗ ố ị ể ế ố ằ
thêm d u hai ch m (ấ ấ :) theo sau là s ch đ vi t. Máy s b trí vi t số ỗ ể ế ẽ ố ế ố
nguyên t ph i sang trái (canh ph i), n u th a s đ tr ng bên trái.ừ ả ả ế ừ ẽ ể ố
Ví d :ụ
Var i: Integer;
4
Th c ra không nh t thi t nh th . M t s tr ng h p g i là ự ấ ế ư ế ộ ố ườ ợ ọ type casting có th x y ra. Trong tr ng h pể ả ườ ợ
trên n u bi n z ki u Real thì bi u th c gán z:=x+y; v n ch p nh n đ c.ế ế ể ể ứ ẫ ấ ậ ượ
Trang 17
K t qu trên màn ế ả
hình

123
-234567
K t qu trên màn ế ả
hình
123
-234567
Z có giá tr là 4 sau khi th c hi n phép gánị ự ệ
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Begin
i := 123;
Writeln( i :10);
Write(-234567:10);
End.
- Vi t ki u s th cế ể ố ự
· Vi t không qui cáchế : S vi t ra s bi u di n theo d ng d u ch mố ế ẽ ể ễ ạ ấ ấ
đ ng. ộ Trong ví d d i đây 2.7000000000E+01 chính là 2.7ụ ướ
*
10
+01
Ví d :ụ
Var i: Real;
Begin
i := 27;
Writeln( i );
Write(3.14);
End.
· Vi t có qui cáchế : Ta b trí s ố ố : s ch c đ nh đ vi t s ố ỗ ố ị ể ế ố : s ch choố ỗ
ph n l (th p phân). Máy s b trí vi t s nguyên t ph i sang tráiầ ẽ ậ ẽ ố ế ố ừ ả
(canh ph i), n u th a s đ tr ng bên trái.ả ế ừ ẽ ể ố
Ví d :ụ

Var i: Real;
Begin
i := 27;
Writeln( i :10:2);
Write(3.14:10:1);
End.
c. L nh đ c d li u t bàn phím ệ ọ ữ ệ ừ
Là l nh gán giá tr cho bi n, giá tr này đ c nh p t bàn phím khi ch yệ ị ế ị ượ ậ ừ ạ
ch ng trình. Có 3 d ng nh sau:ươ ạ ư
· Read(Bi n1, Bi n2,…, Bi nN);ế ế ế
· Readln(Bi n1, Bi n2,…, Bi nN);ế ế ế
· Readln;
Các c m d li u gõ t bàn phím cho các bi n đ c phân bi t v i nhau b ngụ ữ ệ ừ ế ượ ệ ớ ằ
cách gõ phím kho ng tr ng (Space Bar) ít nh t m t l n (ho c Enter). K t thúc vi cả ắ ấ ộ ầ ặ ế ệ
gán b i phím Enter.ở
Read
5
và Readln khác nhau ch là đ i v i Readln sau khi gõ Enter thì con trở ỗ ố ớ ỏ
xu ng dòng ti p theo, còn Read thì không. Nên dùng Readln đ c d li u đ d phânố ế ọ ữ ệ ể ễ
bi t trên màn hình.ệ
Readln; là l nh không đ c gì c , ch ch ta gõ phím Enter. Ng i dùng th ngệ ọ ả ỉ ờ ườ ườ
dùng Readln cu i ch ng trình tr c End. đ khi ch ng trình ch y xong, màn hìnhố ươ ướ ể ươ ạ
5
Nên hi u vi c nh p li u t bàn phím nh sauể ệ ậ ệ ừ ư : M i khi nh p d li u t bàn phím. Ph i k t thúc vi c nh pỗ ậ ữ ệ ừ ả ế ệ ậ
li u b ng phím ENTER. Nh v y d li u s đ c đ a vào máy tính tr c tiên đ n b đ m (buffer bàn phím).ệ ằ ư ậ ữ ệ ẽ ượ ư ướ ế ộ ệ
V y luôn luôn trong b đ m có t i hai thành ph n: D li u và phím ENTER. READLN(Bien) x lí d li u ậ ộ ệ ớ ầ ữ ệ ử ữ ệ và
phím ENTER đ đ a con tr xu ng đ u dòng k ti p. READ(Bien) x lí d li u ể ư ỏ ố ầ ế ế ử ữ ệ mà không x lí phím ENTER.ử
V y sau l nh READ(Bien) trong buffer v n còn phím ENTER. Đi u này gây ra “s c ” khi ngay các câu l nhậ ệ ẫ ề ự ố ệ
sau đó có l nh READLN ho c l nh ch gõ m t phím (READKEY), ch ng trình s “ch y luôn” mà khôngệ ặ ệ ờ ộ ươ ẽ ạ
d ng l i. ừ ạ

Trang 18
K t qu trên màn ế ả
hình
2.7000000000E+01
3.1400000000E+00
K t qu trên màn ế ả
hình
27.00
3.1
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
d ng l i cho ta xem, gõ Enter đ v ch đ so n th o. Nói chung là khi g p l nhừ ạ ể ề ế ộ ạ ả ặ ệ
Readln; thì ch ng trình ng ng l i, đ i ta gõ Enter thì ch ng trình th c thi ti p. Taươ ừ ạ ợ ươ ự ế
th ng ph i k t h p gi a l nh Write và Readln đ vi c nh p li u rõ ràng.ườ ả ế ợ ữ ệ ể ệ ậ ệ
6
6
Ta có th nh p li u mà không c n qua bàn phímể ậ ệ ầ . Tuy nhiên đi u này s đ c nói t i khi sinh viên h c qua dề ẽ ượ ớ ọ ữ
li u ki u File.ệ ể
Trang 19
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Ch ng III: CÁC L NH CÓ C U TRÚCươ Ệ Ấ
I. L NH C U TRÚC R NHÁNHỆ Ấ Ẽ
1. D ng Không Đ y Đạ ầ ủ
N u đi u ki n là đúng thì th c hi n công vi c (ng cế ề ệ ự ệ ệ ượ
l i là đi u ki n sai thì không th c thi công vi c).ạ ề ệ ự ệ
L u đ cú pháp ư ồ (hình bên)
Ví d :ụ
Var a,b: Integer;
Begin
Write( ‘Nh p a: ’); Readln(a);ậ
Write( ‘Nh p b: ‘); Readln(b);ậ

If b <> 0 then
Write( ‘Th ng hai s v a nh p: ’,a/b:5:2);ươ ố ừ ậ
Readln;
End.
2. D ng Đ y Đạ ầ ủ
N u đi u ki n là đúng thì th c hi n ế ề ệ ự ệ công vi cệ
1, ng c l i là đi u ki n sai thì th c thi ượ ạ ề ệ ự công vi c 2ệ .
Chú ý tr c ELSE không có d u ; (ch m ph y).ướ ấ ấ ẩ
Ví d :ụ
Var a,b: Integer;
Begin
Write( ‘Nh p a: ’); Readln(a);ậ
Write( ‘Nh p b: ‘); Readln(b);ậ
If b<>0 then
Write( ‘Th ng hai s v a nh p: ’,a/b:5:2);ươ ố ừ ậ
Else
Write( ‘Không th chia cho 0’ );ể
Readln;
End.
Trang 20
Cú pháp: IF <Đi u ki n> THEN <Công vi c>;ề ệ ệ
ĐK
CV
Sai
Đúng
Cú pháp: IF <Đi u ki n> THEN <Công vi c 1>ề ệ ệ
ELSE <Công vi c 2>;ệ
ĐK
CV1
Sai

Đúng
CV2
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
II. L NH C U TRÚC L A CH NỆ Ấ Ự Ọ
1. D ng Không Đ y Đạ ầ ủ
Ý nghĩa: Tr c h t ki m tra giá tr c a bi n có b ng m t trong các h ng ướ ế ể ị ủ ế ằ ộ ằ 1a,
1b,…, 1x hay không. N u đúng thì th c hi n ế ự ệ công vi c 1ệ , r i k t thúc l nh (th cồ ế ệ ự
hi n ti p các l nh sau END; n u có). N u không, thì ki m tra giá tr c a bi n cóệ ế ệ ế ế ể ị ủ ế
b ng m t trong các h ng ằ ộ ằ 2a, 2b,…, 2x hay không. N u đúng thì th c hi n ế ự ệ công vi cệ
2, r i k t thúc l nh (th c hi n ti p các l nh sau END). N u không thì c ti p t cồ ế ệ ự ệ ế ệ ế ứ ế ụ
ki m tra nh v y. N u giá tr c a bi n không b ng b t c h ng nào t ể ư ậ ế ị ủ ế ằ ấ ứ ằ ừ 1a đ n ế nx thì
câu l nh CASE k t thúc mà không làm gì c .ệ ế ả
Ví d : Vi t ch ng trình nh p vào m t tháng, sau đó in lên màn hình tháng đóụ ế ươ ậ ộ
có bao nhiêu ngày.
Var T: Integer;
Begin
Write( ‘Nh p vào m t tháng: ’); Readln(T);ậ ộ
CASE T OF
1, 3, 5, 7, 8, 10, 12: Write( ‘Tháng có 31 ngày.’);
4, 6, 9, 11: Write( ‘Tháng có 30 ngày.’);
2: Write( ‘Tháng có 28 (nhu n 29ầ ) ngày.’);
End;
Readln;
End.
2. D ng Đ y Đạ ầ ủ
Ý nghĩa: Khác d ng không đ y đ ch n u giá tr c a bi n không b ng b tạ ầ ủ ở ỗ ế ị ủ ế ằ ấ
c h ng nào t ứ ằ ừ 1a đ n ế nx thì câu l nh CASE s th c thi ệ ẽ ự công vi c N+1ệ .
Ví d : Vi t ch ng trình nh p vào m t tháng, sau đó in lên màn hình tháng đóụ ế ươ ậ ộ
có bao nhiêu ngày.
Trang 21

Cú pháp: CASE <bi n> OFế
H ng 1a, 1b,…, 1x: <Công vi c 1>;ằ ệ
H ng 2a, 2b,…, 2x: <Công vi c 2>;ằ ệ

H ng na, nb,…, nx: <Công vi c n>;ằ ệ
END;
Cú pháp: CASE <bi n> OFế
H ng 1a, 1b,…, 1x: <Công vi c 1>;ằ ệ
H ng 2a, 2b,…, 2x: <Công vi c 2>;ằ ệ

H ng na, nb,…, nx: <Công vi c n>;ằ ệ
ELSE
<Công vi c N+1>ệ
END;
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
Var T: Integer;
Begin
Write( ‘Nh p vào m t tháng: ’); Readln(T);ậ ộ
CASE T OF
1, 3, 5, 7, 8, 10, 12: Write( ‘Tháng có 31 ngày.’ );
4, 6, 9, 11: Write( ‘Tháng có 30 ngày.’ );
2: Write( ‘Tháng có 28 (năm nhu n 29ầ ) ngày.’ );
ELSE
Write( ‘Tháng sai. Ph i nh p s t 1 đ n 12.’ );ả ậ ố ừ ế
End;
Readln;
End.
Chú ý: Bi n sau t khoá CASE ph i là bi n đ m đ c.ế ừ ả ế ế ượ
III. CÁC L NH VÒNG L PỆ Ặ
1. L nh L p V i S L n Xác Đ nhệ ặ ớ ố ầ ị

a. D ng 1ạ
Ý nghĩa các b c th c hi n nh sau:ướ ự ệ ư
- B c 1: Ki m tra giá tr đ u có <= (nh h n ho c b ng) giá tr cu i hayướ ể ị ầ ỏ ơ ặ ằ ị ố
không. N u đúng thì gán giá tr đ u cho bi n và th c thi công vi c.ế ị ầ ế ự ệ
- B c 2: Ki m tra giá tr bi n <> (khác) giá tr cu i hay không. N u đúng thìướ ể ị ế ị ố ế
tăng thêm bi n m t đ n v (ế ộ ơ ị bi n:=SUCCế (bi nế )) r i th c hi n công vi c.ồ ự ệ ệ
- L p l i b c 2, cho đ n khi giá tr bi n b ng giá tr cu i thì k t thúc câu l nh.ậ ạ ướ ế ị ế ằ ị ố ế ệ
Chú ý: Bi n sau t khoá FOR ph i là bi n đ m đ c và giá tr đ u ph i <=ế ừ ả ế ế ượ ị ầ ả
giá tr cu i. Trong các l nh c a công vi c ị ố ệ ủ ệ không nên có các l nh làm thay đ i giá trệ ổ ị
c a bi n đ m. ủ ế ế Vòng l p k t thúc, giá tr bi n là giá tr cu i.ặ ế ị ế ị ố
Ví d : Đ in lên màn hình dãy s t 1, 2, 3, …, n ta có th làm nh sau:ụ ể ố ừ ể ư
Var i, n: Integer;
Begin
Write( ‘Nh p vào m t s : ’); Readln(n);ậ ộ ố
Wrtieln( ‘D i đây là dãy s t 1 đ n s b n v a nh p’ );ướ ố ừ ế ố ạ ừ ậ
For i := 1 To n Do
Write(‘ ’ , i);
Readln;
End.
Trang 22
Cú pháp: FOR <bi n>:=<đ u> TO <cu i> DOế ầ ố
<Công vi c>ệ
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
b. D ng 2ạ
Ý nghĩa t ng t nh d ng 1, nh ng sau m i l n l p thì bi n gi m đi m tươ ự ư ạ ư ỗ ầ ặ ế ả ộ
đ n v (ơ ị bi n:=PREDế (bi nế )) .
Ví d : Li t kê các s nguyên d ng là c s c a m t s cho tr c.ụ ệ ố ươ ướ ố ủ ộ ố ướ
Var i, n: Integer;
Begin
Write( ‘Nh p vào m t s : ’); Readln(n);ậ ộ ố

Wrtieln( ‘D i đây li t kê các c s c a s b n v a nh p’ );ướ ệ ướ ố ủ ố ạ ừ ậ
For i := n Downto 1 Do
If n Mod i = 0 Then
Write(‘ ’ , i);
Readln;
End.
M r ng v n đ :ở ộ ấ ề
Không gi ng v i các ngôn ng khác, Pascal không ki m tra (bi n>cu i) trongố ớ ữ ể ế ố
câu l nh FOR … TO … DO đ k t thúc vòng l p mà là ki m tra (bi n=cu i)ệ ể ế ặ ể ế ố
đ th c hi n l n l p cu i cùng. Vì l đó vi c can thi p vào bi n đ m có thể ự ệ ầ ặ ố ẽ ệ ệ ế ế ể
gây ra s c “vòng l p vô t n”. Ví d sau đây cho th y rõ đi u đó:ự ố ặ ậ ụ ấ ề
Program LapVoTan;
USES CRT, DOS;
Var Bien:byte; CtrlBreak: Boolean;
BEGIN
GetCBreak(CtrlBreak);
IF (CtrlBreak=FALSE) THEN CtrlBreak:=not CtrlBreak;
SetCBreak(CtrlBreak);
Writeln(‘ Phai go CTRL-Break moi cham dut d c!’);ượ
For bien:=240 to 250 do
Begin
IF (bien=245) THEN bien:=252;
Writeln(‘Gia tri hien nay cua bien la: ‘, bien,#7);
Delay(100);
End;
END.
Gi i thích:ả
- Th t c GetCBreak(Bien:Boolean) và th t c SetCBreak(Bien:Boolean) thu c Unitủ ụ ủ ụ ộ
DOS và th t c Delay(Num:Word) thu c Unit CRT nên ph i khai báo “USES DOS,ủ ụ ộ ả
CRT;”

- Th t c GetCBreak(CtrlBreak) ki m tra tình tr ng cài đ t CTRL+BREAK hi n t iủ ụ ể ạ ặ ệ ạ
và tr v tình tr ng đó trong bi n CtrlBreak. Th t c SetCBreak(TRUE); kích ho tả ề ạ ế ủ ụ ạ
vi c cho phép gõ CTRL+Break đ ng ng ch ng trình trong m i tình hu ng. ệ ể ư ươ ọ ố
- #7 (Kí t s 7) là mã ASCII làm xu t ra ti ng Beep c a loa bên trong máy.ự ố ấ ế ủ
Trang 23
Cú pháp: FOR <bi n>:=<đ u> DOWNTO <cu i> DOế ầ ố
<Công vi c>ệ
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
- Khi bien (đi u khi n vòng l p) đ t giá tr 245 thì b gán l i thành 252 nên không khiề ể ặ ạ ị ị ạ
nào bien b ng 250 đ Pascal ch m d t vòng l p. Ngay c khi ằ ể ấ ứ ặ ả bien đã duy t qua h tệ ế
ph m vi c a ki u d li u (t c giá tr 255) thì ạ ủ ể ữ ệ ứ ị bien quay lai giá tr 0 … và m i thị ọ ứ
l i ti p t c …tr khi gõ Ctrl - Break.ạ ế ụ ừ
Trang 24
T Tin H c - Tr ng CĐSP B n Treổ ọ ườ ế
2. L nh L p V i S L n L p Không Xác Đ nhệ ặ ớ ố ầ ặ ị
a. D ng 1ạ
Ý nghĩa: Vào l nh s ki m tra ệ ẽ ể đi u ki nề ệ , n u ế đi uề
ki nệ đúng thì th c thi ự công vi cệ , sau đó quay l i ki m traạ ể
đi u ki nề ệ . C ti p t c nh th cho t i khi nào ứ ế ụ ư ế ớ đi u ki nề ệ
sai thì k t thúc.ế
Ví d : Tính ti n g i ngân hàng. Lãi su t hàng thángụ ề ở ấ
là 1.7%, ng i đó g i vào ngân hàng v n ban đ u làườ ở ố ầ
1000000 (1 tri u), c sau m i tháng ti n lãi đ c g p vàoệ ứ ỗ ề ượ ộ
v n và tr thành v n m i đ tính cho tháng sau. H i sau baoố ở ố ớ ể ỏ
lâu ng i đó đ c 1 t đ ng?ườ ượ ỷ ồ
var Ls, Vn, Mm, tam: real;
sothang, i: integer;
Begin
Writeln('CHUONG TINH TINH TIEN GOI NGAN HANG');
Ls := 1.7/100; {Lãi su t 1.7%}ấ

Vn := 1000000; {S v n ban đ u - 1 tri u}ố ố ầ ệ
Mm := 1000000000; {S ti n mong mu n - 1 t }ố ề ố ỷ
sothang := 0;
tam := Vn;
While (tam<Mm) do
begin
tam := tam + Ls*tam;
sothang := sothang + 1;
end;
Writeln('So thang = ' ,sothang);
Writeln('Tien von cong lai la: ',tam:12:2);
readln;
End.
b. D ng 2ạ
Ý nghĩa: Vào l nh s th c thi ệ ẽ ự công vi cệ , sau đó ki m traể
đi u ki nề ệ , n u ế đi u ki nề ệ sai thì ti p t c th c hi n ế ụ ự ệ công vi cệ
sau đó ki m tra ể đi u ki nề ệ . C ti p t c nh th cho t i khi nàoứ ế ụ ư ế ớ
đi u ki nề ệ đúng thì k t thúc.ế
Trang 25
Cú pháp: WHILE <đi u ki n> DOề ệ
<Công vi c>ệ
ĐK
CV
Sai
Đúng
Cú pháp: REPEAT
<Công vi c>ệ
UNTIL <Đi u ki n>ề ệ
ĐK
CV

Sai
Đúng

×