BÀI 7: CÂU LỆNH LẶP
A. MỤC TIÊU:
1. Kiến thức:
- Biết nhu cầu cần có câu lệnh 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:
- Viết đúng cú pháp câu lệnh For.do . Vận dụng câu lệnh For để viết chương trình.
3. Thái độ:
- Học sinh 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.
B. CHUẨN BỊ:
- Giáo viên: Bài soạn, sách giáo khoa, máy vi tính.
- Học sinh: sách giáo khoa, tập, viết, máy vi tính (nếu có)
C. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
1. Kiểm tra kiến thức cũ:
Kết hợp trong giờ học
72 trang |
Chia sẻ: nguyenlinh90 | Lượt xem: 744 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài soạn lí thuyết Tin Học 8 kì 2 - Trường THCS Nguyễn Văn Tiết, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tuần:
Tiết PPCT:
Ngày soạn:
Ngày dạy:
BÀI 7: CÂU LỆNH LẶP
MỤC TIÊU:
Kiến thức:
Biết nhu cầu cần có câu lệnh 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.
Kỹ năng:
Viết đúng cú pháp câu lệnh For..do . Vận dụng câu lệnh For để viết chương trình.
Thái độ:
Học sinh 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.
CHUẨN BỊ:
Giáo viên: Bài soạn, sách giáo khoa, máy vi tính.
Học sinh: sách giáo khoa, tập, viết, máy vi tính (nếu có)
TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
Kiểm tra kiến thức cũ:
Kết hợp trong giờ học
Giảng kiến thức mới
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1 :Các công việc phải thực hiền nhiều lần
1. Các công việc phải thực hiền nhiều lần
GV: Trong cuộc sống hằng ngày nhiều mỗi người đều có các công việc riêng khác nhau.
? Em hãy lấy ví dụ về một số việc hàng ngày của em.
HS: Một em lấy một số ví dụ.
GV: Ghi ví dụ của học sinh lên bảng
HS: Một em khác lấy thêm một số ví dụ
? 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ó?
HS: Tách ví dụ thành hai loại (một loại đã biết trước số lần lặp và một loại chưa biêt số lần lặp )
GV: Nhận xét và kết luận
1. Các công việc phải thực hiền nhiều lần
Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều trường hợp khi viết một chương trình máy tính chúng ta cũng phải viết lặp lại nhiều câu lệnh thực hiện một phép tính nhất định
Hoạt động 2 :Câu lệnh lặp - một lệnh thay cho nhiều lệnh
2. Câu lệnh lặp - một lệnh thay cho nhiều lệnh
HS: nghiên cứu ví dụ 1.
GV: Phân tích, hướng dẫn viết thuật toán ví dụ 1.
? Để vẽ được như hình 33 ta phải làm thao tác nào.
HS: Trả lời.
? Để vẽ hình thứ 2 ta làm như thế nào?
HS: Trả lời
GV: Tương tự hình thứ 3 ta vẽ tương tự.
? Em hãy viết thuật toán mô tả vẽ hình 33.
HS: Hoạt động độc lập 3 phút.
Trả lời
Nhận xét và bổ sung
GV: Kết luận và đưa ra thuật toán
HS: Ghi bài.
GV: Để vẽ một hình vuông ta làm thế nào?
HS: Trả lời
GV: Mô tả bằng hình vẽ trên máy.
Đưa ra thuật toán vẽ hình vuông.
HS: Chú ý ghi bài.
GV: Cho HS nghiên cứu ví dụ 2.
? Ví dụ 2 công việc gì được thực hiện nhiều lần.
HS: Trả lời
? Qua hai ví dụ trên, các em hãy chỉ ra những công việc được lặp đi lặp lại?
HS: Chỉ ra công việc lặp lại ở vd1 và vd2
GV: Kết luận.
2. Câu lệnh lặp - một lệnh thay cho nhiều lệnh
VD1: SGK Tr56
Thuật toán
VD2: Tính tổng của 100 số tự nhiên đầu tiên.
Thuật toán: (đã nghiên cứu ở bài học số 5)
- Cánh mô tả các hoạt động lặp trong thuật toán như trong 2 ví dụ trên được gọi là cấu trúc lặp.
- Mọi ngôn ngữ lập trình đều có “cách” để chỉ thị cho máy tính thực hiện cấu trúc lặp với một câu lệnh. Đó là câu lệnh lặp
Hoạt động 3 :Ví dụ về câu lệnh lặp
3. Ví dụ về câu lệnh lặp
Gv: minh họa bằng ngôn ngữ Pascal cú pháp câu lệnh for to do
HS chú ý lắng nghe, ghi bài.
GV lưu ý cho hs:
biến đếm là biến đơn có kiểu nguyên;
giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn hơn giá trị đầu;
câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
GV: Cho HS nghiên cứu ví dụ 3
GV: Minh họa chương trình của ví dụ 3
HS: Quan sát ghi bài
GV: Cho HS nghiên cứu ví dụ 4
? Để in ra chữ ‘O’ ta sử dụng lệnh nào.
HS: Trả lời
Để in ra 20 chữ ‘O’ ta cần 20 câu lệnh writeln(‘O’; Viết thế rất mất thời gian.
? Em hãy sử dụng câu lệnh lặp để viết in ra 20 chữ ‘O’.
HS: Hoạt động theo bàn 2 phút rồi trả lời câu hỏi.
GV: Nhận xét, kết luận
Đưa ra chương trình minh họa.
HS: Chú ý quan sát.
3. Ví dụ về câu lệnh lặp
- Trong pascal câu lệnh lặp có dạng:
+Câu lệnh lặp dạng tiến:
For := to do ;
Trong đó:
For, to, do là các từ khoá
Biến đếm là biến đơn có kiểu nguyên (có thể là kiểu kí tự hoặc kiểu đoạn con)
Giá trị đầu, giá trị cuối là số cụ thể hoặc là biểu thức có kiểu cùng kiểu với biến đếm, giá trị cuối phải lớn hơn giá trị đầu.
Câu lệnh có thể là câu lệnh đơn hoặc câu lệnh ghép.
Ví dụ 3: (SGK Tr58) in ra màn hình thứ tự lần lặp.
Ví dụ 4: (SGKTr58) Viết chương trình đưa ra màn hình những chữ “0” theo hình trứng rơi.
- Tập hợp các câu lệnh con được đặt trong cặp từ khoá begin end; được gọi là câu lệnh ghép.
Hoạt động 4:Tính tổng và tích bằng câu lệnh lặp.
4. Tính tổng và tích bằng câu lệnh lặp.
Gv: trình bày đoạn chương trình tính tổng N số tự nhiên, với N là số tự nhiên được nhập từ bàn phím (Pascal)
Theo công thức tính tổng ta cần khai bao nhieu biến? kiểu biến?
Trong 2 biến thì biến nào có giá trị được nhập từ bàn phím?
Trong trường hợp dữ liệu có kiểu nguyên rất lớn ta dùng longint
HS chú ý lắng nghe và ghi bài.
Gv giới thiệu VD6, yêu cầu HS viết chương trình theo hướng dẫn của GV.
HS làm bài.
4. Tính tổng và tích bằng câu lệnh lặp.
Vd 5: chương trình tính tổng N số tự nhiên đầu tiên, với N là số tự nhiên được nhập từ bàn phím.
S = 1+2+3+ + N
program Tinh_tong;
var N,i: integer;
S: longint;
begin
write(‘Nhap so N = ‘);
readln(N);
S:= 0;
for i:= 1 to N do
S:= S+i;
writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S);
readln;
end.
*Kiểu longint có phạm vi từ -231 đến 231 – 1.
Vd 6: Chương trình tính tích N số tự nhiên, với N là số tự nhiên được nhập từ bàn phím.
N! = 1.2.3.N
program Tinh_Giai_Thua;
var N,i:integer;
P:longint;
begin
write(‘Nhap so N = ‘);
readln(N);
P:= 1;
for i:= 1 to N do
P:= P*i;
writeln( N, ‘! = ‘, P);
readln;
end.
Củng cố:
1/ Cấu trúc lặp trong chương trình dùng để làm gì?
2/ Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước được thể hiện với câu lệnh nào?
Hướng dẫn học tập ở nhà:
Học sinh về nhà học bài, xem lại các ví dụ và làm bài tập trong sách giáo khoa. Xem trước bài Thực hành 5: Sử dụng lệnh lặp Fordo
Rút kinh nghiệm:
Ký duyệt, kiểm tra giáo án:
Tuần:
Tiết PPCT:
Ngày soạn:
Ngày dạy:
BÀI THỰC HÀNH 5:
SỬ DỤNG LỆNH LẶP FOR .. DO
MỤC TIÊU:
Kiến thức:
Biết viết chương trình Pascal có câu lệnh lặp For..do.
Kỹ năng:
Rèn luyện kĩ năng đọc hiểu chương trình có sử dụng vòng lặp for...do.
Thái độ:
Học sinh học tập nghiêm túc, tích cực làm các bài tập thực hành.
CHUẨN BỊ:
Giáo viên: Bài soạn, sách giáo khoa, máy vi tính.
Học sinh: sách giáo khoa, tập, viết, máy vi tính (nếu có)
TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
Kiểm tra kiến thức cũ:
Kết hợp trong giờ học
Giảng kiến thức mới
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Ôn lại câu lệnh lặp For..do
1. Ôn lại câu lệnh lặp For..do
Gv yêu cầu HS nhắc lại cú pháp và hoạt động của câu lệnh lặp For..do
HS nhắc lại kiến thức
GV gọi HS khác nhận xét và khẳng định lại kiến thức đúng.
1. Ôn lại câu lệnh lặp For..do
+ Cú pháp:
For := to do ;
Hoạt động 2: Bài tập 1
2. Bài 1(sgk/62)
GV yêu cầu HS khởi động Pascal và gõ chương trinh Ví dụ 5.
HS thực hiện
GV chạy thử chương trình kiểm tra kết quả S với N=3.
HS theo dõi, thực hiện với giá trị N=4, 5
GV thay đoan chương trình và trình chiếu cho HS theo dõi.
HS theo dõi, thực hiện và kiểm tra kết quả với N=8,9,10
2. Bài 1(sgk/62)
* Gõ chương trình ở Ví dụ 5 (bài 7) và thực hiện với các giá trị N=3,4,5
* Thay đoạn chương trình
for i:= 1 to N do
S:= S+i;
writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S);
bằng đoạn chương trình:
for i:= 1 to N do
if I mod 2=0 then S:= S+i;
writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S);
Cho biết kết quả thực hiện chương trình với N=8,9,10
Hoạt động 3: Bài tập 2
3. Bài 1(sgk/62)::
GV: Đưa ra nội dung của bài toán.
HS: Nghiên cứu bài toán, tìm input và output.
GV: Đưa nội dung chương trình lên màn hình, yêu cầu học sinh đọc hiểu chương trình.
HS: đọc, phân tích câu lệnh tìm hiểu hoạt động của chương trình.
GV hướng dẫn HS viết chương trình,dịch chương trình và sửa lỗi.
HS thực hành viết chương trình, dịch chương trình và sửa lỗi theo hướng dẫn của GV.
3. Bài 2(sgk/62):
Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, số được nhập từ bàn phím và dừng màn hình để có thể quan sát kết quả.
Program Bang_cuu_chuong;
Uses crt;
Var i, n: integer;
Begin
Clrscr;
Writeln(‘Nhap vao so n = ’); readln(n);
Writeln(‘Bang nhan ’,n);
Writeln;
For i:=1 to 10 do
Writeln(n,’x’,i:2,’=’,n*i:3);
Readln;
End.
Hoạt động 4: Chỉnh sửa chương trình để làm đẹp kết quả màn hình
4. Chỉnh sửa chương trình để làm đẹp kết quả màn hình
Giáo viên cho chạy kết quả của bài thực hành Bang_cuu_chuong Yêu cầu học sinh quan sát kết quả và nhận xét khoảng cách giữa các hàng, cột.
HS: quan sát và đưa ra nhận xét.
? Có cách nào để khoảng cách giữa các hàng và các cột tăng lên?
GV: Giới thiệu câu lệnh gotoxy và where.
GV: yêu cầu học sinh mở chương trình Bang_cuu_chương và sửa lại chương trình theo bài trên màn hình của giáo viên.
HS: gõ chương trình vào máy, sửa lỗi chính tả, chạy chương trình, quan sát kết quả.
GV: yêu cầu học sinh quan sát kết quả và so sánh với kết quả của chương trình khi chưa dùng lệnh gotoxy(5, wherey)
HS: quan sát và nhận xét.
4. Chỉnh sửa chương trình để làm đẹp kết quả màn hình
Bài 2 (sgk/63)
a) Giới thiệu lệnh gotoxy(), wherex
- Gotoxy(a,b)
Trong đó: a là chỉ số cột, b là chỉ số hàng
- ý nghĩa của câu lệnh là đưa con trỏ về cột a hàng b.
- Wherex: cho biết số thứ tự của cột, wherey cho biết số thứ tự của hàng.
* Lưu ý: Phải khai báo thư viện crt trước khi sử dụng hai lệnh trên
b) Chỉnh sửa câu lệnh lặp của chương trình như sau:
for i:=1 to 10 do
begin
GotoXY(5,WhereY); writeln(N,' x ',i:2,' = ',N*i:3); writeln
end;
Hoạt động 5: Sử dụng lệnh For lồng trong for
5. Sử dụng lệnh For lồng trong for
GV: giới thiệu cấu trúc lệnh for lồng, hướng dẫn học sinh cách sử dụng lệnh.
HS: ghi chép cấu trúc và lĩnh hội
GV: đưa nội dung chương trình bài thực hành 3 lên màn hình, yêu cầu học sinh đọc chương trình, tìm hiểu hoạt động của chương trình.
HS: hoạt động theo nhóm, tìm hiểu hoạt động của chương trình, đại diện của nhóm báo cáo kết quả thảo luận.
GV: cho chạy chương trình.
HS: quan sát kết quả trên màn hình.
5. Sử dụng lệnh For lồng trong for
Bài 3 SGK (T64).
a) Câu lệnh for lồng trong for
- For to do
For to do
;
Program Tao_bang;
Uses crt;
Var i,j: byte;
Begin
Clrscr;
For i:=1 to 9 do
Begin
For j:=0 to 9 do
Writeln(10*i+j:4); Writeln;
End; Readln;
End.
Củng cố:
Giáo viên nhấn mạnh lại các nội dung trọng tâm.
Nhận xét về buổi thực hành, các mặt tốt và hạn chế.
Hướng dẫn học tập ở nhà:
Học sinh về nhà học bài, xem lại các ví dụ và làm bài tập trong sách giáo khoa.
Rút kinh nghiệm:
Ký duyệt, kiểm tra giáo án:
Tuần:
Tiết PPCT:
Ngày soạn:
Ngày dạy:
BÀI TẬP
MỤC TIÊU:
Kiến thức:
Củng cố kiến thức vòng lặp với số lần biết trước và câu lệnh ghép.
Kỹ năng:
- Vận dụng vòng lặp for to...do và câu lệnh ghép viết một số bài toán đơn giản
Thái độ:
Học sinh học tập nghiêm túc, tích cực làm các bài tập thực hành.
CHUẨN BỊ:
Giáo viên: Bài soạn, sách giáo khoa, máy vi tính.
Học sinh: sách giáo khoa, tập, viết, máy vi tính (nếu có)
TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
Kiểm tra kiến thức cũ:
Kết hợp trong giờ học
Giảng kiến thức mới
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Bài tập dạng lí thuyết.
1. Bài tập dạng lí thuyết.
GV: Đưa ra đề bài toán, yêu cầu học sinh nghiên cứu theo nhóm.
-HS: Hoạt động theo nhóm tìm câu trả lời.
- HS: Đại diện của hai nhóm trình bày kết quả của nhóm.
-GV: Nhận xét kết quả cuối cùng.
- GV: Đưa bài tập 2 lên bảng, yêu cầu một học sinh đứng tại chỗ trả lời.
- HS: Một học sinh đứng tại chỗ trả lời bài tập 2. một học sinh khác đứng tại chỗ nhận xét.
- GV: Kết luận kết quả của bài 2.
-GV: GV: Đưa ra đề bài toán, yêu cầu học sinh nghiên cứu theo nhóm.
-HS: Hoạt động theo nhóm tìm câu trả lời.
- HS: Đại diện của hai nhóm trình bày kết quả của nhóm.
- GV: Nhận xét.
1. Bài tập dạng lí thuyết.
Bài 1: SGK (T60)
Bài 2: SGK (T60)
- Câu lệnh lặp có tác dụng chỉ dẫn cho máy tính thực hiện lặp lại một câu lệnh hay một nhóm câu lệnh với một số lần nhất định.
- Câu lệnh lặp làm giảm nhẹ công sức của người viết chương trình.
Bài 3 SGK (T60)
- Điều kiện cần kiểm tra trong câu lệnh lặp for do là giá trị của biến đếm phải nằm trong đoạn [giá trị đầu, giá trị cuối ], nếu thoả mãn điều kiện đó thì câu lệnh sẽ được thực hiện, nếu không thoả mãn câu lệnh sẽ bị bỏ qua.
Hoạt động 2: Bài tập dạng thực hành
2. Bài tập dạng thực hành
GV: Đưa ra đề bài toán và yêu cầu một học sình đứng tại vị trí để trả lời bài tập.
-HS: 1em đứng tại vị trí trả lời, 1 em khác nhận xét.
- GV: Nhận xét kết quả câu trả lời của 2 bạn.
- GV: Đưa bài tập
- HS: Suy luận kết quả theo lí thuyết
- GV: Ghi kết quả suy luận của học sinh lên bảng
- HS: gõ chương trình vào máy và chạy thử
- HS: So sánh kết quả nhận được với kết quả đã suy lận
- 1 HS giải thích kết quả thu được
- GV Đưa ra bài tập 6.
- HS: Làm việc theo nhóm, sau 5 phút đại diện của 2 nhóm sẽ lên báo báo kết quả.
- Các nhóm khác nhận xét
GV: Giúp các em hoàn thành thuật toán.
2. Bài tập dạng thực hành
Bài 5 SGK (T61)
Tất cả các câu lệnh đều không hợp lệ vì:
a) giá trị đầu lớn hơn giá trị cuối
b) giá trị đầu và giá trị cuối có kiểu là số thực không cùng kiểu với biến đếm
c) sai cấu trúc câu lệnh
d) sai cấu trúc câu lệnh
e) biến đếm có kiểu là kiểu số thực nên không hợp lệ.
Bài 4 SGK (T61)
Giá trị của j sau mỗi lần lặp sẽ được tăng thêm 2 đơn vị
2, 4, 6, 8, 10, 12.
Bài 6 SGK (T 61)
- Mô tả thuật toán.
Bước 1: nhập n
A<-0, i<-1
Bước 2: A<- 2\i(i+2)
Bước 3: i<-i+1
Bước 4: nếu i<=n quay về bước 2
Bước 5: ghi kết quả A ra màn hình và kết thúc thuật toán.
Hoạt động 3: Thực hành viết chương trình
3. Thực hành viết chương trình
- GV: Đưa bài tập yêu cầu HS tìm thuật toán
- HS: Suy nghĩ thuật toán và trình bày.
- GV: Nhận xét và hướng dẫn học sinh viết chương trình
- HS: lắng ghe, ghi nhớ và thực hành viết chương trình
- HS: thực hành
- GV: quan sát và hướng dẫn thêm.
3. Thực hành viết chương trình
Đề: Viết chương trình tìm xem có bao nhiêu số dương trong n số nhập vào từ bàn phím
Program tinh_so_cac_so_duong;
Uses crt;
Var i,A, dem, n: integer;
Begin
Clrscr;
Dem:=0;
Writeln(‘Nhap vao so n’); readln(n);
For i:=1 to n do
begin
writeln(‘nhap vao so thu’,i); readln(A);
if A>0 then dem:=dem+1;
end;
Writeln(‘So cac so duong la’,dem);
Readln;
End.
Củng cố:
Giáo viên nhấn mạnh lại các nội dung trọng tâm.
Hướng dẫn học tập ở nhà:
Học sinh về nhà học bài, xem lại các ví dụ và làm bài tập trong sách giáo khoa. Xem trước bài 8: Lặp với số lần chưa biết trước.
Rút kinh nghiệm:
Ký duyệt, kiểm tra giáo án:
Tuần:
Tiết PPCT:
Ngày soạn:
Ngày dạy:
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
MỤC TIÊU:
Kiến thức:
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.
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.
Thái độ:
Học sinh 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.
CHUẨN BỊ:
Giáo viên: Bài soạn, sách giáo khoa, máy vi tính.
Học sinh: sách giáo khoa, tập, viết, máy vi tính (nếu có)
TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
Kiểm tra kiến thức cũ:
CÂU HỎI
TRẢ LỜI
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. i ¬ i + 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.
Giảng kiến thức mới
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Các hoạt động lặp với số lần chưa biết trước
1. Các hoạt động lặp với số lần chưa biết trước
Với bài toán trên, trong Free Pascal ta sử dụng vòng lặp for..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 fortodo, 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 quyết bài toán này chúng ta đi tìm hiểu bài 8: Lặp với số lần chưa biết trước
- GV : Yêu cầu HS đọc ví dụ 1.
- HS : 2-3 HS đọc ví dụ.
- GV: Phân tích ví dụ
- HS: Chú ý lắng nghe
- GV: Trong ví dụ 1, Long gọi cho Trang, Long có xác định được Long sẽ gọi cho Trang mấy lần hay không? Khi nào hoạt động gọi điện thoại của Long kết thúc?
- HS trả lời: Khi có người nhấc máy
- GV: Yêu cầu HS đọc ví dụ 2
- HS: 2-3 HS đọc ví dụ.
- GV: Phân tích ví dụ
- HS: Chú ý lắng nghe
- GV: Hướng dẫn HS xây dựng thuật toán
- HS: Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán
- GV: Chạy tay cho học sinh xem ( Chỉ nên chạy tay thử từ 1 đến 10 )
- HS : Chú ý lắng nghe và tiếp thu.
- HS ghi vở ví dụ 2
- GV: Việc thực hiện lập lại các phép cộng trên với số lần chưa biết trước phụ thuộc vào điều kiện gì? Phép cộng chỉ dừng khi nào?
- HS trả lời: Điều kiện s<=1000 và chỉ dừng khi kết quả kiểm tra là sai.
- GV : Giới thiệu sơ đồ khối
- HS theo dõi và tiếp thu
1. Các hoạt động lặp với số lần chưa biết trước
a/ Ví dụ 1:
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?
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ả : 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:
* 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.
Hoạt động 2: Ví dụ về lệnh 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
- Trước khi đi tìm hiểu cú pháp của câu lệnh lặp với số lần chưa biết trứơc GV gọi HS nhắc lại cú pháp của câu lệnh lặp với số lần biết trước.
- HS trả lời
- GV chốt ý:
For:= to do ;
- 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ụ để tìm hiểu rõ hơn.
- GV: Giới thiệu cú pháp câu lệnh
- HS: chú ý lắng nghe và ghi chép.
? Dựa vào cú pháp hãy nêu hoạt động của câu lệnh lặp với số lần chưa biết trước?
- HS nêu hoạt động của câu lệnh lặp với số lần chưa biết trước.
GV nhận xét và khẳng định ý đúng. GV cho HS đọc ví dụ 3 trong SGK
- HS đọc bài
- GV: Giới thiệu chương trình mẫu sgk ( Giáo viên in chương trình mẫu trên)
- HS: Quan sát
- GV: Chạy tay cho học sinh xem
- HS: chú ý nghe và tự chạy tay lại
- GV: 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 )
- HS: thực hiện
- GV: Cho học sinh chạy chương trình trên máy
- HS: thực hiện
- GV: Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ...
- HS: thực hiện
- GV yêu cầu HS đọc ví dụ 4/
- HS đọc ví dụ 4
- GV: Cho học sinh quan sát chương trình
- HS quan sát chương trình
- GV: Chạy tay cho học sinh xem chương trình mẫu
- HS: Chú ý nghe và tự chạy tay lại
- GV: Cho học sinh chạy chương trình trên máy.
- HS thực hiện yêu cầu
- 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.
- GV: Giới thiệu ví dụ 5.
GV gợi ý, yêu cầu HS viết chương trình sử dụng câu lệnh lặp For..do
HS suy nghĩ, thực hiện
GV sửa bài và hướng dẫn HS viết chương trình trên, sử dụng lệnh lặp While..do
HS chú ý theo dõi và ghi bài.
GV yêu cầu HS chạy 2 chương trình. So sáh kết quả của 2 chương trình.
HS chạy chương trình, so sánh, rút ra kết luận
GV nhận xét