Tải bản đầy đủ (.ppt) (44 trang)

slike ngôn ngữ lạp trình nguyễn văn linh chương 4 kiểu dữ liệu có cấu trúc

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 (307.47 KB, 44 trang )

Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
1
CHƯƠNG 4:
KIỂU DỮ LIỆU CÓ CẤU TRÚC

Định nghĩa kiểu dữ liệu có cấu trúc.

Sự đặc tả kiểu dữ liệu có cấu trúc.

Sự cài đặt các cấu trúc dữ liệu.

Vectơ (mảng một chiều).

Mảng nhiều chiều.

Mẩu tin và mẩu tin có cấu trúc thay đổi.

Chuỗi ký tự.

Cấu trúc dữ liệu có kích thước thay đổi (Danh sách,
Con trỏ, Tập hợp, Tập tin).
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
2
ĐỊNH NGHĨA

Kiểu dữ liệu có cấu trúc hay còn gọi là
CTDL là kiểu dữ liệu mà các ÐTDL có cấu
trúc. Như vậy CTDL là một tập các ÐTDL
có cấu trúc và tập các phép toán trên các


ÐTDL đó.

Các CTDL thông dụng: Mảng, chuỗi ký tự,
mẩu tin, ngăn xếp, con trỏ, tập tin
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
3
SỰ ĐẶC TẢ

Thuộc tính:

Số lượng phần tử.

Kiểu của các phần tử.

Tên của phần tử.

Kích thước tối đa.

Tổ chức phần tử.

Phép toán:

Lựa chọn phần tử.

Phép toán trên toàn cấu trúc.

Thêm/bớt phần tử, tạo/hủy cấu trúc.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4

4
ĐẶC TẢ THUỘC TÍNH

Số lượng phần tử: Kích thước cố định, kích
thước thay đổi.

Kiểu phần tử: Đồng nhất và không đồng
nhất.

Tên của phần tử: Chỉ số, tên trường.

Kích thước tối đa: Số lượng lớn nhất các
phần tử.

Tổ chức phần tử: Một dãy các phần tử.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
5
ĐẶC TẢ PHÉP TOÁN

Phép toán lựa chọn một phần tử: Chọn trực
tiếp và chọn tuần tự.

Phép toán trên toàn cấu trúc: Gán.

Thêm / Bớt phần tử: Làm thay đổi kích
thước.

Tạo / Hủy cấu trúc.
Nguyễn Văn Linh - Programm

ing Languages - Chapter 4
6
SỰ CÀI ĐẶT

Biểu diễn bộ nhớ:

Biểu diễn tuần tự.

Biểu diễn liên kết.

Cài đặp phép toán chọn một phần tử:

Chọn trực tiếp trong biểu diễn tuần tự.

Chọn tuần tự trong biểu diễn tuần tự .

Chọn trực tiếp trong biểu diễn liên kết.

Chọn tuần tự trong biểu diễn liên kết.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
7
BIỂU DIỄN BỘ NHỚ

Biểu diễn tuần tự

Biểu diễn liên kết
Bộ mô tả
Phần tử
Phần tử

Bộ mô tả
Phần tử
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
8
CÀI ĐẶT PHÉP TOÁN

Chọn trực tiếp trong biểu diễn tuần tự: Vị
trí phần tử = địa chỉ cơ sở + độ dời.

Chọn tuần tự trong biểu diễn tuần tự: Xác
định vị trí phần tử đầu tiên. Vị trí phần tử
tiếp theo = Vị trí phần tử hiện hành + Kích
thước phần tử hiện hành.

Lựa chọn trong biểu diễn liên kết: Duyệt từ
đầu danh sách.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
9
VÉCTƠ (MẢNG MỘT CHIỀU)

Định nghĩa: Là CTDL có kích thước cố định và
đồng nhất.

Đặc tả:

Số lượng phần tử: Tập chỉ số.

Kiểu của tất cả các phần tử.


Tên phần tử: Chỉ số của phần tử.

Phép tóan lựa chọn một phần tử: Chọn trực tiếp bằng
cách chỉ ra chỉ số của phần tử. Chỉ số là giá trị của biểu
thức.

Phép toán gán.

Ví dụ: V : ARRAY[1 10] OF REAL
10
CÀI ĐẶT VÉCTƠ (1)

Tổ chức lưu trữ: Biểu diễn tuần tự.
Véc t Aơ
LB
UB
Ki u ph n tể ầ ử
E
A[ LB]
A[UB]
Đ a ch c sị ỉ ơ ở
B mô tộ ả
Các ph n tầ ử
Ki u d li uể ữ ệ
C n d i t p ch sậ ướ ậ ỉ ố
C n trên t p ch sậ ậ ỉ ố
Kích th c m i PTướ ỗ
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4

11
CÀI ĐẶT VÉCTƠ (2)

Phép toán lựa chọn 1 phần tử:
Vị trí phần tử thứ i = α + D + (i – LB)* E

α là địa chỉ cơ sở.

D là kích thước bộ mô tả.

Phép toán gán: Copy khối ô nhớ.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
12
MẢNG NHIỀU CHIỀU

Đặc tả: Mỗi chiều có một tập chỉ số.

Cài đặt: Biểu diễn bộ nhớ tuần tự, các phần
tử được lưu trũ kế tiếp nhau, nhưng có 2
cách lưu:

Các phần tử được lưu theo trật tự dòng: Hết
dòng này đến dòng khác.

Các phần tử được lưu theo trật tự cột: Hết cột
này đến cột khác.
13
BIỂU DIỄN MA TRẬN
M[1 3,-1 2] OF INTEGER

