Chương 2
Các kiểu dữ liệu
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 1
Nội dung
Ðịnh nghĩa kiểu dữ liệu.
Các kiểu dữ liệu đơn giản.
f Kiểu
nguyên
f Kiểu thực
f Kiểu ký tự
f Kiểu luận lý
f Kiểu byte
f Kiểu word
f Kiểu liệt kê
f Kiểu miền con
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 2
Nội dung
Các kiểu dữ liệu có cấu trúc.
f Kiểu
chuỗi
f Kiểu mẩu tin
f Kiểu mảng
f Kiểu tập hợp
f Kiểu tập tin
Kiểu con trỏ.
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 3
Kiểu dữ liệu
Định nghĩa kiểu dữ liệu
f Kiểu
dữ liệu (data type) là sự qui định cách
biểu diễn giá trị của dữ liệu và cách xử lý dữ
liệu.
Kiểu dữ liệu bao gồm hai phần:
f Các
y
giá trị của kiểu dữ liệu.
Ví dụ: kiểu integer gồm các số nguyên từ –32768
đến 32767, mỗi số nguyên chiếm 2 byte.
f Các
phép toán trên các giá trị của kiểu dữ
liệu.
y
Ví dụ: kiểu integer có các phép toán +, −, *, div.
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 4
Các dữ liệu đơn giản
Kiểu nguyên
Kiểu thực
Kiểu ký tự
Kiểu luận lý
Kiểu byte
Kiểu word
Kiểu liệt kê
Kiểu miền con
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 5
Kiểu nguyên
Kiểu nguyên (integer) bao gồm các số
nguyên từ –32768 đến 32767, chiếm 2 byte.
Các phép toán
+ cộng
− trừ
* nhân
div chia
5+2→7
5−2→3
5 * 2 → 10
5 div 2 → 2
Khai báo biến
var tênbiến: integer;
f Ví dụ: khai báo biến i thuộc kiểu integer
var i: integer;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 6
Kiểu nguyên
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán số 5 cho biến i
i := 5;
Các hàm
f odd(n):
trả về true nếu n là số lẻ; ngược lại là
false.
y
Ví dụ: odd(11) → true
Chương 2. Các kiểu dữ liệu
odd(10) → false
2006
Nguyễn Trung Trực - Khoa CNTT 7
Kiểu thực
Kiểu thực (real) bao gồm các số thực,
chiếm 6 byte.
Các phép toán
+
−
*
/
cộng
trừ
nhân
chia
5.1 + 2.3 → 7.4
5.4 − 2.2 → 3.2
5.2 * 2.0 → 10.4
5.0 / 2.0 → 2.5
Khai báo biến
var tênbiến: real;
f Ví dụ: khai báo biến x thuộc kiểu real
var x: real;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 8
Kiểu thực
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán số 5.2 cho biến x
x := 5.2;
Các hàm
f int(x):
y
lấy phần nguyên của x.
Ví dụ: int(2.3) → 2
f frac(x):
y
y
lấy phần lẻ của x.
Ví dụ: frac(2.3) → 0.3
f sqr(x):
frac(-2.3) → -0.3
trả về x2.
Ví dụ: sqr(2.0) → 4.0
f sqrt(x):
y
int(-2.3) → -2
trả về căn bậc hai của x.
Ví dụ: sqrt(4.0) → 2.0
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 9
Kiểu ký tự
Kiểu ký tự (char) bao gồm các ký tự ghi
trong 2 dấu nháy đơn, chiếm 1 byte.
f Ví
Các ký tự có thể so sánh với nhau theo
thứ tự của bộ mã ASCII.
f Ví
dụ: ‘A’, ‘a’, …, ‘0’, ‘1’, …
dụ: ‘A’ < ‘B’
Các phép toán
= bằng
< nhỏ hơn
> lớn hơn
Chương 2. Các kiểu dữ liệu
<> khác, không bằng
<= nhỏ hơn hoặc bằng
>= lớn hơn hoặc bằng
2006
Nguyễn Trung Trực - Khoa CNTT 10
Kiểu ký tự
Khai báo biến
var tênbiến: char;
f Ví dụ: khai báo biến c thuộc kiểu char
var c: char;
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán ký tự ‘A’ cho biến c
c := ‘A’;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 11
Kiểu ký tự
Các hàm
f ord(c):
trả về số thứ tự ASCII của giá trị của
c.
y
Ví dụ: ord(‘A’) → 65
f chr(i):
trả về ký tự có số thứ tự ASCII là giá trị
của i.
y
Ví dụ: chr(65) → ‘A’
f upcase(c):
y
đổi chữ thường ra chữ hoa.
Ví dụ: upcase(‘a’) → ‘A’
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 12
Kiểu luận lý
Kiểu luận lý (boolean) bao gồm 2 giá trị là
true (đúng) và false (sai), chiếm 1 byte.
Qui ước: false < true
Các phép toán
not (phủ định)
A
f
t
not A
t
f
and (và)
or (hoặc)
B A and B
A
f
f
f
t
f
f
f
f
t
t
t
t
Ghi chú: t là true, f là false
Chương 2. Các kiểu dữ liệu
A
f
f
t
t
2006
B
f
t
f
t
A or B
f
t
t
t
Nguyễn Trung Trực - Khoa CNTT 13
Kiểu luận lý
Khai báo biến
var tênbiến: boolean;
f Ví dụ: khai báo biến b thuộc kiểu boolean
var b: boolean;
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán true cho biến b
b := true;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 14
Kiểu byte
Kiểu byte bao gồm các giá trị từ 0 đến 255,
chiếm 1 byte.
Là miền con của kiểu integer.
Các phép toán
+ cộng
* nhân
− trừ
div chia
Khai báo biến
var tênbiến: byte;
f Ví dụ: khai báo biến k thuộc kiểu byte
var k: byte;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 15
Kiểu byte
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán số 5 cho biến k
k := 5;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 16
Kiểu word
Kiểu word bao gồm các giá trị từ 0 đến
65535, chiếm 2 byte.
Các phép toán
+ cộng
* nhân
− trừ
div chia
Khai báo biến
var tênbiến: word;
f Ví dụ: khai báo biến w thuộc kiểu word
var w: word;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 17
Kiểu word
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán số 5 cho biến w
w := 5;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 18
Kiểu liệt kê
Kiểu liệt kê bao gồm các giá trị được liệt
kê.
Các giá trị tăng dần theo thứ tự liệt kê.
Định nghĩa kiểu
type tênkiểuliệtkê = (giátri1, giátrị2, …, giátrịn);
f Ví dụ: định nghĩa kiểu màu gồm các giá trị
xanh, đỏ, vàng
type màu = (xanh, đỏ, vàng);
thứ tự: xanh < đỏ < vàng
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 19
Kiểu liệt kê
Khai báo biến
var tênbiến: tênkiểuliệtkê;
f Ví dụ: khai báo biến x thuộc kiểu màu
var x: màu;
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: x := xanh;
Các hàm
f pred(x):
y
Ví dụ: pred(đỏ) → xanh
f succ(x):
y
trả về giá trị ngay trước của x.
trả về giá trị ngay sau của x.
Ví dụ: succ(đỏ) → vàng
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 20
Kiểu miền con
Kiểu miền con bao gồm các giá trị thuộc
một miền của một kiểu dữ liệu khác.
Định nghĩa kiểu
type tênkiểumiềncon = giátrịnhỏnhất .. giátrịlớnnhất;
f Ví dụ: định nghĩa kiểu năm gồm các số
nguyên từ 1990 đến 1999
type năm = 1990 .. 1999;
Khai báo biến
var tênbiến: tênkiểumiềncon;
f Ví dụ: khai báo biến i thuộc kiểu năm
var i: năm;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 21
Kiểu miền con
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán số 1995 cho biến i
i := 1995;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 22
Các kiểu dữ liệu có cấu trúc
Kiểu chuỗi
Kiểu mẩu tin
Kiểu mảng
Kiểu tập hợp
Kiểu tập tin
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 23
Kiểu chuỗi
Kiểu chuỗi bao gồm các chuỗi ký tự ghi
trong 2 dấu nháy đơn.
f Ví
dụ: ‘AbC’, ‘a12B’
Dài tối đa 255 ký tự.
Chuỗi rỗng (null string) là chuỗi không có
ký tự nào cả, ký hiệu là ‘’.
Chuỗi trống (blank string) là chuỗi chỉ có
các ký tự trống.
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 24
Kiểu chuỗi
Khai báo biến
var tênbiến: string;
var tênbiến: string[sốkýtự];
f Ví dụ: khai báo biến s thuộc kiểu string có tối
đa 255 ký tự
var s: string;
f Ví dụ: khai báo biến s thuộc kiểu string có tối
đa 10 ký tự
var s: string[10];
Gán giá trị cho biến
tênbiến := giátrị;
f Ví dụ: gán chuỗi ‘abc’ cho biến s
s := ‘abc’;
Chương 2. Các kiểu dữ liệu
2006
Nguyễn Trung Trực - Khoa CNTT 25