Giáo án Tin học 8 - Tiết 54, Bài 8: Lặp với số lần chưa biết trước (Tiếp theo) - Năm học 2010-2011 - Trịnh Kiều Nga

Giáo án Tin học 8 - Tiết 54, Bài 8: Lặp với số lần chưa biết trước (Tiếp theo) - Năm học 2010-2011 - Trịnh Kiều Nga

BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt)

I. Mục tiêu:

 1. Kiến thức:

- Biết được cú pháp và hoạt động của câu lệnh lặp với số lần không biết trước.

- Biết được một số lỗi lập trình cần tránh.

 2. Kĩ năng:

Rèn luyện kĩ năng sử dụng các câu lệnh lặp không xác định trong Pascal

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ị:

Sách giáo khoa, máy tính điện tử.

III. Hoạt động dạy và học.

 

doc 4 trang Người đăng tranhiep1403 Lượt xem 1159Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 54, Bài 8: Lặp với số lần chưa biết trước (Tiếp theo) - Năm học 2010-2011 - Trịnh Kiều Nga", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tiết 54
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt)
I. Mục tiêu:
	1. Kiến thức:
- Biết được cú pháp và hoạt động của câu lệnh lặp với số lần không biết trước.
- Biết được một số lỗi lập trình cần tránh.
	2. Kĩ năng:
Rèn luyện kĩ năng sử dụng các câu lệnh lặp không xác định trong Pascal
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ị:
Sách giáo khoa, máy tính điện tử.
III. Hoạt động dạy và học.
Hoạt động của GV
Hoạt động của HS
Hoạt động 1: Kiểm tra bài cũ
GV đặt câu hỏi và gọi 2 HS trả lời.
?: Hãy nêu cấu trúc của câu lệnh lặp với số lần chưa biết trước?
?: câu lệnh lặp được thực hiện như thế nào? Hãy vẽ sơ đồ khối mô tả hoạt động đó.
GV nhận xét và cho điểm.
2 HS trả lời:
HS1: cấu trúc của câu lệnh lặp với số lần chưa biết trước:
While do ;
Trong đó:
 - điều kiện thường là một phép so sánh
- câu lệnh thường là câu lệnh đơn giản hay câu lệnh ghép.
HS2: câu lệnh lặp được thực hiện như sau:
1, Kiểm tra điều kiện.
2, nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp được kết thúc. Nếu điều kiện đúng thì thực hiện câu lệnh và quay lại bước 1.
Sơ đồ khối:
Hoạt động 2: Ví dụ về lặp với số lần chưa biết trước
Ví dụ. Chương trình Pascal dưới đây thực hiện thuật toán tính tổng n số trong ví dụ 2:
Var S, n: integer;
Begin
 S:= 0; n:=1;
 While S<= 1000 do
 Begin S:= S+ n; n:= n+1 end;
 Writeln (‘ so n nho nhat de tong > 1000 la ’ , n);
 Writeln (‘ tong dau tien >1000 la ’, S);
 Readln
End.
- Yêu cầu học sinh tìm hiểu chương trình ở SGK.
? Hãy cho biết kết quả nhận được sau khi chạy chương trình.
Gv yêu cầu HS viết chương trình tính tổng T= bằng cách sử dụng câu lệnh lặp với số lần biết trước for... do và câu lệnh lặp với số lần chưa biết trước while... do
Gọi 2 HS lên bảng làm.
GV cho HS nhận xét bài làm của bạn,
? em có nhận xét gì về kết quả của hai chương trình trên?
Ví dụ này cho thấy rằng chúng ta có thể sử dụng While... do thay cho câu lệnh For... do.
+ Nghiên cứu chương trình ở SGK theo yêu cầu của giáo viên.
+ Kết quả nhận được sau khi chạy chương trình là n = 45 và tổng tiên lớn hơn 1000 là 1034.
HS viết chương trình bằng 2 cách.
HS1: sử dụng câu lệnh for... do:
T:= 0;
For i:= 1 to 100 do T:= T+1/i;
Writeln (T);
HS2: sử dụng câu lệnh while ... do:
T:= 0;
i:= 1;
while i<= 100 do begin T:= T+1/i; i:= i+1 end;
writeln (T);
2 chương trình trên có cùng kết quả.
Hoạt dộng 3: Lặp vô hạn lần- Lỗi lập trình cần tránh.
GV cho ví dụ:
Var a: integer;
Begin
 a:= 5;
 while a< 6 do writeln (‘ A’);
end.
? em hãy cho biết trong chương trình trên, vòng lặp có kết thúc không? Vì sao?
GV lưu ý HS: 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 vòng lặp không bao giờ kết thúc.
Khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới không “rơi” vào những “vòng lặp vô tận”
Trong chương trình trên, vòng lặp không bao giờ kết thúc. Vì: giá trị của biến a luôn bằng 5, điều kiện a< 6 luôn luôn đúng nên lệnh writeln (‘ A’) luôn được thực hiện.
Hoạt động 3: Củng cố.
GV yêu cầu HS đọc ghi nhớ SGK
Gv cho HS làm bài tập 3 SGK.
Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó.
a) Thuật toán 1
Bước 1. S ¬ 10, x ¬ 0.5.
Bước 2. Nếu S £ 5.2, chuyển tới bước 4.
Bước 3. S ¬ S - x và quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
b) Thuật toán 2
Bước 1. S ¬ 10, n ¬ 0.
Bước 2. Nếu S ≥ 10, chuyển tới bước 4.
Bước 3. n ¬ n + 3, S ¬ S - n quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
1 vài học sinh đọc ghi nhớ
2 HS trả lời:
a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng:
S:=10; x:=0.5;
while S>5.2 do S:=S-x;
 writeln(S);
b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng:
S:=10; n:=0;
while S<10 do
 begin n:=n+3; S:=S-n end;
writeln(S);
IV, Hướng dẫn về nhà:
- Ghi nhớ cú pháp và hoạt động của vòng lặp while.. do
- Trả lời câu hỏi và làm bài tập SGK.

Tài liệu đính kèm:

  • doctiet 54 bai 8 lap voi so lan chua biet truoc.doc