Rỳt kinh nghiệm

Một phần của tài liệu giáo án tin học lớp 8 cả năm (Trang 28 - 33)

... ...

Ngày soạn: 4/3/2013

Ngày giảng: ... Tiết 51

BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚCI. MỤC TIấU: I. MỤC TIấU:

- Biết nhu cầu cần cú cấu trỳc lặp với số lần chưa biết trước 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 với số lần chưa biết trước để chỉ dẫn mỏy tớnh thực hiện lặp đi lặp lại cụng việc đến khi một điều kiện nào đú được thoả món;

- Hiểu hoạt động của cõu lệnh lặp với số lần chưa biết trước while...do… trong Pascal.

II. CHUẨN BỊ:

- GV: SGK, mỏy chiếu, mỏy tớnh, hỡnh vẽ cỏc vớ dụ - HS: Xem trước bài ở nhà

III. PHƯƠNG PHÁP

- Giải quyết vấn đề, vấn đỏp, hoạt động nhúm, trực quan, thuyết trỡnh, gợi mở

IV. TIẾN TRèNH:

1. Ổn định lớp: 1 phỳt2. Kiểm tra bài cũ: 4 phỳt 2. Kiểm tra bài cũ: 4 phỳt

? hóy nờu một số vớ dụ về cõu lệnh lặp với số lần chưa biết trước?

G : Đặt vấn đề: Từ cỏc VD bạn nờu trờn vậy cỳ phỏp, hoạt động của cõu lệnh lặp đú như thế nào cụ cựng cỏc em đi nghiờn cứu vào bài hụm nay.

3. Bài mới

Hoạt động của thầy và trũ Ghi bảng

GV: đưa ra chương trỡnh để HS nghiờn cứu, dựa vào chương trỡnh đú GV giới thiệu cỳ phỏp hoạt động của cõu lệnh while...do GV: Em nhỡn vào chương trỡnh ai cú thể đưa ra cỳ phỏp của cõu lệnh while ..do

+ G : Giới thiệu cỳ phỏp lệnh

while …do ….;

+ hs : chỳ ý nghe và ghi chộp

2. Vớ dụ về lệnh lặp với số lần chưa biết trướcVớ dụ 1. 14phút Vớ dụ 1. 14phút

Chương trỡnh Pascal dưới đõy thể hiện thuật toỏn tớnh số n trong vớ dụ 2: var S,n: integer; begin S:=0; n:=1; while S<=1000 do begin n:=n+1; S:=S+n end;

writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S);

end.

Trong Pascal cõu lệnh lặp với số lần chưa biết trước cú dạng:

while <điều kiện> do <cõu lệnh>;

trong đú:

+ GV: giải thớch hoạt động, ý nghĩa của chương trỡnh vừa nờu

- cõu lệnh cú thể là cõu lệnh đơn giản hay cõu lệnh ghộp.

Cõu lệnh lặp này được thực hiện như sau: Bước 1 : Kiểm tra điều kiện. (adsbygoogle = window.adsbygoogle || []).push({});

Bước 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 kết thỳc. Nếu điều kiện đỳng, thực hiện cõu lệnh và quay lại bước 1.

+ G : Y/c hs nhắc lại cỳ phỏp cõu lệnh lặp với số lần chưa biết trước + H : trả lời

+ G : ta tiếp tục xột cỏc vớ dụ mà trong chương trỡnh cú cõu lệnh với số lần lặp chưa biết trước

1 1 1

1 ...

2 3 100

T = + + + +

- GV: dựa vào cõu lệnh for hóy viết chương trỡnh cho bài toỏn này - HS; trả lời - GV: Nếu sử dụng cõu lệnh while .. do thỡ sao? - HS suy nghĩ để làm - GV giải thớch + G : Giới thiệu phần 3

+ G : 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

+ Hs : Chỳ ý nghe

+ G : Chẳng hạn, chương trỡnh dưới đõy sẽ lặp lại vụ tận:

+ Hs : Quan sỏt

+ G : Trong chương trỡnh trờn, giỏ trị của biến a luụn luụn bằng 5, điều kiện a<6luụn luụn đỳng nờn lệnh writeln('A') luụn được thực hiện.

Do vậy, khi thực hiện vũng lặp,

Vớ dụ 2 : 12 phút Viết chương trỡnh tớnh tổng 1 1 1 ... 1 2 3 100 T = + + + + Giải : Để viết chương trỡnh tớnh tổng 1 1 1 ... 1 2 3 100 T = + + + + ta cú thể sử dụng lệnh lặp với số lần lặp biết trước for…do: T:=0;

for i:=1 to 100 do T:=T+1/i; writeln(T);

