Tải bản đầy đủ (.doc) (205 trang)

ngôn ngữ lập trình pascal

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 (847.7 KB, 205 trang )

PHẦN I. LÝ THUYẾT
BÀI 1. KHÁI QUÁT VỀ NGÔN NGỮ LẬP TRÌNH PASCAL
I/ Turbo Pascal:
1. Nguồn gốc
Pascal là một trong các ngôn ngữ lập trình cấp cao được giáo sư Niklaus
Wirth ở trường 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ữ này là Pascal để tưởng nhớ đến Blaise Pascal, nhà
toán học, triết học nổi tiếng của Pháp ở thế kỉ XVII, người đã sáng chế ra
máy tính cơ khí đầu tiên cho nhân loại.
Ngày nay, Pascal là một trong những ngôn ngữ lập trình bậc cao ưu việt
nhất trong lĩnh vực giảng dạy và lập trình chuyên nghiệp.
2. Tính chất cơ bản:
a) Pascal là một ngôn ngữ có định kiểu rõ ràng :
_ Mọi biến và hằng của kiểu dữ liệu nào chỉ được gán các giá trị của
đúng kiểu dữ liệu đó, không được tự do đem gán cho các giá trị của kiểu dữ
liệu khác.
_ Việc định kiểu một cách chặt chẽ như vậy khiến cho người lập trình
luôn luôn phải có các biểu thức tương thích với nhau về kiểu dữ liệu.
b) Pascal là một ngôn ngữ thể hiện tư duy lập trình có cấu trúc :
_ Dữ liệu được cấu trúc hóa : từ dữ liệu đơn giản hoặc có cấu trúc đơn
giản người lập trình có thể xây dựng các dữ liệu có cấu trúc phức tạp hơn.
_ Mệnh lệnh được cấu trúc hóa : từ các lệnh chuẩn đã 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 khiến
chúng trở thành một ngôn ngữ phức tạp hơn gọi là lệnh hợp thành hay lệnh
ghép.
_ Chương trình được cấu trúc hóa : một chương trình có thể chia thành
các chương trình con tổ chức theo hình cây phân cấp. Mổi chương trình con
nhằm giải quyết một nhiệm vụ xác định cụ thể, điều này giúp cho người lập
trình có thể giải quyết từng phần một, từng khối một và có thể cho nhiều
người tham gia lập trình, mỗi người phụ trách một vài khối.
3. Các phần tử cơ bản của ngôn ngữ Pascal :


Để lập trình được với Turbo Pascal, tối thiểu cần phải có 2 tệp
TURBO.EXE và TURBO.TPL. Ngoài ra còn có các tệp GRAPH.TPU,
*.BGI, *.CHR.
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
1
Khởi động chương trình: chạy tệp Turbo.exe hoặc biểu tượng
TurboPascal trên màn hình nền.
a) Bộ kí tự :
_ Bộ 26 chữ Latin :
Chữ lớn : A, B, C, …, Z
Chữ nhỏ : a, b, c, …, z
_ Kí tự gạch nối : -
_ Bộ chữ số thập phân : 0, 1, 2, …, 9
_ Các kí hiệu toán học : +, -, *, /, +, <, >, ( ), [ ]
b) Từ khóa :
_ Từ khóa chung : Program, Begin, End, Procedure, Function …
_ Từ khóa để khai báo : Const, Var, Type, Array, String, Record …
_ Từ khóa của lệnh lựa chọn : If … Then … Else, Case … Of
_ Từ khóa của của lệnh lặp : For … To … Do, While … Do
_ Từ khóa điều khiển : With, Goto, Exit
_ Từ khoá toán tử : And, Or, Not, In, Div, Mod
c) Tên chuẩn :
Trong Pascal có các tên chuẩn sau đây :
Boolean, Char, Integer, Word, Byte, Real, Text; False, True, Maxint; Abs,
Arctan, Chr, Cos, Sin, Eof, Eoln; Exp, Ln, Odd, Ord; Round, Trunc, Sqr,
Sqrt, Pred, Succ; Dispose, New, Get, Put, Read, Readln; Write,Writeln;
Reset, Rewrite …
d) Danh hiệu tự đặt :
Trong Pascal, để đặt tên cho các biến, hằng, kiểu, chương trình con người ta
dùng các danh hiệu. Danh hiệu của Pascal được bắt đầu bằng một chữ cái,

sau đó là các chữ cái, chữ số, dấu nối.
4. Các bước cơ bản khi lập một chương trình Pascal
- Bước 1: Phân tích bài toán, xác định dữ liệu vào, dữ liệu ra để làm cơ sở
cho việc hình thành giải thuật.
- Bước 2: Xây dựng thuật toán. Dựa vào dữ liệu đầu vào, các giải thiết của
bài toán, các mội liên hệ giữa chúng và những kiến thức liên quan để đưa ra
giải thuật tương ứng.
- Bước 3: Tổ chức dữ liệu và lập chương trình theo thuật toán đã lập ra.
5. Một số thao tác cơ bản khi soạn thảo chương trình Pascal:
F2 : lưu chương trình đang soạn thảo vào đĩa.
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
2
F3 : tạo tệp mới hoặc mở tệp đã có trên đĩa
F8 : dịch và chạy từng câu lệnh trong chương trình
F10 : Vào hệ thống Menu của Pascal
Alt + F3 : đóng tệp đang soạn thảo
Alt + F5 : xem lại kết quả khi chạy chương trình
Alt + stt tệp : dịch chuyển qua lại gữa các tệp đang mở
Alt + X : Thoát khỏi Turbo Pascal
Insert : chuyển đổi qua lại giữa chế độ gõ chèn và gõ đè
Home : đưa con trỏ về đầu dòng
End : đưa con trỏ về cuối dòng
Page Up : đưa con trỏ lên 1 trang màn hình
Page Down : đưa con trỏ xuống 1 trang màn hình
Ctrl + Page Up : đưa con trỏ về đầu văn bản
Ctrl + Page Down: đưa con trỏ về cuối văn bản
Delete : xóa kí tự ngay bên phải con trỏ
Back Space : xóa kí tự bên trái con trỏ
Ctrl + Y : xóa dòng có con trỏ đang đứng
Shift + phím mũi tên ←↑↓→ : chọn khối văn bản

