Tài liệu Pascal
Fri Jun 14, 2024 8:54 am
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
1. 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.
2. Một Số Phép Toán Trên Các Kiểu
a. 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ố thực
Số thực
10 / 4 2.5
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
b. 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.[1]
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 ex
Số nguyên, số thực
Số thực
Exp(3)
LN(x)
Hàm
Số nguyên, số thực
Số thực
Ln(2)
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)
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
c. 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.
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
Mở rộng:
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:
SHL
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
[1] Thật ra chúng thuộc về Unit SYSTEM.TPU
I. CÁC KIỂU VÔ HƯỚNG CHUẨN
1. 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.
2. Một Số Phép Toán Trên Các Kiểu
a. 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ố thực
Số thực
10 / 4 2.5
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
b. 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.[1]
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 ex
Số nguyên, số thực
Số thực
Exp(3)
LN(x)
Hàm
Số nguyên, số thực
Số thực
Ln(2)
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)
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
c. 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.
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
Mở rộng:
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:
SHL
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
[1] Thật ra chúng thuộc về Unit SYSTEM.TPU
Permissions in this forum:
You cannot reply to topics in this forum
|
|