Chương trình pascal gồm những phần cơ bản nào

Pascal l� t�n của một trong c�c ng�n ngữ lập tr�nh cấp cao th�ng dụng. Ng�n ngữ lập tr�nh Pascal đượ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 1970. Niklaus Wirth đặt t�n cho ng�n ngữ n�y l� Pascal để tưởng nhớ đến nh� To�n học v� Triết học Ph�p ở thế kỷ 17 l� Blaise Pascal, người đ� ph�t minh ra một m�y t�nh cơ kh� đơn giản đầu ti�n của con người.

Ng�n ngữ Pascal được d�ng hiện nay c� nhiều điểm kh�c biệt với chuẩn Pascal nguy�n thủy của Gi�o sư Wirth. T�y theo quốc gia hoặc c�ng ty đ� ph�t triển cho ra đời c�c chương tr�nh bi�n dịch ng�n ngữ Pascal như:

� ISO PASCAL (International Standards Organization) của Ch�u �u

� ANSI PASCAL (American National Standards Institute) của Mỹ

� TURBO PASCAL của h�ng BORLAND (Mỹ)

� IBM PASCAL của h�ng Microsoft (Mỹ)

� v.v...

�ến nay, ng�n ngữ Pascal đ� ph�t triển đến phi�n bản Turbo Pascal Version 7. C�c diễn giải v� v� dụ trong gi�o tr�nh n�y chủ yếu sử dụng chương tr�nh Turbo Pascal 5.5 - 7.0, hiện đang được sử dụng rộng r�i ở Việt Nam.

II. C�C PHẦN TỬ CƠ BẢN CỦA NG�N NGỮ PASCAL

1. Bộ k� tự

- Bộ 26 chữ Latin:

Chữ in: A, B, C, ..., X, Y, Z

Chữ thường: a, b, c, ..., x, y, z

- Bộ chữ số thập ph�n: 0, 1, 2, 3, ..., 8, 9

- K� tự gạch nối dưới: _

- C�c k� hiệu to�n học: +, -, *, /, =, <, >, (, ), [, }

L� c�c từ ri�ng của Pascal, c� ngữ nghĩa đ� được x�c định, kh�ng được d�ng n� v�o c�c việc kh�c hoặc đặt t�n mới tr�ng với c�c từ kh�a.

- Từ kh�a chung:

PROGRAM, BEGIN, END, PROCEDURE, FUNCTION

- Từ kh�a để khai b�o:

CONST, VAR, TYPE, ARRAY, STRING, RECORD, SET, FILE, LABEL

- Từ kh�a của lệnh lựa chọn:

IF ... THEN ... ELSE, CASE ... OF

- Từ kh�a của lệnh lặp:

FOR... TO... DO, FOR... DOWNTO... DO, WHILE... DO, REPEAT... UNTIL

- Từ kh�a điều khiển:

WITH, GOTO, EXIT, HALT

- Từ kh�a to�n tử:

AND, OR, NOT, IN, DIV, MOD

T�n chuẩn l� t�n đ� được định nghĩa sẵn trong Pascal, nhưng người ta c� thể định nghĩa lại nếu muốn. Trong Pascal ta 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, Pred, Succ

Dispose, New, Get, Put, Read, Readln,

Write, Writeln

Reset, Rewrite

4. Danh hiệu tự đặt

Trong Pascal để đặt t�n cho c�c biến, hằng, kiểu, chương tr�nh con ta d�ng c�c danh hiệu (identifier). Danh hiệu của Pascal được bắt đầu bằng một chữ c�i, sau đ� c� thể l� c�c chữ c�i, chữ số hay l� dấu nối, kh�ng được c� khoảng trắng v� độ d�i tối đa cho ph�p l� 127.

V� dụ 6.1: Sau đ�y l� c�c danh hiệu: x; S1; Delta; PT_bac_2

Pascal kh�ng ph�n biệt chữ thường v� chữ hoa trong một danh hiệu.

V� dụ 6.2: aa v� AA l� một; XyZ_aBc v� xyZ_AbC l� một

Khi viết chương tr�nh ta n�n đặt c�c danh hiệu sao cho ch�ng n�i l�n c�c � nghĩa của đối tượng m� ch�ng biểu thị. �iều n�y gi�p ch�ng ta viết chương tr�nh dễ d�ng v� người kh�c cũng dễ hiểu nội dung chương tr�nh.

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.1: Sơ đồ cấu tr�c chương tr�nh Pascal

V� dụ 6.3:

PROGRAM Hello; { D�ng ti�u đề }

