1. Giáo viên: Giáo án, Máy tính 2. Học sinh: sgk
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.IV. HOẠT ĐỘNG DẠY HỌC IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
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ố?
Var S: string; i: integer; Begin
write(‘Nhap xau S ’); readln(S); d:=0;
For i:=1 to length(s) do
If (s[i]>=’0’) and (s[i]<=’9’) then inc(d);
Write(d);
End.
2. Hoạt động 2: Giới thiệu kiểu bản ghi. Tạo một kiểu bản ghi trong NNLT Pascal.
Hđ của GV Hđ của HS Nd ghi bảng
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 thiông tin trên một hàn đ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 hoạ Để 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.
1. Quan sát ví dụ sgk, trả lời câu
hỏi:
- Họ tên, ngày sinh, giới tính, điểm các môn thi.
- 3 đối tượng
- Để mô tả 1 người trong danh bạ điện thoại cần các thông tin: họ tên, địa chỉ, SĐT.
2. Tham khảo sgk để năm cách
khai báo kiểu và biến kiểu bản ghi.
Độc lập suy nghĩ, tạo kiểu bản ghi
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; Tl:
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
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;
ghép nhiều ptử có kiểu dữ liệu có thể khác nhau.
3. Hoạt động 3: Tìm hiểu cách sử dụng bản ghi trong NNLT Pascal
Hđ của GV Hđ của HS Nd ghi bảng
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 nguyên cảu biến bản ghi (1) + Gán lần lượt 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 chó 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
1. Quan sát cấu trúc gv giới
thiệu Vd: Nguoi.hoten Nguoi.dchi Nguoi.sdt 2. Quan sát 2 cách gán giá trị và tìm ví dụ cụ thể
Tl: hai biến A, B được khai báo cùng 1 kiểu bản ghi.
3. 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;) 2. Tham 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;
3. Gán giá trị cho biến bản
ghi (1) A:=B (2) A.ht:=B.ht; A.toan:=9;
A.dtb:=(A.toan+A.li)/2;
4. Hoạt động 4: Rèn luyện kĩ năng lập trình
a. Nội dung: 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)
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
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
2. chia lớp thành 3 nhóm. y/cầu viết CT
lên bìa con.
Thu bìa và treo lên bảng, gọi 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. 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 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ớ 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); lop[i].tb:=(lop[i].toan+lop[i].li)/2;
end;
writeln(‘ Ho va ten |Diemtb ’);
For i:=1 to 30 do
Writeln(lop[i].ten:30, lop[i].tb:8:2);
END.IV. ĐÁNH GIÁ CUỐI BÀI (5phút) IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học2. Câu hỏi, bài tập về nhà 2. Câu hỏi, bài tập về nhà
Xem nội dung phụ lục B, sgk, trang 134: Câu lệnh With.
Ngày soạn: 15/12/07 Tiết 32-33 ÔN TẬP I. MỤC TIÊU 1. Kiến thức 2. Kĩ năng II. ĐỒ DÙNG DẠY HỌC 1. Giáo viên 2. Học sinh III. PHƯƠNG PHÁP
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
2. Hoạt động 2:
a. Mục tiêu: b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
3. Hoạt động 3:
a. Mục tiêu: b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
4. Hoạt động 4:
a. Mục tiêu: b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học 1. Nội dung đã học
2. Câu hỏi, bài tập về nhà
Xem trước bài:
KIỂM TRA HỌC KỲ I
I.TRẮC NGHIỆM (Hs khoanh tròn vào một phương án trả lời đúng cho mỗi câu)
1. Biểu diễn nào dưới đây là Hằng? A. begin B. E58 C. 12.4E-5 D. type
2. Kiểu dữ liệu nào dưới đây thuộc loại kiểu dữ liệu chuẩn:
A. Kiểu kí tự B. Kiểu xâu C. Kiểu mảng D. Kiểu bản ghi 3. Phép toán nào sử dụng trong biểu thức trả về giá trị True hoặc False
A. Phép toán số học B. Phép toán quan hệ và phép toán số học C. Phép toán số học và phép toán logic D. Phép toán quan hệ và phép toán logic 4. Chương trình sau đây Đúng hay Sai? Vì sao?
Begin
Writeln(‘Chuc cac em thi tot!’); A. Sai, vì CT này không có phần khai báo Write(‘Dat ket qua cao’); B. Đúng, vì CT này không cần khai báo
Readln C. Sai, vì CT này thiếu phần nhập giá trị
End. D. Sai, vì CT này thiếu phần tính toán
5. Chương trình dịch Pascal cấp phát bao nhiêu Byte bộ nhớ cho các biến trong khai báo sau: Var A: array[1..10] of integer; A. 28 B. 36
I, N: real; q, b: word; C.5 D. 18
6. Giá trị của các biểu thức boolean sau đây là gì với N = 300, p = - 0.001, q = 0.001, c = ‘5’
(1) 2*N <=500
(2) (abs(p) = q) and (c < ‘4’) (3) Not (c > ‘7’)
A. False – False – True B. False – True – False C. False – True – True D. False – False – False
7. Sau khi thực hiện đoạn chương trình sau thu được kết quả xâu S là gì? begin
S := ‘GBCDEFA’; T := S[1];
S[1] := S[length(S)];
S[length(S)] := T; A. ‘GBCDEFA’ B. ‘ABCDEFG’
end; C. ‘AGBCDEF’ D. ‘BCDEFAG’
8. Trong NNLT Pascal, hai xâu kí tự được so sánh dựa trên?
A. Độ dài tối đa của hai xâu
B. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải C. Độ dài thực sự cảu hai xâu
D. Số lượng các kí tự khác nhau trong xâu
Hãy đọc kỹ đoạn chương trình sau:
Program timkiem;
Var m: array[1..100] of integer; i, n, k: integer;
Begin Write('Ban can nhap bao nhieu so:'); Readln (n);
For i:=1 to n do Begin
Write('Nhap so thu ',i,':'); Readln(m[i]);
End;
Write('Nhap so can tim:'); Readln(k); i:=1;
While (m[i]<>k)and (i<=n)Do i:=i+1;
If i>n then Writeln ('Trong day ban da nhap khong co so nguyen nao bang ',k)
else Writeln('Trong day ban da nhap co so bang',k); Readln;
End.
Và hãy trả lời các câu hỏi 9 và 10:
9. Trong chương trình trên có đoạn lệnh có sử dụng vòng lặp While …Do, chương trình trên thoát khỏi vòng lặp khi:
A. m[ i ]=k B. (m[ i ]=k) hoặc( i>n) C. i>n D. (m[ i ]=k) và (i>n)
10.Giả sử khi chạy chương trình, ta tạo dữ liệu cho mảng m gồm các phần tử lần lượt là: 7, 5, 19, 54 và 20. Và gán cho biến k mang giá trị 54. Vậy sau khi thực hiện xong chương trình, trên màn hình sẽ có dòng thông báo:
A. Trong dãy bạn đã nhập có số bằng k B. Trong dãy bạn đã nhập có số bằng 54 C. Trong day ban da nhap co so bang k D. Trong day ban da nhap co so bang 54