Nội dung bài mới Hoạt động thầy và trò Nội dung bài mới GV: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... Ví dụ như:bảng kế
Trang 1KIỂU BẢN GHI
I Mục đích yêu cầu:
1 Kiến thức:
Biết khái niệm kiểu bản ghi
Biết khai báo bản ghi, truy cập trường của bản ghi
2 Kỹ năng:
Biết Khai báo kiểu bản ghi
3 Thái độ:Tích cực ham học hỏi
II Chuẩn bị của giáo viên và học sinh:
1 Chuẩn bị của giáo viên:SGK, SGV, giáo án
2 Chuẩn bị của học sinh:Xem kỹ SGK, soạn trước bài học
III Nội dung bài giảng
1.Ổn định tổ chức
2 kiểm tra bài cũ: Không kiểm tra
3 Nội dung bài mới
Hoạt động thầy và trò Nội dung bài mới GV: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
Trang 2kiểu dữ liệu khác nhau Ví dụ
như:bảng kết quả thi gồm thông tin
các thí sinh: họ tên, ngày sinh, giới
tính, điểm các môn thi,…
GV: Vậy Pascal mô tả kiểu dữ liệu
này như thế nào
GV: họtên có kiểu gì?
HS: Xâu
GV: Ngày sinh có kiểu gì?
HS: Ngày tháng
GV:trong Pascal không có kiểu ngày
1 Khai báo Định nghĩa:
TYPE <tên kiểu bản ghi>=RECORD
<tên trường1>:<kiểu trưòng 1>;
<tên trưòng2>:<kiểu trường2>;
………
<tên trường n>:<kiểu trườngn>; End;
VAR <tên biến bản ghi>:<tên kiểu bản ghi>;
Ví dụ: Để xử lí kết qủa thi hai môn toán văn của một lớp học(dữ liệu về một học sinh):
Hoten ngaysinh Gioitinh Toan Van
Trang 3tháng nên ta xem ngày tháng như một
xâu gồ có ? Kí tự
HS:10 kí tự
GV: Giới tính có kiểu gì?Nếu là nam
thì nhận giá trị True, nữ nhận giá trị
False
HS: Boolean
GV: Toán, văn có kiểu gì?
HS:Real;
GV: Yêu cầu học sinh khai báo
GV: Để nhập dữ liệu cho mảng ta
nnhập như thế nào?
HS: Nhập từng phần tử
GV: Đối với bản ghi cũng vậy, ta làm
việc với bản ghi tức là làm trên từng
trường Cách làm việc trên trường của
bản ghi như thế nào?
Ta khai báo như sau Const max=60;
TYPE hocsinh=record Hoten:string[30];
Ngaysinh:string[10];
Gioitinh:boolean;
Toan,van:real;
End;
Var LOP: Array[1 max] of hocsinh;
2 Cách dùng biến bản ghi:
Bản ghi là dữ liệu có cấu trúc: Xác định giá trị bản ghi thông qua các trường trong bản ghi đó Cách chỉ định biến trường nư sau: <Tên biến bản ghi>.<tên trường>
Ví dụ: Var A:hocsinh;
-Để nhập thông tin về một học sinh A ta
Trang 4HS: Trả lời
GV: Nhập bản ghi ta cũng nhập trên
từng trường Vậy nhập dữ liệu cho học
sinh A?
HS: Thực hiện( GV nhận xét)
GV: Nêu ví dụ và hỏi học sinh đúng
hay sai
nhập như sau:
{…}
Readln(A.hoten);
Readln(A.ngaysinh);
Readln(A.gioitinh);
Readln(A.Toan);
Readln(A.van);
{…}
-Để viết thông tin học sinh A ra màn hình ta làm như sau:
{…}
Write(A.hoten);
Write(A.ngaysinh);
Write(A.gioitinh);
Write(A.Toan);
Write(A.van);
{…}
*Chú ý : -Ta không đựợc phép nhập vào hay hiển thị ra trực tiếp biến bản ghi
Trang 5GV: bài toán yêu cầu?
Khai báo, tổ chức dữ liệu như thế nào?
HS: Trả lời
Nhập số học sinh của lớp?
HS: Thực hiện
Nhập thông tin cho học sinh của lớp,
như vậy ta nhập tất thảy bao nhiêu học
sinh?
HS: n học sinh
VD: Lệnh sau là sai:
Với A là kiểu họcsinh;
Readln(A);Write(A);
-Ta có thể gán hai biến bản ghi cùng kiểu cho nhau
3.Ví dụ minh hoạ:
Chương trình sau dùng để nhập kết quả học tâp hai môn Toán, Văn của một lớp Program VD;
Uses crt;
Const max=100;
TYPE Hsinh=record Hoten:string[30];
Ngaysinh:string[10];
Toan,van:real;
End;
Var i, n:Byte;
LOP:ARRAY[1 max] of Hsinh;
Begin Clrscr;
Trang 6GV: Mỗi học sinh nhập bao nhiêu
thông tin?
HS: 4 thông tin
GV: lặp việc nhập với số lần?
Đoạn chương trình trên ta thấy bản ghi
Lop[i] nhắc đi, nhắc lại Ta có thể
dùng câu lệnh With như sau:
Write(‘Nhap so hoc sinh cua lop:’);
Readln(n);
For i:=1 to n do Begin
Write(‘ nhap hoten:’);
readln(LOP[i].hoten);
Write(‘ nhap ngaysinh:’);
readln(LOP[i].ngaysinh);
Write(‘ nhap diem Toan:’);
readln(LOP[i].toan);
Write(‘ nhap diem Van:’);
readln(LOP[i].van);
End;
Readln;
END
4.Câu lệnh With With <biến bản ghi> Do <câu lệnh>
Ý nghĩa:Trong câu lệnh sau từ khoá DO, các tên gọi trùng với tên trường của biến bản ghi xác định chính biến trường
Trang 7tương ứng VD: Đoạn chương trình trên viết lại như sau:
For i:=1 to n do With Lop[i] do Begin
Write(‘ nhap hoten:’);
readln(hoten);
Write(‘ nhap ngaysinh:’);
readln(ngaysinh);
Write(‘ nhap diem Toan:’);
readln(toan);
Write(‘ nhap diem Van:’);
readln(van);
End;
1 Củng cố
-Cách khai báo Kiểu bản ghi?
-Kiểu bản ghi giống và khác kiểu mảng một chiều ở điểm nào? Khi nào thì có thể dùng kiểu mảng thay thế kiểu bản ghi?
Trang 8-Ý nghĩa của câu lệnh With
5 Dặn dò, bổ sung:
Học bài cũ, làm các bài tập