BÀI 19: THƯ VIỆN CHƯƠNG TRÌNH CON CHUẨN
III. Tiến trình lên lớp
1. Ổn định lớp, sỹ số.
2. Vào bài:
Hoạt động 1. Ôn lại các kiến thức lý thuyết.
Hoạt động của GV Hoạt động của HS Nội dung
Chúng ta đã học những kiểu DL có cấu trúc nào?
Thế nào là kiểu dữ liệu mảng?
Các em chú ý chúng ta chỉ ôn lại phần mảng một chiều, mảng hai chiều về nhà các em xem lại.
Thế nào là kiểu dl xâu?
về bản chất xâu là mảng kiểu kí tự do vậy chúng ta có thể truy xuất xâu như truy xuất các phần tử của mảng.
gọi HS so sánh 2 xâu ‘tin hoc’
trả lời
mảng là dãy hữu hạn các phàn tử có cùng kiểu DL.
Xâu là dãy kí tự trong bộ mã ASCII.
Ghi nhận
1. Kiểu dữ liệu có cấu trúc.
- Mảng (array).
Thao tác nhập các phần tử của mảng a có N phần tử là
For i:= 1 to N do Begin
Write(‘a[‘, i , ‘]= ‘);
readln(a[i]);
End;
- Xâu (String).
+ phép so sánh xâu (nhớ qui tắc so sánh)
+ Chú ý các thủ tục và hàm xử lí xâu: ghép xâu, xoá bớt kí tự
và Tin hoc’
Hãy nhắc lại vai trò của kiểu tệp?
Nêu thứ tự các thao tác với tệp Chương trình con là gì? Có mấy loại?
Hãy phân biệt giữa thủ tục và hàm.
Ngoài ra các khái niệm biến cục bộ, biến toàn cục, tham biến, tham trị.. về nhà các em xem lại SGK.
trả lới câu hỏi
trả lới câu hỏi
trong xâu, chèn thêm, sao chép các kí tự của xâu….
2. Dữ liệu kiểu tệp.
- vai trò của kiểu dl tệp.
- Các thao tác với tệp:
+ Khai báo.
+ Gắn tên tệp + Mở tệp + Đọc/ghi tệp 3. Chương trình con - Hàm (function) - Thủ tục (Procedure)
Hoạt động 2: Giải một số bài tập
Bài1. viết chương trình tính tổng các số chia hết cho 3 của dãy số nguyên được nhập từ bàn phím
Hoạt động của GV Hoạt động của HS Nội dung
Đây là một bài toán quen thuộc
Yêu cầu học sinh tự làm rồi lên bảng trình bày
Gọi các hs khác nhận xét
chuẩn hoá bài giải
Nghiên cứu, lấy nháp và làm việc
Lên bảng trình bày.
Nghe giảng và chép bài
Var a:array[1..100] of integer;
N,i:byte;
S: integer;
Begin
Write(‘nhap N’); readln(N);
Writeln(‘nhap cac phan tu cua mang’);
For i:=1 to N do Begin
Write(‘a[‘,i,’[= ‘);
Readln(a[i]);
End;
S:=0;
For i:=1 to N do
If a[i] mod 3 = 0 then s:=s+a[i];
Write(‘tong cac so chia hat cho la‘, s);
Readln;
End:
Củng cố: Để chuẩn bị tốt nhất cho bài kiểm tra cuối năm về nhà các em xem lại các vấn đề chúng ta đã học trong tiết học hôm nay, đồng thời xem thêm các vấn đề đề cập trong đề cương mà chúng ta chưa có thời gian ôn tập lại. xem lại các dạng bài tập có trong đề cương.
Ngày soạn: 15/04/2010.
PPCT: 53 KIỂM TRA HỌC KỲ II I. Mục tiêu đánh giá:
- Kiểm tra, đánh giá khả năng tiếp thu kiến thức, kĩ năng của học sinh về: Các kiểu dữ liệu có cấu trúc, chương trình con và dữ liệu kiểu tệp
- Đánh giá khả năng tổ chức 1 chương trình Pascal với các cấu trúc cơ bản của chương trình và chương rình con.
II. Phương pháp ra đề:
III. Đề kiểm tra:
ĐỀ KIỂM TRA
Thời gian: 45 phút (không kể thời gian giao đề) I. Phần trắc nghiệm khách quan:
Nội dung
Mức độ Chương IV Chương V Chương VI
Nhận biết Câu 1,5 Câu 2,4
Thông hiểu Câu 3,6
Vận dụng Câu8 Câu7,9
1. (Nhận biết) các kiểu dữ liệu có cấu trúc bao gồm:
A. kiểu mảng, kiểu xâu.
B. Kiểu mảng, kiểu xâu, kiểu bản ghi.
C. Kiểu mảng, kiểu xâu, kiểu bản ghi, kiểu nguyên, kiểu thực D. Kiểu mảng, kiểu xâu, kiểu bản ghi, kiểu tệp
2. (Nhận biết) Trong ngôn ngữ Pascal, từ khoá Text dùng để:
A. Khai báo tên chương trình B. Khai báo biến tệp văn bản C. Khai báo biến tệp
D. Khai báo hằng
3. (Thông hiểu) Trong ngôn ngữ lập trình Pascal, với câu lệnh như sau For i:=1 to N do
Begin
Write(‘a[‘,i,’[= ‘);
Readln(a[i]);
End;
sẽ thực hiện:
A. Tính giá trị của A[i] C. lấy các giá trị từ mảng a.
B. Nhập giá trị vào cho mảng a D. Không đưa ra gì cả
4. (Nhận biết) Trong ngôn ngữ lập trình Pascal, kiểu dữ liệu nào trong các kiểu sau không bị mất dữ liệu khi mất điện?
A. Byte B. String C. Text D. Longint
5. (Nhận biết) Trong ngôn ngữ lập trình Pascal, Với khai báo mảng
X: Array[1..100] of integer; thì việc truy xuất đến các phần tử nào là đúng:
A. X[i] B. X< i> C. X.i D. X(i)
6. (Thông hiểu) Trong ngôn ngữ lập trình Pascal, để in một xâu kí tự ra màn hình theo thứ tự ngược lại của các kí tự trong xâu (Vd: abcd thành dcba), đoạn chương trình nào sau đây thực hiện việc này?
A. For i:=1 to length(S) do write(S[i]);
B. For i:=length(S) downto 1 do write(S[i]);
C. For i:=length(S) downto 1 do write(S]);
D. For i:=1 to length(S) div 2 do write(S[i]);
7. (Vận dụng) Dưới đây là một phần của chương trình Pascal:
Function vd(a,b,c:integer):integer;
Begin
If (a>=b) and(a>=c) then vd:=a;
If (b>=a) and(b>=c) then vd:=b;
If (c>=a) and(c>=b) then vd:=c;
End.
Giả sử nhập dữ liệu sau: write(vd(6,5, 8));
Sau khi chạy chương trình ta thu được kết quả gì?
A. 5 B. 6 C. 8 D. 12
II. Phần tự luận:
8. (Thông hiểu) Cho chương trình sau:
Program vidu;
Var f:text;
begin
assign(f,’vidu.inf’);
readln(f.n);
n:=n+1;
write(‘n= ‘,n);
a. Tìm và sửa lỗi cú pháp trong chương trình trên.
b. Cho biết chương trình trên thực hiện công việc gì?
9. (Vận dụng) Viết hàm tìm giá trị lớn nhất của ba số nguyên.
IV. Đáp án - Biểu điểm:
- Phần trắc nghiệm: mỗi câu trả lời đúng: 0,5điểm