Dữ liệu kiểu bản ghi (record) 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.
Để mô tả kiểu bản ghi ta cần xác định:
Dưới đây giới thiệu cách khai báo kiểu, biến, tham chiếu đến trường và phép gán giá trị bản ghi trong Pascal.
Do dữ liệu kiểu bản ghi thường dùng để mô tả nhiều đối tượng nên ta thường định nghĩa một kiểu bản ghi và sau đó dùng nó để khai báo các biến liên quan.
type < tên kiểu bản ghi > = record
< tên trường 1 > : < kiểu trường 1 >
……………………………….
< tên trường k > : < kiểu trường k >;
end;
var < tên biến bản ghi > : < tên kiểu bản ghi >;
Ví dụ 1: Quan sát hình 1 dưới đây và khai báo cho kiểu bản ghi học sinh
const Max =60; {gia thiet si so lop cao nhat la 60}
type
HocSinh = record
HoTen: string[30];
NgaySinh: string[10];
GioiTinh: boolean;
Tin, Toan, Li, Hoa, Van, Su, Dia: Real;
end;
var
A, B: HocSinh;
Lop: array[1..Max] of HocSinh;
Hình 1. Bản ghi học sinh
Có 2 cách để gán giá trị cho biến bản ghi:
Một lớp gồm N (N \(\leq\) 60) học sinh. Cần quản lí học sinh với các thuộc tính như họ và tên, ngày sinh, địa chỉ, điểm toán, điểm văn, xếp loại. Giả sử việc xếp loại được xác định như sau:
Chú ý rằng, trong các thuộc tính cần quản lí, chỉ có 5 thuộc tính đầu là độc lập, còn thuộc tính xếp loại được xác định dựa vào các điểm toán và văn. Để lưu trữ thông tin về học sinh, ta dùng kiểu bản ghi với 6 trường tương ứng với 6 thuộc tính cần quản lí.
Gợi ý làm bài:
Dưới đây là 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;
uses 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('Ngaysinh: ');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<18)
then Lop[i].XepLoai:='B';
if (Lop[i].Toan+Lop[i].Van>=10)And
(Lop[i].Toan+Lop[i].Van<14)
then Lop[i].XepLoai:='C'
else Lop[i].XepLoai:='D';
end;
clrscr;
writeln('Danh sach xep loai hoc sinh trong lop:');
for i:= 1 to N do
writeln(Lop[i].HoTen:30,' - Xep loai: ',Lop[i].XepLoai);
readln
end.
Sau khi học xong Bài 13: Kiểu bản ghi, các em cần nắm vững các nội dung trọng tâm:
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 13 cực hay có đáp án và lời giải chi tiết.
Câu 3-Câu 5: Xem thêm phần trắc nghiệm để làm thử Online
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 HOCTAP247
Copyright © 2021 HOCTAP247