Ctrl + KY : xóa khối văn bản đang chọn
Ctrl + Insert : sao chép khối văn bản đang chọn vào trong bộ nhớ
Shift + Insert : dán khối văn bản từ bộ nhớ ra vị trí con trỏ đang đứng.
* Lưu ý: Các thao tác trên có thể thực hiện bằng chuột và các Menu tương
ứng.
II/ Cấu trúc một chương trình Pascal:
1. Chương trình viết bằng Pascal gồm các phần sau:
Program Ten_chuong_trinh ;
(* Phần khai báo dữ liệu *)
Label …
Const …
Type …
Var …
(* Phần mô tả chương trình con *)
Procedure …
Fuction …
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
3
(* Thân chương trình chính *)
Begin

(* Các lệnh được viết ở đây *)
End
(* Kết thúc chương trình *)
2. Ví dụ:
Program Ve_hinh ;
Var a, x : Integer ;
{ }
Procedure Hinh_chu_nhat ;
Begin

Writeln ('*******') ;
Writeln ('* *') ;
Writeln ('* *') ;
Writeln ('*******') ;
End ;
{ }
BEGIN
Write ('Ve bao nhiêu hinh chu nhat : ') ; Readln (x) ;
a := 0 ;
Repeat
a := a + 1 ;
Hinh_chu_nhat ;
Until a = x ;
END.
3. Giải thích sơ lược từng phần của chương trình:
a) Phần tiêu đề:
Cho biết tên của chương trình
Ví dụ : Program Ve_hinh ;
Phần này luôn được bắt đầu bằng từ khóa Program và chấm dứt bằng
dấu " ; "
Phần tiêu đề có thể không có cũng được.
b) Phần khai báo dữ liệu:
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
4
Khai báo một biến là xác định rõ xem biến đó thuộc kiểu dữ liệu nào.
Một chương trình Pascal thường có các khai báo dữ liệu sau :
Const (* Khai báo hằng *)

Type (* Khai báo kiểu dữ liệu mới *)


Var {Khai báo các biến}
Phần khai báo có thể có hoặc không, tuỳ theo nhu cầu.
Ví dụ : Chương trình trên có các kiểu biến là a, x. Chúng thuộc kiểu dữ
liệu Integer, tức là số nguyên
c) Phần khai báo chương trình con:
Phần này mô tả một nhóm lệnh được đặt tên chung là một chương trình
con để khi thân chương trình chính gọi đến thì cả một nhóm lệnh nào đó
được thi hành.
Ví dụ :
Procedure Hinh_chu_nhat ;
Begin
Writeln (' ******** ') ;
Writeln (' * * ') ;
Writeln (' * * ') ;
Writeln (' ******** ') ;
End ;
Phần này có thể có hoặc không tùy theo nhu cầu.
d) Phần thân chương trình:
Nằm giữa Begin và End, là các lệnh mà chương trình cần thực hiện.
Sau từ End là dấu chấm (.) để báo kết thúc chương trình.
Phần này bắt buộc phải có đối với mọi chương trình.
Ví dụ :
BEGIN
Write (' I like Pascal ') ;
END.
e) Dấu chấm phẩy:
Dấu chấm phẩy (;) được dùng để ngăn cách câu lệnh của Pascal và
không thể thiếu được.
f) Lời giải thích:
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.

5
Các lời giải thích được đặt giữa hai kí hiệu : {} hoặc (* *)
Phần giải thích này là phần trao đổi thông tin giữa người với người,
máy sẽ bỏ qua
Ví dụ :
Var X : Integer ; (* Số hình vuông phải vẽ *)
III/ Dữ liệu và kiểu dữ liệu:
Chúng ta có thể định nghĩa dữ liệu (Data) là tất cả những gì được máy
tính xử lý. Các loại dữ liệu cần tới máy tính xử lý có rất nhiều, tồn tại dưới
nhiều dạng khác nhau về bản chất, về ý nghĩa, không riêng gì về số liệu mà
còn là các kí tự, các mệnh đề logic, thể hiện qua các đối tượng cụ thể cần xử
lý như tiền lương, địa chỉ, tên tuổi, văn bản, tín hiệu Song nếu xét về
phương diện điện tử thì máy tính chỉ hiểu các thông tin được biểu diễn dưới
dạng mã nhị phân.Về phương diện ngôn ngữ bậc cao thì dữ liệu đã được
khái quát hóa với các kiểu dữ liệu. Khi này, ta không cần quan tâm đến biểu
diễn chi tiết trong máy tính của các kiểu dữ liệu.
Một kiểu dữ liệu (Data Type) được định nghĩa với 2 điểm chính :
_ Một tập hợp các giá trị mà một biến thuộc kiểu đó có thể nhận
được.
_ Trên đó xác định một phép toán.
Cần nhớ rằng một biến phải gắn liền với một kiểu dữ liệu và chỉ một
mà thôi. Trong ngôn ngữ Pascal, kiểu dữ liệu có thể rất phức tạp nhưng nói
chung đều được định nghĩa ra từ các kiểu đơn giản nhất, không có cấu trúc.
Kiểu vô hướng (Scalar Type) hay kiểu đơn giản (Simple Type) là
kiểu dữ liệu gồm một tập các giá trị của nó được sắp xếp theo một thứ tự
tuyến tính. Chúng ta sẽ nghiên cứu kĩ hơn về kiểu vô hướng và các kiểu dữ
liệu phức tạp khác. Trong phần tiếp theo, sẽ nói về 5 kiểu dữ liệu vô hướng
đơn giản nhất, đã được định nghĩa sẵn và còn được gọi là kiểu đơn giản
chuẩn (Simple Standar Type).
IV/ Kiểu logic (Boolean):

