BÀI TOÁN NÊU VẤN ĐỀ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”... Dữ liệu kiểu bả
Trang 1
Đặng Hữu Hoàng
BÀI GIẢNG TIN HỌC 11
BÀI 13
KIỂU BẢN GHI
Trang 2BÀI TOÁN NÊU VẤN ĐỀ
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 31 KHÁI NIỆM KIỂU BẢN GHI
Nghiên cứu sách giáo khoa, em hiểu như thế nào là bản ghi?
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ó các kiểu dữ liệu khác nhau.
Mỗi đối tượng mô tả bằng một bản ghi.
Mỗi thuộc tính của đối tượng tương ứng với một trường của bản ghi Các trường khác nhau có thể có các dữ liệu khác nhau.
Trang 4Những yếu tố nào để xác định bản ghi?
Tên kiểu bản ghi.
Tên các thuộc tính (trường).
Kiểu dữ liệu của mỗi trường.
Cách khai báo biến
Cách tham chiếu đến trường.
Trang 52 KHAI BÁO KIỂU BẢN GHI
Cấu trúc khai báo kiểu bản ghi trong Pascal?
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>;
……….;
<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 >:
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>;
……….;
< 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 >:
Trang 6Cấu trúc khi tham chiếu đến từng trường của biến bản ghi?
<tên biến bản ghi> <tên trường>;
< tên biến bản ghi > < tên trường >;
A.Hoten B.NgaySinh Lop[i].Toan Lop[i].Ly
Ví dụ:
3 THAM CHIẾU TỚI KÍ TỰ CỦA XÂU
Với i là chỉ số nào đó của mảng Lop
Trang 7Type
Hocsinh = record
SBD: integer;
Hoten: string[30];
Ngaysinh:String[10];
Gioitinh:Boolean;
Toan,Van,Tong: real;
Ketqua: string[10];
end;
i,j,n : integer;
Khai báo dữ liệu cho các trường (field)
Khai báo biến kiểu bản ghi (record)
Trang 84 CÁC THAO TÁC VỚI BẢN GHI
1 Nhập thông tin cho từng 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 va ten : ‘); readln(LOP[i].Hoten);
Write(‘Ngay Sinh : ‘); readln(LOP[i].Ngaysinh); Write(‘Gioi tinh : ‘); readln(LOP[i].Gioitinh); Write(‘ Diem toan : ‘);readln(LOP[i].Toan);
Write(‘ Diem van : ‘);readln(LOP[i].Van);
end;
- Nhập dữ kiệu (các
trường) của bản ghi
Trang 92 Các thao tác xử lí trong bản ghi
- Tính tổng điểm Văn và
điểm toán của từng học
sinh trong lớp
- Điền chữ “Dat” 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
LOP[i] Tong:= LOP[i] Toan + LOP[i] Van;
For i:=1 to n do
IF LOP[i].Tong>=10 then LOP[i].Ketqua=‘Dat’
else LOP[i].Ketqua=‘Khong dat’;
Trang 103 In dữ liệu kiểu bản ghi
For i:=1 to n do
In bảng dữ liệu
Writeln(LOP[i].SBD:5,LOP[i].Hoten:30, LOP[i].Ngaysinh:15, LOP[i].Gioitinh:7, LOP[i].Toan:5:1,LOP[i].Van:5:1,
LOP[i].Tong:8:1,LOP[i].Ketqua:15);
Trang 121 Dùng lệnh gán trực tiếp để gán giá trị
cho biến
5 GÁN GIÁ TRỊ
Tên biến 1, tên biến 2: là hai biến bản ghi cùng kiểu
<tên biến 1> <tên biến 2>;
< tên biến 1 > < tên biến 2 >;
Ví dụ:
A:=B;
B:=A;
Trang 132 Dùng lệnh gán để gán giá trị cho từng
trường
Câu lệnh gán gán giá trị cho các trường hoặc nhập vào từng bàn phím
<tên biến bản ghi> <tên trường>:=<giá trị trường>
< tên biến bản ghi > < tên trường >:=< giá trị trường >
Trang 14Quan sát sách giáo khoa trang 77_Chương trình nhập vào từ bàn phím thông tin của từng học sinh trong lớp, thực hiện xếp loại và đưa ra màn hình kết
quả xếp loại học sinh
Trang 15DẶN DÒ
1 Học tiếp §14 “Kiểu dữ liệu file” _Trang 82 _ Sách giáo khoa
2 Thực hiện bài tập 11 _ trang 80 _Sách Giáo khoa