Tải bản đầy đủ (.doc) (10 trang)

123doc chu de lap voi so lan chua biet truoc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (201.42 KB, 10 trang )

CHỦ ĐỀ : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
I.

NỘI DUNG: XÂY DỰNG HỆ THỐNG CÂU HỎI ĐÁNH
GIÁ

BƯỚC 1: NỘI DUNG CẦN KIỂM TRA ĐÁNH GIÁ
Lặp với số lần chưa biết trước .
BƯỚC 2: Xác định yêu cầu, kiến thức, kỹ năng, thái độ
1) Kiến thức: Giúp HS
- 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;
2) Kĩ năng:
- 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.
3) Thái độ:
- Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
Nội dung
Loại
Lặp với số lần Lý
chưa biết trước thuyết

Thực
hành

Nhận biết
HS mô tả
cú pháp


câu lệnh
lặp với số
lần chưa
biết trước,
ý nghĩa
của câu
lệnh lặp
với số lần
chưa biết
trước

Thông hiểu
HS chỉ ra và
giải thích
được ý nghĩa
của cú pháp
câu lệnh lặp
với số lần
chưa biết
trước

Vận dụng thấp Vận dụng cao
HS vận dụng
câu lệnh lặp với
số lần chưa biết
trước vào giải
một số bài toán
đơn giản.

HS biết cách sử Biết sử dụng câu

dụng câu lệnh lệnh lặp với số
lặp với số lần lần chưa biết
chưa biết trước trước trong việc
viết chương trình


Nội dung câu hỏi Loại

Nhận biết

1a, Em hãy lấy víLý
dụ về một số việcthuyết
hàng ngày của
em.
1b, Qua những ví
dụ các bạn vừa
lấy ra trên bảng
thì những công
việc nào chúng ta
đã biết trước số
lần lặp đi lặp lại
và công việc nào
chúng ta chưa biết
số lần lặp lại của
nó?
1c, em hãy giải
thích thuật toán
và sơ đồ khối ở ví
dụ 2
2a? Như vậy ta cóLý

cú pháp câu lệnhthuyết
lặp với số lần
chưa biết trước
em hãy cho biết
“điều kiện” trong
cú pháp là gì?.
2b. Nhắc lại ý
nghĩa của câu
lệnh lặp với số lần
chưa biết trước?

HS biết được
thể nào là
công việc lặp
đi lặp lại
nhiều lần mà
chưa biết
được số lần
lặp.

2c. ? Em hãy đọc
ví dụ 3 và phân
tích đề bài.
2d. Em hãy lên
chạy chương trình
và thay điều kiện

Thông
hiểu


Vận dụng thấp Vận dụng cao

HS biết xây
dựng thuật
toán và vẽ sơ
đồ khối.
HS biết
được điều
kiện trong
cú pháp

HS hiểu
được cách
sử dụng câu
lệnh lặp với
số lần chưa
biết trước HS vận dụng
HS nắm bắt trong viết được câu lệnh
được ý nghĩa chương
lặp với số lần
của câu lệnh trình
chưa biết trước
lặp với số lần
để giải quyết
chưa biết
bài toán
trước
While<điều
kiện> do lệnh>;

được cách
sử dụng câu
lệnh lặp với
số lần chưa
biết trước


sai_so = 0.003
thành 0.002 ;
0.001 ; 0.005 ; ...
2e. Em hãy đọc ví
dụ 4 và thực hiện
trên máy rồi sau
đó cho biết khi
chạy chương trình
này, ta nhận được
giá trị ntn?
2f.Với ví dụ 4 ta
có thể sự dụng
câu lệnh for ..
to...do..
được
không?

Hs biết vận
dụng câu lệnh
lặp để giải
quyết bài toán.

HS nắm được

cách chạy
chương trình và
biết được kết
quả đúng.

3.a. Như thể nào Lý
là lặp vô hạn ?
thuyết

Cho HS 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
HS biết đượcHS hiểu
lặp vô hạn làđược một
gì.
số lỗi lập
trình cần
tránh.

Thực
hành

HS biết được
một số lỗi lập
trình cần tránh
để vận dụng

vào giải quyết
bài toán.

II.GIÁO ÁN CHÚ ĐỀ:
BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC


I.MỤC TIÊU
1) Kiến thức: Giúp HS
- 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;
2) Kĩ năng:
- 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.
3) Thái độ:
- Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
II. CHUẨN BỊ
1. GV :: Giáo án, máy chiếu, máy tính.
2. HS: Sách, vở đọc trước bài ở nhà.
III. TIẾN TRÌNH LÊN LỚP
1. Ổn định:
- ổn định lớp ,kiểm tra sĩ số.
2. Bài cũ:
3. Bài mới:
a. Đặt vấn đề:
Với bài toán trên, trong TP ta sử dụng vòng lặp for…to…do 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 .
b. Triển khai bài:
HOẠT ĐỘNG CỦA THÂY VÀ TRÒ
NỘI DUNG
1. Các hoạt động lặp với số lần chưa
Hoạt động 1. Các hoạt động lặp với số biết trước
lần chưa biết trước
a/ Ví dụ 1(sgk).
Gv : : y/c hs đọc ví dụ 1sgk/67
Gv : : Phân tích ví dụ
Hs : 2-3 hs đọc ví dụ sgk
Hs : Chú ý lắng nghe
Gv : : Hướng dẫn hs xây dựng thuật toán
Hs : Chú ý nghe
Gv : : Chạy tay cho học sinh
xem ( Chỉ nên chạy tay thử từ 1 đến 10 )

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
Giải :


Hs ghi vở ví dụ 2


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ả : S và n 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 :

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

Hoạt động 2: . Ví dụ về lệnh lặp với số
lần chưa biết trước
Gv : : Nêu nhận xét
Gv : : 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
Gv : : Giới thiệu cú pháp lệnh
while … do ….;

Gv : : xét ví dụ 3

* Nhận xét : Để viết chương trình chỉ
dẫn máy tính 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 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


1
Chúng ta biết rằng, nếu n càng lớn thì n

thúc. Nếu điều kiện đúng, thực hiện câu
lệnh và quay lại bước 1.
càng nhỏ, nhưng luôn luôn lớn hơn 0. Ví dụ 3.
1
+ Hs : Đọc ví dụ 3
n
Với giỏ trị nào của n thỡ < 0.005 hoặc + Hs : quan sát
1

Với giá trị nào của n ( n>o ) thì <
n < 0.003 ?
0.005 hoặc < 0.003? Chương trình dưới
Gv : đưa phim trong ví dụ 3 )
đây tính số n nhỏ nhất để nhỏ hơn một
Gv : : giới thiệu chương trình mẫu sgk sai số cho trước :
( GV in chương trinh mẫu trên.
Gv : : Chạy tay cho học sinh xem
uses crt;
Gv : : Yêu cầu học sinh mở máy tính và var x: real;
mở chương trình ví dụ 3 ( giáo viên n: integer;
chuẩn bị chương trình mẫu và đưa lên const sai_so=0.003;
các máy )
begin
Hs : thực hiện
clrscr;
Gv : : Cho học sinh chạy chương trình
x:=1; n:=1;
trên máy
while x>=sai_so do begin n:=n+1;
G : Yêu cầu hs thay điều kiện sai_so =
x:=1/n end;
0.003 thành 0.002 ; 0.001 ; 0.005 ; ...
writeln('So n nho nhat de 1/n <
',sai_so:5:4, 'la ',n);
readln
end.
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:

var S,n: integer;
begin
S:=0; n:=1;
while S<=1000 do
begin n:=n+1; S:=S+n end;
Hoạt động 3: Tìm hiểu ví dụ 4. Chương

writeln('So n nho nhat de tong >

trình Pascal dưới đây thể hiện thuật
1000 la ',n);
toán tính số n trong ví dụ 2
+ - Gv : : ta tiếp tục xét các ví dụ mà
writeln('Tong dau tien > 1000 la ',S);
trong chương trình có câu lệnh với số lần
end.
lặp chưa biết trước


+ Hs : chú ý nghe .
+ Hs : thực hiện
+ - Gv : : Chạy tay cho học sinh xem
+ - Gv : : Cho học sinh chạy chương
trình trên máy
+ - Gv : : chạy chương trình này, ta nhận
được giá trị ntn?
+ Hs : Nếu chạy chương trình này ta sẽ
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

+ Hs : quan sát
Để viết chương trình tính tổng 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.
Viết chương trình tính tổng
+ - Gv : : Cho học sinh quan sát.
+ - Gv : : Chạy tay ( cả hai chương
trình ) cho học sinh xem
+ - Gv : : so sánh kết quả khi chạy hai
chương trình
+ - Gv : : 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.
Hoạt động 4: Lặp vô hạn lần – Lỗi lập


3. Lặp vô hạn lần – Lỗi lập trình cần
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


trình cần tránh
+ - Gv : : Giới thiệu phần 3
var a:integer;
+ - Gv : : Khi viết chương trình sử dụng begin
cấu trúc lặp cần chú ý tránh tạo nên vòng
a:=5;
lặp không bao giờ kết thúc
while a<6 do writeln('A');
+ Hs : Chú ý nghe
end.
+ - Gv : : Chẳng hạn, chương trình dưới
đây sẽ lặp lại vô tận:
+ - Gv : : 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".
4. Củng cố:
Giáo viên hệ thống lại toàn bộ kiến thức đã học.
5. Dặn dò:
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 mục 3,4 sách giáo khoa
IV.RÚT KINH NGHIỆM:..................................................................................................
.............................................................................................................................................
.............................................................................................................................................





×