_ Trước khi đi vào nghiên cứu các kiểu số nguyên và kiểu số thực quen
biết, chúng ta hãy xét khái niệm kiểu Logic ( Boolean ). Trong thực tế chúng
ta thường hay gặp loại đại lượng chỉ có hai giá trị : Đúng hoặc Sai. Ví dụ
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
6
một mệnh đề, một câu hỏi, một phép toán có thể được xem xét xem đúng
hay sai. Ví dụ khi ta viết 3 < 1 thì đây là một mệnh đề có giá trị là Sai.
_ Theo định nghĩa, một giá trị thuộc kiểu logic Boolean là một đại
lượng nhận một trong hai giá trị Logic: TRUE (đúng) hoặc FALSE (sai).
True và False là tên các giá trị đã được định nghĩa sẵn. Kiểu Boolean cũng
đã định nghĩa sẵn quan hệ thứ tự False < True.
_ Các phép toán sau có thể áp dụng cho các giá trị Boolean và cho ta
kết quả cũng là kiểu Boolean.
+ Phép And ( phép "và" logic )
+ Phép Or ( phép "hoặc" logic )
+ Phép Not ( phép "đảo" hay "phủ định" logic )
+ Phép Xor ( phép "hoặc triệt tiêu" ).
Ví dụ1 : False And True = False
Not False = True
_ Chúng ta có thể tóm tắt quy tắc thực hiện phép And và Or như sau :
+ Phép And chỉ cho kết quả là True khi và chỉ khi hai toán hạng đều
là True.
+ Phép Or chỉ cho kết quả là False khi và chỉ khi hai toán hạng đều là
False.
+ Phép Xor luôn luôn cho kết quả là True khi hai toán hạng khác
nhau. Còn nếu hai toán hạng giống nhau, Xor sẽ cho kết quả là False.
* Hai vế của biểu thức so sánh phải cùng kiểu nhau ( trừ kiểu thực và
nguyên ) và chúng có thể là các kiểu Real, Integer, Char, Boolean, Vô hướng
do người sử dụng định nghĩa (sẽ học sau ).
Ví dụ 2 :

3 < 5 cho ta giá trị True
False < True cho ta giá trị True
3.5 > 10 cho ta giá trị False
Cách viết 3 < True là không chấp nhận được vì hai vế của biểu thức
không cùng kiểu cho phép : 3 thuộc kiểu số nguyên, True thuộc kiểu
Boolean
V/ Kiểu số nguyên:
Kiểu số nguyên đã được máy định nghĩa sẵn với từ khóa INTEGER
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
7
Một giá trị kiểu số nguyên là một phần tử của tập các số nguyên mà
ta có thể biểu diễn được trên máy, nghĩa là nó là một tập nhỏ của không gian
các số nguyên chứ không phải tất cả mọi số nguyên đều có thể xử lý trên
máy tính được. Thông thường nhất, các số nguyên được biểu diễn bằng hai
byte (16 bit) nên phạm vi của nó là từ -32768 đến + 32767
Các số nguyên được viết ra bằng các dãy chữ số 0, 1, 2, 9 với chữ
số đầu có thể là dấu dương + hoặc dấu âm -, hoặc không có dấu.
Ví dụ : +234, -32767, -1, 23
Maxint là tên giá trị cực đại cho phép của kiểu nguyên, tức là
Maxint = + 32767.
a) Các phép tính số học đối với số nguyên:
_ Phép cộng và trừ : với kí hiệu là + và - như thường lệ.
_ Phép nhân : được kí hiệu bằng dấu *.
_ Phép chia : được kí hiệu bằng dấu /.
_ Phép chia lấy phần nguyên được thực hiện với từ khóa Div.
Vú dụ: 14 Div 4 cho giá trị bằng 3
_ Phép chia lấy số dư của 2 số nguyên, còn gọi là Modun, được
thực hiện với từ khóa Mod
Vú dụ: 14 Mod 4 cho giá trị bằng 2
_ Hàm Boolean Odd(n) cho giá trị True nếu n là một số lẻ, False

nếu n là số chẳn.
* Khi thực hiện các phép tính số học đối với số nguyên, cần hết sức
thận trọng xem các phép toán đó có cho kết quả vượt ra khỏi phạm vi biểu
diễn số nguyên của máy không.
Ví dụ : 32000 + 800 - 2000 = 29200
song máy tính sẽ xử lý sai vì lúc làm phép cộng giữa 32000 với 800 đã cho
ra kết quả trung gian là 32800, vượt quá giới hạn 32767 của máy. Máy có
thể phát hiện và báo lỗi trường hợp quá giới hạn này.
b) Các phép tính quan hệ đối với số nguyên:
Các số nguyên có thể so sánh với nhau và với số thực qua các
phép toán quan hệ như đã nói ở mục trước. Kết quả của phép toán quan hệ là
kiểu Boolean tức là có giá trị True (Đúng) hoặc False (Sai).
Ví dụ : Biểu thức 3 < 5 cho ta giá trị True
c) Mô tả số nguyên với Byte, Word, LongInt, ShortInt :
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
8
Bên cạnh cách biểu diễn số nguyên như ở trên (biểu diễn bằng 2
byte), Pascal còn có thêm một kiểu đơn giản chuẩn làkiểu biểu diễn số
nguyên bằng một byte. Phạm vi biểu diễn số nguyên khi này là từ 0 đến 255
và được gọi là kiểu Byte.
Ngoài ra, Turbo Pascal từ Version 4.0 trở đi và một số Pascal khác
đã đưa thêm vào các định nghĩa kiểu số nguyên mới với các từ khoá Word,
ShortInt (Short Integer), LongInt (Long Integer).
Kiểu Phạm vi biểu diễn Kích thước
(byte)
Byte 0 255 1
ShortInt -128 127 1
Integer -32768 32767 2
Word 0 65535 2
LongInt -2147483648

3147483647
4
VI/ Kiểu số thực:
1. Kiểu số thực (Real):
Tương tự như định nghĩa kiểu số nguyên, kiểu số thực là tập hợp các
số thực có thể biểu diễn được trong máy tính và được máy định nghĩa sẵn
với từ khóa REAL.
Các phép toán cộng (+), trừ (-), nhân(*), chia (/) cũng như các phép toán
quan hệ (=, < >, <, >, > =, <=) đều có thể áp dụng cho các toán hạng là số
thực lẫn toán hạng là số nguyên.
* Lưu ý: không tồn tại các phép toán Div, Mod cho kiểu số thực.
Trong máy tính, các số thực được biểu diễn và được viết dưới 2 dạng :
dạng bình thường và dạng có phần số mũ.
+ Dạng viết thập phân bình thường như :
3.14 3.0 -13.2 - 0.002
* Lưu ý: trong cách viết số thực của Việt Nam, của Pháp , người ta
dùng dấu phẩy. Nhưng trong cách viết số thực của Anh, Mĩ, người ta dùng
dấu chấm
+ Dạng viết có số mũ :
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
9
Gồm 2 phần : phần định trị và phần mũ viết sau chữ E để biểu diễn số
mũ cơ số 10.
Vú dụ: 623.12345 = 6.2312345E + 02
Do giá trị số thực có thể biểu diễn dưới dạng có dấu phẩy (hay dấu
chấm) di động được nên người ta còn gọi đây là cách biểu diễn dấu phẩy
động để phân biệt với cách biểu diễn số dưới dạng dấu phẩy tĩnh là cách
biểu diển trong đó dấu phẩy cố định.
2. Mở rộng việc mô tả và khai báo số thực :
Kiểu Phạm vi biểu diễn Kích thước

