Yêu cầu: Tìm ví dụ về tham chiếu đến từng trường của biến bản ghi đã được khai báo ở trên.. 1..[r]
Trang 1Bài 13:
KIỂU BẢN GHI
I MỤC TIÊU
1 Kiến thức
Biết được khái niệm về kiểu bản ghi
Phân biệt được sự giống và khác nhau giữa kiểu bản ghi với kiểu mảng
một chiều
2 Kĩ năng
Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi trong ngôn ngữ
lập trình Pascal
Nhập xuất được dữ liệu cho biến bản ghi
Tham chiếu đến từng trường của kiểu 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
II ĐỒ DÙNG DẠY HỌC
1 Chuẩn bị của giáo viên
Máy vi tính, máy chiếu projector để giới thiệu ví dụ
2 Chuẩn bị của học sinh
Sách giáo khoa
III HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 1:
Giới thiệu về kiểu bản ghi Tạo một kiểu bản ghi trong ngôn ngữ lập trình
Pascal
TG HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH NỘI DUNG KIẾN THỨC
5 phút
1 Tìm hiểu về kiểu bản ghi
Chiếu bảng kết quả thi tốt
nghiệp, sách giáo khoa trang
74
1 Quan sát ví dụ của giáo viên và trả lời các câu hỏi *Một số khái niệm: - Kiểu bản ghi dùng để mô
tả cho 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ó
Trang 210 phút
Hỏi: Trên bảng có những
thông tin gì?
Hỏi: Bảng chứa thông tin
của bao nhiêu đối tượng?
Yêu cầu: Học sinh tìm
thêm một ví dụ tương tự
Diễn giải: Mỗi thông tin
của đối được gọi là một thuộc
tính hay một trường Mỗi đối
tượng được mô tả bằng nhiều
thông tin trên một hàng được
gọi là một bản ghi
Diễn giải: Để mô tả các
đối tượng như vậy, ngôn ngữ
lập trình cho phép ta xác định
kiểu bản ghi Mỗi đối tượng
được mô tả bằng một bản ghi
2 Yêu cầu học sinh nghiên cứu sách giáo khoa 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 ngôn ngữ lập trình Pascal
Yêu cầu: Tìm một ví dụ
để minh hoạ
Để giải quyết bài toán
trong mục 1 ta phải khai báo
một mảng các bản ghi Hãy
tạo kiểu mảng đó
Họ tên, ngày sinh, giới tính, điểm của các môn thi,
Bảng chứa thông tin của
3 đối tượng
Để mô tả một người trong danh bạ điện thoại cần
có các thông tin: Họ tên, địa chỉ và số điện thoại
2 Tham khảo sách giáo khoa để nắm được cấu trúc chung của khai báo kiểu bản ghi, khai báo biến bản ghi
Ví dụ:
Type kieu_nguoi=record hoten:string;
diachi:string;
sdt:longint;
end;
Var nguoi:kieu_nguoi;
Độc lập suy nghĩ để tạo kiểu bản ghi và mảng các bản ghi
các kiểu dữ liệu khác nhau
- Bản ghi thường được gọi
là Record, mỗi Record sẽ lưu trữ dữ liệu về một đối tượng cần quản lí
- 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ó
dữ liệu khác nhau
- Các ngôn ngữ lập trình thường cho cách để xác định:
+ Tên kiểu bản ghi
+ Tên các trường
+ Kiểu dữ liệu của trường + Cách khai báo biến + Cách tham chiếu đến trường
Cách khai báo và sử dụng kiểu bản ghi trong ngôn ngữ Pascal
Trang 3 Yêu cầu học sinh phân biệt
sự giống và khác nhau giữa
kiểu bản ghi và kiểu mảng
một chiều
Type kieu_hs=record Hoten,
ngaysinh:String;
Toan, van:byte;
dtb:real;
End;
Kieu_mbg=array[1 50]
of kieu_hs;
Giống nhau: được ghép bởi nhiều phần tử
Khác nhau: Mảng một chiều là ghép nhiều phần tử
có cùng kiểu dữ liệu Trong khi bản ghi là ghép nhiều phần tử có kiểu dữ liệu có thể khác nhau
1 Khai báo.
Cách 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 n>:<Kiểu trường n>;
end;
2 Hoạt động 2:
Tìm hiểu về cách sử dụng kiểu bản ghi trong ngôn ngữ Pascal
TG HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
3 phút
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
Tên_biến_bg.Tên_trường
Yêu cầu: Tìm ví dụ về
tham chiếu đến từng trường
của biến bản ghi đã được khai
báo ở trên
1 Quan sát cấu trúc chung của tham chiếu đến từng trường của biến bản ghi
Ví dụ:
nguoi.hoten nguoi.diachi nguoi.sdt;
* Cách khai báo biến: Var <Tên biến>:<Tên kiểu bản ghi>;
Var <Tên mảng> : Array[1 n] of <Tên kiểu bản ghi>;
- Để truy cập vào từng
trường của bản ghi, ta viết:
<Tên biến bản ghi>:<Tên trường>
* Ví dụ:
Trang 43 phút
4 phút
2 Giới thiệu 2 cách gán giá trị
cho biến bản ghi
+ Gán nguyên cả biến bản ghi (1)
+ Gán lần lượt từng trường (2)
Yêu cầu: Lấy ví dụ minh
hoạ cho từng trường hợp
Hỏi: Trường hợp (1) thực
hiện được trong điều kiện
nào?
3 Nhập/xuất giá trị cho biến
bản ghi
Diễn giải: Ta phải viết
lệnh nhập hoặc xuất giá trị cho
từng trường
Yêu cầu học sinh: Viết
lệnh nhập giá trị cho ba trường
của biến bản ghi nguoi đã
được khai báo
Yêu cầu học sinh: Viết
lệnh in giá trị trường hoten
của biến bản ghi nguoi
2 Quan sát hai cách gán giá trị cho biến bản ghi để tìm ví
dụ cụ thể
A := B;
A.ht := B.ht; A.dtb :=
B.dtb;
Hai biến A, B phải được khai báo cùng một kiểu bản ghi
3 Chú ý theo dõi dẫn dắt của giáo viên để tìm được ví dụ
Readln(nguoi.hoten);
Readln(nguoi.diachi);
Readln(nguoi.sdt);
Writeln(nguoi.hoten);
A.hoten
A.ngaysinh
Lop[i].toan
Với i là chỉ số nào đó của mảng Lop
2 Gán giá trị.
- Có 2 cách để gán giá trị cho bản ghi:
+ Cách 1: Dùng lệnh gán
trực tiếp: Nếu A và B là hai bản ghi cùng kiểu ta có thể gán giá trị của A cho B bằng câu lệnh gán:
VD: B:=A; hoặc A:=B;
+ Cách 2: Gán gía trị cho
từng trường: Dùng câu lệnh gán gán giá trị cho các trường hoặc nhập vào từ bàn phím
*VD: A.Hoten:’Nguyen Van A’;
Readln(A.Ngaysinh);
3 Hoạt động 3:
Rèn luyện kĩ năng lập trình
TG HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
5 phút
1 Chiếu nội dung đề bài lên bảng
Hỏi: Sử dụng kiểu dữ liệu
1 Quan sát đề, chú ý phân tích để trả lời câu hỏi
* Chương trình quản lí bảng kết quả thi:
Program vd1;
Use crt;
Trang 52 phút
như thế nào để giải quyết bài
toán?
Yêu cầu học sinh: Mô tả
thông tin về một học sinh
bằng kiểu bản ghi Tạo mảng
các bản ghi đó
Nêu các bước để giải
quyết bài toán này
2 Chia lớp thành ba nhóm
Yêu cầu viết chương trình
lên bìa trong
Thu phiếu học tập Chiếu
kết quả lên bảng Gọi học sinh
nhóm khác nhận xét và đánh
giá
3 Chiếu chương trình mẫu để
chính xác hóa lại cho học
sinh
Một mảng các bản ghi
Type Kieu_hs=record hoten:string;
toan,van,tong:byte;
xeploai:char;
end;
Kieu_mhs=array[1 45]
of kieu_hs;
+ Bước 1: Tạo kiểu dữ liệu, khai báo biến
+ Bước 2: Nhập dữ liệu cho mảng các bản ghi
+ Tính tổng điểm toán và điểm văn
+ Dựa vào tổng điểm để xếp loại
2 Thảo luận theo nhóm
để hoàn thành chương trình
Thông báo kết quả
Nhận xét, đánh giá và bổ sung những sai sót của nhóm khác
3 Quan sát và ghi nhớ
Type {Khai báo}
hocsinh= record
SBD: integer;
hoten:string[30]; toan,van,tong:real; ketqua:string[10]; end;
Var lop: ARRAY[1 50] of hocsinh;
i,n: byte;
BEGIN
clrscr; {Nhập số học sinh}
write(‘nhap vao so hoc sinh trong lop:’);
Readln(n);
{Nhập dữ liệu cho từng bản ghi}
For i:=1 to n do
Begin Write(‘nhap du lieu cho
hoc sinh thu:‘, i);
Write(‘SBD: ’);
readln( lop[i].SBD); Write(‘hoten:’); readln( lop[i].hoten);
Write(‘diemtoan:’); readln( lop[i].toan);
Write(‘diemvan:’); readln( lop[i].van);
End;
{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 kết quả cho từng bản ghi}
For i:=1 to n do
If lop[i].tong>=10 then lop[i].ketqua=‘dat’
Else lop[i].ketqua=‘khong dat’;
Trang 63 phút
{In bảng dữ liệu}
Writeln(‘Bang ket qua
kiem tra chat luong:’); 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.
IV ĐÁNH GIÁ CUỐI BÀI
1 Những nội dung đã học
Cách tạo kiểu bản ghi, khai báo biến kiểu bản ghi
Tham chiếu đến từng trường của biến bản ghi
Nhập/xuất giá trị cho biến bản ghi
2 Câu hỏi và bài tập về nhà
Bài tập: Viết chương trình giải quyết bài toán quản lý sau:
Nhập họ và tên, điểm toán (Toan), điểm lý (Ly) của 30 học sinh trong lớp In ra
màn hình họ tên, điểm trung bình (DTB) của 30 học sinh đó với DTB =
(TOAN+LY)/2