[r]
Trang 1Bµi 16
Gi¸o ¸n ®iÖn tö tin häc líp 11
Trang 2
Tổng
4.5 6.0
Phan Vân 50
7.5 5.0
Đặng Anh Tuấn 49
6.5 7.0
Trần Thu Trà 48
5.0 8.5
Vũ Ngọc Bình 02
9.0 10.0
Nguyễn An 01
Kết quả
Văn Toán
Họ tên SBD
Bài toán đặt vấn đề:
(Record)
Tr ờng
(Field)
Bảng gồm : 50 đối t ợng (record) với 6 thuộc tính (Field)
Yêu cầu : Nhập vào thông tin của từng học sinh, tính tổng và
Trang 31 Dữ liệu kiểu bản ghi 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ó kiểu dữ liệu khác nhau
2 Khai báo kiểu 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 2> : kiểu tr ờng 2;
end;
Var <tên biến > : <tên kiểu bản ghi>;
<tên mảng > : ARRAY[1 Max] of < tên kiểu bản ghi>;
Dữ liệu kiểu bản ghi
Trang 4
Tæng
4.5 6.0
Phan V©n 50
7.5 5.0
§Æng Anh TuÊn
49
6.5 7.0
TrÇn Thu Trµ
48
5.0 8.5
Vò Ngäc B×nh
02
9.0 10.0
NguyÔn An
01
KÕt qu¶
V¨n To¸n
Hä tªn SBD
Type
Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
Khai b¸o kiÓu d÷ liÖu cho c¸c tr êng (field)
Khai b¸o biÕn kiÓu
Trang 53 C¸c thao t¸c víi b¶n ghi
a NhËp th«ng tin häc sinh
Write(‘ Nhap vao so hoc sinh trong lop : ‘); 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(‘ SBD : ‘); readln( LOP[i].SBD );
Write(‘HO TEN : ‘); readln( LOP[i].Hoten ); Write(‘ Diem toan : ‘);readln( LOP[i].Toan ); Write(‘ Diem van : ‘);readln( LOP[i].Van );
end;
- NhËp d÷ liÖu (c¸c
thuéc tÝnh) cña
tõng b¶n ghi
Trang 69.0 10.0
NguyÔn An 01
V¨n To¸n
Hä vµ tªn SBD
Khi i = 1 LOP[1].SBD
Qu¸ tr×nh nhËp kÕt thóc khi nhËp hÕt d÷ liÖu cho b¶n ghi
thø n.
* NhËp gi¸ trÞ tr êng cho SBD cña häc sinh thø nhÊt n»m
ë b¶n ghi ®Çu tiªn
* T ¬ng tù nh vËy nhËp gi¸ trÞ c¸c tr êng cßn l¹i
Trang 7b 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 “ ”
ợc lại điền chữ Khong dat “ ”
For i:=1 to n do
IF LOP[i] Tong>=10 then LOP[i] Ketqua=‘Dat’
else LOP[i] Ketqua=‘Khong dat’;
Trang 8c 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
LOP[i].Toan :5:1 ,LOP[i].Van :5:1 , LOP[i].Tong :8:1 ,LOP[i].Ketqua :15);
Trang 9Hãy viết ch ơng trình hoàn chỉnh
để giải bài toán
đặt vấn đề ?
Program vd1;
Uses crt;
Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
Var LOP: ARRAY[1 100] of Hocsinh;
i,n: integer;
BEGIN
Clrscr; { nhap so hoc sinh }
Write(‘ Nhap vao so hoc sinh trong lop : ‘);
readln(n);
{ nhap du lieu tung ban ghi}
For i:=1 to n do
Begin
writeln(‘ Nhap so lieu hoc sinh thu ‘,i);
Write(‘ SBD : ‘); readln(LOP[i].SBD);
Write(‘HO VA TEN : ‘); readln(LOP[i].Hoten);
Write(‘ Diem toan : ‘);readln(LOP[i].Toan);
Write(‘ Diem van : ‘);readln(LOP[i].Van);
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 10H·y nhí!
G¸n gi¸ trÞ cho tõng tr êng cña
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