(byte)
Real 2.9E-39 1.7E+38 6
Single 1.5E-45 3.4E+38 4
Double 5.0E-324 1.7E+308 8
Extended 1.9E-4951
1.1E+4932
10
VII/ Một số hàm số học chuẩn:
Các hàm sau đây được định nghĩa sẵn và được sử dụng với đối số là các
số thực hoặc các số nguyên :
+ Abs(x) : cho ta giá trị tuyệt đối của toán hạng x : | x |. Kiểu kết quả
cùng kiểu với đối số, nghĩa là nếu x là thực thì Abs(x) cũng là số thực, nếu x
là số nguyên thì Abs(x) cũng là số nguyên.
+ Sqr(x) : Cho giá trị bình phương của x. Kiểu kết quả cùng kiểu với
số x.
Các hàm sau áp dụng cho đối số nguyên hoặc thực nhưng kết quả thì
luôn luôn là kiểu thực :
- Sin(x), Cos(x), Arctan(x) : là các hàm lượng giác bình thường.
- Sqrt(x) : tính căn bậc hai của x.
- Succ(x) : đối số nguyên n, cho số nguyên tiếp theo n, tức là n + 1.
- Pred(x) : đối số nguyên n, cho số nguyên trước n, tức là n - 1.
- Odd(n) : đối số nguyên n, True nếu n lẻ, False nếu n chẵn.
Việc chuyển một số thực sang số nguyên được thực hiện bởi 2 hàm chuẩn :
hàm làm tròn và hàm cắt :
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
10
+ Hàm cắt Trunc(x) cho ta một số nguyên là phần nguyên của x, tức là cắt
bỏ đi phần lẻ thập phân của x.Ví dụ : Trunc (3.146) = 3.
+ Hàm làm tròn Round(x) cho ta một số nguyên của x bằng cách qui tròn
phần lẻ thập phân của x. Nói cách khác, Round(x) cho ta số nguyên gần với

x nhất. Ví dụ : Round (56.678) = 57.
Chúng ta có thể viết định nghĩa của Round qua Trunc như sau :
+ Nếu x >= 0 thì Round(x) = Trunc(x + 0.5)
+ Nếu x < 0 thì Round(x) = Trunc(x - 0.5)
VIII/ Kiểu kí tự (char):
Máy tính điện tử không chỉ có khả năng xử lý các dữ liệu bằng số
nguyên, số thực mà nó còn có khả năng xử lý các dữ liệu kiểu kí tự như khi
ta soạn thảo văn bản, quản lý hồ sơ.
Các kí tự là tất cả các chữ viết mà ta thường dùng như các chữ cái a,
b, c , các chữ số từ 0 đến 9, các dấu phân đoạn như ;, !, Kiểu kí tự được
định nghĩa trong Pascal với từ khóa Char.
Một giá trị kiểu kí tự là một phần tử của một tập hữu hạn các kí tự
được sắp xếp có thứ tự. Tất cả các máy tính đều dùng tập kí tự như vậy để
trao đổi thông tin qua các thiết bị vào ra. Có nhiều cách sắp xếp bộ chữ khác
nhau và không tồn tại bộ chữ chuẩn cho tất cả các máy tính.
Tuy vậy một bộ mã các kí tự được dùng rất phổ biến để trao đổi các
thông tin giữa các thiết bị nhất là trên máy vi tính, đó là bộ mã kí tự ASCII
(xem ở phần Phụ lục).
Trong bảng mã ASCII, các kí tự từ 0 đến 31 là các kí tự điều khiển,
không in ra được, dùng để điều khiển các thiết bị ngoại vi, điều khiển các
thủ tục trao đổi thông tin. Ví dụ khi thiết bị nhận kí tự số 7 (Bel), máy sẽ ra
một tiếng chuông. Kí tự số 27 (Esc) cũng thường dùng để thoát khỏi các tình
huống, để nhận biết các mã đặc biệt khác như điều khiển máy in bằng dãy kí
tự bắt đầu là Esc
Phần còn lại trong bảng mã ACSII bố trí toàn bộ các chữ cái A, B,
C , các chữ số từ 0 đến 9, các dấu chấm câu, các kí tự đặc biệt Ví dụ khi
nhận kí tự số 50 máy sẽ hiện lên màn hình chữ số 2.
Riêng kí tự 127 (Del) lại được dùng làm kí tự điều khiển xóa. Nếu
bạn dùng Editor , phím Del trên màn hình chính là phím tạo ra mã số 127 để
xóa một kí tự trên màn hình.

Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
11
Có 2 hàm chuẩn là Ord và Chr cho phép thiết lập tương quan giữa
bộ mã kí tự và một tập con các số tự nhiên
+ Ord( ) - Hàm Ord('c') cho ta số thứ tự của kí tự 'c' trong bảng mã.
+ Chr( ) - Hàm Chr(n) cho ta kí tự có số thứ tự là n.
Hàm chuẩn Pred (trước) và Succ (tiếp theo sau) có thể áp dụng cho
đối số là kí tự, kết quả là kí tự. Giả sử Ch là một kí tự nào đó, vậy thì :
+ Hàm chuẩn Pred(Ch) cho ta một kí tự nằm trước kí tự Ch trong
bảng mã kí tự : Pred(Ch) = Chr(Ord(Ch) - 1)
+ Hàm chuẩn Succ(Ch) cho ta một kí tự nằm sau kí tự Ch trong
bảng mã kí tự : Succ(Ch) = Chr(Ord(Ch) + 1)
BÀI 2. KHAI BÁO HẰNG BIẾN BIỂU THỨC CÂU LỆNH
I/ Khai báo hằng biến:
1. Khai báo hằng:
Hằng là các đại lượng không thay đổi giá trị. Có các loại hằng số
(nguyên và thực), hằng kí tự, hằng Boolean. Khai báo hằng : các hằng (hằng
số, hằng kítự, hằng Boolean) được khai báo bằng một tên đặt trong phần
khai báo Const ở đầu chương trình.
Cách viết : Tên_hằng := Giá_trị_của_hằng ;
Một dòng khai báo hằng được kết thúc bằng dấu chấm phẩy. Tên hằng
được viết theo quy tắc viết tên đã trình bày ở chương trước.
Ví dụ :
Const
B = True ; (* hằng Boolean *)
A = 5 ; (* hằng số nguyên *)
Pi = 3.14 ; (* hằng số thực *)
CCC = ‘Z’ ; (* hằng kí tự *)
* Các hằng giữ nguyên giá trị của nó trong suốt chương trình.
2. Khai báo biến:

