[Pascal – TUT] Bài 2: Các thành phần cơ bản trong Pascal

1. Bộ ký tự, từ khóa, tên

a. Bộ ký tự, ký hiệu trong ngôn ngữ Pascal

26 chữ cái la tinh lớn: A,…,Z
26 chữ cái la tinh nhỏ: a,…,z
Dấu gạch dưới: _
Bộ chữ số thập phân: 0,…,9
Các ký hiệu toán học: + – * / = < > ( )
Các ký hiệu đặc biệt: . , ‘ : ; [] ? %
@ | ! & # $ {}
Khoảng trắng- ký tự cách.
b. Từ khóa
Các từ khoá là các từ dành riêng 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 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:
And External Mod Shr
Array File Nil String
Begin For Not Then
Case Function Object To
Const Goto Of Type
Constructor If Or Unit
Div Implementation Packed Until
Do In Procedure Uses
Downto Inline Program Var
Else Interface Record Virtual
End Label Repeat While
Set Shl With Xor
c. Tên
Tên 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
+ Bắt đầu bằng chữ cái hoặc dấu gạch dưới ( _ )
sau đó là chữ cái hoặc chữ số.
+ 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 => ko nên đặt trùng tên chuẩn
Lưu ý: Pascal không phân biệt chữ hoa và chữ thường trong từ khóa, tên chuẩn hay tên. Ví dụ “BEGIN” hay “Begin” hay “BeGin” là như nhau. Tuy nhiên chúng ta 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.

pascal

2. Dấu chấm phẩy và lời chú thích

a. 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.
Ví dụ: Write(‘Nhap so a:’); Readln(a);
b. Lời chú thích
Lời chú 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 loi chu thich}
(* Day cung la mot loi chu thich*).
3. Hằng, kiểu, biến
a. Hằng
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.
– 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:
CONST <ten_hang_1>=<gia_tri_hang_1>;

<ten_hang_n>=<gia_tri_hang_n>;
Ví dụ:
CONST a=5;
ch=’Q’;
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.
*/ Một số kiểu dữ liệu chuẩn:
– Kiểu số nguyên

kiểu dữ liệu trong Pascal

– Kiểu số thực

kiểu dữ liệu trong Pascal

– Kiểu ký tự / chuỗi ký tự
kiểu dữ liệu trong Pascal* Kiểu do người dùng định nghĩa:
Cú pháp:
TYPE <ten_kieu> = <cac_thanh_phan_cua_kieu>;
Ví dụ:
TYPE Hoaqua=(tao,mit,dua,oi);
che=(buoi,thapcam);
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. 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.
– Cú pháp khai báo biến:
VAR <ten_bien>:<kieu_du_lieu>;
Ví dụ:
VAR a:integer;
b,c:real;
qua:Hoaqua;
(* với Hoaqua la kieu du kieu da dinh nghia *)

4. Phép toán, Biểu thức, Câu lệnh

a. Phép toán
*/ Phép toán trên kiểu số

Phép toán 	Ý nghĩa 		Ví dụ
------------------------------------------------------
- 			Lấy đối số 		Đối số của 2 là -2
+ 			Cộng 			10 + 9 -> 19
- 			Trừ 			10 - 9 -> 1
* 			Nhân 			10 * 9 -> 90
/ 			Chia 			10 / 4 -> 2.5
Div 		Chia lấy phần nguyên 	10 div 3 -> 3
Mod 		Chia lấy phần dư 	10 mod 3 -> 1
(Div và Mod chỉ áp dụng cho kiểu nguyên).

*/ Một số hàm số, thủ tục

Hàm 		Ý nghĩa 			Ví dụ
------------------------------------------------------------
ABS(x) 		Trị tuyệt đối x 	Abs(-2) -> 2
SQR(x) 		Bình phương x 		Sqr(2) -> 4
SQRT(x) 	Căn bậc hai x 		Sqrt(9) -> 3
EXP(x) 		Hàm e^x 			Exp(3) -> e^3
LN(x) 		Hàm ln(x) 			Ln(2) ->ln2
SIN(x) 		Hàm lượng giác 		Sin(PI) -> 0
COS(x) 		Hàm lượng giác 		Cos(PI) -> 1
ARCTAN(x) 	Hàm lượng giác 		Arctan(0) ->0
INC(x) 		Tăng x lên 1 đơn vị <=> x:=x+1;
DEC(x) 		Giảm x xuống 1 đơn vị <=> x:=x-1;
SUCC(x) 	Cho giá trị tiếp theo của x succ(5) cho KQ 6
PRED(x) 	Cho giá trị trước đó của x PRED(5) cho KQ 4
ROUND(x) 	Làm tròn lên 		Round(8.6) -> 9
TRUNC(x) 	Làm tròn xuống		Trunc(8.6) -> 8
ORD(x) 		Lấy mã ASCII ký tự  Ord(‘a’) -> 97
CHR(x) 		Cho ký tự có mã ASCII Chr(65) -> ‘A’
ODD(x) 		Kiểm chẳn lẽ 		Odd(5) -> True

