KIỂU
BẢN GHI (RECORD)
I.
KHAI BÁO DŨ LIỆU KIỂU RECORD
TYPE TênKiểu = RECORD
Field1 : Kiểu1;
Field2 : Kiểu2;
...
FieldN: KiểuN;
END;
VAR Biến : TênKiểu;
Ví dụ:
TYPE HocSinh
= Record
Hoten : String[20];
Tuoi :
Integer;
DiemTB : real;
End;
VAR HS : HocSinh;
II.
XUẤT NHẬP DỮ LIỆU KIỂU RECORD
Không thể dùng các thủ tục xuất/nhập, các phép toán
so sánh đối với các biến
kiểu record mà chỉ có thể sử dụng thông qua từng truờng
của biến record đó.
2.1. Truy nhập trực tiếp: TênbiếnRecord.Field
ví dụ:
hs.hoten:=’ Nguen van An’;
hs.tuoi:=26;
hs.diemtb:=6.5;
2.2. Sử dụng câu lệnh WITH
WITH TênbiếnRecord
DO
BEGIN
Xử lý Field1;
Xử lý Field2;
...
Xử lý FieldN;
END;
2.3. Gán biến Record: Ta có thể gán 2 biến Record
cùng kiểu với nhau.
ví dụ: Hs:=hs1;
BÀI
TẬP
Bài tập 1: Viết chương trình quản lý điểm thi nghề
phổ thông của học sinh gồm 2 môn thi: lý
thuyết và thực hành; nội dung công việc gồm
-
Nhập danh sách học sinh gồm có: họ tên,
điểm lý thuyết, điểm thực hành
-
In ra danh sách các học sinh đạt loại giỏi
(điểm trung bình 2 môn từ 8.0 trở lên)
-
In danh sách các học sinh đạt điểm 10
môn lý thuyết;
Bài tập 2: Viết chương trình quản lý sách ở thư viện gồm các
trường sau: Mã
sách, Nhan đề, Tên Tác giả, Nhà Xuất bản, Năm xuất bản.
a/ Nhập vào kho sách của thư viện (gồm tất cả các
trường).
b/ In ra màn hình tất cả các cuốn sách có trong thư
viện.
c/ Tìm một cuốn sách có mã số được nhập vào từ bàn
phím. Nếu tìm thấy thì in r
màn hình thông tin đầy đủ của cuốn sách đó, ngược lại
thì thông báo không tìm thấy.
c/ Tìm và in ra màn hình tất cả các cuốn sách có
cùng tác giả được nhập vào từ bà
phím.
d/ Lọc ra các cuốn sách được xuất bản trong cùng một
năm nào đó.
uses crt;
type hs=record
ten:string;
lt:real;
th:real;
end; {end record}
var A:array[1..40] of hs;
i:integer;
begin
clrscr;
{nhap gia tri tung phan tu mang}
For i:=1 to 3 do
begin
write('nhap ten:'); read(a[i].ten);
write('Nhap diem lt:'); read(a[i].lt);
write('Nhap diem th:'); readln(a[i].th);
end;
{xuat tat ca cac phan tu cua mang}
For i:=1 to 3 do
begin
writeln('nhap ten:',a[i].ten);
writeln('Diem lt:',a[i].lt:10:1);
writeln('Diem th:',a[i].th:10:1);
end;
{in danh sach hoc sinh gioi}
for i:=1 to 3 do
if ((a[i].lt+a[i].th)/2) >8 then
begin
writeln('nhap ten:',a[i].ten);
writeln('Diem lt:',a[i].lt:10:1);
writeln('Diem th:',a[i].th:10:1);
end;
readkey;
end.
ĐÁP ÁN
Bài 1:uses crt;
type hs=record
ten:string;
lt:real;
th:real;
end; {end record}
var A:array[1..40] of hs;
i:integer;
begin
clrscr;
{nhap gia tri tung phan tu mang}
For i:=1 to 3 do
begin
write('nhap ten:'); read(a[i].ten);
write('Nhap diem lt:'); read(a[i].lt);
write('Nhap diem th:'); readln(a[i].th);
end;
{xuat tat ca cac phan tu cua mang}
For i:=1 to 3 do
begin
writeln('nhap ten:',a[i].ten);
writeln('Diem lt:',a[i].lt:10:1);
writeln('Diem th:',a[i].th:10:1);
end;
{in danh sach hoc sinh gioi}
for i:=1 to 3 do
if ((a[i].lt+a[i].th)/2) >8 then
begin
writeln('nhap ten:',a[i].ten);
writeln('Diem lt:',a[i].lt:10:1);
writeln('Diem th:',a[i].th:10:1);
end;
readkey;
end.
bai 2 la gi a
Trả lờiXóa