Kĩ năng : - Khai báo được kiểu bản ghi, 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
Trang 1Sở Giáo Dục và Đào Tạo Kiên Giang
Trường THPT Nguyễn Trung Trực
Họ và tên SVTT: Huỳnh Phụng Hoàng MSSV: K32 103 241
Họ và tên GVHD: Trần Văn Kỹ
Giáo Án
Bài 13 KIỂU BẢN GHI
I Mục đích yêu cầu:
Kiến thức :
- Biết được khái niệm về kiểu bản ghi
- Phân biệt được kiểu bản ghi với kiểu mảng một chiều
Kĩ năng :
- Khai báo được kiểu bản ghi, 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
Thái độ :
- Học sinh học tập nghiêm túc
II Phương pháp, phương tiện dạy học:
Phương pháp: đặt vấn đề, thuyết trình, vấn đáp
Phương tiện: Máy tính, viết, bảng
III Chuẩn bị:
Giáo viên: giáo án, sách giáo khoa, slide
Học sinh: sách giáo khoa, tập ghi chép
IV Tiến trình trên lớp:
1 Ổn định lớp:
- giữ trật tự, kiểm tra sỉ số
2 Kiểm tra bài cũ:
- Câu 1: Hãy nêu cú pháp và ý nghĩa của hàm Length, cho ví dụ
- Câu 2: Hãy cho biết kết quả đoạn chương trình sau:
Var
A, B,C: String[30];
i: byte;
Begin
A:= ‘ chung’;
B:= ‘Lop minh rat vui’;
Insert (A,B,4);
C:=Copy(B,1,3);
i:=Length(C);
Trang 23 Nội dung bài mới:
Hoạt động thầy và trò Nội dung Ghi chú Xét ví dụ sau :
Viết chương trình dùng để quản lí
các thí sinh của một kỳ thi tuyển
sinh
Chương trình của chúng ta cần quản
lí được :
+ SBD của thí sinh,
+ Họ tên thí sinh,
+ Giới tính,
+ Điểm của các môn …
GV : Đưa ra một số câu hỏi sau :
- Làm thế nào để quản lý toàn bộ
thông tin trên của học sinh ?
- Mỗi thông tin trên có kiểu dữ
liệu là gì ?
HS : Có thể quản lý mỗi dữ kiện trên là
một mảng một chiều
Ngôn ngữ lập trình bậc cao có cách tốt
hơn để quản lý dữ liệu trên -> Bản ghi
GV lấy một bảng điểm của học sinh rồi
chỉ rõ : Mỗi hàng ta gọi là một bản ghi,
mỗi cột là một trường
Bài 13 KIỂU BẢN GHI
Một số khái niệm
- Kiểu bản ghi được 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ó 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
Trang 3GV : Mỗi ngôn ngữ có một cách khai
báo kiểu bản ghi khác nhau
Ngôn ngữ Pascal không cho bạn khai
báo biến bản ghi trực tiếp mà phải khai
báo biến bản ghi thông qua khai báo
kiểu bản ghi
Trước hết phải khai báo kiểu bản ghi
sau đó biến bản ghi được khai báo
thông qua kiểu bản ghi này
Cách khai báo và sử dụng kiểu bản ghi trong ngôn ngữ Pascal
1 Khai báo
Để khai báo biến bản ghi, thường khai báo một kiểu bản ghi sau đó khai báo biến bản ghi
Cách khai báo kiểu : 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
Trang 4GV : Làm thế nào để có thể khai báo
được nhiều biến bản ghi có cùng một
kiểu ?
HS : GV sẽ gợi ý để học sinh đưa ra đó
là sử dụng kiểu mảng trong đó phần tử
mảng sẽ có kiểu bản ghi
Ví dụ về khai báo bản ghi
Khai báo một kiểu bản ghi để xử lý
bảng kết quả thi của các học sinh
Mỗi bản ghi sẽ bao gồm : Họ và tên
của học sinh (Hoten), ngày tháng năm
sinh(Ngaysinh), Giới tính (NamNu), và
điểm thi các môn của mỗi học sinh
(Toan, Ly, Hoa, Van, Su, Dia,Tin)
Hãy xác định kiểu dữ liệu cho các
trường trên (Mỗi nội dung trên là một
trường của bản ghi)
GV : Khi có nhu cầu thay đổi thông tin
trong từng trường, làm thế nào để truy
cập thông tin vào từng trường của bản
ghi ?
Mỗi ngôn ngữ có một cách truy cập
khác nhau nhưng thường được viết là :
<Tên biến bản ghi>.<tên trường>
GV: Đưa ra một số ví dụ
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> ;
Ví dụ về khai báo bản ghi:
Type Hocsinh = Record Hoten : String[30] ; Ngaysinh : String[10] ; NamNu :Boolean ; Toan,Ly, Hoa, Van, Su, Dia : Real ;
End ; Var A, B : Hocsinh ; Lop : Array[1 100] Of Hocsinh ;
Để 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ụ :
A.Hoten B.Ngaysinh Lop[i].Toan Lop[i].Ly
……… với i là chỉ số nào đó của mảng Lop
Trang 5GV: Vì bản ghi có nhiều trường nên
việc gán giá trị cho bản ghi phức tạp
hơn các biến khác
Khi nhập thông tin vào từ bàn
phím, ta thường phải nhập cho từng
trường
Ví dụ :
Chương trình sau được viết trong ngôn
ngữ Pascal dùng kiểu bản ghi để xử lý
bảng kết quả thi bao gồm 2 môn Toán,
Văn của học sinh , Sau khi nhập xong
danh sách sẽ đưa ra bảng kết quả học
tập và xếp loại (xem kỹ đầu bài trong
SGK)
2 Gán giá trị
Có 2 cách để gán giá trị cho bản ghi
- Dùng lệnh gán trực tiếp : Nếu
A, 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 ;
- Gán giá 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 từ bàn phím
A.Hoten := ‘Nguyen Van Tuan’ ;
Readln(a.Ngaysinh);
Chương trình xử lý bảng kết quả thi
VD: Một lớp gồm N(N<60) học sinh Cần quản lí học sinh với các thuộc tính như họ tên, ngày sinh, địa chỉ, điểm toán, điểm văn, xếp loại Giả sủ việc xếp loại được xác định như sau:
- Nếu tổng điểm toán và văn lớn hơn hoặc bằng 18 thì xếp loại A
- Nếu tổng điểm toán và văn lớn hơn hoặc bằng 14 và nhỏ hơn 18 thì xếp loại B
- Nếu tổng điểm toán và văn lớn hơn hoặc bằng 10 và nhỏ hơn 14 thì xếp loại C
- Nếu tổng điểm toán và văn nhỏ hơn 10 thì xếp loại D
{* Kieu ban ghi xu ly bang ket qua thi 2 mon : Toan, Van *}
Trang 6Type Hocsinh = Record
Ten : String[30] ;
Ngaysinh : String[10] ;
Diachi : String[50] ;
toan, van : real ;
Xeploai : Char ;
End ;
Var
Lop : array[1 60] of Hocsinh ;
i, n : Byte ;
Tg : Real ;
Begin
Clrscr ;
Write(' Cho biet so hoc sinh : ') ;
Readln(n) ;
For i := 1 to n do
Begin
Writeln(' Vao thong tin cho
hoc sinh thu ',i,' : ') ;
Write (' Ho ten : ') ;
readln(Lop[i].ten) ;
Write(' Ngay sinh : ') ;
readln(Lop[i].Ngaysinh) ;
Write(' Dia chi : ') ;
readln(Lop[i].Diachi) ;
Write(' Diem Toan : ') ;
readln(Lop[i].toan) ;
Write(' Diem Van ') ;
readln(Lop[i].van) ;
Tg := Lop[i].toan +
Lop[i].van ;
if Tg >= 18 then
Lop[i].Xeploai := 'A'
Else if Tg >= 14 then
Lop[i].Xeploai := 'B'
Else if Tg >= 10 then
Lop[i].Xeploai := 'C'
Else Lop[i].Xeploai :=
'D'
End ;
Readln ;
For i := 1 to n do
Writeln(i : 4, Lop[i].ten : 30 , '
- Loai : ', Lop[i].Xeploai);
Trang 7Readln ; End
4 Cũng cố:
- Bài học hôm nay chúng ta cần nắm: Kiểu Bản Ghi là gì? Cách khai báo kiểu bản
ghi? Cách tham chiếu đến từng trường trong biến có kiểu bản ghi?
5 Dặn dò:
- Các em về học bài, làm bài trong sách bài tập.
V Rút kinh nghiệm tiết dạy:
Phê duyệt của giáo viên hướng dẩn ngày 17 tháng 02 năm 2011