+ Đây là giáo án về kiểu bản ghi lớp 11. + Trong giáo án có sử dụng các phương pháp dạy học tích cực như: phương pháp vấn đáp, phương pháp gợi mở vấn đáp, phương pháp phát triển năng lực học sinh. + Định hướng phát triển năng lực: Tư duy logic, phát triển thuật giải trong lập trình. Biết phân tích và ứng dụng được kiểu bản ghi trong lập trình pascal.
Trang 1Bài 13 KIỂU BẢN GHI
Kiến thức:
- Biết được khái niệm về bản ghi
- Phân biệt được sự giống và khác nhau giữa kiểu bản ghi và kiểu mảng 1 chiều
Kĩ năng:
- Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi
- Nhập/xuất được dữ liệu cho bản ghi
- Tham chiếu đến từng trường của bản ghi
- Sử dụng kiểu bản ghi để giải quyết một số bài tập đơn giản
Thái độ:
- Rèn luyện phong cách làm việc khoa học, khả năng phân tích
Định hướng phát triển năng lực:
- Tư duy logic, phát triển thuật giải trong lập trình
- Biết phân tích và ứng dụng được kiểu bản ghi trong lập trình pascal
II. CHUẨN BỊ
1. Giáo viên
- Sách giáo khoa
- Máy chiếu, máy tính
2. Học sinh
- Sách giáo khoa, vở ghi
III. HOẠT ĐỘNG DẠY-HỌC
1. Kiểm tra sĩ số lớp
2. Kiểm tra bài cũ
Viết CT nhập vào một xâu bất kì và cho biết trong xâu có bao nhiêu kí tự số? (5p)
3. Bài mới
Trang 2i
gian
15p Hoạt động 1: Giới thiệu kiểu bản ghi Tạo một kiểu bản ghi
1. Khai báo
Type <tênkiểu>=record
<têntrường1>: <kiểu trường 1>;
………
<têntrườngN>:<kiểu trườngN>;
End;
Var <tên biến>: <tênkiểu>;
Ví dụ:
Type knguoi = record
Hoten:string;
Dchi:string;
SDT:longint
End;
Var nguoi: knguoi;
1. Tìm hiểu kiểu bản ghi
Y/cầu hs quan sát bảng kết quả thi
TN sgk trang 74
Hỏi: trên bảng có những thông tin gì?
-bảng chứa thông tin của bao nhiêu đối tượng?
-Y/cầu hs cho thêm ví dụ tương tụ
* Mỗi thông tin của đtượng đgl 1 thuộc tính hay 1 trường của đtượng
Mỗi đtượng được mô tả bằng nhiều thông tin trên một hàng đgl một bản ghi
* Để mô tả các đtượng như vậy, NNLT cho phép ta xác định kiểu bản ghi một đtượng được mô tả băng một bản ghi
2. Y/cầu hs n/cứu sgk và cho biết cách khai báo kiểu bản ghi, khai báo biến kiểu bản ghi trong Pascal
Y/cầu: Tìm 1 ví dụ để minh họa
Để giải quyết bài toán trong mục 1 ta phải khai báo 1 mảng các bản ghi
Hãy tạo kiểu mảng?
Y/cầu hs so sánh giống và khác nhau của kiểu bản ghi và kiểu mảng 1 chiều
-Quan sát ví dụ sgk, trả lời câu hỏi
-3 đối tượng
-Quan sát sgk, trả lời câu hỏi -Lấy VD
Type kieu_hs =record Hten,ngsinh:string;
Toan, van:byte;
Dtb:real;
End;
Kieu_m=array[1 50]of
kieu_hs;
Var Lop:kieu_m;
Trả lời:
Giống: được ghép bởi nhiều phần tử
Khác: mảng 1 chiều ghép bởi nhiều ptử cùng kiểu,kiểu bản ghi ghép nhiều ptử có kiểu dữ liệu có thể khác nhau
Trang 3Tham chiếu đến từng trường của
bản ghi
Tênbiến.têntrường
Vd: Type knguoi = record
Hoten:string;
Dchi:string;
SDT:longint
End;
Var nguoi: knguoi;
Để tham chiếu đến họ tên của một
người trong vd trên ta viết:
nguoi.hoten
2. Gán giá trị
(1) A:=B
(2) A.ht:=B.ht;
A.toan:=9;
A.dtb:=(A.toan+A.li)/2;
1. Giới thiệu cấu trúc chung, tham chiếu đến từng trường của biến bản ghi
Y/cầu hs tìm ví dụ về tham chiếu đến từng trường của biến bản ghi từ các khai báo ở trên
2. Gới thiệu 2 cách gán giá trị cho biến bản ghi
+ Gán trực tiếp (1) + Gán giá trị cho từng trường (2) Hỏi: trường hợp (1) thực hiện trong điều kiện nào?
3. Nhập/xuất dữ liệu cho biến bản ghi ta phải nhập/xuất giá trị cho từng trường
Y/cầu hs viết lệnh nhập giá trị cho 3
trường của biến nguoi; lệnh in giá trị của trường hoten của bản ghi nguoi
Vd:
Nguoi.hoten Nguoi.dchi Nguoi.sdt
Quan sát 2 cách gán giá trị
và tìm ví dụ cụ thể
Trả lời: hai biến được
khai báo cùng 1 kiểu bản ghi
Chú ý theo dõi sự dẫn dắt của gv, ghi nhớ và tìm ví dụ Readln(Nguoi.hoten);
Readln(Nguoi.dchi);
Readln(Nguoi.sdt);
Writeln(nguoi.hoten;)
Viết CT giải quyết bài toán quản lí sau: Nhập họ và tên, điểm toán(toan) và điểm lý (ly) của 30 học sinh trong lớp In ra màn hình họ tên và điểm trung bình (dtb) của 30 học sinh đó (dtb=(toan+ly)/2)
Type hs=record
Ten:string;Toan,li,tb:real;
end;
Manghs=array[1 30] of hs;
Var Lop:manghs;
BEGIN
For i:=1 to 30 do
begin
write(‘Hoc sinh ’,i);
readln(lop[i].ten);
write(‘diem toan, ly ‘’);
readln(lop[i].toan,lop[i].li);
1. Nêu nội dung đề bài
Hỏi: Sử dụng kiểu dữ liệu như thế nào để giải quyết bài toán?
- Y/cầu hs mô tả thông tin của 1 hs bằng kiểu bản ghi
- Tạo mảng các bản ghi đó
- Y/cầu hs nếu các bước gải quyết bài toán
1. Đọc đề, phân tích để trả lời câu hỏi
Một mảng các bản ghi
Type hs=record Ten:string;Toan,li,tb:real; end;
Manghs=array[1 30] of hs; Var Lop:manghs;
Các bước:
B1:Tạo kiểu dữ liệu, kbáo biến
B2: Nhập dliệu cho mảng các bản ghi, tính giá trị trường tb
B3: đưa các t/tin theo y/cầu
Trang 4end;
writeln(‘ Ho va ten |Diemtb ’);
For i:=1 to 30 do
Writeln(lop[i].ten:30,
lop[i].tb:8:2);
END.
2. Chia lớp thành 3 nhóm y/cầu viết
CT Gọi hs của các nhóm lên viết
CT lên bảng, hs nhóm khác nhận xét và đánh giá
3. Thông báo chtrình mẫu để hs chuẩn hoá lại
ra màn hình (ten, tb)
2. Thảo luận nhóm và hoàn tất CT, Nộp kết quả Nhận xét, đánh giá và bổ sung nhữ sau sót của nhóm khác
3. Quan sát và ghi nhớ
IV. ĐÁNH GIÁ CUỐI BÀI
1. Nội dung đã học
2. BTVN
- Xem nội dung phụ lục B, sgk, trang 134: Câu lệnh With
- Làm bài tập trong sách giáo khoa
Trang 5BÀI TẬP VÀ THỰC HÀNH SỐ 5