Giáo án môn Tin học 11 - Ch ơng IV
Đ13
KIểU bản ghi
I. Mục tiêu, yêu cầu:
1. Kiến thức:
- Biết khái niệm 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à kiểu mảng một chiều.
2. Kĩ năng:
- Định nghĩa đợ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 toán đơn giản.
3. Thái độ:
- Giáo viên: Nghiêm túc, chính xác, khoa học
- Học sinh: Hăng say xây dựng bài học
Ii. Phơng pháp,
- Thuyết trình giảng giải, kết hợp vấn đáp học sinh làm sáng tỏ từng đơn vị kiến thức.
III.phơng tiện dạy học:
- GV: Chuẩn máy chiếu, máy tính, bảng phụ, phiếu học tập, giáo án.
- HS: Sách, vở, bút, thớc
IV. Nội dung bài giảng:
1. Kiểm tra bài cũ: Hãy trình bày một số khái niệm về kiểu dữ liệu xâu? Cho biết kết
quả của thao tác xử lí xâu sau:
+ Insert (ab,cd,1) = ?
+ Pos ( c, abcd) = ?
2. Bài Mới:
Hoạt động của GV và HS Nội dung
*Đặt vấn đề:
GV:Yêu cầu hs quan sát bảng Kết quả
thi Kiểm tra chất lợng . (Nên vẽ vào giấy
khổ lớn)
Gv: hỏi học sinh một số thông tin, đối t-
ợng cần quản lí : SBD, 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
GV: Khai thác từ Bảng kết quả thi của
học sinh rồi chỉ ra: Mỗi hàng ta gọi là một
bản ghi (record), mỗi cột là một tr-
ờng(field).
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ẽ lu 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ữ kiệu khác nhau.
GV: Mỗi thông tin trên có thể lựa chọn
kiểu dữ liệu là gì?
HS: Lựa chọn nhiều mảng một chiều.
Gv: 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 kiểu bản
ghi.
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
GV: Hồ Thanh Tuấn - Trờng THPT Diễn Châu 2
- 1 -
Ngày 11/03/2011
Tiết 33:
Giáo án môn Tin học 11 - Ch ơng IV
GV: Ta sẽ tìm hiểu cách khai báo và sử
dụng kiểu bản ghi trong ngôn ngữ Pascal
1. Khai báo
GV: 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 định nghĩa kiểu
bản ghi.
Trớc hết phải định nghĩa 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.
Để khai báo biến bản ghi, thờng định
nghĩa một kiểu bản ghi sau đó khai báo
biến bản ghi.
Cách định nghĩa 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 k> : <kiểu trờng k>;
End;
GV: 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.
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>
GV: a ra 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: Số báo danh
(SBD), Họ và tên của HS(Hoten) và điểm
thi các môn của mỗi học sinh Toán, Văn).
Hãy xác định kiểu dữ liệu cho các trờng
trên?
Type
Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
Var Hs1, hs2: Hoc sinh;
Lop: Array [ 1 50] OF Hocsinh;
GV: Khi có nhu cầu thay đổi thông tin
trong từng trờng, làm thế nào để truy cập
vào từng trờng của bản ghi?
HS: Phải biết cách tham chiếu trờng
Để 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ụ:Hs1. Hoten, hs2.hoten,
Gv: Nếu tổ chức mảng Lop và i chỉ số của
biến mảng la tham chiếu ntn?
GV: HS1,Hs2 tên kiểu là gì?cùng kiểu ko?
GV: Lop[1] và Hs1 cùng kiểu không?
LOP[i]. SBD,
Lop [i]. Toan,
GV: 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.
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 chù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;
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ả thi
- Gán giá trị cho từng trờng. Dùng câu
lệnh gán giá trị cho các trờng hoặc nhập
vào từ bàn phím.
Hs1. Hoten := Nguyen Van Anh;
Readln (lop[i]. Ngay sinh)
Chơng trình xử lý bằng kết quả thi.
Program vd1;
Type { Khai bao}
Hocsinh = record
Write(' Diem toan:) ; readln(LOP[i].Toan);
Write(' Diem van :');readln(LOP[i].Van);
end;
GV: Hồ Thanh Tuấn - Trờng THPT Diễn Châu 2
- 2 -
Giáo án môn Tin học 11 - Ch ơng IV
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
Var LOP:ARRAY[1 100] of Hocsinh;
i,n: integer;
BEGIN { nhap so hoc sinh }
Write('Nhap so hoc sinh trong lop : ');
readln(n);
{ nhap du lieu tung ban ghi}
For i:=1 to n do
Begin
writeln(' Nhap so lieu hoc sinh thu ',i);
Write(' SBD : '); readln(LOP[i].SBD);
Write('HO VA TEN: );
readln(LOP[i].Hoten);
{ tinh tong cho tung ban ghi }
For i:=1 to n do
LOP[i].Tong := LOP[i].Toan +
LOP[i].Van;
{ dien ket qua cho tung ban ghi }
For i:=1 to n do
if LOP[i].Tong>=10 then
LOP[i].Ketqua:='Dat'
else LOP[i].Ketqua:='Khong dat';
{ In bang du lieu }
Writeln(' Bang ket qua kiem tra ');
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.
V. Củng cố:
- Nhắc lại một số khái niệm mới (nếu còn thời gian yêu cầu học sinh viết khai báo cho
một bài toán quan lí Nhân viên Công ty A)
- Nhắc lại cấu trúc câu lệnh If - Then, If - Then - Else thông qua các ví dụ.
- Ra bài tập về nhà: Câu hỏi: Hãy viết chng trình nhập vào danh sách học sinh một lớp
học gồm các thông tin (Họ tên, Điểm Toán, Điểm lý, điểm hóa, riêng ĐTB tính theo công
thức ĐTB := (TOAN+LY+HOA)/3, hãy in danh sách học sinh theo tứ hạng giảm dần của
ĐTB.
VI. Rút kinh nghiệm sau bài giảng:
GV: Hồ Thanh Tuấn - Trờng THPT Diễn Châu 2
- 3 -