bai giang 13

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

Upload: chi-le

Post on 07-Aug-2015

73 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Bai giang 13

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

BÀI 13:KIỂU BẢN GHI

Page 2: Bai giang 13

04/15/2023 Bài 13: 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 ghi2.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ố2

Page 3: Bai giang 13

304/15/2023Kiểu bản ghi

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 dữ liệu có cấu trúc

• Kiểu mảng• Kiểu xâu

Page 4: Bai giang 13

404/15/2023

Mở đầu: Bảng thông tin cá nhân.

Bài 13: Kiểu bản ghi

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 ĐồngNguyễ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: Bai giang 13

504/15/2023

• 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

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

1234

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

Page 6: Bai giang 13

Kiểu bản ghi 604/15/2023

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ủa các đối tượng đó

trên máy tính?

Page 7: Bai giang 13

Kiểu bản ghi 704/15/2023

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 hai chiề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ặc khá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ủa 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)

Bản

ghi (

Reco

rd)

Page 8: Bai giang 13

Kiểu bản ghi 804/15/2023

• 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ượngthuộc tính thuộc tính

kiểu dữ liệu khác nhau.

Page 9: Bai giang 13

Kiểu bản ghi 904/15/2023

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

Page 10: Bai giang 13

Kiểu bản ghi 1004/15/2023

2. Khai báo2.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;

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: Bai giang 13

Kiểu bản ghi 1104/15/2023

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

varhs1, hs2, hs3, hs4 : HocSinh;

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 đạtHồ Quang Thắng 8 2 10 Đạt

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

hs1hs2hs3hs4

type HocSinh = recordHoTen: string[100];

DiemLT : byte;DiemTH : byte;TongDiem : byte;

KetQua : string[10];end;

Cùng kiểu dữ liệu

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

Page 12: Bai giang 13

Kiểu bản ghi 1204/15/2023

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

Page 13: Bai giang 13

Kiểu bản ghi 1304/15/2023

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

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: Bai giang 13

Kiểu bản ghi 1404/15/2023

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;

Page 15: Bai giang 13

Kiểu bản ghi 1504/15/2023

2.3. Cách tham chiếu đến trường của bản ghiCá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ụ: 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 trong 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ả

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

hs1hs2hs3hs4

Page 16: Bai giang 13

Kiểu bản ghi 1604/15/2023

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ế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.HoTen := ‘Nguyễn Hoàng Anh’;

Hoặc: readln(a.HoTen);

Page 17: Bai giang 13

Kiểu bản ghi 1704/15/2023

4. 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ị

Page 18: Bai giang 13

04/15/2023 Bài 13: Kiểu bản ghi 18