Em hãy cho biết Dữ liệu kiểu mảng là gì?... ĐẶC VẤN ĐỀEm hãy cho biết số lượng học sinh trong lớp,các thuộc tính của từng học sinh và kiểu dữ liệu của từng thuộc tính đó?... Bµi 13 DỮ LI
Trang 2Em hãy cho biết Dữ liệu kiểu mảng
là gì?
Trang 3ĐẶC VẤN ĐỀ
Em hãy cho biết số lượng học sinh trong lớp,các thuộc tính của từng
học sinh và kiểu dữ liệu của từng thuộc tính đó?
Trang 4Bµi
13
DỮ LIỆU KIỂU BẢN GHI
KHAI BÁO KIỂU BẢN GHI
CÁC THAO TÁC VỚI BẢN GHI
Nhập thông tin học sinh
Các thao tác xử lí trong bản ghi
In dữ liệu kiểu bản ghi
Trang 5Bµi 13
DỮ LIỆU KIỂU BẢN GHI KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC 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.
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
1.DỮ LIỆU KIỂU BẢN GHI
B¶n ghi (Record)
Tr êng
(Field)
Yªu cÇu : NhËp vµo th«ng tin cña tõng häc sinh, tÝnh tæng vµ
xÐt kÕt qu¶, biÕt r»ng nÕu tæng >=10 th× kÕt qu¶ lµ
§¹t
Trang 6< 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;
.
< tên trường n>: kiểu trường n;
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>;
Bµi 13
DỮ LIỆU KIỂU BẢN GHI KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC 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.
1.DỮ LIỆU KIỂU BẢN GHI
2 KHAI BÁO KIỂU BẢN GHI
Trang 7
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;
Var LOP: ARRAY[1 50] of Hocsinh ;
I,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)
Bµi 13
DỮ LIỆU KIỂU BẢN GHI KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC BẢN GHI
Trang 83 C¸c thao t¸c víi b¶n ghi
Write(‘ Nhap vao so hoc sinh trong lop : ‘); readln(n);
pascal
- NhËp sè häc sinh
For i:=1 to n do
Begin
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
Bµi 13
DỮ LIỆU KIỂU BẢN GHI KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC BẢN GHI
a.Nhập giá trị của một biến kiểu bản ghi
Trang 99.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
Bµi
13 DỮ LIỆU KIỂU BẢN GHI
KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC BẢN GHI
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 ?
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’;
Bài 13
DỮ LIỆU KIỂU BẢN GHI KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC BẢN GHI
Trang 11c In d÷ liÖu kiÓu b¶n ghi
pascal
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 );
Bµi
13 DỮ LIỆU KIỂU BẢN GHI
KIỂM TRA BÀI CŨ ĐẶC VẤN ĐỀ KHAI BÁO CÁC THAO TÁC BẢN GHI
Trang 12Hã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);
{ 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 13H·y nhí!
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
Trang 141 Bài tập về nhà: SGK
2 Chuẩn bị Tiết bài tập