Array và Set bao gồm các phần tử có cùng kiểu.
Record là kiểu dữ liệu bao gồm nhiều phần tử khác
loại. Record đi liền với kiểu dữ liệu Tệp (File), sẽ học
ở chương sau.
15 trang |
Chia sẻ: Mr Hưng | Lượt xem: 1091 | Lượt tải: 0
Nội dung tài liệu Cơ sở dữ liệu - Chương 13: Kiểu dữ liệu có cấu trúc: Kiểu bản ghi (Record), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
13.1
Có 4 kiểu dữ liệu có cấu trúc:
ARRAY, SET, RECORD, FILE
Chương 13
Kiểu dữ liệu có cấu trúc:
Kiểu bản ghi (Record)
13.2
Array và Set bao gồm các phần tử có cùng kiểu.
Record là kiểu dữ liệu bao gồm nhiều phần tử khác
loại. Record đi liền với kiểu dữ liệu Tệp (File), sẽ học
ở chương sau.
Thí dụ 13.1:
TYPE
Dia_Chi = RECORD
So_Nha: integer;
Pho : String[20];
Thanh_Pho:String[15];
END;
13.3
Thí dụ 13.2:
TYPE
Date = RECORD
Ngay : 1..31;
Thang: 1..12;
Nam : integer;
END;
TYPE
Date = RECORD
Day: 1..31;
Month:(Jan, Feb, Mar, Apr,
May, Jun, Jul, Aug,
Sep, Oct, Nov, Dec);
Year: integer;
END;
13.4
TYPE
Nhan_Su = RECORD
Ho_Ten : String[30];
Ngay_Sinh: Date;
Gioi_Tinh: (Nam, Nu);
O_Tai : Dia_Chi;
Luong : Real;
END;
Phiếu hồ sơ cán bộ
Họ và tên:
Ngày sinh:
Giới tính:
Địa chỉ:
Lương:
13.5
Sử dụng Record
TYPE Nhan_Su = ...;
VAR
Nguoi1, Nguoi2: Nhan_Su;
BEGIN
write ('Ho va Ten Nguoi 1: ');
readln( Nguoi1.Ho_Ten);
write ('Ngay Sinh: ' ); readln(Nguoi1.Ngay_Sinh.Ngay);
write ('Thang sinh: '); readln(Nguoi1.Ngay_Sinh.Thang);
write ('Nam sinh: '); readln(Nguoi1.Ngay_Sinh.Nam);
write ('O tai so nha: ');readln(Nguoi1.O_Tai.So_Nha);
write (' Pho: '); readln(Nguoi1.O_Tai.Pho);
write(' Thanh pho : ');readln(Nguoi1.O_Tai.ThanhPho);
Nguoi2:=Nguoi1; {Biến Nguoi2 được gán giá trị }
...
END.
13.6
Nhận xét:
Cách truy nhập vào một trường của Record
Nguoi1.Ho_Ten
Có thể làm phép gán 2 Record cùng loại:
Nguoi2:=Nguoi1
So sánh bằng nhau giữa 2 Record
If Nguoi2=Nguoi1 then
writeln('Cùng mot nguoi!');
13.7
Tuy nhiên ta không làm được
1) Read và Write cả một Record
Readln (Nguoi1);
Writeln(Nguoi1);
2) So sánh các Record bằng các phép toán
quan hệ như sau:
, =
Riêng các phép so sánh (khác nhau) và
= (bằng nhau) thì có thể được dùng với hai
biến có cùng một kiểu Record.
3) Tất cả các phép toán số học và logic.
13.8
Thí dụ 13.6
Phép cộng số phức.
TYPE
Complexe = RECORD
PT,PA: real ;
END;
VAR
C1,C2,C3: Complexe;
Dau: String[5];
C3 := C2 + C1; Đúng không?
13.9
BEGIN
C1.PT:= 3.5;C1.PA :=-0.2; {C1=3.5-j0.2 }
C2.PT:= 5.8;C2.PA := 7.1; {C2=5.8+j7.1 }
C3.PT := C1.PT + C2.PT;
C3.PA := C1.PA + C2.PA;
Writeln(' Tong cua hai so phuc : ');
If C1.PA >= 0 then Dau:=' + j '
else Dau:= ' - j ';
Writeln(' C1 = ',C1.PT:5:2, Dau ,Abs(C1.PA):5:2);
If C2.PA >= 0 then Dau:=' + j ' else Dau:=' - j ';
Writeln(' C2 = ',C2.PT:5:2, Dau ,Abs(C2.PA):5:2);
Writeln(' La so phuc : ');
If C3.PA >=0 then Dau:=' + j ' else Dau := ' -j ';
Writeln(' C3 = ',C3.PT:5:2, Dau ,Abs(C3.PA):5:2);
END.
13.10
Kết quả chạy chương trình:
Tong cua hai so phuc :
C1 = 3.50 - j 0.20
C2 = 5.80 + j 7.10
La so phuc :
C3 = 9.30 + j 6.90
13.11
Mảng các bản ghi
VAR
CanBo: Array[1..100] of Nhan_Su;
Ta có thể viết:
CanBo[50].Ho_Ten:='Nguyen Van A';
CanBo[50].NgaySinh.Ngay:=31;
13.12
Thí dụ 13.7
VAR
CanBo: Array[1..100] of Nhan_Su;
TG : Nhan_Su; {ô nhớ Trung Gian}
i, j: integer;
BEGIN
...
FOR i:=1 TO 99 Do
FOR j:= i + 1 TO 100 DO
If CanBo[i].Ho_Ten > CanBo[j].Ho_Ten then
Begin
TG :=CanBo[i];
CanBo[i]:= CanBo[j];
CanBo[j]:= TG;
End;
...
END.
13.13
Câu lệnh WITH ... DO ...
WITH Nguoi1 DO
Begin
write('Ho va Ten Nguoi 1: ');
readln (Ho_Ten);
WITH Ngay_Sinh DO
Begin
write('Ngay sinh : ');
readln(Ngay);
write('Thang sinh : ');
readln(Thang);
write('Nam sinh : ');
readln(Nam);
End;
End;
13.14
WITH Nguoi1, NgaySinh DO
Begin
Ngay :=12;
Thang:= 5;
Nam :=1960;
End;
Hoặc với mảng CanBo ta có thể viết:
WITH CanBo[50] DO
Begin
Ho_Ten := 'Le Thi Tam';
......
End;
13.15
Bài tập
1/ Viết chương trình nhân hai số phức A, B. Kết quả là C.
2/ Xây dựng cấu trúc dữ liệu mô tả các phiếu ghi ở thư viện.
Xây dựng một hộp phiếu bằng một mảng các phiếu ghi.
Sau đó lập chương trình vào số liệu của một nhân viên
thư viện.
Cuối cùng là phân loại hộp phiếu theo thứ tự ABC của tên
sách.
3/ Hãy mô tả một đa thức được viết dưới dạng Record
Sau đó làm phép nhân, cộng 2 đa thức.
Các file đính kèm theo tài liệu này:
- ngon_ngu_lap_trinh_pascalchuong13_0026.pdf