Biến (variance) là đại lượng có thể thay đổi giá trị. Tên biến của
chương trình là tên của ô nhớ cất giữ dữ liệu. Khác với hằng, biến có thể
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
12
thay đổi đựoc giá trị của nó. Các biến được khai báo bằng cách đặt tên các
biến vào phần khai báo biến ở đầu chương trình, sau từ khóa Var.
Cách viết : Tên_biến : Kiểu_dữ_liệu_của_biến ;
Dấu hai chấm bắt buộc phải có để ngăn cách hai phần của khai báo
biến. Dấu chấm phẩy kết thúc một dòng khai báo.
Nhiều biến có cùng kiểu có thể đựoc khai báo với nhau bằng cách viết
tên các biến đặt cách nhau qua dấu phẩy (,) như các biến M23, A25, AAA ở
ví dụ dưới đây :
Var
M23, A25, AAA : Real ;
My_name : String [ 25 ] ;
Y : Boolean ;
X : Integer ;
II/ Định nghĩa kiểu dữ liệu mới
a) Chúng ta đã làm quen với khái niệm kiểu dữ liệu ở trên. Đối với
các kiểu dữ liệu cơ sở (real, Integer, Byte, Char, Boolean) đã được Pascal
định nghĩa sẵn nên khi khai báo biến ta có thể dùng trực tiếp các kiểu dữ
kiệu này ngay. Còn các kiểu dữ liệu khác thì ta phải định nghĩa ra, mô tả một
cách tường minh trong phần khai báo của chương trình sau từ khóa Type.
Sau đó sẽ khai báo các biến thuộc kiểu dữ liệu mới mô tả. Chúng ta sẽ dần
dần tìm hiểu sau này.
b) Cách khai báo
Type
Tên kiểu = Mô tả xây dựng kiểu ;
Ví dụ:
Type

SoNguyen = integer ;
Ten = String[11] ;
Tuoi = 1 100 ;
Color = (Red, Blue, Green)
Thu = (ChuNhat, ThuHai, ThuBa, ThuTu, ThuNam, ThuSau,
ThuBay) ;
Và khi đã khai báo kiểu thì ta có quyền sủ dụng để khai báo biến.
Ví dụ:
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
13
Var
I, J : SoNguyen ;
Khach_hang : Ten ;
T : Tuoi ;
Mau : Color ;
Ngay_hoc : Thu ;
III/ Biểu thức:
Biểu thức (Expression) là một công thức tính toán để có một giá trị
theo một quy tắc toán học nào đó. Một biểu thức bao gồm : toán tử
(operator) và toán hạng (operand). Toán tử đựoc viết ra bằng dấu phép
toán. Toán hạng có thể là hằng, là hàm, là biến. Các phần tử của biểu thức có
thể được phân thành số hạng, thừa số, biểu thức đơn giản.
Ví dụ:3 + PI * Sin ( x) ;
Trong ví dụ này, các toán tử (các phép toán) la phép cộng (+) và phép
nhân (*). Các toán hạng là hằng số 3 và PI, là hàm Sin với đối số là biến X.
* Biểu thức số học là biểu thức có giá trị bằng số (là Integer, Byte, Real)
* Biểu thức logic Bun ( Boolean ) là biểu thức có giá trị là True hoặc
False.
* Một biểu thức chứa các toán tử quan hệ ( <>, <, >, <=, >=, = ) đựoc gọi
là một biểu thức Boolean đơn giản hay một biểu thức quan hệ. Các toán

hạng trong biểu thức quan hệ có thể là các số nguyên, số thực, kí tự và
chúng phải tương thích nhau về kiểu.
Ví dụ minh họa về trình tự tính toán :
7 + 3 * 5 = 7 + ( 3 * 5 ) = 22
5 / 2 * 3 = ( 5 / 2 ) * 3 = 7.5
18 Div 4 * 4 = ( 18 Div 4 ) * 4 = 16
2 * ( 3 + 5 ) = 2 * 8 = 16
Ví dụ: Để giải phương trình bậc hai ta có thể phát biểu điều kiện về
các hệ số A, B, C như sau :
Nếu ( (A = 0) And (B = 0) And (C = 0) ) = True thì bài
toán không có lời giải. hoặc có thể viết gọn hơn :
Nếu (A = 0) And (B = 0) And (C = 0) thì bài toán không có lời
giải.
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
14
IV/ Câu lệnh
1. Câu lệnh ( Instruction, Statement ):
Bên cạnh phần mô tả dữ liệu là phần là phấn lệnh (intruction) của
chương trình. Phần này xác định các công việc mà chương trình phảo 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ách nhau
bằng dấu chấm phẩy. Câu lệnh chia ra hai loại :
_ Câu lệnh đơn giản : là những câu lệnh không chứa các lệnh khác.
Đó là phép gán, lời gọi chương trình con loại Procedure ( thủ tục ) bao hàm
rất nhiều quá trình xử lý khác nhau như :
+ Vào dữ liệu : Read, Readln
+ Ra dữ liệu : Write, Writeln
+ Xử lý tập tin : Reset, Rewrite, Assign
_ Câu lệnh có cấu trúc : là khối lệnh, lệnh thử và rẽ nhánh, lệnh lặp.
Lệnh hợp thành hay lệnh ghép bao gồm nhiều lệnh đơn giản và có khi
có cả lệnh ghép bên trong. Các lệnh này được thực hiện theo thứ tự như đã

