Kiểu dữ liệu chuẩn • Kiểu nguyên • Kiểu thực • Kiểu kí tự • Kiểu logic • Kiểu nguyên • Kiểu thực • Kiểu kí tự • Kiểu logic Kiểu dữ liệu có cấu trúc • Kiểu mảng • Kiểu xâu • Kiểu mảng • K
Trang 1KIỂU DỮ LIỆU CÓ CẤU TRÚC
Trang 2BÀI 13: KIỂU BẢN GHI
1 Khái niệm
2 Khai báo:
2.1 Khai báo kiểu bản ghi 2.2 Khai báo biến kiểu bản ghi 2.3 Tham chiếu đến trường của bản ghi
2 Khai báo:
2.1 Khai báo kiểu bản ghi 2.2 Khai báo biến kiểu bản ghi 2.3 Tham chiếu đến trường của bản ghi
3 Gán giá trị
4 Bài tập mẫu
5 Củng cố
05/09/2024 Bài 13: Kiểu bản ghi
2
tắ
t n
ội du
ng
Trang 3Hãy nêu các kiểu
dữ liệu đã học?
Hãy nêu các kiểu
dữ liệu đã học?
Kiểu dữ liệu chuẩn
• Kiểu nguyên
• Kiểu thực
• Kiểu kí tự
• Kiểu logic
• Kiểu nguyên
• Kiểu thực
• Kiểu kí tự
• Kiểu logic
Kiểu dữ liệu có cấu trúc
• Kiểu mảng
• Kiểu xâu
• Kiểu mảng
• Kiểu xâu
Trang 4Mở đầu:
Bảng thông tin cá nhân.
05/09/2024
Họ tên Giới tính Ngày sinh Điện thoại Địa chỉ
Nguyễn Thị Ngọc Lan Nữ 14/8/1993 097438573 Lâm Đồng
1 Bảng chứa thông tin của đối tượng nào?
2 Bảng chứa thông tin của bao nhiêu đối tượng?
3 Mỗi đối tượng có các thông tin gì?
4 Mỗi thuộc tính trên có kiểu dữ liệu gì?
Trang 5• Kiểu dữ liệu của mỗi thuộc tính:
Họ và tên, Địa chỉ: kiểu chuỗi (string).
Giới tính : Kiểu chuỗi (boolean)
Ngày sinh : kiểu chuỗi( string)
Điện thoại: kiểu số nguyên ( byte)
Họ và tên Giới tính Ngày sinh Điện thoại Địa chỉ
Nguyễn Mai Loan Nữ 21/7/1993 016493869 TP HCM
Võ Nhật Quỳnh Nữ 10/9/1993 016848963 Tây Ninh Trần Văn Hai Nam 21/5/1993 098437727 Lâm Đồng Nguyễn Thị Ngọc Lan Nữ 14/8/1993 097438573 Lâm Đồng
Bảng thông tin cá nhân của học sinh
Bảng chứa thông tin của đối tượng học sinh.
Bảng chứa thông tin của đối tượng học sinh.
Bảng chứa thông tin của ? đối tượng
1
2
3
4
có 5 thuộc tính Mỗi đối tượng
có 5 thuộc tính
Trang 6Kiểu bản ghi 05/09/2024 6
Họ tên Giới tính Ngày sinh Điện thoại Địa chỉ
Nguyễn Thị Ngọc Lan Nữ 14/8/1993 097438573 Lâm Đồng
Bảng thông tin cá nhân của học sinh
Dùng cách nào để
quản lý các thông
tin ( thuộc tính) của
các đối tượng đó trên máy tính?
Dùng cách nào để
quản lý các thông
tin ( thuộc tính) của
các đối tượng đó trên máy tính?
Trang 71 Khái niệm
Kiểu bản ghi có đặc điểm là dữ liệu được tổ chức thành một bảng hai chiều:
địa chỉ Trong mỗi trường có thể có các kiểu dữ liệu giống nhau hoặc
khác nhau
các trường Do sữ liệu của các trường khác nhau nên dữ liệu của
từng bản ghi cũng khác nhau, rất ít khi trùng nhau.
Họ và tên Giới tính Ngày sinh Điện thoại Địa chỉ
Nguyễn Mai Loan Nữ 21/7/1993 016493869 TP HCM
Võ Nhật Quỳnh Nữ 10/9/1993 016848963 Tây Ninh Trần Văn Hai Nam 21/5/1993 098437727 Lâm Đồng Nguyễn Thị Ngọc Lan Nữ 14/8/1993 097438573 Lâm Đồng
Trường (field)
Trang 8• Kích thước của từng trường phụ thuộc vào từng kiểu dữ
liệu: Integer, Real, String,…, nhưng kích thước của từng
bản ghi là hoàn toàn giống nhau Mặc dù trong thực tế
kích thước các bản ghi khác nhau nhưng máy vẫn dành
phần bộ nhớ như nhau cho các bản ghi.
Tóm lại:
Dữ liệu kiểu bản ghi (record) dùng để mô tả các…….…………
có cùng một số……….……… (trường) mà các … ………… có thể có các ……….
đối tượng thuộc tính thuộc tính kiểu dữ liệu khác nhau.
Trang 9Một số ví dụ về kiểu bản ghi
Trang 102 Khai báo
2.1 Định nghĩa kiểu bản ghi:
Các thông tin cần khai báo gồm tên kiểu bản ghi, tên các
thuộc tính và kiểu dữ liệu của mỗi thuộc tính.
Cú pháp:
Type <tên kiểu bản ghi> = record
<tên trường 1>: <kiểu dl trường 1>;
<tên trường 2.1, tên trường 2.2>: <kiểu dl trường 2>;
….
<tên trường n>: <kiểu dl trường n>;
End;
Cú pháp:
Type <tên kiểu bản ghi> = record
<tên trường 1> : <kiểu dl trường 1> ;
<tên trường 2.1, tên trường 2.2> : <kiểu dl trường 2> ;
….
<tên trường n> : <kiểu dl trường n> ; End;
Trong đó
<tên kiểu bản ghi> là tên kiểu bản ghi do người dùng đặt.
<tên trường 1>… <tên trường n> là tên của thuộc tính.
< kiểu dl trường > là kiểu dữ liệu của thuộc tính.
Trang 11type HocSinh = record
HoTen: string[100];
DiemLT, DiemTH, TongDiem : byte;
KetQua : string[10];
end;
var
hs1, hs2, hs3, hs4 : HocSinh;
Họ và tên Điểm LT Điểm TH Tổng điểm Kết quả
2.2 Khai báo biến kiểu bản ghi.
hs1
hs2
hs3
hs4
type HocSinh = record
HoTen: string[100];
DiemLT : byte;
DiemTH : byte;
TongDiem : byte;
KetQua : string[10];
end;
Cùng kiểu
dữ liệu
Cùng kiểu
dữ liệu
var <tên biến bản ghi> : <tên kiểu bản ghi> ;
Trang 12Tình huống phát sinh:
Khai báo 40 đối
tượng học sinh lớp tương ứng
với 40 bản ghi thì
phải làm thế nào?
Khai báo 40 đối
tượng học sinh lớp tương ứng
với 40 bản ghi thì
phải làm thế nào?
Khai báo một mảng có 40 phần
tử có kiểu dữ liệu
là bản ghi
Var Lop : Array [1 40] of HocSinh;
Tên mảng
Chỉ số mảng
Tên kiểu bản ghi
Trang 13• Một số ví dụ kiểu bản ghi:
Type ChuThe = record;
STT , Diem, : real;
TenChuThe, DoanhSo SoThe, DienThoai, DiaChi : string[100];
end;
Var A, B, C : ChuThe;
DanhSachKhachHang : array[1 10] of ChuThe;
Trang 14const Max = 10;
STT : real;
TenKhachHang, CMND, TienThuong, SoThe,
DonViPhatHanh : string[50];
end;
var A,B : KhachHang; // 2 biến cụ thể của bản ghi
DanhSachKH : array[1 Max] of KhachHang; // mảng biến
Trang 152.3 Cách tham chiếu đến trường của bản ghi
Cách truy xuất đó là tên biến và tên trường cách nhau
một dấu chấm (.) cú pháp như sau:
<Tên biến bản ghi> < tên trường>
Ví dụ:
lớp Với i là chỉ số nào đó của mảng Lop
Họ và tên Điểm LT Điểm TH Tổng điểm Kết quả
hs1
hs2
hs3
hs4
Trang 163 Gán giá trị
Gán giá trị trực tiếp cho biến bản ghi: cũng giống như biến thuộc kiểu dữ liệu chuẩn Biến kiểu bản ghi cũng có thể
gán giá trị qua lại với nhau miễn là chúng cùng kiểu Nếu X,
Y là 2 biến bản ghi cùng kiểu thì ta có thể gán giá trị của Y
cho X bằng lệnh gán: X := Y;
Gán giá trị cho từng trường: giá trị mỗi thành phần của
bản ghi cũng được nhập, xuất, xử lý như mỗi biến bình
thường bằng lệnh gán hoặc nhập từ bàn phím.
Ví dụ: a, b là 2 biến của bản ghi HocSinh
a:=b; //gán trực tiếp
a.HoTen := ‘Nguyễn Hoàng Anh’; //gán gt cho từng TH
Hoặc: readln(a.HoTen);
Trang 174 Củng cố
Định nghĩa kiểu bản ghi:
type <tên kiểu bản ghi> = record
<tên trường 1> : < kiểu dư liệu trường 1>;
<tên trường 21, tên trường 22> : <kiểu dl trường 2>;
…
<tên trường n> : < kiểu dư liệu trường n>;
end;
Khai báo biến bản ghi:
var <tên biến bản ghi> : <tên kiểu bản ghi> ;
<tên mảng> : array [1 n] of <tên kiểu bản ghi> ;
Tham chiếu đến từng trường
<tên biến bản ghi> <tên trường>
Gán giá trị