18
CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI 13: KIU B N GHI

Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Embed Size (px)

Citation preview

Page 1: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

BÀI 13:

KIỂU BẢN GHI

Page 2: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

BÀ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 ghi2.2. Khai báo biến kiểu bản ghi

2.3. Tham chiếu đến trường củabản ghi

3. Gán giá trị

4. Bài tập mẫu

5. Củng cố12/25/2014 Bài 13: Kiểu bản ghi 2

Page 3: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Kiểu bản ghi 312/25/2014

Hãy nêu các kiểudữ 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 dữ liệu có cấu trúc

• Kiểu mảng

• Kiểu xâu

Page 4: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Mở đầu:

Bảng thông tin cá nhân.

12/25/2014Bài 13: Kiểu bản ghi 4

Họ 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

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ì?

Page 5: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

• 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)

Kiểu bản ghi 512/25/2014

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

12

3

4

4 Mỗi đối tượngcó 5 thuộc tính

Page 6: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Kiểu bản ghi 612/25/2014

Họ 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

Dùng cách nào đểquản lý các thông

tin ( thuộc tính) củacác đối tượng đó

trên máy tính?

Page 7: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

1. 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 haichiều:

Chiều dọc là các trường: họ và tên, giới tính, ngày sinh, điện thoại, địa chỉ. Trong mỗi trường có thể có các kiểu dữ liệu giống nhau hoặckhác nhau.

Theo hàng ngang là các bản ghi: mỗi bản ghi là tập hợp dữ liệu củacác trường. Do sữ liệu của các trường khác nhau nên dữ liệu của từngbản ghi cũng khác nhau, rất ít khi trùng nhau.

Kiểu bản ghi 712/25/2014

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)

Bản

ghi(

Re

cord

)

Page 8: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

• 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ừngbả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ànhphầ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 …………….

Kiểu bản ghi 812/25/2014

đối tượng

thuộc tính thuộc tínhkiểu dữ liệu khác nhau.

Page 9: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Kiểu bản ghi 912/25/2014

Một số ví dụ về kiểu bản ghi

Page 10: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

2. 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ácthuộc tính và kiểu dữ liệu của mỗi thuộc tính.

Kiểu bản ghi 1012/25/2014

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à kiểu dữ liệu của thuộc tính.<tên biến bản ghi> là tên biến bản ghi do người lập trình đặt.

Page 11: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

type HocSinh = record

HoTen: string[100];

DiemLT, DiemTH, TongDiem : byte;

KetQua : string[10];

end;

var

hs1, hs2, hs3, hs4 : HocSinh;

Kiểu bản ghi 1112/25/2014

Họ và tên Điểm LT Điểm TH Tổng điểm Kết quả

Nguyễn Hoàng Anh 8 9 17 Đạt

Trần Thị Hoa 2 7 9 Chưa đạt

Đỗ Minh Quân 2 1 8 Chưa đạt

Hồ Quang Thắng 8 2 10 Đạt

2.2. Khai báo biến kiểu bản ghi.

hs1

hs2hs3hs4

type HocSinh = recordHoTen: string[100];DiemLT : byte;DiemTH : byte;TongDiem : byte;KetQua : string[10];end;

Cùng kiểudữ liệu

var <tên biến bản ghi> : <tên kiểu bản ghi> ;

Page 12: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

Tình huống phát sinh:

Kiểu bản ghi 1212/25/2014

Khai báo 40 đốitượng học sinhlớp tương ứng

với 40 bản ghi thìphải làm thế nào?

Khai báo mộtmảng có 40 phầntử có kiểu dữ liệu

là bản ghi

Var Lop : Array [1..40] of HocSinh;

Tênmảng

Chỉ sốmảng

Tên kiểubản ghi

Page 13: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

• Một số ví dụ kiểu bản ghi:

Kiểu bản ghi 1312/25/2014

Type ChuThe = record;STT , SoThe, DienThoai, Diem, DoanhSo : real;

TenChuThe, DiaChi : string[100];end;

Var A, B, C : ChuThe;DanhSachKhachHang : array[1..10] of ChuThe;

Page 14: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

const Max = 10;type KhachHang = recode

STT , CMND, SoThe, TienThuong : real;TenKhachHang, DonViPhatHanh : string[50];

end;var A,B : KhachHang;

DanhSachKH : array[1..Max] of KhachHang;

Kiểu bản ghi 1412/25/2014

Page 15: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

2.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 nhaumột dấu chấm (.) cú pháp như sau:

Kiểu bản ghi 1512/25/2014

<Tên biến bản ghi> . < tên trường>

Ví dụ: hs2.TongDiem: tham chiếu đến Tổng điểm của học sinh Trần Thị HoaLop[i].DiemLT: tham chiếu đến Điểm lý thuyết của học sinh thứ i tronglớ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ả

Nguyễn Hoàng Anh 8 9 17 Đạt

Trần Thị Hoa 2 7 9 Chưa đạt

Đỗ Minh Quân 2 1 8 Chưa đạt

Hồ Quang Thắng 8 2 10 Đạt

hs1

hs2hs3

hs4

Page 16: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

3. Gán giá trị

Gán giá trị trực tiếp cho biến bản ghi: cũng giống như biếnthuộ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ếuX, 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ủabản ghi cũng được nhập, xuất, xử lý như mỗi biến bìnhthường bằng lệnh gán hoặc nhập từ bàn phím.

Ví dụ:

a.HoTen := ‘Nguyễn Hoàng Anh’;

Hoặc: readln(a.HoTen);

Kiểu bản ghi 1612/25/2014

Page 17: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

4. Củng cố

Kiểu bản ghi 1712/25/2014

Đị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ị

Page 18: Bài giảng - Tin học 11 - Bài 3: Kiểu bản ghi

12/25/2014 Bài 13: Kiểu bản ghi 18