4 3 2 1 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... Tham chiếu đến từng tr ờng:... Các
Trang 1xÐt Bµi to¸n:
B¶ng kÕt qu¶ kiÓm tra chÊt l îng
Nam Léc 21/02/91
§µo B×nh
7 10
ThÞ TrÊn 22/09/91
NguyÔn An
XÕp lo¹i V¨n
To¸n
§Þa chØ Ngµy sinh
Hä vµ tªn
5.5 4.5
V©n Diªn 01/05/90
Lª Na
9 7.5
9 8
Xu©n Hßa 22/09/91
TrÇn Böu
5 2.4
Xu©n Hßa 15/12/91
Hå Ch ¬ng
6 9.7
V©n Diªn 04/04/90
Lª Ph ¬ng
ViÕt ch ¬ng tr×nh nhËp vµo tõ bµn phÝm c¸c th«ng tin (hä
h×nh kÕt qu¶ xÕp lo¹i häc sinh.
Trang 2Bµi 13
tin häc líp 11
Trang 4Bảng gồm : N đối t ợng (record) với 6 thuộc tính (Field)
Nam Lộc 21/02/91
Đào Bình
7 10
Thị Trấn 22/09/91
Nguyễn An
Xếp loại Văn
Toán
Địa chỉ Ngày sinh
Họ và tên
5 4.5
Vân Diên 01/05/90
Lê Na
9 7.5
9 8
Xuân Hòa 22/09/91
Trần Bửu
5 2.4
Xuân Hòa 15/12/91
Hồ Ch ơng
6 9.7
Vân Diên 04/04/90
Lê Ph ơng
Bản ghi (Record)
Tr ờng
(Field)
N
4
3
2
1
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
Trang 51 Khai báo kiểu bản ghi, biến bản ghi.
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>;
<tên biến mảng > : ARRAY[1 Max] of < tên kiểu bản ghi>;
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
Tham chiếu đến từng tr ờng: <tên biến bản ghi>.<tên tr ờng>
Trang 6Type
Hocsinh = record
Hoten: string[30];
Ngaysinh:string[10];
Diachi:string[50];
Toan,Van: real;
Xeploai: char;
end;
Var LOP: ARRAY[1 60] of Hocsinh ;
I,j,n : integer;
Khai báo kiểu dữ liệu cho các tr ờng (field)
Khai báo biến kiểu bản ghi (record)
Ví dụ: Hãy mô tả cấu trúc dữ liệu của bài toán đã đề ra (khai báo kiểu
dữ liệu bản ghi và các biến bản ghi phù hợp)?
Nam Lộc 21/02/91
Đào Bình
7 10
Thị Trấn 22/09/91
Nguyễn An
Xếp loại Văn
Toán
Địa chỉ Ngày sinh
Họ và tên
5.5 4.5
Vân Diên 01/05/90
Lê Na
9 7.5
9 8
Xuân Hòa 22/09/91
Trần Bửu
5 2.4
Xuân Hòa 15/12/91
Hồ Ch ơng
6 9.7
Vân Diên 04/04/90
Lê Ph ơng
Trang 7a NhËp th«ng tin häc sinh
Write(‘ So luong hoc sinh: ‘); readln(N);
- NhËp sè häc sinh
For i:=1 to N do
Begin
writeln(‘ Nhap du lieu cho hoc sinh thu ‘, i );
Write(‘ HO 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 );
End;
- NhËp d÷ liÖu
tõng b¶n ghi.
Trang 8if 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';
if (lop[i].toan+lop[i].van<10) then lop[i].xeploai:='D';
Trang 9Khi i = 1 LOP[1].HOTEN
Qu¸ tr×nh nhËp kÕt thóc khi nhËp hÕt d÷ liÖu cho b¶n ghi thø n.
ghi ®Çu tiªn
* T ¬ng tù nh vËy nhËp gi¸ trÞ c¸c tr êng cßn l¹i
A 9
10 Nam §µn
22/09/91 NguyÔn An
XÕp lo¹i V¨n
To¸n
§Þa chØ Ngµy sinh
Hä vµ tªn
Trang 10b Các thao tác xử lí trong bản ghi
Tính tổng điểm văn và toán của từng học sinh trong lớp.
Dùng lệnh gì để tính tổng cho từng bản ghi nhỉ ?
For i:=1 to n do
LOP[i] Tong:= LOP[i] Toan + LOP[i] Van;
Điền chữ Đạt vào cột kết quả cho những học sinh có tổng >=10, ng “Đạt” vào cột kết quả cho những học sinh có tổng >=10, ngư ” vào cột kết quả cho những học sinh có tổng >=10, ngư
ợc lại điền chữ Khong dat “Đạt” vào cột kết quả cho những học sinh có tổng >=10, ngư ” vào cột kết quả cho những học sinh có tổng >=10, ngư
For i:=1 to n do
IF LOP[i] Tong>=10 then LOP[i] Ketqua=‘Dat’
else LOP[i] Ketqua=‘Khong dat’;
Trang 11c In d÷ liÖu kiÓu b¶n ghi
Th«ng b¸o in Writeln(‘ Bang ket qua kiem tra chat luong ‘);
For i:=1 to n do
In b¶ng d÷ liÖu
Writeln( LOP[I].sbd :5 ,LOP[i].Hoten :30 , LOP[i].Toan :5:1 ,LOP[i].Van :5:1 ,
LOP[i].Tong :8:1 ,LOP[i].Ketqua :15 );
Trang 12Hãy viết ch ơng trình hoàn chỉnh
để giải bài toán
đặt vấn đề ?
Program Xep_loai;
Uses crt;
Hocsinh = record
Hoten: string[30];
Ngaysinh:string[10];
Diachi:string[50];
Toan,Van:real;
Xeploai: char;
end;
Var LOP: ARRAY[1 60] of Hocsinh;
i,n: Byte;
BEGIN
Clrscr; { nhap so hoc sinh }
Write(‘ So luong hoc sinh N=: ‘);readln(n);
{ nhap du lieu tung ban ghi}
For i:=1 to n do
Begin
writeln(‘ Nhap so lieu 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
end;
{ tinh tong cho tung ban ghi }
For i:=1 to n do LOP[i].Tong := LOP[i].Toan + LOP[i].Van;
{ dien ket qua cho tung ban ghi }
For i:=1 to n do
if LOP[i].Tong>=10 then LOP[i].Ketqua:=‘Dat’
else LOP[i].Ketqua:=‘Khong dat’;
{ In bang du lieu }
Writeln(‘ Bang ket qua kiem tra ‘);
For i:=1 to n do Writeln(LOP[I].sbd:5,LOP[i].Hoten:30, LOP[i].toan:5:1,LOP[i].Van:5:1, LOP[i].tong:8:1,LOP[i].Ketqua:15);
Readln;
END.
Trang 13Uses crt;
Type { Khai bao}
Hocsinh = record
Hoten: string[30];
Ngaysinh:string[10];
Diachi:string[50];
Toan,Van:real;
Xeploai: char;
end;
Var LOP: ARRAY[1 60] of Hocsinh;
i,n: Byte;
BEGIN
Clrscr;
Write(' So luong hoc sinh N=: ');readln(n);
For i:=1 to n do
Begin
writeln;
writeln(' Nhap so lieu 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<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';
if (lop[i].toan+lop[i].van<10) then
lop[i].xeploai:='D';
end;
{ In bang du lieu }
Writeln;
Writeln(' Bang XEP LOAI: ');
For i:=1 to n do Writeln(LOP[i].Hoten:30,LOP[i].toan:5:1, LOP[i].Van:5:1,LOP[i].xeploai:15);
Readln;
END
Trang 14H·y nhí!
G¸n gi¸ trÞ cho tõng tr êng cña
b¶n ghi hoÆc gi÷a hai biÕn cïng kiÓu.
Khai b¸o: tªn biÕn b¶n ghi, tªn
vµ kiÓu d÷ liÖu c¸c tr êng.
Tham chiÕu tr êng cña b¶n ghi:
Tªn biÕn b¶n ghi tªn tr êng
Type
Hocsinh = record
SBD : integer;
Hovaten : string[30];
Toan,Van,Tong:real;
Ketqua :string[10];
end;
Var
LOP: ARRAY[1 50] of hocsinh;
LOP[i].SBD