Tiến trỡnh dạ y học

Một phần của tài liệu Tin học 8 từ 1-52 (Trang 98 - 103)

Hoạt đng 1: Kiểm tra bài củ

Viết thuật toỏn tớnh tổng 100 số tự nhiờn đầu tiờn 1,2,3,…,99,100

Bước 1. SUM ← 0; i ← 0.

Bước 2. ii + 1.

Bước 3. Nếu i ≤ 100, thỡ SUM ← SUM + i và quay lại bước 2.

Bước 4. Thụng bỏo kết quả và kết thỳc thuật toỏn.

Đặt vấn đề: Với bài toỏn trờn, trong TP ta sử dụng vũng lặp for…to…do thỡ sẽ thực hiện dễ dàng . Nhưng nếu ta thay số 100 bởi n ( tớnh tổng n số tự nhiờn đầu tiờn ) thỡ ta sẽ gặp nhiều khú khăn trong việc sử dụng vũng lặp for…to…do bởi lỳc này số lần lặp khụng biết trước. Vậy ta phải làm như thế nào ? Giới thiệu bài mới .

Hoạt động 2: Cỏc hoạt động lặp với số lần chưa biết trước

+ G : y/c hs đọc vớ dụ 1sgk/67

+ G : Phõn tớch vớ dụ

+ G : Hướng dẫn hs xõy dựng thuật toỏn

+ G : Chạy tay cho học sinh xem ( Chỉ nờn chạy tay thử từ 1 đến 10 )

+ G : Giới thiệu sơ đồ khối

+ G : Nờu nhận xột

1. Cỏc hoạt động lặp với số lần chưa biết trước

a/ Vớ dụ 1(sgk).

+ Hs : 2-3 hs đọc vớ dụ sgk + Hs : Chỳ ý lắng nghe

b/ Vớ dụ 2 : Nếu cộng lần lượt n số tự nhiờn đầu tiờn (n = 1, 2, 3,...), Cần cộng bao nhiờu số tự nhiờn đầu tiờn để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?

+ Hs : Nghe giỏo viờn hướng dẫn, sau đú tự xõy dựng thuật toỏn

+ Hs : Chỳ ý nghe . Hs ghi vở vớ dụ 2

Giải :

Kớ hiệu S là tổng cần tỡm và ta cú thuật toỏn như sau:

+ Bước 1.S ← 0, n ← 0.

+ Bước 2. Nếu S ≤ 1000, n n + 1; ngược lại chuyển tới bước 4.

+ Bước 3.S S + n và quay lại bước 2.

+ Bước 4.In kết quả : Sn là số tự nhiờn nhỏ nhất sao cho S > 1000. Kết thỳc thuật toỏn.

* Ta cú sơ đồ khối :

+ G : Cú thể sử dụng lệnh lặp với số lần lặp chưa biết trước trong cỏc chương trỡnh lập trỡnh . Sau đõy ta xột cõu lệnh và vớ dụ trong TP + G : Giới thiệu cỳ phỏp lệnh while … do ….; + G : Xột vớ dụ 3 Chỳng ta biết rằng, nếu n càng lớn thỡ 1 n càng nhỏ, nhưng luụn luụn lớn hơn 0. Với giỏ trị nào của n thỡ 1

n < 0.005 hoặc 1

n < 0.003 ? ( Gv đưa phim trong vớ dụ 3 )

+ G : giới thiệu chương trỡnh mẫu sgk ( Giỏo viờn in chương trỡnh mẫu trờn phim trong )

+ G : Chạy tay cho học sinh xem

+ G : Yờu cầu học sinh mở mỏy tớnh và mở chương trỡnh vớ dụ 3 ( giỏo viờn chuẩn bị chương trỡnh mẫu và đưa lờn cỏc mỏy )

+ G : Cho học sinh chạy chương trỡnh trờn mỏy

+ G : Yờu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ...