USES Crt; { Lời gọi sử dụng c�c đơn vị chương tr�nh }

VAR Name : string; { Khai b�o biến }

PROCEDURE Input; { C� thể c� nhiều Procedure v� Function }

Begin

ClrScr; { Lệnh x�a m�n h�nh }

Write(' �Hello ! What is your name ?... �');Readln(Name);

End;

BEGIN { Th�n chương tr�nh ch�nh }

Input;

Writeln (' �Welcome to you, �, Name') ;

Writeln (' �Today, we study PASCAL PROGRAMMING ... �');

Readln;

End.

Một chương tr�nh Pascal c� c�c phần:

* Phần ti�u đề:

Phần n�y bắt đầu bằng từ kh�a Program rồi tiếp đến l� t�n của chương tr�nh v� chấm dứt bằng dấu chấm phẩy (;)

T�n chương tr�nh phải được đặt theo đ�ng qui c�ch của danh hiệu tự đặt. Phần ti�u đề c� hay kh�ng cũng được.

* Phần khai b�o dữ liệu:

Trước khi sử dụng biến n�o phải khai b�o biến đ�, nghĩa l� x�c định r� xem biến đ� thuộc kiểu dữ liệu n�o. Một chương tr�nh Pascal c� thể c� một số hoặc tất cả c�c khai b�o dữ liệu sau:

CONST : khai b�o hằng

...

TYPE : định nghĩa kiểu dữ liệu mới

...

VAR : khai b�o c�c biến

...

* 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ả nh�m lệnh đ� được thi h�nh.

Phần n�y c� thể c� hoặc kh�ng t�y theo nhu cầu.

* Phần th�n chương tr�nh:

Phần th�n chương tr�nh l� phần quan trọng nhất v� bắt buộc phải c�, phần n�y lu�n nằm giữa 2 từ kho� l� BEGIN v� END. Ở giữa l� lệnh m� c�c chương tr�nh ch�nh cần thực hiện. Sau từ kh�a END l� dấu chấm (.) để b�o kết th�c chương tr�nh.

* Dấu chấm phẩy (;):

Dấu ; d�ng để ngăn c�ch c�c c�u lệnh của Pascal v� kh�ng thể thiếu được.

* Lời ch� th�ch:

Lời ch� th�ch d�ng để ch� giải cho người sử dụng chương tr�nh nhớ nhằm trao đổi th�ng tin giữa người v� người, m�y t�nh sẽ kh�ng để � đến lời ch� th�ch n�y. Lời ch� th�ch nằm giữa k� hiệu: { } hoặc (* *)

IV. C�C KIỂU DỮ LIỆU CƠ SỞ: INTEGER, REAL, BOOLEAN, CHAR

Dữ liệu (data) l� tất cả những g� m� m�y t�nh phải xử l�.

Theo Niklaus Wirth:

CHƯƠNG TR�NH = THUẬT TO�N + CẤU TR�C DỮ LIỆU

Một kiểu dữ liệu (data type) l� một qui định về h�nh dạng, cấu tr�c v� gi� trị của dữ liệu cũng như c�ch biểu diễn v� c�ch xử l� dữ liệu.

Trong Pascal c�c kiểu dữ liệu gồm c�c loại sau:

- Kiểu đơn giản (Simple type): bao gồm kiểu số nguy�n (Integer), kiểu số thực (Real), kiểu logic (Boolean), kiểu k� tự (Char).

- Kiểu c� cấu tr�c (Structure type): bao gồm mảng (Array), chuỗi (String), bản ghi (Record), tập hợp (Set), tập tin (File).

- Kiểu chỉ điểm (pointer):

Trong chương n�y, ch�ng ta chỉ x�t c�c kiểu dữ liệu đơn giản.

  1. Kiểu số nguy�n thuộc Z chứa trong Turbo Pascal

�ược định nghĩa với c�c từ kh�a sau:

TỪ KH�A

SỐ BYTE

PHẠM VI

BYTE

1

0 .. 255

SHORTINT

1

- 128 .. 127

INTEGER

2

- 32768 .. + 32767

WORD

2

0 .. 65535

LONGINT

4

- 2147483648 .. 2147483647

  1. C�c ph�p to�n số học đối với số nguy�n

K� HIỆU

� NGHĨA

+

Cộng

-

Trừ

*

Nh�n

/

Chia cho kết quả l� số thực

DIV

Chia lấy phần nguy�n

MOD

Chia lấy phần dư

SUCC (n)

n + 1

PRED (n)

n - 1