C n trên t p ch s 1ậ ậ ỉ ố
C n d i t p ch s 2ậ ướ ậ ỉ ố
C n trên t p ch s 2ậ ậ ỉ ố
Ma trận M
LB1 (=1)
UB1 (=3)
LB2 (=-1)
UB2 (=2)
M[1,-1]
M[1,0]
M[1,1]
M[1,2]
M[3,2]
Đ a ch c sị ỉ ơ ở
B mô tộ ả
Các ph n tầ ử
Ki u d li uể ữ ệ
C n d i t p ch s 1ậ ướ ậ ỉ ố
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
14
CHỌN MỘT PHẦN TỬ CỦA
MA TRẬN

Vị trí của phần tử M[i,j] được tính theo
công thức:
Vị trí M[i,j] = α + D + (i-LB1)*S + (j-
LB2)*E

α là địa chỉ cơ sở.


D là kích thước bộ mô tả.

S là kích thước 1 dòng = (UB2-LB2+1)*E.

E là kích thước một phần tử.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
15
MẨU TIN

Định nghĩa: Là CTDL có
kích thước cố định và
không đồng nhất.

Đặc tả:

Số lượng phần tử (trường).

Tên của mỗi phần tử.

Kiểu của mỗi phần tử.

Phép toán chọn phần tử: Sử
dụng tên PT.

Phép gán.

Ví dụ:
Nhan_vien: Record

Ma: Integer;
Ho_ten: string[25];
Tuoi: Integer;
Luong: Real;
End.
16
CÀI ĐẶT MẨU TIN

Bộ nhớ tuần tự:
Một khối ô nhớ liên
tục để lưu trữ cả mẩu
tin. Mỗi trường được
lưu trong một khối.
Mỗi khối có thể có bộ
mô tả riêng.

Ví dụ: Nhan_vien
22901
Nguy n Văn Aễ
20
2.18

Vị trí phần tử = α + Tổng kích thước các phần
tử trước đó.

Ví dụ: Vị trí Tuoi = α + Kích thước Ma + Kích
thước Ho_ten
Ma
Ho_ten
Tuoi

Luong
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
17
MẨU TIN CÓ CẤU TRÚC
THAY ĐỔI

Bài toán.

Định nghĩa.

Cài đặt.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
18
MẨU TIN CÓ CẤU TRÚC
THAY ĐỔI (BÀI TOÁN)

Ví dụ: Một xí nghiệp có hai loại công nhân:
Biên chế và hợp đồng.

Lương công nhân biên chế = Số ngày công
* múc lương tối thiểu * Hệ số /20.

Những ngày nghỉ bảo hiểm xã hội, họ được
trả lương bảo hiểm.

Lương công nhân hợp đồng = Số ngày công
* đơn giá công nhật.
Nguyễn Văn Linh - Programm

ing Languages - Chapter 4
19
ĐỊNH NGHĨA MẨU TIN CÓ
CẤU TRÚC THAY ĐỔI

Mỗi mẩu tin bao gồm hai phần: Phần tĩnh và phần
động.

Phần tĩnh gồm các trường mà tất cả các thể hiện
đều có.

Phần động sẽ có các trường khác nhau tùy theo
từng thể hiện.

Trong phần tĩnh phải có một trường dùng để phân
biệt các thể hiện.

Phép toán lựa chọn một phần tử tương tự như mẩu
tin bình thường.
20
VÍ DỤ
TYPE
Loai_Cong_Nhan = (bien_che,hop_dong);
VAR
Cong_Nhan : RECORD
Ho_Ten: String[20];
Ngay_Cong: Real;
Luong: Real;
CASE loai: Loai_Cong_Nhan OF
bien_che:

(He_So: Real;
Nghi_bhxh:Real);
hop_dong:
(Gia_Cong_Nhat: Real);
END;
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
21
CÀI ĐẶT MẨU TIN CÓ CẤU
TRÚC THAY ĐỔI
Ho_Ten
Ngay_Cong
Luong
Loai
Gia_Cong_nhat
Không s d ngử ụ
Ho_Ten
Ngay_Cong
Luong
Loai
He_So
Nghi_BHXH
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
22
CHUỖI KÝ TỰ

Đặc tả thuộc tính.

Đặc tả phép tóan.


Cài đặt chuỗi ký tự.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
23
ĐẶC TẢ THUỘC TÍNH
CHUỖI KÝ TỰ

Đặc tả thuộc tính: Có ba phương pháp:

Độ dài khai báo cố định.

Độ dài thay đổi trong một giới hạn đã được
khai báo.

Độ dài không giới hạn.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
24
ĐẶC TẢ PHÉP TOÁN
CHUỖI KÝ TỰ

Đặc tả phép toán:

Phép ghép chuỗi.

Các phép toán quan hệ.

Lấy chuỗi con của một chuỗi bằng cách chỉ ra
ký tự đầu tiên và ký tự cuối cùng.


Định dạng nhập - xuất.

Chọn chuỗi con bằng cách so mẫu.
Nguyễn Văn Linh - Programm
ing Languages - Chapter 4
25
CÀI ĐẶT CHUỖI KÝ TỰ (1)

Độ dài khai báo cố định: Sử dụng một véctơ
của các ký tự để lưu trữ một chuỗi

Ví dụ chuỗi được khai báo có độ dài 12
nhưng chuỗi thực là “EINSTEIN”. Thì phải
thêm vào 4 ký tự trắng để có độ dài 12.
E I N S T E I N

×