thực hiện cỏc hoạt động lặp như trong cỏc vớ dụ trờn, ta cú thể sử dụng cõu lệnh cú dạng lặp với số lần chưa biết trước

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

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 đú:

- điều kiện thường là một phộp so sỏnh;

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

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. Vớ dụ 3.

+ Hs : Đọc vớ dụ 3 + Hs : quan sỏt

Với giỏ trị nào của n ( n>o ) thỡ 1

n < 0.005 hoặc 1

n

< 0.003? Chương trỡnh dưới đõy tớnh số n nhỏ nhất để 1

n nhỏ hơn một sai số cho trước :

uses crt; var x: real; n: integer; const sai_so=0.003; begin clrscr; x:=1; n:=1;

while x>=sai_so dobegin n:=n+1; x:=1/n end; writeln('So n nho nhat de 1/n < ',sai_so:5:4, 'la ',n);

readln

end.

Hoạt động 3: Củng cố

- Giáo viên hệ thống lại toàn bộ kiến thức đã học.

Hoạt động 4: Hớng dẫn về nhà

- Học bài theo sách giáo khoa và vở ghi. - Làm bài tập 1, 2, 3 SGK trang71.

- Đọc trớc Bài 8: lặp với số lần cha biết trớc.

Tiết 50 Ngày soạn: 12/02/2009

Ngày dạy: 03/03

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: Giỏo ỏn, mỏy chiếu, mỏy tớnh. - HS: Sỏch, vởđọc trước bài ở nhà.

III. Tiến trỡnh dạy - học

Hoạt đng 1: Kiểm tra bài củ

?Viết cú pháp câu lệnh lặp với số lần cha biết trớc rồi giải thích. ?Làm bài tập 2 trang 71.

Hoạt đng 2: Xột cỏc vớ dụ.

+ 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

+ G : Chạy tay cho học sinh xem

+ G : Cho học sinh chạy chương trỡnh trờn mỏy

+ G : chạy chương trỡnh này, ta nhận được giỏ trị ntn?

Vớ dụ 4 . Chương trỡnh Pascal dưới đõy thể hiện thuật toỏn tớnh số n trong vớ dụ 2: + Hs : chỳ ý nghe . + Hs : thực hiện 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.

+ Hs : Nếu chạy chương trỡnh này ta sẽ

Viết chương trỡnh tớnh tổng

1 1 1

1 ...

2 3 100

T = + + + +

+ G : Cho học sinh quan sỏt.

+ G : Chạy tay ( cả hai chương trỡnh ) cho học sinh xem

+ G : so sỏnh kết quả khi chạy hai chương trỡnh

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

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

var a:integer;

begin

a:=5;

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

end.

+ 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<6 luụ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, đ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".

nhận được n = 45 và tổng đầu tiờn lớn hơn 1000 là 1034. Vớ dụ 5. Viết chương trỡnh tớnh tổng 1 1 1 1 ... 2 3 100 T = + + + + + Hs : quan sỏt Để 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);

+ Hs : chỳ ý nghe và tự chạy tay lại + Hs : Kết quả bằng nhau

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 trỏnh

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

Hoạt động 3: Củng cố

- Giáo viên hệ thống lại toàn bộ kiến thức đã học.

Hoạt động 4: Hớng dẫn về nhà

- Học bài theo sách giáo khoa và vở ghi. - Làm bài tập 4, 5 SGK trang71.

Tuần 27 Tiết 51 Ngày soạn: 19/02/2009 Ngày dạy: 04/03 Bài thực hành 5: Sử dụng lệnh While doI. Mục tiêu

- Vận dụng kiến thức của vòng lặp while ... do để viết chơng trình. Biết lựa chọn câu lệnh lặp while ... do hoặc For ... do cho phù hợp với tình huống cụ thể.

- Rèn luyện kỹ năng về khai báo và sử dụng biến, kĩ năng đọc hiểu 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.

- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.

II. Chuẩn bị

Một phần của tài liệu Tin học 8 từ 1-52 (Trang 98 - 103)