Giáo án Tin học 8 - Học kỳ II - Ngô Dương Khôi
I. MỤC TIÊU:
1. Kiến thức:
- Biết nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình.
- Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.
2. Kĩ năng:
- Rèn luyện kỹ năng vận dụng câu lệnh lặp
3. Thái độ:
- Thái độ học tập nghiêm túc, yêu thích môn học
II. CHUẨN BỊ:
GV: Sách giáo khoa, máy tính điện tử
HS: Sách ,vở ,xem trước bài ở nhà
1. Viết chương trình sử dụng lệnh lặp While do để tính n số thực x1,x2,x3xn. Các số n và x1,x2,x3, xn được nhập từ bàn phím. - Ý tưởng? - Mô tả thuật toán của chương trình, các biến dự định sẽ sử dụng và kiểu của chúng + Sử dụng một biến đếm và lệnh lặp Whiledo để nhập và cộng dần các số vào một biến kiểu số thực cho đến khi nhập đủ n số. + Chú ý lắng nghe => ghi nhớ kiến thức. 1. Viết chương trình sử dụng lệnh lặp While do để tính n số thực x1,x2,x3xn. Các số n và x1,x2,x3, xn được nhập từ bàn phím. Gõ chương trình sau đây: Program tinh_trung_binh; Var n, dem: integer; X, tb: real; Begin Dem:=0; tb:=0; Writeln(‘nhap cac so can tinh n =’); - Gõ chương trình sau đây: Program tinh_trung_binh; Var n, dem: integer; X, tb: real; Begin Dem:=0; tb:=0; Writeln(‘nhap cac so can tinh n =’); Readln(n); While dem < n do Begin Dem:= dem + 1; Writeln(‘nha so thu’, dem,’=’); Readln(x); Tb:= tb + x; End; Tb:=tb/n; Witeln(‘Trung binh của’,n,’so là =’, tb:10:3); Readln; End. - Lưu chương trình với tên tinh_tb. - Đọc hiểu và tìm hiểu ý nghĩa của từng câu lệnh. Dịch chương trình và sửa lỗi, nếu có. Chạy chương trình với các bộ dữ liệu được gõ từ bàn phím và kiểm tra kết quả nhận được. + Học sinh độc lập gõ chương trình vào máy. + Học sinh lưu chương trình theo yêu cầu của giáo viên. + Học sinh thực hiện theo yêu cầu của giáo viên. Readln(n); While dem < n do Begin Dem:= dem + 1; Writeln(‘nha so thu’, dem,’=’); Readln(x); Tb:= tb + x; End; Tb:=tb/n; Witeln(‘Trung binh của’,n,’so là =’, tb:10:3); Readln; End. V. DẶN DÒ: - Tiết sau thực hành: “ Bài thực hành số 6 (tt) RÚT KINH NGHIỆM Tuần: 27 Ngày Soạn: ././ Tiết: 52 Ngày dạy :. ././ Bài thực hành số 6 SỬ DỤNG LỆNH LẶP WHILE...DO (tt) I. MỤC TIÊU: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước. 2. Kĩ năng: - Rèn luyện kĩ năng đọc chương trình, tìm hiểu tác dụng của các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực hiện một số công việc. II. CHUẨN BỊ: GV: Sách giáo khoa, máy tính điện tử, phần mềm Geogebra. HS: Sách, vở ,đọc bài ở nhà. III. PHƯƠNG PHÁP - Giải đáp, hướng dẫn. IV. HOẠT ĐỘNG DẠY HỌC: HOẠT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ NỘI DUNG Hoạt động 1: Làm bài tập 2 ở SGK - Gọi học sinh đọc đề bài ở sách giáo khoa. - Ý tưởng? - Giáo viên đưa ra ý tưởng để học sinh tìm hiều. Ý tưởng: Kiểm tra lần lượt N có chia hết cho các số tự nhiên 2 ≤ i ≤ N hay không. Kiểm tra tính chia hết bằng phép chia lấy phần dư (mod). ? Đọc và tìm hiểu ý nghĩa của từng câu lệnh trong chương trình sau đây: Uses Crt; Var n,i:integer; Begin Clrscr; Bài 2. Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không. - Học sinh tìm hiểu ý tưởng theo sự hướng dẫn của giáo viên. + Học sinh đọc chương trình và tìm hiểu ý nghĩa của từng câu lệnh theo sự hướng dẫn của giáo viên. Bài 2. Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không. Uses Crt; Var n,i:integer; Begin Clrscr; write('Nhap vao mot so nguyen: ');readln(n); If n<=1 then writeln('N khong la so nguyen to') else begin write('Nhap vao mot so nguyen: ');readln(n); If n<=1 then writeln('N khong la so nguyen to') else begin i:=2; while (n mod i0) do i:=i+1; if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end; readln end. + Gõ chương trình vào máy, chạy chương trình và kiểm tra kết quả. + Học sinh độc lập gõ chương trình vào máy. + Nhấn Ctrl + F9 để chạy và kiểm tra chương trình. i:=2; while (n mod i0) do i:=i+1; if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end; readln end. V. DẶN DÒ: - Tiết sau bài tập RÚT KINH NGHIỆM Tuần: 28 Ngày Soạn: ././ Tiết: 53 Ngày dạy :. ././ ÔN TẬP I. MỤC TIÊU: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước 2. Kĩ năng: - Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. CHUẨN BỊ: GV: Sách giáo khoa, máy tính điện tử. HS: Sách, vở ,đọc bài ở nhà. III. PHƯƠNG PHÁP - Giải đáp, hướng dẫn. IV. HOẠT ĐỘNG DẠY HỌC: HOẠT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ NỘI DUNG Hoạt động 1: Ôn tập câu lệnh lặp xác định For..do. ? Nêu cú pháp của vòng lặp xác định. ? Nêu hoạt động của vòng lặp. + Cú pháp: For := to do ; + Hoạt động của vòng lặp: - B1: biến đếm nhận giá trị đầu - B2: Chương trình kiểm tra biểu thức điều kiện, nếu biểu thức điều kiện đúng thì thực hiện câu lệnh. - B3: Biến đếm tự động tăng lên 1 đơn vị và quay lại B2. - B4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát ra khỏi vòng lặp. ? Nêu cú pháp của vòng lặp xác định. ? Nêu hoạt động của vòng lặp Hoạt động 2: Bài tập. 1. Các câu lệnh Pascal sau có hợp lệ không, vì sao? for i:=100 to 1 do writeln('A'); for i:=1.5 to 10.5 do writeln('A'); for i=1 to 10 do writeln('A'); for i:=1 to 10 do; writeln('A'); var x: real; begin for x:=1 to 10 do writeln('A'); end. 2. Hãy mô tả thuật toán để tính tổng sau đây: A = . + Trừ câu d), tất cả các câu lệnh đều không hợp lệ: a) Giá trị đầu phải nhỏ hơn giá trị cuối; b) Các giá trị đầu và giá trị cuối phải là số nguyên; c) Thiếu dấu hai chấm khi gán giá trị đầu; d) Thừa dấu chấm phẩy thứ nhất, nếu như ta muốn lặp lại câu lệnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã được khai báo như là biến có dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp. * Thuật toán tính tổng: A = Bước 1. Gán A ¬ 0, i ¬ 1. Bước 2. A ¬ . Bước 3. i ¬ i + 1. Bước 4. Nếu i £ n, quay lại bước 2. Bước 5. Ghi kết quả A và kết thúc thuật toán. 1. Các câu lệnh Pascal sau có hợp lệ không, vì sao? for i:=100 to 1 do writeln('A'); for i:=1.5 to 10.5 do writeln('A'); for i=1 to 10 do writeln('A'); for i:=1 to 10 do; writeln('A'); var x: real; begin for x:=1 to 10 do writeln('A'); end. V. DẶN DÒ: - Về nhà học bài kết hợp sách giáo khoa, tiết sau học bài làm bài tập (tt) RÚT KINH NGHIỆM Tuần: 28 Ngày Soạn: ././ Tiết: 54 Ngày dạy :. ././ KIỂM TRA 1 TIẾT ( LT) I. MỤC TIÊU: - Hệ thống lại một số kiến thức đã học. - Biết sử dụng vòng lặp xác định và vòng lặp không xác định để viết chương trình. II. PHƯƠNG PHÁP - Hoạt động cá nhân III. ĐỀ BÀI: MA TRẬN ĐỀ Mức độ Nội Dung Hiểu Biết Vận dụng Bài 7 2,15 1,4,6,7 5,10,11,12,13 Bài 8 15 3 8,9,14 Phần I: TRẮC NGHIỆM. Hãy khoanh tròn vào chữ cái đứng trước câu trả lời em cho là đúng nhất (6,5đ) Câu 1: Trong vòng lặp For := to do củaPascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào +1 -1 Một giá trị bất kỳ Một giá trị khác không Câu 2: Phát biểu nào sau đây là đúng ? 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. 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. 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 whiledo 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 Fordo Câu 3: Câu lệnh lặp whiledo có dạng đúng là: x:=10; While x:=10 do x:=x+5; x:=10; While x:=10 do x=x+5; x:=10; While x=10 do x=x+5; x:=10; While x=10 do x:=x+5; Câu 4: Câu lệnh pascal nào sau đây là hợp lệ? For i:=100 to 1 do writeln(‘A’); For i:= 1 to 10 do writeln(‘A’); For i:=1.5 to 10.5 do writeln(‘A’); For i= 1 to 10 do writeln(‘A’); Câu 5: Cho S và i là biến nguyên. Khi chạy đoạn chương trình : s:=0; for i:=1 to 5 do s := s+i; writeln(s); Kết quả in lên màn hình của S là : 11 15 10 5 Câu 6: Lần lượt thực hiện câu lệnh for i:= 1 to 3.5 do writeln(i:3:1); sẽ viết ra màn hình? Thứ tự của biến đếm, chiếm 3 chỗ và lấy 1 chữ số sau phần thập phân Viết số 1 rồi viết số 3.5 Chỉ viết số 3.5 mà thôi Không thực hiện được vì giá trị của biến đếm có kiểu thứ tự là Real Câu 7: Trong câu lệnh lặp For i:=1 to 10 do begin .. End Câu lệnh ghép được thực hiện bao nhiêu lần (bao nhiêu vòng lặp được thực hiện) không lần nào 2 lần 1 lần 10 lần Câu 8: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp S:=0; n:=0; While S< =10 do Begin n:=n+1; s:=s+n; end; 4 lần 6 lần 5 lần 10 Câu 9: Câu lệnh nào sau đây lặp vô hạn lần s:=5; i:=0; While i<=s do s:=s + 1; s:=5; i:=1; While i<=s do i:=i + 1; s:=5; i:=1; While i> s do i:=i + 1; s:=0; i:=0; While i<=n do if (i mod2)=1 then S:=S + I else i:=i+1; Câu 10: Để tính tổng S=1 + 2 +3 +4 + n; em chọn đoạn lệnh: for i:=1 to n do if ( i mod 2)=0 then S:=S + i; for i:=1 to n do if ( i mod 2)=1 then S:=S + i; for i:=1 to n do S:= S + i ; for i:=1 to n do if ( i mod 2)0 then S:=S + i; Câu 11: Để tính tổng S=2 + 4 + 6 + n; em chọn đoạn lệnh: For i:=1 to n do if ( i mod 2)=0 then S:=S + i; For i:=1 to n do S:= S + i ; c. For i:=1 to n do if ( i mod 2)=1 then S:=S + i; for i:=1 to n do if ( i mod 2)0 then S:=S + i; Câu 12: Để tính tổng S=1/2+1/4 + 1/6 + +1/ n; em chọn đoạn lệnh: for i:=1 to n do if ( i mod 2)=0 then S:=S + 1/i; for i:=1 to n do if ( i mod 2) 0 then S:=S + i; for i:=1 to n do if ( i mod 2)=0 then S:=S – 1/i else S:= S + 1/i; for i:=1 to n do if ( i mod 2)=0 then S:=S +1/ i else S:=S-1/i; Câu 13: Để đếm có bao nhiêu số lẻ nhỏ hơn hay bằng n ; em chọn đoạn lệnh: for i:=1 to n do if ( I mod 2)0 then S:=S + 1; for i:=1 to n do if ( I mod 2) =0 then S:=S + 1; for i:=1 to n do if ( I mod 2)=0 then S:=S + I ; for i:=1 to n do if ( I mod 2)=0 then S:=S + I; Phần 2: TỰ LUẬN (3,5đ) Câu 14: Hãy tìm hiểu đoạn chương trình sau đây. Không cần viết chương trình, hãy cho biết lệnh Writeln in ra màn hình giá trị của i,
File đính kèm:
- GIAO AN TIN 8 HK2 20142015.doc