*/ Một số phép toán logic
AND, OR, XOR, NOT.

X 		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

Lưu ý:

– Các phép toán so sánh (<> khác, = bằng, > lớn hơn, < nhỏ hơn >= lớn hơn hoặc bằng, <= nhỏ hơn hoặc bằng) luôn trả về kiểu Booland.
– Các phép toán logic còn áp dụng trên kiểu số nguyên, trên cớ sở biểu diễn số nhị phân của các số nguyên.

b. Biểu thức
– Biểu thức là một phần của câu lệnh bao gồm hằng, biến, hàm liên kết với nhau bằng các phép toán và các dấu ngoặc đơn.
Ví dụ:
(-b+sqrt(delta))/(2*a)
– Thứ tự thực hiện các phép toán trong biểu thức:

1. Biểu thức trong ngoặc đơn
2. Phép gọi hàm
3. Not, –
4. *, /, DIV, MOD AND
5. +, -, OR, XOR
6. =, <>, <=,>=,<,>,IN

– Quy ước thứ tự ưu tiên

+ 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ị.

c. Câu lệnh

– Câu lệnh 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ó 2 loại câu lệnh:
+Câu lệnh đơn: Là câu lệnh không chứa các câu lệnh khác.
+Câu lệnh có cấu trúc: gồm các câu lệnh ghép, câu lệnh rẽ nhánh câu lệnh điều khiển lựa chọn, câu lệnh lặp,…
Lưu ý: Câu lệnh ghép là một nhóm các câu lệnh đơn cần thực hiện liên tiếp và được đặt trong cặp từ khóa BEGIN và END; (END kèm theo dấu chấm phẩy).

*/ Một số câu lệnh đơn:
– Lệnh gán:

Cú pháp: <ten_bien>:=<bieu_thuc>;
Ví dụ: a:=5+4/3;
b:=c+d/e;

Lưu ý:
+ Khi một giá trị được gán cho biến, nó sẽ thay thế giá trị trước đó của biến đã lưu.
+ Biểu thức ở bên phải và bên trái lệnh gán phải có cùng kiểu dữ liệu.

– Lệnh đọc dữ liệu

Lệnh đọc dữ liệu là lệnh gán giá trị cho biến khi ta nhập từ bàn phím. Có 3 mẫu viết
• Read(Biến1, Biến2,…, BiếnN);
{có thể dùng dấu cách hoặc phím enter để lần
lượt nhập dữ liệu cho các biến}
• Readln(Biến1, Biến2,…, BiếnN);
{phải dùng phím enter để lần lượt nhập
dữ liệ cho các biến}
• Readln;
{Bắt máy dừng lại chờ nhấp phím enter
thường để làm dừng màn hình cho ta xem kết quả}
Lưu ý: Chúng ta không nên dùng lệnh read để nhập dữ liệu cho các biên mà nên nhập bằng lệnh readln vì khi nhập dữ liệu cho các biến bằng lệnh read có thể sẽ dẫn đến tình trạng trôi lệnh (tức là một số lệnh không được thực hiện).

– Lệnh viết dữ liệu ra màn hình:
Có 3 mẫu viết:

• Write(Value1,Value2,…,ValueN);
{ viết các mục ra, con trỏ nằm ở cuối dòng}
• Writeln(Value1,Value2,…,ValueN);
{ viết các mục ra, con trỏ nằm ở đầu dòng tiếp theo}
• Writeln;
{ chỉ đưa con trỏ xuống dòng tiếp theo}
trong đó: các value là các biến, hằng, giá trị hay chuỗi
ký tự (phải đặt trong cặp nháy đơn).
{riêng dấu ‘ ta xuất bằng cách ghi 2 dấu ”}

Viết có quy cách:
– Đối với kiểu số thực:
:<độ rộng>:<số chữ số thập phân>;
Ví dụ: write(a:4:5);
– Đối với các kiểu dữ liệu khác:
:<độ rộng>;
Ví dụ: write(b:4);{với b là số nguyên}
Lưu ý: Khi số chữ số của biến nhiều hơn với độ rộng thì
số đó sẽ được xuất ra toàn bộ.
Ví dụ: b có giá trị là 12345.
Khi ta viết lệnh write(b:4);
12345

– Một số lệnh khác
• Clrscr; Lệnh xóa màn hình và đưa con trỏ về góc trên bên trái
• Gotoxy(x,y); đặt con trỏ tới tọa độ (x,y)
x: cột từ 1->80; y: hàng từ 1->25

Bài viết gốc tại: vietsource.net