viết trong lệnh ghép Nó bắt đầu bằng từ Begin và kết thúc bằng từ End.
Mỗi một câu lệnh của Pascal bao giờ cũng được đặt cách nhau bằng
dấu chấm phẩy (;). Dấu chấm phẩy chỉ có tác dụng ngăn cách các câu lệnh
chứ không phải là dấu kết thúc câu lệnh và nó không phụ thuộc vào câu
lệnh.Pascal không bắt buộc viết mỗi câu lệnh một dòng. Vấn đề là chúng ta
phải trình bày chương trình sau cho đẹp, rõ ràng, thể hiện được thuật toán
Ví dụ : chúng ta có thể viết liền nhau trên một dòng chương trình :
X := 2 ; Y := 3 < 5 * 8 ; Z := Pi ;
hoặc viết thành từng dòng :
X := 2 ;
Y := 3 < 5 * 8 ;
Z := Pi ;
* Phép gán :
Phép gán được dùng để gán giá trị của một biểu thức, một hằng vào
một biến.
Phép gán được kí hiệu là := .
Biến := Biểu_thức ;
Vế trái của phép gán chỉ có thể là biến mà thôi.
Ví du :
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
15
X := 6 ; (* có nghĩa là biến X nhận giá trị bằng 6 *)
Y := True ;(* có nghĩa là biến Y nhận giá trị True *)
X := X + 3 ; (* có nghĩa là giá trị của X sẽ bằng giá trị của X
cộng với 3. Ví dụ nếu lúc đầu X có giá trị là 6 thì sau khi thực hiện câu lệnh
này, X sẽ có giá trị là 9. Xin bạn nhớ lại cho X chỉ là tên của một ô nhớ. X +
3 đựoc hiểu là lấy nội dung của ô nhớ X đem cộng với 3, sau đó lại để vào ô
nhớ X *)
* Tính tương thích của các kiểu dữ liệu
Nguyên tắc chung khi dùng phép gán thì kiểu của biến và kiểu của

biểu thức ở vế phải phải giống nhau.
Ví dụ : Một biến nguyên I không thể nhận một giá trị kí tự được.
I := 'A' ; là điều không thể chấp nhận được.
* Ngoại lệ :
Tuy một biến nguyên không thể nhận giá trị là một số thực nhưng một
số thực thì lại có thể nhận một giá trị nguyên.
X := 6.0 ; là sai vì X là biến Integer, 6.0 là giá trị thực.
M23 := 6 ; là đúng vì M23 là biến thực, nó có thể nhận trực tiếp giá trị
nguyên. M23 sẽ chứa số 6 dưới dạng số thực 6.00000000E + 00.
2. Lệnh ghép (Compound Statement):
Một nhóm lệnh đơn giản được đặt giữa hai chữ Begin , End sẽ tạo thành
một câu lệnh hợp thành hay lệnh ghép với mẫu viết như sau :
Begin
Câu lệnh 1 ;
Câu lệnh 2 ;

Câu lệnh N ;
End ;
Một lệnh ghép hiểu theo một nghĩa nào đó giống như việc ta đặt cặp
dấu ngoặc đơn vào một biểu thức. Cấu trúc Begin End của câu lệnh ghép sẽ
cho ta thấy rõ hơn tính có cấu trúc của ngôn ngữ Pascal : nhóm các lệnh
thành từng khối. Một khối lệnh chỉ có một đầu vào (qua chữ Begin) và một
đầu ra (qua chữ End).
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
16
BÀI 3. THỦ TỤC RA VÀO DỮ LIỆU
I/Viết dữ liệu ra màn hình
Màn hình là một thiết bị ra thông dụng nhất hiện nay. Để viết dữ liệu
ra màn hình, Pascal có 3 mẫu viết như sau :
Write ( Item1, Item2, , ItemN ) ;

Writeln ( Item1, Item2, , ItemN ) ; (* Write Line *)
Writeln ;
Trong đó, ( Item1, Item2, , ItemN ) ; (* Write Line *) là các mục
cần viết ra có thể là một hoặc những loại sau :
_ Biến Write ( A ) ;
_ Hàm Write ( Sin(x) ) ;
_ Biểu thức Write ( A * A + B - 2 + Cos(x) ) ;
_ Hằng Writeln ( Pi ) ;
_ Các giá trị có kiểu vô hướng chuẩn : Writeln ( Pi ) ;
_ Một số kiểu có cấu trúc như mảng, xâu kí tự.
Cả 3 mẫu viết trên đều bắt đầu viết từ vị trí hiện tại của con trỏ màn
hình. Tuy nhiên, sự khác nhau của 3 mẫu lệnh trên là vị trí của con trỏ màn
hình sau khi kết thúc lệnh.
Trong mẫu viết Write ( Item1, Item2, , ItemN ) ; sau khi viết ra các
giá của Item1, Item2, , ItemN trên cùng một dòng màn hính, con trỏ sẽ
xuống đầu dòng tiếp theo.
Còn thủ tục Writeln ( Item1, Item2, , ItemN ) ; sau khi viết ra các giá
trị của Item1, Item2, , ItemN, con trỏ sẽ không chuyển xuống đầu dòng
tiếp theo mà được đặt ở vị trí sau giá trị của ItemN.
Thủ tục Writeln ; ( không có tham số ) sẽ chỉ làm một động tác đơn
giản là đặt con trỏ xuống đầu dòng tiếp theo.
Vì vậy :
Writeln ( Item1, Item2, , ItemN ) ;
tương tự với một lệnh ghép :
Write ( Item1, Item2, , ItemN ) ;
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
17
Writeln ;
CÁC CÁCH VIẾT CÓ QUY CÁCH :
* Viết ra kiểu số nguyên :

Writeln (' 12345678 ') ;
I := 123 ;
Writeln ( I : 8 ) ;
Writeln ( -25671 : 8 ) ;
sẽ viết ra màn hình :
12345678
123
-25671
* Viết ra kiểu số thực :
Writeln ( 73.123456789 : 12 : 6 ) ;
Writeln ( R : 12 : 6 ) ;
Writeln ( 3.14 : 12 : 6 ) ;
sẽ viết ra màn hình :
____73.123456
___123.456000 (* 12 chỗ cho cả số *)
_____3.140000 (* 6 chỗ cho phần thập phân *)
Bạn cần lưu ý rằng lệnh Write và Writeln có thể viết ra kiểu Boolean :
Var
OK : Boolean ;
BEGIN
OK := 3 < 5 ;
Write ( OK : 7 ) ;
END.
Kết quả cho ra :
___TRUE
II/ Đọc dữ liệu vào bộ nhớ
Phép gán(:=) là lệnh cơ bản, đơn giản nhất để gán giá trị cho một biến
ỡ trong chương trình. Tuy nhiên để gán giá trị cho một biến thông qua thiết
bị vào(bàn phím), ta phải dùng thủ tục Read và Readln(Read Line) với các
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.

