Giáo án tin học 8 Năm học: 2010 - 2011 Tuần: 25 Ngày soạn: 05/02/2011 Tiết: 48 I. MỤC ĐÍCH YÊU CẦU: - Kiểm tra kiến thức về: lệnh lặp For Do và While Do, cách khai báo và sử dụng biến mảng, nhập và in các phần tử của dãy số. - Vận dụng những kiến thức đã học để hoàn thành bài kiểm tra. - Nghiêm túc trong giờ kiểm tra. II. MA TRẬN ĐỀ: NỘI DUNG CÁC MỨC ĐỘ CẦN ĐẠT TỔNG Nhận biết Thông hiểu Vận dụng TN TL TN TL TN TL Lặp với số lần biết trước (For … Do) 2 0.5 1 0.25 3 0.75 Lặp với số lần chưa biết trước (While … Do) 2 0.75 3 1.0 1 0.5 1 2.0 7 4.25 Làm việc với dãy số 4 1.25 2 0.75 1 3.0 7 5.0 Tổng 8 2.5 6 2.0 3 5.5 17 10 III. ĐỀ BÀI: A. TRẮC NGHIỆM: (5 điểm) Khoanh tròn vào chữ cái đứng trước câu trả lời đúng: (Từ câu 1 đến câu 6) (3 điểm) Câu 1: Phát biểu nào sau đây là đúng ? A. Cấu trúc lặp được sử dụng để chỉ thò cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn. B. Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp. C. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while…do D. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh For…do Câu 2: Lệnh lặp nào sau đây là đúng? A. For <biến đếm>= <giá trò đầu> to <giá trò cuôí> do <câu lệnh>; B. For <biến đếm>:= <giá trò đầu> to <giá trò cuôí> do <câu lệnh>; C. For <biến đếm>:= <giá trò cuôí> to <giá trò đầu> do <câu lệnh>; D. For <biến đếm>: <giá trò đầu> to <câu lệnh> do <giá trò cuối>; Câu 3: Câu lệnh lặp while…do có dạng đúng là: A. While <điều kiện> do; <câu lệnh>; B. While <điều kiện> <câu lệnh> do; C. While <câu lệnh> do <điều kiện>; D. While <điều kiện> do <câu lệnh>; C âu 4: Để tính tổng S=1+2+3+ 4+ 5 + … + n; em chọn đoạn lệnh: A. s:=0; i:=0; While i<=n do S:=S + 1; B. s:=0; i:=0; While i<=n do If (I mod 2)= 1 Then S:=S + i; C. s:=0; i:=0; While i<=n do D. s:=0; i:=0; While i<=n do Giáo viên: Nguyễn Văn Phong Trang 147 KIỂM TRA 01 TIẾT Giáo án tin học 8 Năm học: 2010 - 2011 begin S:=S + i; I:=i+1; End; begin if (i mod2)=1 Then S:=S + i; Else i:=i+1; End; Câu 5: Chọn cách khai báo biến mảng đúng: A. Var a: array[1…100] of integer; B. Var a: array[1 n] of integer; C. Var a: array[1 50] of integer; D. Var a: array[1 24.5] of integer; Câu 6: Cho S và i là biến nguyên. Khi chạy đoạn chương trình: Kết quả in lên màn hình là của s là : s:=0; i:=1 while i<=5 do i:=i+1; s := s+i; writeln(s); A. 6 B. 9 C. 14 D. 20 Câu 7 : (1 điểm) Điền các cụm từ thích hợp vào những chỗ trống ( ) để được câu hoàn chỉnh: a) là câu lệnh lặp với số lần chưa biết trước. b) Khi khai báo một biến có kiểu dữ liệu là , biến đó được gọi là biến mảng. c) Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên không bao giờ kết thúc d) Khi nhập và in các phần tử của mảng cần kết hợp lệnh lặp …………… ….và lệnh If…then Câu 8: (1 điểm) Các phát biểu sau đúng hay sai? Hãy đánh dấu (x) vào ô Đúng hay sai tương ứng. PHÁT BIỂU ĐÚN G SAI a. Trong nhiều trường hợp, việc thực hiện câu lệnh lặp While … do tốn ít thời gian so với câu lệnh lặp For … Do b. Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng. c. Để gọi đích danh từng phần tử cụ thể Pascal sử dụng cách: <Tên biến mảng>[<chỉ số phần tử>] d. Mọi câu lệnh For …do đều có thể thay thế một cách thích hợp bởi câu lệnh lặp While … do. B. TỰ LUẬN: (5 điểm) Câu 1: (2 điểm) Viết chương trình tính tổng các số từ 1 đến n, với n nhập từ bàn phím? (Sử dụng While Do) Câu 2: (3 điểm) Viết chương trình thực hiện các công việc sau: a. Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím) b. In ra màn hình số lớn nhất. c. In ra màn hình những số lớn hơn 5 và không chia hết cho 2. IV. ĐÁP ÁN A. Trắc nghiệm: (5 điểm) * Mỗi câu đúng đạt 0,5 điểm (3 điểm) Câu hỏi 1 2 3 4 5 6 Đáp án A B D C C A * Mỗi phương án đúng được 0,25 điểm (2 điểm) Câu 7 8 a b c d a b c d Đáp án While … Do Kiểu mảng Vòng lặp For … Do Đ Đ Đ Đ B. Tự luận (5 Điểm) Câu Đáp án Điểm Giáo viên: Nguyễn Văn Phong Trang 148 Giáo án tin học 8 Năm học: 2010 - 2011 1 Program bai1; Var i : integer; s:longint; Begin s:= 0; i:= 1; Write(‘Nhap n = ‘); Readln(n); While i<=n do Begin s:=s+i; i:=i+1; end; Writeln(‘Tổng cần tìm là:’,s:5); Readln; End. 0.25 0.25 0.25 0.25 0.25 0.25 0.5 2 a. Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím) Program bai2; Uses crt; Var A : array[1 100] of integer ; Max, i, n: integer; Begin Write(‘Nhập số phần tử của dãy n = ‘); Readln(n); Writeln(‘Nhập các giá trò phần tử ‘); For i:= 1 to n do Begin Write(‘A[‘, i,’]=’); Readln(A[i]); End; 0.5 0.25 0.25 0.25 b. In ra màn hình số lớn nhất. Max:=A[1]; For i:= 2 to n Do If Max < A[i] then Max:=A[i]; Writeln(‘So lon nhat la Max = ‘, Max); 0.25 0.25 0.25 c. In ra màn hình những số lớn hơn 5 và không chia hết cho 2. For i:= 1 to n DO If (A[i] > 5) and (A[i] mod 2 <> 0) then Write(‘ ‘ , A[i]) Readln; End. 0.25 0.5 0.25 Tổng V. THỐNG KÊ KẾT QUẢ: Lớp Só số Giỏi (8-10) Khá (6.5-7.9) TB (5-6.4) Yếu (3.5-4.9) Kém (0-3.4) SL % SL % SL % SL % SL % 8A1 8A2 8A3 VI. NHẬN XÉT, BỔ SUNG. Giáo viên: Nguyễn Văn Phong Trang 149 Giaựo aựn tin hoùc 8 Naờm hoùc: 2010 - 2011 Giaựo vieõn: Nguyeón Vaờn Phong Trang 150 . số Giỏi (8- 10) Khá (6.5-7.9) TB (5-6.4) Yếu (3.5-4.9) Kém (0-3.4) SL % SL % SL % SL % SL % 8A1 8A2 8A3 VI. NHẬN XÉT, BỔ SUNG. Giáo viên: Nguyễn Văn Phong Trang 149 Giaựo aựn tin hoùc 8 Naờm hoùc:. (2 điểm) Câu 7 8 a b c d a b c d Đáp án While … Do Kiểu mảng Vòng lặp For … Do Đ Đ Đ Đ B. Tự luận (5 Điểm) Câu Đáp án Điểm Giáo viên: Nguyễn Văn Phong Trang 1 48 Giáo án tin học 8 Năm học: 2010. Giáo án tin học 8 Năm học: 2010 - 2011 Tuần: 25 Ngày soạn: 05/02/2011 Tiết: 48 I. MỤC ĐÍCH YÊU CẦU: - Kiểm tra kiến thức về: lệnh lặp For