ODD (n)

TRUE nếu n lẻ

v� FALSE nếu n chẵn

Ở Turbo Pascal, kiểu số thực thuộc tập hợp R chứa trong 6 bytes, được định nghĩa với từ kh�a REAL: R =([2.9 x 10-39 , 1.7 x 1038 ]

Hay viết theo dạng số khoa học: R = ( [2.9E-39, 1.7E38]

Số thực c� thể viết theo kiểu c� dấu chấm thập ph�n b�nh thường hoặc viết theo kiểu thập ph�n c� phần mũ v� phần định trị.

C�c ph�p to�n số học cơ bản +, -, * , /dĩ nhi�n được sử dụng trong kiểu real.

Bảng dưới đ�y l� c�c h�m số học cho kiểu số thực:

K� HIỆU

� NGHĨA

ABS (x)

|x| : lấy gi� trị tuyệt đối của số x

SQR (x)

x2 : lấy b�nh phương trị số x

SQRT(x)

Chương trình pascal gồm những phần cơ bản nào
: l��y c�n b��c 2 cu�a tr� s�� x

SIN(x)

sin (x) : lấy sin của x

COS (x)

cos (x) : lấy cos của x

ARCTAN (x)

arctang (x)

LN (x)

ln x : lấy logarit nepe của trị x (e ( 2.71828)

EXP (x)

ex

TRUNC (x)

lấy phần nguy�n lớn nhất kh�ng vượt qu� trị số x

ROUND (x)

l�m tr�n gi� trị của x, lấy số nguy�n gần x nhất

Một dữ liệu thuộc kiểu BOOLEAN l� một đại lượng được chứa trong 1 byte ở Turbo Pascal v� chỉ c� thể nhận được một trong hai g�a trị logic l� TRUE (đ�ng) v� FALSE (sai).

Qui ước: TRUE > FALSE

C�c ph�p to�n tr�n kiểu Boolean:

A

B

NOT A

A AND B

A OR B

A XOR B

TRUE

TRUE

FALSE

TRUE

TRUE

FALSE

TRUE

FALSE

FALSE

FALSE

TRUE

TRUE

FALSE

TRUE

TRUE

FALSE

TRUE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

Nhận x�t:

� Ph�p AND (v�) chỉ cho kết quả l� TRUE khi cả 2 to�n hạng l� TRUE

� Ph�p OR (hoặc) chỉ cho kết quả l� FALSE khi cả 2 to�n hạng l� FALSE

� Ph�p XOR (hoặc triệt ti�u) lu�n cho kết quả l� TRUE khi cả 2 to�n hạng l� kh�c nhau v� ngược lại.

C�c ph�p to�n quan hệ cho kết quả kiểu Boolean:

K� HIỆU

� NGHĨA

< >

kh�c nhau

\=

bằng nhau

\>

lớn hơn

<

nhỏ hơn

\> =

lớn hơn hoặc bằng

< =

nhỏ hơn hoặc bằng

Tất cả c�c dữ liệu viết ở dạng chữ k� tự được khai b�o bởi từ kh�a CHAR.

Một k� tự được viết trong hai dấu nh�y đơn ( ). �ể tiện trao đổi th�ng tin cần phải sắp xếp, đ�nh số c�c k� tự, mỗi c�ch sắp xếp như vậy gọi l� bảng m�. Bảng m� th�ng dụng hiện nay l� bảng m� ASCII (xem lại chương 3).

�ể thực hiện c�c ph�p to�n số học v� so s�nh, ta dựa v�o gi� trị số thứ tự m� ASCII của từng k� tự, chẳng hạn: 'A' < 'a' v� số thứ tự m� ASCII tương ứng l� 65 v� 97.

Trong Turbo Pascal mỗi k� tự được chứa trong 1 byte.

C�c h�m chuẩn li�n quan đến kiểu k� tự:

K� HIỆU

� NGHĨA

ORD(x)

Cho số thứ tự của k� tự x trong bảng m�

CHR(n) hay

n

Cho k� tự c� số thứ tự l� n

PRED(x)

Cho k� tự đứng trước x

SUCC(x)

Cho k� tự đứng sau x

  1. C�C KHAI B�O HẰNG, BIẾN, KIỂU, BIỂU THỨC, ...
  1. �ịnh nghĩa

Hằng l� một đại lượng c� gi� trị kh�ng đổi trong qu� tr�nh chạy chương tr�nh. Ta d�ng t�n hằng để chương tr�nh được r� r�ng v� dễ sửa đổi.

  1. C�ch khai b�o

CONST

= ;

V� dụ 6.4: CONST

Siso = 100;

X = �xxx �;

  1. �ịnh nghĩa

Biến l� một cấu tr�c ghi nhớ c� t�n (đ� l� t�n biến hay danh hiệu của biến).

Biến ghi nhớ một dữ liệu n�o đ� gọi l� gi� trị (value) của biến. Gi� trị của biến c� thể được biến đổi trong thời gian sử dụng biến.

Sự truy xuất của biến nghĩa l� đọc gi� trị hay thay đổi gi� trị của biến được thực hiện th�ng qua t�n biến.

V� dụ 6.5: Readln (x) ;

Writeln (x) ;

x := 9 ;

Biến l� một cấu tr�c ghi nhớ dữ liệu v� vậy n� phải tu�n theo qui định của kiểu dữ liệu : một biến phải thuộc một kiểu dữ liệu nhất định.

  1. C�ch khai b�o

VAR

: ;

V� dụ 6.6: VAR

a : Real ;

b, c : Integer ;

TEN : String [20]

X : Boolean ;

Chon : Char ;

Cần khai b�o c�c biến trước khi sử dụng ch�ng trong chương tr�nh. Khai b�o một biến l� khai b�o sự tồn tại của biến đ� v� cho biết n� thuộc kiểu g�.

  1. �ịnh nghĩa

Ngo�i c�c kiểu đ� định sẵn, Pascal c�n cho ph�p ta định nghĩa c�c kiểu dữ liệu kh�c từ c�c kiểu căn bản theo qui tắc x�y dựng của Pascal.

  1. C�ch khai b�o

TYPE

= ;

V� dụ 6.7:

TYPE

SoNguyen = Integer ;

Diem = Real;

Tuoi = 1 .. 100 ;

Color = (Red, Blue, Green) ;

Thu = (Sun, Mon, Tue, Wed, Thu, Fri, Sat) ;

v� khi đ� khai b�o kiểu g� th� ta c� quyền sử dụng để khai b�o biến như ở v� dụ sau:

V� dụ 6.8: VAR

i, j : SoNguyen ;

Dtb : Diem ;

T : tuoi ;

Mau : Color ;

Ngay_hoc : Thu;

  1. �ịnh nghĩa

Một biểu thức l� một c�ng thức t�nh to�n bao gồm c�c ph�p to�n, hằng, biến, h�m v� c�c dấu ngoặc.

V� dụ 6.9: 5 + A * SQRT(B) / SIN(X)

(A AND B) OR C

  1. Thứ tự ưu ti�n

Khi t�nh gi� trị của một biểu thức, ng�n ngữ Pascal qui ước thứ tự ưu ti�n của c�c ph�p to�n từ cao đến thấp như sau:

Mức ưu ti�n: C�c ph�p to�n:

1. Biểu thức trong ngoặc đơn ( )

  1. Ph�p gọi h�m

3. Not, -

4. *, /, DIV, MOD, AND

5. +, -, OR, XOR

6. \=, <>, <=, >=, <, >, IN

V� dụ 6.10: (4+5)/3 + 6 - (sin((/2)+3)*2 \= (9)/3 + 6 - (1+3)*2 = 3 + 6 - 8 = 1

  1. Qui ước t�nh thứ tự ưu ti�n

Khi t�nh một biểu thức c� 3 qui tắc về thứ tự ưu ti�n như sau:

Qui tắc 1 : C�c ph�p to�n n�o c� ưu ti�n cao hơn sẽ được t�nh trước.

Qui tắc 2 : Trong c�c ph�p to�n c� c�ng thứ tự ưu ti�n th� sự t�nh to�n sẽ được thực hiện từ tr�i sang phải.

Qui tắc 3 : Phần trong ngoặc từ trong ra ngo�i được t�nh to�n để trở th�nh một gi� trị đơn.

  1. Kiểu của biểu thức

L� kiểu của kết quả sau khi t�nh biểu thức.

V� dụ 6.11: Biểu thức sau được gọi l� biểu thức Boolean:

not (('a'>'c') and ('c'>'C')) or ('B'='b') c� gi� trị TRUE

VI. C�C THỦ TỤC XUẤT/NHẬP

  1. Trong một chương tr�nh Pascal, sau phần m� tả dữ liệu l� phần m� tả c�c c�u lệnh. C�c c�u lệnh c� nhiệm vụ x�c định c�c c�ng việc m� m�y t�nh phải thực hiện để xử l� c�c dữ liệu đ� được m� tả v� khai b�o.
  1. C�u lệnh được chia th�nh c�u lệnh đơn giản v� c�u lệnh c� cấu tr�c.

(xem phần b�i đọc th�m)

- C�u lệnh đơn giản

+ V�o dữ liệu : Read, Readln

+ Ra dữ liệu : Write, Writeln

+ Lệnh g�n : :=

+ Lời gọi chương tr�nh con (gọi trực tiếp t�n của chương tr�nh con)

+ Xử l� tập tin : RESET, REWRITE, ASSIGN ...

- C�u lệnh c� cấu tr�c

+ Lệnh gh�p : BEGIN .. END

+ Lệnh chọn : IF .. THEN .. ELSE

CASE .. OF .

+ Lệnh lặp : FOR .. TO .. DO

REPEAT .. UNTIL

WHILE .. DO

  1. C�c c�u lệnh phải được ngăn c�ch với nhau bởi dấu chấm phẩy ( ; ) v� C�c c�u lệnh c� thể viết tr�n một d�ng hay nhiều d�ng.
  1. Lệnh g�n (Assignment statement)

Một trong c�c lệnh đơn giản v� cơ bản nhất của Pascal l� lệnh g�n. Mục đ�ch của lệnh n�y l� g�n cho một biến đ� khai b�o một gi� trị n�o đ� c�ng kiểu với biến.

* C�ch viết:

:= ;

V� dụ 6.12: Khi đ� khai b�o

VAR

c : Char ;

i,j : Integer ;

x, y : Real ;

p, q : Boolean ;

th� ta c� thể c� c�c ph�p g�n sau :

c := �A� ;

c := Chr(90) ;

i := (35+7)*2 mod 4 ;

i := i div 7 ;

x := 0.5 ;

x := i + 1 ;

q := i > 2*j +1 ;

q := not p ;

* � nghĩa:

Biến v� c�c ph�t biểu g�n l� c�c kh�i niệm quan trọng của một họ c�c ng�n ngữ lập tr�nh m� Pascal l� một đại diện ti�u biểu. Ch�ng phản �nh c�ch thức hoạt động của m�y t�nh hiện nay, đ� l�:

- Lưu trữ c�c gi� trị kh�c nhau v�o một � nhớ tại những thời điểm kh�c nhau.

- Một qu� tr�nh t�nh to�n c� thể coi như l� một qu� tr�nh l�m thay đổi gi� trị của một (hay một số) � nhớ n�o đ�, cho đến khi đạt được gi� trị cần t�m.

  1. Lệnh gh�p (Compound statement)

Một nh�m c�u lệnh đơn được đặt giữa 2 chữ BEGIN v� END sẽ tạo th�nh một c�u lệnh gh�p.

Trong Pascal ta c� thể đặt c�c lệnh gh�p con trong c�c lệnh gh�p lớn hơn bao ngo�i của n� v� c� thể hiểu tương tự như cấu tr�c ngoặc đơn ( ) trong c�c biểu thức to�n học.

* Sơ đồ:

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.2: Sơ đồ cấu tr�c BEGIN .. END;

Ở h�nh minh họa tr�n ta dễ thấy c�c nh�m lệnh th�nh từng khối (block). Một khối lệnh bắt đầu bằng BEGIN v� chấm dứt ở END; . Trong một khối lệnh cũng c� thể c� c�c khối lệnh con nằm trong n�. Một khối chương tr�nh thường được d�ng để nh�m từ 2 lệnh trở l�n để tạo th�nh một của c�c lệnh c� cấu tr�c, ta c� thể gặp kh�i niệm n�y trong nhiều v� dụ ở c�c phần sau.

  1. Lệnh IF .. THEN .. v� Lệnh IF .. THEN .. ELSE..

* Lưu đồ diễn tả c�c lệnh v� � nghĩa c�ch viết:

Chương trình pascal gồm những phần cơ bản nào
Chương trình pascal gồm những phần cơ bản nào

H�nh 6. 3: Lệnh IF <�iều kiện> THEN ;

Chương trình pascal gồm những phần cơ bản nào
Chương trình pascal gồm những phần cơ bản nào

H�nh 6. 4: Lệnh IF .. THEN .. ELSE ..;

Ch� �:

- �iều kiện l� một biểu thức Boolean.

- Nếu sau THEN hoặc ELSE c� nhiều hơn một lệnh th� ta phải g�i lại trong BEGIN .. END;

- To�n bộ lệnh IF .. THEN .. ELSE xem như 1 lệnh đơn.

V� dụ 6.13: T�nh căn bậc 2 của một số

PROGRAM Tinh_can_bac_hai ;

VAR

a : Real ;

BEGIN

Write ( Nhập số a = ) ;

Readln(a) ;

IF a < 0 THEN

Write (' a : 10 : 2 , l� số �m n�n kh�ng lấy căn được !!! ')

ELSE

Writeln (' Căn số bậc 2 của , a : 2 : 2 , la , SQRT(a) :10 : 3 ');

Writeln (' Nhấn ENTER để tho�t ... ') ;

Readln; {Dừng m�n h�nh để xem kết quả}

END.

Ghi ch�:

Trong chương tr�nh tr�n, a ta thấy c� dạng a :m :n với � nghĩa m l� số định khoảng m� phần nguy�n của a sẽ chiếm chỗ v� n l� khoảng cho số trị phần thập ph�n của a.

  1. Lệnh CASE .. OF

* Lưu đồ biểu diễn:

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.5: Lưu đồ lệnh CASE .. OF

* C�ch viết, � nghĩa:

C�ch viết � nghĩa

CASE OF X�t gi� trị của biểu thức chọn

GT1 : C�ng việc 1 ; Nếu c� gi� trị 1 (GT1) th� thi h�nh C�ng việc 1

....................... ...................................

GTi : C�ng việc i ; Nếu c� gi� trị i (GT i) th� thi h�nh C�ng việc i

....................... ....................................

ELSE C�ng việc 0 ; Nếu kh�ng c� gi� trị n�o thỏa th� thực hiện C�ng việc 0

END;

Ghi ch�:

- Lệnh CASE .. OF c� thể kh�ng c� ELSE

- Biểu thức chọn l� kiểu rời rạc như Integer, Char, kh�ng chọn kiểu Real

- Nếu muốn ứng với nhiều gi� trị kh�c nhau của biểu thức chọn vẫn thi h�nh một lệnh th� gi� trị đ� c� thể viết tr�n c�ng một h�ng c�ch nhau bởi dấu phẩy (,) : Gi� trị k1, k2, ..., kp : Lệnh k ;

V� dụ 6.14: PROGRAM Chon_mau ;

VAR color : char ;

BEGIN

write (' Chọn m�u theo một trong 3 k� tự đầu l� R / W / B ') ;

readln ( color) ;

CASE color OF

'R' ,'r' : write (' RED = m�u đỏ ') ;

'W', 'w' : write (' WHITE = m�u trắng ') ;

'B' , 'b' : write (' BLUE = m�u xanh dương ') ;

END ;

Readln;

END.

  1. Lệnh FOR

Cấu tr�c FOR cho ph�p lặp lại nhiều lần một d�y lệnh. Số lần lặp lại d�y lệnh đ� biết trước. Ph�t biểu FOR c� 2 dạng:

FOR .. TO .. DO đếm l�n

FOR .. DOWNTO ..DO đếm xuống

* C� ph�p tổng qu�t l�:

FOR := TO/DOWNTO DO ;

* Lưu đồ:

Chương trình pascal gồm những phần cơ bản nào
Chương trình pascal gồm những phần cơ bản nào

H�nh 6. 6: Lưu đồ ph�t biểu FOR .. TO .. DO

Ch� �: Trị đầu, trị cuối l� c�c biến hoặc hằng v� biến đếm phải l� kiểu rời rạc.

V� dụ 6.15: Chương tr�nh in một d�y số từ 0 đến 9

Program Day_So ;

VAR

i : Integer ;

BEGIN

FOR i := 0 TO 9 DO Write (i) ;

Readln ;

END.

  1. Lệnh WHILE .. DO

* Lưu đồ của lệnh

Chương trình pascal gồm những phần cơ bản nào

H�nh 6. 7: Lưu đồ cấu tr�c WHILE .. DO

* � nghĩa lưu đồ:

Trong khi m� điều kiện c�n đ�ng th� cứ thực hiện C�ng việc, rồi quay trở về kiểm tra điều kiện lại. V�ng lặp được tiếp tục, đến khi điều kiện đặt ra kh�ng c�n đ�ng nữa th� đi tới thực hiện lệnh tiếp theo

* C� ph�p

WHILE <điều kiện> DO

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.8: Sơ đồ c� ph�p lệnh WHILE .. DO

Ghi ch�:

� �iều kiện trong cấu tr�c lặp WHILE .. DO l� một biểu thức logic kiểu Boolean chỉ c� 2 gi� trị l� ��ng (True) hoặc Sai (False)

� Nếu điều kiện ��ng th� chương tr�nh sẽ chạy trong cấu tr�c WHILE .. DO.

� Sau mỗi lần lặp, chương tr�nh trở lại kiểm tra điều kiện. T�y theo biểu thức logic của điều kiện l� ��ng hay Sai th� chương tr�nh sẽ thực hiện C�ng việc tương ứng.

� Nếu Sai th� chuyển xuống dưới cấu tr�c WHILE .. DO

V� dụ 6.16: Chương tr�nh t�nh trung b�nh n số: x1 + x2 + x3 + ... + xn

Program Trung_binh_Day_So ;

VAR

n, count : Integer ;

x, sum, average : real ;

BEGIN

count := 1 ;

sum := 0 ;

Write (' Nhập n = ') ;

readln (n) ;

WHILE count < n+1 DO

BEGIN

Write (' Nhập gi� trị thứ' , count,' của x = ' ) ;

readln (x) ;

sum := sum + x ;

count := count + 1 ;

END ;

average := sum/n ;

Writeln (' Trung b�nh l� =' , average : 10 : 3 ) ;

Writeln (' Nhấn Enter để tho�t ...' ) ;

Readln ;

END.

  1. Lệnh REPEAT .. UNTIL

C�u lệnh REPEAT .. UNTIL d�ng trong c�c trường hợp khi biến điều khiển kh�ng c� kiểu rời rạc v� đặc biệt trong c�c trường hợp số lần lặp kh�ng biết trước.

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.9: Lưu đồ cấu tr�c của REPEAT .. UNTIL

* � nghĩa c�u lệnh:

Nếu điều kiện logic l� Sai (False) th� lặp lại lệnh cho đến khi điều kiện ��ng th� mới tho�t ra khỏi cấu tr�c REPEAT .. UNTIL.

Nếu c� nhiều c�u lệnh th� mỗi lệnh ngăn c�ch nhau bằng dấu chấm phẩy (;)C�ng việc của REPEAT v� UNTIL kh�ng nhất thiết phải d�ng lệnh gh�p để nh�m từ 2 lệnh đơn trở l�n th�nh c�ng việc.

Chương trình pascal gồm những phần cơ bản nào

H�nh 6.10: Sơ đồ c� ph�p REPEAT .. UNTIL

V� dụ 6.17: Với b�i to�n trung b�nh cộng một d�y số ở v� dụ trước c� thể viết theo cấu tr�c REPEAT .. UNTIL như sau:

Program Trung_binh_Day_So ;

VAR n, count : Integer ;

x, sum : real ;

BEGIN

count := 1 ;

sum := 0 ;

Write := (' Nhập n = ') ; readln (n) ;

REPEAT

Write (' Nhập gi� trị thứ' , count, 'của x = ') ;

readln(x) ;

sum := sum + x ;

count := count + 1 ;

UNTIL count > n ;

Writeln (' Trung b�nh l� =' , sum/n : 8 :2 ) ;

Readln ;

END.

Ghi ch�:

So s�nh 2 c�ch viết WHILE .. DO v� REPEAT .. UNTIL ta thấy c� sự kh�c biệt:

- Trong cấu tr�c WHILE .. DO th� <�iều kiện> được kiểm tra trước, nếu thỏa <�iều kiện> th� mới thực hiện .

-Ngược lại, trong cấu tr�c REPEAT .. UNTIL th� sẽ được thực thi trước sau đ� mới kiểm tra <�iều kiện>, nếu kh�ng thỏa <�iều kiện> th� tiếp tục thi h�nh cho đến khi <�iều kiện> l� đ�ng.

Lệnh REPEAT .. UNTIL thường được sử dụng trong lập tr�nh, nhất l� l�c người sử dụng muốn tiếp tục b�i to�n ở trường hợp thay đổi biến m� kh�ng phải trở về chương tr�nh v� nhấn tổ hợp ph�m Ctrl + F9 lại.

V� dụ 6.18: Nh�n 2 số a v� b

Program Tich;

VAR a, b : integer ;

CK : char ;

BEGIN

REPEAT

Write (' Nhập số a = '); Readln (a) ;

Write (' Nhập số b = '); Readln (b) ;

Writeln (' T�ch số của a x b l� :' , a*b : 10 ) ;

Writeln (' Tiếp tục t�nh nữa kh�ng (CK) ? ');

Readln (CK) ;

UNTIL upcase(CK) = K; {h�m chuyển đổi k� tự trong biến} {CK th�nh k� tự in hoa}

END.

NHẬP V� XUẤT DỮ LIỆU TRONG TURBO PASCAL

- oOo -

Th�ng thường, chương tr�nh Turbo Pascal được đặt trong một thư mục ri�ng rẽ c� t�n TP. �ể sử dụng Turbo Pascal, ta cần c� c�c tập tin tối thiểu:

- TURBO.EXE - TURBO.TPL

- TURBO.TP - GRAPH.TPU

- C�c file đồ họa : *.BGI - C�c Font chữ trong đồ họa : *.CHR

Sử dụng c�u lệnh Turbo v� nhấn Enter, m�n h�nh sẽ xuất hiện :

Chương trình pascal gồm những phần cơ bản nào

�ể trợ gi�p người sử dụng, ph�m chức năng F10 c� t�c dụng mở c�c Menu với nhiều Options kh�c nhau. Ta cũng c� thể k�ch hoạt tr�n thanh Menu ch�nh bằng c�ch kết hợp ph�m , v� dụ để k�ch hoạt mục File, ta nhấn đồng thời ph�m Alt- F, sau đ� d�ng c�c ph�m mũi t�n v� n�t Enter để chọn lựa v� ra lệnh thi h�nh. Ph�m F1 trợ gi�p thể hiện c�c th�ng tin tr�n m�n h�nh.

Ta c� thể sử dụng c�c tổ hợp ph�m để tạo ra c�c khối chữ hoặc c�u lệnh (tr�n m�n h�nh thấy c� sự thay đổi m�u) để ta c� thể sao ch�p, cắt d�n, x�a bỏ ...

Ctrl-K-B ��nh dấu đầu khối

Ctrl-K-K ��nh dấu cuối khối

Ctrl-K-C Ch�p khối tại sau vị tr� con trỏ

Ctrl-K-V Di chuyển khối tới sau vị tr� con trỏ

Ctrl-K-Y X�a khối hiện h�nh

Ctrl-K-W Ghi khối hiện h�nh v�o đĩa như một tập tin

Ctrl-K-R �ọc khối tập tin đ� ghi v�o đĩa v�o sau vị tr� con trỏ

Ctrl-K-H Tắt/ Mở khối

Một chương tr�nh m�y t�nh, sẽ c� c�c bước căn bản sau:

Chương trình pascal gồm những phần cơ bản nào

Trong thảo chương Turbo Pascal, c�c thủ tục nhập dữ liệu được d�ng:

THỦ TỤC NHẬP � NGHĨA

READ(x1, x2, ..., xn) Nhập c�c biến x1, x2, ..., xn theo h�ng ngang

từ b�n ph�m (con trỏ kh�ng xuống h�ng).

READLN(x1, x2, ..., xn) Nhập c�c biến x1, x2, ..., xn theo h�ng dọc

từ b�n ph�m (mỗi lần nhập con trỏ xuống h�ng).

READLN; Dừng chương tr�nh, đợi Enter mới tiếp tục.

ASSIGN(F, File_Name); Mở tập tin F c� t�n l� File_Name

RESET(F); Chuẩn bị đọc tập tin

READ(F, x1, x2, ..., xn) ; �ọc c�c gi� trị tr�n tập tin F ra c�c biến x1, x2, ..., xn

tương ứng

CH := ReadKey ; �ọc một k� tự từ b�n ph�m v�o biến k� tự CH

KEYPRESSED Một h�m c� gi� trị l� TRUE nếu c� một ph�m được bấm v� l� FALSE nếu ngược lại.

THỦ TỤC XUẤT � NGHĨA

WRITE(x1, x2, ..., xn) Viết gi� trị trong c�c biến x1, x2, ..., xn ra m�n h�nh

theo h�ng ngang (con trỏ kh�ng xuống h�ng).

WRITELN(x1, x2, ..., xn) Viết gi� trị trong c�c biến x1, x2, ..., xn ra m�n h�nh

theo h�ng dọc (mỗi lần viết trị x c� xuống h�ng).

WRITELN; Xuống h�ng

WRITELN(I : n); Viết ra gi� trị của biến nguy�n I v�o n chỗ t�nh từ phải sang tr�i. Nếu dư chỗ (chữ số của I < n) sẽ để trống

WRITELN(R : n : m); Viết ra gi� trị của biến thực R v�o n chỗ, chỉ lấy

m số thập ph�n.

WRITELN( abc... ); Viết ra nguy�n văn chuỗi k� tự abc...

WRITELN (LST, x1, x2, ..., xn) Viết ra m�y in c�c trị biến x1, x2, ..., xn