18
tham số ở trong ngoặc đơn là các biến(chỉ có thể là các biến mà thôi, không
giống như các tham số của thủ tục Write và Writeln).
Read(Biến1, Biến2, , biếnN) ;
Readln(Biến1, Biến2, , biếnN) ;
và Readln ; (* không có tham số *)
Khi này ta sẽ gõ vào bàn phím giá trị của biến cần đọc và phải ấn thêm
nút Enter là nút đặc biệt trên bàn phím có ý nghĩa là " chấm xuống dòng "
hoặc còn được gọi là nút Return để báo cho máy thực hiện thủ tục Read và
Readln.
Các cụm dữ liệu gõ vào bàn phím tương ứng với Biến1, Biến2, , BiếnN
được ngăn cách nhau với các dấu cách với số lượng dấu cách không quan
trọng(song ít nhất là cách một lần).
Ví dụ :
Var
X, Y : Integer ;
A, B : Real ;
BEGIN
Readln(X, Y, A, B) ;

END.
Giả sử ta muốn gán cho X giá trị 5, Y giá trị 33, A giá trị 1.25, và B là
85.2 trên cùng một dòng của màn hình thì ta phải gõ vào bàn phím theo trình
tự sau(số lượng dấu cách không quan trọng) :
5 33 85.2 33
Giữa các con số là các dấu cách được dùng để ngăn cách các số liệu
khi đọc,
Trong khi đọc, thủ tục Read và Readln còn kiểm tra xem các dữ liệu gõ
vào có tương thích với kiểu dữ liệu của biến khi khai báo hay không, nếu
không máy sẽ báo lỗi

Thủ tục Readln ; là thủ tục không có tham số, máy tính chờ và chỉ chờ
ta ấn phím Enter. Readln không tham số được sử dụng khi bạn muốn chương
trình dừng lại ở một chỗ nào đó(ví dụ để kiểm tra hoạt động của chương
trình) cho đến khi bạn ấn phím Enter.
Xét ví dụ sau :
Var
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
19
I : Integer ;
BEGIN
I := 1* 2 * 3 * 4 * 5 ;
Writeln(I) ;
END.
Bạn muốn xem kết quả của phép tính trên ! Dù bạn có ấn Ctrl_F9 từ
giờ cho tới sáng cũng không thể thực hiện được điều đó. Vì kết quả của
chương trình hiện ra và biến đi rất nhanh nên " mắt thường " của bạn không
thể nào thấy được. Tuy nhiên nếu ta chèn thêm dòng lệnh “Readln ;” vào
sau “Writeln(I) ;” thì mọi chuyện sẽ đổi khác !
BÀI 4: CÂU LỆNH ĐIỀU KIỆN IF…, CASE…
I/Câu điều kiện if…then…else
Hai mẫu câu lệnh như sau :
IF <Bieu_thuc_Boolean> THEN <viec_1> ;
IF <Bieu_thuc_Boolean> THEN <viec_1> ELSE
<viec_2> ;
Theo lệnh này, nếu <Bieu_thuc_Boolean> nhận giá trị True thì
máy sẽ thực hiện <viec_1>, còn nếu không thì hoặc kết thúc ( tức không
làm gì cả ) đối với mẫu câu thứ nhất, hoặc máy sẽ đi thực hiện lệnh khác tức
là <viec_2> trong mẫu câu lệnh thứ 2. Như vậy mẫu thứ nhất thực ra là mẫu
thứ hai thu gọn với <viec_2> là rỗng.
Ví dụ1 : để thực hiện phép chia hai số a, b với điều kiện b < > 0, ta

viết :
If b < > 0 Then t := a / b
Else Writeln (' Mẫu số bằng 0 ! Không chia được ! ') ;
Ví dụ 2 : tìm giá trị min và max của hai số a, b.
If a < b Then
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
20
Begin
Max := b ;
Min := a ;
End
Else
Begin
Max := a ;
Min := b ;
End ;
Chú ý : trước Else không bao giờ có dấu chấm phẩy.
Trong ví dụ này, ta thấy luôn vai trò của lệnh hợp thành ( lệnh ghép ).
Giả sử ta viết một lệnh như sau :
If a < b Then
Begin
Max := b ;
Min := a ;
End ;
Nghĩa là nếu a < b ta phải thực hiện lần lượt hai lệnh là Max := b và
Min := a ( được đặt giữa Begin và End ). Nếu không có Begin và End như
sau :
If a < b Then
Max := b ;
Min := a ;

thì ta phải hiểu là lệnh max := b được thực hiện chỉ khi a < b còn lệnh
min := a được thực hiện trong mọi trường hợp.
Cũng trong ví dụ này ta thấy cách viết có cấu trúc nhô ra nhô vào để bố
trí chương trình Pascal cho đẹp và thể hiện đươcï thuật toán của chương
trình. Đây là một tiêu chuẩn cần phải có cho một chương trình viết bằng
Pascal. Chữ Begin và End tương ứng bao giờ cũng cùng ở một cột. Tất nhiên
ta có thể viết tùy ý như sau nhưng không đẹp:
If a < b Then Begin max := b ;
Min := a ;
End Else Begin
Max := a ;
Min := b ;
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
21
End ;
Lưu ý : cách viết lệnh If như sau là hoàn toàn đúng :
If <Bieu_thuc_Boolean_1> Then If <Bieu_thuc_Boolean_2>
Then <viec_1> Else <viec_2> ;
song rất dễ dẫn đến nhầm lẫn không biết <viec_2> tương ứng với
Else của If nào. Vì vậy nên sửa lại cho rõ ràng như sau :
If <Bieu_thuc_Boolean_1 > Then
Begin
If < Bieu_thuc_Boolean_2 > Then < viec_1> Else < viec_2 >
End ;