Nếu sử dụng lệnh lặp while…do, đoạn chương trỡnh dưới đõy cũng cho cựng một kết quả:

T:=0; i:=1;

while i<=100 do begin T:=T+1/i; i:=i+1 end;

writeln(T);

* Nhận xột : Vớ dụ này cho thấy rằng chỳng ta cú thể sử dụng cõu lệnh while…do thay cho cõu lệnh for… do.

3. Lặp vụ hạn lần – Lỗi lập trỡnh cần trỏnh: 6 phút

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.

var a:integer;

begin

a:=5;

while a<6 do writeln('A');

đ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". + Hs : Chỳ ý nghe 4. Củng cố: 8 phỳt - Ghi nhớ sgk - Làm bài tập 3, 4 bài 5 SGK/71 5. BTVN: 1 phỳt

- Hoàn thiện cỏc bài tập cuối bài (adsbygoogle = window.adsbygoogle || []).push({});

- Chuyển cỏc VD trờn lớp sang cõu lệnh for - Đọc thờm VD 3 trang SGK

IV. Rỳt kinh nghiệm

... ... ...

Ngày soạn: 4/3/2013

Ngày giảng: ... Tiết 52

BÀI TH SỐ 6: SỬ DỤNG LỆNH LẶP WHILE…DOI. MỤC TIấU: I. MỤC TIấU:

- Hiểu cõu lệnh lặp while...do trong chương trỡnh TP cú sẵn

- Biết lựa chọn cõu lệnh lặp while...do hoặc for...do phự hợp với tỡnh huống cụ thể. - Rốn luyện kĩ năng về khai bỏo, sử dụng biến

- Rốn luyện khả năng đọc chương trỡnh

- Biết vai trũ của việc kết hợp cỏc cấu trỳc điều khiển.

II. CHUẨN BỊ:

- GV: Soạn bài, đọc tài liệu tham khảo, phũng may.

- HS: Xem lại bài học trước, xem bài trước ở nhà, dụng cụ học tập.

III. PHƯƠNG PHÁP

- Giải quyết vấn đề, vấn đỏp, hoạt động nhúm

IV. TIẾN TRèNH:

1. Ổn định lớp: 1 phỳt2. Kiểm tra bài cũ: 5 phỳt 2. Kiểm tra bài cũ: 5 phỳt

Viết cỳ phỏp, vẽ sơ đồ, hoạt động của cõu lệnh While ...do?

3. Bài mới

Hoạt động của GV Hoạt động của HS

Hoạt động 1: 30 phỳt GV yờu cầu HS làm bài 1:

Viết chương trỡnh sử dụng lệnh lặp While… do để tớnh trung bỡnh n số thực x1, x2, x3,..., xn. Cỏc số nx1, x2, x3,..., xn được nhập vào từ

bàn phớm. GV hướng dẫn:

ý tưởng: Sử dụng một biến đếm và lệnh lặp

While…do để 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ố.

a) 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.

b) Gừ chương trỡnh sau đõy và lưu chương trỡnh với tờn Tinh_TB:

GV: Yờu cầu:

c) Đọc 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. d) Viết lại chương trỡnh bằng cỏch sử dụng cõu lệnh for…do thay cho cõu lệnh while… do. (adsbygoogle = window.adsbygoogle || []).push({});

Hoạt động 2: 7 phỳt GV: Nờu cỏc lỗi cần chỳ ý nếu cú của HS trong lỳc thực hành. HS: Chỳ ý theo giỏi. HS: Thực hiện làm trờn mỏy: Program Tinh_Trung_binh; uses crt; Var n, dem: Integer; x, TB: real; begin clrscr; dem:=0 ; TB:=0 ;

write('Nhap so cac so can tinh n = '); readln(n);

while dem<n do

begin

dem:=dem+1;

write('Nhap so thu ',dem,'= '); readln(x);

TB:=TB+x; end;

TB:=TB/n;

writeln('Trung binh cua ',n,' so la = ',TB:10:3);

writeln('Nhan Enter de thoat ...'); readln

end.

GV: NHắc lại nhung điều cần chỳ ý:

+) Ngoài cấu trỳc lặp với số lần lặp biết trước, cỏc ngụn ngữ lập trỡnh cũn cú cỏc cõu lệnh lặp với số lần chưa biết trước.

+) While…do là cõu lệnh lặp với số lần chưa biết trước trong Pascal.

Về nhà xem lại bài tập 1, xem trước bài tập 2.

4. Củng cố: 2 phỳt

Một phần của tài liệu giáo án tin học lớp 8 cả năm (Trang 28 - 33)