- Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
- Kiểu bản ghi là một kiểu dữ liệu có cấu trúc. Một bản ghi gồm các thành phần [gọi là trường], khác với các kiểu dữ liệu có cấu trúc khác [mảng và xâu], các trường có thể thuộc các kiểu dữ liệu khác nhau;
- Kiểu bản ghi cho phép mô tả nhiều đối tượng có cùng một số thuộc tính, có hữu ích cho nhiều bài toán quản lí;
- Ngôn ngữ lập trình đưa ra quy tắc, cách thức xác định.
- Tên kiểu bản ghi;
-Tên các thuộc tính [trường];
-Kiểu dữ liệu của mỗi trường;
-Cách khai báo biến;
-Cách tham chiếu đến trường.
1. Khai báo
- Các thông tin cần khai báo bao gồm tên kiểu bàn ghi, tên các thuộc tính, kiểu dữ liệu của mỗi thuộc tính.
type = record
:
:
end;
Sau khi có kiểu bản ghi, biến kiểu bản ghi có thể được khai báo như sau:
var
: ;
Ví dụ
Trong chương trình xử lí kết quả tốt nghiệp có thể sử dụng khai báo sau đây: const Max= 60; {gia thiet si so lop cao nhat la 60}
A, B: HocSinh;
Lop: array[1..Max] of HocSinh;
- Nếu A là biến kiểu bản ghi và X là tên một trường của A, thì để tham chiếu đến trường X, ta viết:
A.x
- Để tham chiếu đến điểm thi tin học của học sinh A ta viết:
A.Tin
type
Hocsinh = record
HoTen: string[30];
NgaySinh: string[10];
GioiTinh: boolean;
Tin, Toan, Li, Hoa, Van, Su, Dia: Heal;
End;
var
A, B: HocSinh;
Lop: array[1..Max] of HocSinh;
- Nếu A là biến kiểu bản ghi và X là tên một trường của A, thi để tham chiếu đến trường X, ta viết:
- Để tham chiếu đến điểm thi tin học của học sinh A ta viết:
A.Tin
2.Gán giá trị
Có hai cách để gán giá trị cho biến bản ghi:
Cách 1: Dùng lệnh gán trực tiếp: Nếu A và B là hai biến bản ghi cùng kiểu, thì ta có thể gán giá trị cùa B cho A bằng câu lệnh:
A:= B;
Cách 2: Gán giá trị cho từng trường: có thể thực hiện bằng lệnh gán hoặc nhập từ bàn phím.
Vi dụ: Chương trình nhập vào từ bàn phím thông tin của từng học sinh trong lớp, thực hiện xếp loại và đưa ra màn hình kết quả xếp loại học sinh:
program xep_loai;
USRS crt;
const max= 60;
type Hocsinh = record
hoten: string[30];
ngaysinh: string [10];
Diachi: string[50] ;
Toan, Van: real;
Xeploai : char; end;
var
Lop: array [ 1. .max] of hocsinh;
N,i: byte;
Begin
clrscr;
write['So luong hoc sinh trong lop N= ] ;
readln[N];
for i:= 1 to N do
begin
writeln[ 'Nhap so lieu ve hoc sinh thu',i,': '];
Write [Ho va ten: ]; readln [lop [i]. hoten];
Write [ Ngay sinh : ]; readln [lop [i].ngaysinh];
Write [ Dia chi : ]; readln [lop [i].Diachi];
Write [Diem Toan : ]; readln [lop [i]. Toan];
Write [Diem Van : ]; readln [lop [i]. Van];
If Lop [i]. Toan+Lop [i]. Van >=18
then Lop [i]. xeploai:=A;
if [Lop[i].Toan+Lop[i].Van>=14] and
Lop [i]. Toan+Lop [i]. Van =10] and
Lop [i]. Toan+Lop [i]. Van >=14
then Lop [i]. xeploai:=C;
if [Lop[i].Toan+Lop[i].Van