II/ Câu lệnh lựa chọn case…of
Hai mẫu câu lệnh If ở bài trước chỉ thực hiện rẽ hai nhánh tương ứng
với 2 giá trị của biểu thức Boolean. Việc thử và chọn một trong nhiều nhánh
sẽ được thực hiện với câu lệnh Case như sau :
Mẫu 1 : Mẫu 2 :

Case <Bieu_thuc> Of Case <Bieu_thuc> Of
Gia_tri_1 : <viec_1> ; Gia_tri_1 : < viec_1> ;
Gia_tri_2 : <viec_2> ; Gia_tri_2 : < viec_2> ;

Gia_tri_n : <viec_n> ; Gia_tri_n : <viec_n>
End ; Else <viec_n+1> ;
End ;
Trong đó <Bieu_thuc> không còn chỉ là biểu thức Boolean như trong
lệnh If … Nó có thể là có các kiểu vô hướng đếm được (kể cả kiểu liệt
kê, kiểu khoảng con sẽ học sau nhưng không được là kiểu Real ) nên nó có
thể có nhiều giá trị khác nhau. Mẫu 2 sẽ thực hiện <viec_n+1> ( được viết
sau từ khóa Else ) nếu như < Bieu_thuc> không rơi vào các giá trị 1, giá trị
2,… giá trị n kể trên.
Cần chú ý rằng câu lệnh Case bao giờ cũng kết thúc bằng từ khóa
End.
Ví dụ 1: Với I là một biến nguyên
Case I + 1 Of
1 : writeln (' So 1 ') ;
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
22
2 : writeln (' So 2 ') ;
3 : writeln (' So 3 ') ;
4 : writeln (' So 4 ') ;
End ;
Ví dụ 2: Tính số ngày của một tháng ;
Var so_ngay, thang, nam : integer ;
BEGIN
Write ('Thang : ') ; readln ( thang) ;
Write ('Nam : ') ; readln ( nam) ;
Case thang Of

4, 6, 9, 11 : so_ngay := 30 ;
2 : case nam of
0 : so_ngay := 29 ;
1, 2, 3 : songay := 28 ;
end
Else so_ngay := 31 ;
End ;
Writeln (' So ngay cua thang ', thang,' nam ', nam,' la ',
so_ngay) ;
END.
Đến đây các bạn có thể hỏi liệu bài toán Giải phương trình bậc 2 có thể
dùng Case cho ba trường hợp của biến Delta không ? Điều này không thể
được vì biến Delta thuộc kiểu Real, kiểu không đếm được.

Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
23
BÀI 5. VÒNG LẶP FOR, WHILE, REPEAT
I/ Vòng lặp với số lần biết trước For…to…do
Trước hết chúng ta xét một ví dụ sau.
Ví dụ1: giả sử ta phải viết ra trên màn hình các số từ 0 đến 24, mỗi số
chiếm một dòng :
0
1
2


23
24
Việc này có thể thực hiện bằng 25 lệnh writeln như sau :
Writeln (0) ;

Writeln (1) ;
…………….
Writeln (24) ;
Cách viết này rõ ràng và tẻ nhạt trong khi nó có quy luật. Chúng ta
có thể thay thế bằng cách dùng một lệnh Writeln ( I ) trong đó I là một
biến nguyên bất kỳ nhận giá trị chạy từ 0 đến 24 như sau :
For I := 0 To 24 Do Writeln ( I ) ;
Vòng lặp For này có nghĩa là cho I chạy từ 0 ( giá trị đầu ) tới 24
( giá trị cuối ), với mỗi giá trị của I, máy sẽ thực hiện công việc viết
sau chữ Do, ở đây là viết ra giá trị của I.
Cụ thể hơn, vòng lặp For này được thực hiện từng bước như sau :
1. Đầu tiên I lấy giá trị 0 là giá trị ban đầu. I nhỏ hơn giá trị cuôí là
24 nên lệnh Writeln ( I ) được thực hiện, viết ra giá trị 0.
2. Sau đó, I nhận giá trị tiếp theo, tức là I := succ ( I ) = I + 1. Lúc
này I = 1 và vẫn nhỏ hơn giá trị cuối là 24 nên lệnh writeln ( I ) được
thực hiện : viết ra giá trị của I ( bằng 1 ) ra màn hình.
3. Chương trình lại quay vòng về điểm 2 cho đến khi nào I = 25, lớn
hơn giá trị cuối (24) thì dừng.
Mẫu viết tổng quát của ví dụ trên là :
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
24
For Bien_dieu_khien := Gia_tri_dau To Gia_tri_cuoi
Do <viec> ;
Nếu ta muốn viết các số từ 24 đến 0 ta lại viết như sau :
For I := 24 Downto 0 Do Writeln ( I ) ;
Với mẫu viết tổng quát như sau :
For Bien_dieu_khien := Gia_tri_dau Downto
Gia_tri_cuoi Do <viec> ;
Trong mẫu 2, máy tính sẽ làm theo chiều ngược lại, tức là theo chiều
giảm của biến điều khiển : đầu tiên biến điều khiển nhận giá trị ban

đầu và sau đó thực hiện chu kì lặp như sau : chừng nào biến điều khiển
còn lớn hơn hoặc bằng giá trị cuối thì thực hiện <viec>, sau mỗi lần
thực hiện, biến điều khiển nhận giá trị trước nó, tức là :
Bien_đieu_khien := Pred (Bien_đieu_khien) ;
Ví dụ 2: tính tổng các số nguyên từ 50 đến 500 ta viết như sau :
Var I : integer ;
Sum : real ;
BEGIN
Sum := 0 ;
For I := 50 To 500 Do Sum := Sum + I ;
(* hoặc For I := 500 Downto 50 Do Sum := Sum +
I ; *)
Writeln ( ' Tong = ', Sum ) ;
END.
Ví dụ 3: viết hai dòng các chữ cái hoa và nhỏ từ 'A' đến 'Z' ra màn
hình với quy cách mỗi chữ chiếm 2 chỗ
USES CRT ; {đơn vị chương trình CRT để dùng thủ tục
Clrscr}
Var ch : char ;
BEGIN
Clrscr ;
For ch := 'A' To 'Z' Do Write (ch : 2) ;
Writeln ;
For ch := 'a' To 'z' Do Write (ch : 2) ;
Writeln ;
Võ Văn Dũng - Ngôn ngữ lập trình Pascal.
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×