Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn
58
Trang 58
BAèI 9. Dặẻ LIU KIỉU BAN GHI VAè KIỉU TP
I. Kióứu baớn ghi:
1. Khaùi nióỷm vaỡ õởnh nghộa:
Caùc kióứu cỏỳu truùc dổợ lióỷu nhổ kióứu maớng, tỏỷp hồỹp õóửu õổồỹc taỷo ra bũng mọỹt tỏỷp
hồỹp caùc phỏửn tổớ coù cuỡng kióứu.
óứ taỷo ra mọỹt kióứu cỏỳu truùc dổợ lióỷu mồùi vồùi caùc phỏửn tổớ dổợ lióỷu coù kióứu khaùc
nhau, ngổồỡi ta õởnh nghộa ra baớn ghi
(Record). RECORD
laỡ mọỹt cỏỳu truùc bao gọửm
nhióửu thaỡnh phỏửn. Caùc thaỡnh phỏửn coù thóứ thuọỹc caùc kióứu dổợ lióỷu khaùc nhau vaỡ õổồỹc
goỹi laỡ caùc trổồỡng
(Field),
mọựi trổồỡng õóửu õổồỹc õỷt tón.
óứ mọ taớ mọỹt kióứu T coù cỏỳu truùc Record vồùi danh saùch caùc trổồỡng coù tón laỡ
S1,
S2, ..., Sn
vaỡ coù caùc mọ taớ kióứu tổồng ổùng laỡ trổồỡng coù tón laỡ
T1, T2, ... Tn
ta duỡng
caùch vióỳt nhổ sau:
Type
T = Record
S1 : T1;
DS: Array[1..100] of NhanSu;
{Danh sach tren la kieu mang mo ta nhan su cua mot co quan co duoi 100
nhan vien}
ệ Ghi chuù: Ta coù thóứ vióỳt trổỷc tióỳp mọ taớ trổồỡng NgaySinh nóỳu nhổ chổa coù kióứu
Date nhổ sau:
Type
NhanSu = Record
HoDem: String[20];
Ten: String[7];
NgaySinh: Record
Ngay: 1..31;
Thang: 1..12;
Nam: Word;
End;
Luong: Real;
CoGiaDinh: Boolean;
End;
2. Sổớ duỷng Record:
Muọỳn truy cỏỷp mọỹt bióỳn kióứu Record, ta phaới truy cỏỷp theo thaỡnh phỏửn cuớa
chuùng. Cuù phaùp õóứ truy cỏỷp õeùn mọỹt thaỡnh phỏửn naỡo õoù laỡ:
<Tón bióỳn Record>.<Tón trổồỡng>
4 Vờ duỷ:
NV.HoLot := Huynh Dinh;
NV.Ten := Can;
NV.NgaySinh.Ngay : = 4;
NV. NgaySinh.Thang := 2;
NV. NgaySinh. Nam := 1982;
NV.Luong := 500000;
NV.CoGiaDinh := False;
Write( So nhan vien tai co quan: );
Readln(SoNV);
For i:=1 to SoNV do
Begin
ClrScr;
Write( Ho dem: ); Readln(DS[i].HoDem);
Write( Ho dem: ); Readln(DS[i].Ten);
Write( Ngay sinh: / /);
GotoXY(14,3); Readln(DS[i].NgaySinh.Ngay);
GotoXY(17,3); Readln(DS[i].NgaySinh.Thang);
GotoXY(20,3); Readln(DS[i].NgaySinh.Nam);
Write( Luong: ); Readln(DS[i].Luong);
Write( Co gia dinh (Y/N) ?: ); Readln(GD);
– Giạo trçnh Láûp trçnh Pascal càn bn —
–
61
—
Trang 61
If Upcase(GD) = ‘Y’ then
DS[i].CoGiaDinh := True
Else
DS[i].CoGiaDinh := False;
End;
Readln;
End.
Ư Ghi chụ:
- Cạc biãún
Record
Khi cáưn truy cáûp nhiãưu thnh pháưn ca mäüt biãún kiãøu Record, ta cọ thãø dng cáu
lãûnh
With
âãø chỉång trçnh âỉåüc gn hån.
Cụ phạp:
WITH <Biãún kiãøu Record> DO <Cáu lãûnh>
4
Vê dủ 1: Theo nhỉ vê dủ 1, ta cọ thãø viãút ngàõn gn hån nhỉ sau:
Uses CRT;
Type
Date = Record
Ngay: 1..31;
– Giaïo trçnh Láûp trçnh Pascal càn baín —
–
62
—
Trang 62
Thang: 1..12;
Nam: Word;
End;
NhanSu = Record
HoDem: String[20];
Ten: String[7];
NgaySinh: Date;
Luong: Real;
CoGiaDinh: Boolean;
End;
Var