Mục tiêu: a Kiến thức: - Biết nhu cầu cần có cấu trúc 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à
Trang 1Tiết 37, 38: CÂU LỆNH LẶP
I Mục tiêu:
a) Kiến thức:
- Biết nhu cầu cần có cấu trúc 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;
- Hiểu hoạt động của câu lênh lặp với số lần biết trước for do trong Pascal;
- Biết lệnh ghép trong Pascal.
Trang 2b) Kỹ năng:
- Viết đúng lệnh for do trong một số tình huống đơn giản;
- Hiểu cách viết đúng các quy tắc, cú pháp trong ngôn ngữ cụ thể khi dùng vòng lặp for;
- Đọc hiểu được chương trình có sử dụng vòng lặp
for do;
c) Thái độ:
-Nhận thức được vai trò quan trọng của vòng lặp xác định for do là giúp thực hiện các công việc lặp lại
nhiều lần một cách khoa học, nhanh chóng, không dài dòng, tránh nhàm chán, dễ sai sót và tốn thời gian;
- Có ý thức trong học tập.
Trang 3GV: - Giáo án, máy Projector, bảng và bút;
- Một số ví dụ bài tập về vòng lặp for do;
HS: - SGK, vở để ghi;
III Lưu ý sư phạm:
- Dạy để học sinh hiểu cách sử dụng vòng lặp for do trong mọi ngôn ngữ lập trình;
- Ứng dụng vòng lặp được minh họa bằng ngôn ngữ Pascal, không phải nhất nhất áp đặc học sinh vào
ngôn ngữ Pascal;
- Không nên đưa vào các kiến thức ngoài SGK quá
nhiều nhằm tránh gây quá tải đối với học sinh.
Trang 4IV Hoạt động dạy và học:
A.Kiểm tra bài cũ: câu điều kiện, cấu trúc rẽ nhánh B.Bài mới:
1 Hoạt động 1: Giới thiệu các công việc phải lặp nhiều lần
Mục tiêu: giúp học sinh nhận biết và phân biệt được
các công việc lặp lại nhiều lần trong đời sống hằng
ngày
Trang 5Câu hỏi: Trong đời sống hằng
ngày có rất nhiều công việc được
lặp đi lặp lại, em nào cho biết
một vài ví dụ?
GV cho thêm vào ví dụ: mỗi
sáng thứ 2 đều chào cờ đầu tuần,
hoặc cô giáo lặp đi lặp lại việc gọi
học sinh lên trả bài và ghi điểm,
cô giáo sẽ ngừng lại cho đến khi
đã vào điểm cho tất cả học
sinh
GV chốt lại: đó là các công việc,
các hoạt động được thực hiện
bằng cách lặp đi lặp lại nhiều lần,
được chia làm 2 kiểu lặp: lặp với
số lần nhất định, biết trước và lặp
với số lần không xác định được
Câu hỏi: ví dụ nào là lặp với số
lần xác định được, ví dụ nào là
lặp với số lần không xác định
được?
GV: Nhận xét đánh giá
- GV cho học sinh ghi vào vở
Thảo luận trả lời:
-Tiếng gà gáy mỗi sáng, tiếng trống trường sau mỗi tiết học,
đánh răng trước khi đi ngủ và mỗi sáng thức dậy
- Hằng ngày em đi học
HS lắng nghe
Một vài học sinh trả lời
HS Lắng nghe
HS ghi vào vở
1 Các công việc phải thực hiện nhiều lần:
- lặp với số lần nhất định và biết trước:
đánh răng mỗi ngày 2 lần, ngày ăn cơn 3 lần
- lặp với số lần không thể xác định trước: học cho đến khi thuộc bài
Trang 6HĐ giáo viên HĐ học sinh Nội dung
-Xét VD1 : Vẽ 3 hình vuông
bằng nhau
Ta phải vẽ lần lượt 3 hình
Nhưng với câu lệnh lặp, ta chỉ
cần vẽ một hình vuông, rồi lặp
lại cho 2 hình vuông kia Ta có
thuật toán như thế nào?
- Gọii một HS nêu thuật toán
- GV: nhận xét, giải thích các
bước lặp của thuật toán
VD1:HS quan sát
- Một HS nêu thuật toán:
B1: Vẽ hình vuông đầu tiên
B2: Xét nếu hình vuông vẽ được ít hơn 3 thì di chuyển
về phải 2 đơn vị, trở
về bước 1để tiếp tục vẽ; Ngược lại kết thúc thuật toán
- HS: thảo luận, bổ sung
2 Câu lệnh lặp – một lệnh thay cho nhiều lệnh:
2 Hoạt động 2: Giới thiệu câu lệnh lặp, cấu trúc lặp.
Mục tiêu: Biết câu lệnh lặp với số lần biết trước và chức năng nó Cách thực hiện: Cho một số ví dụ để hoc sinh trình bày thuật
toán GV nhận xét và đưa ra kết luận.
Trang 7VD2: Tính tổng của 100 số tự
nhiên đầu tiên S= 1+2+3+
+100
Gọi một học sinh nêu thuật toán
- GV: nhận xét, giải thích các
bước lặp của thuật toán
VD3: In ra màn hình số lần lặp từ
15
- GV: nhận xét, giải thích các
bước lặp của thuật toán
* Qua 3 ví dụ GV giải thích đưa ra
kết luận: Cách mô tả các hoạt
động trong thuật toán như ở các
ví dụ được gọi là cấu trúc lặp Vậy
cấu trúc lặp có vai trò gì?
- GV: chốt lại cho HS ghi vào vở
* Giải thích câu lệnh lặp: là cách
để điều kiển máy tính thực hiện
cấu trúc lặp
VD2:Một HS nêu thuật toán:
B1: S0; i 0 B2: ii + 1 B3: nếu i<=100 thì SS+i và quay lại B2
B4: kết thúc thuật toán
- HS: thảo luận, bổ sung
VD3: HS trình bày thuật toán:
B1: i1 B2: Viết ra lần lặp thứ i, ii+1 B3: nếu i<=5 thì quay lại B2 B4: Kết thúc thuật toán
- HS: thảo luận, bổ sung
- HS thảo luận trả lời
HS ghi vào vở
- Cấu trúc lặp được sử dụng
để chỉ thị cho máy tính thực hiện lặp đi lặp lại một hoạt động nào đó cho đến khi một điều kiện nào
đó được thỏa mãn
- Câu lệnh lặp:
là “cách” để chỉ thị máy tính thực hiện cấu trúc lặp.
Trang 8HĐ giáo viên HĐ học sinh Nội dung
-Trở lại với VD2 : minh họa
với ngôn ngữ pascal: HS quan sát ví dụ
- HS lên viết cấu trúc
- Thảo luận nhận xét
3 Ví dụ về câu lệnh lặp:
Cấu trúc :
3 Hoạt động 3: Cấu trúc câu lệnh lặp
Mục tiêu:
- Biết cấu trúc câu lệnh của vòng lặp biết trước số lần lặp
for do
- Hiểu nguyên tắc hoạt động của câu lệnh lặp
- Hiểu câu lệnh đơn, câu lệnh ghép.
Cách thực hiện: Sử dụng ngôn ngữ pascal để minh họa ví dụ
for <biến đếm> := <giá trị đầu>
to <giá trị cuối> do <câu lệnh>;
Program Lap;
Var i: integer;
Begin
For i:= 1 to 5 do
Writeln(‘Day la lan lap thu:’, i);
Readln;
End.
Cấu trúc lặp đã được mô
tả bằng câu lệnh lặp
của ngôn ngữ pascal.
Câu hỏi: dựa vào ví dụ, mời 1
bạn lên viết cấu trúc câu lệnh lặp
-GV nhận xét đưa ra cấu trúc câu
lệnh lặp
B1: i 1 B2: Viết ra lần lặp thứ i, i i+1 B3: nếu i<=5 thì quay lại B2 B4: Kết thúc thuật toán
Trang 9Cùng HS phân tích cú pháp:
+ Giá trị đầu, giá trị cuối luôn là
kiểu dữ liệu gì?
+ biến đếm: biến đầu tiên được
gán giá trị đầu, mỗi lần thực
hiện thì biến đếm tăng 1 đơn vị
từ giá trị đầu đến giá trị cuối
Vậy biến đếm có kiểu dữ liệu
gì? Giá trị cuối như thế nào so
với giá trị đầu?
- Cùng học sinh phân tích
hoạt động: Đầu tiên biến đếm
gán bằng giá trị đầu, sau đó giá
trị biến đếm tăng dần 1 đơn vị
từ giá trị đầu đến giá trị cuối
và câu lệnh được thực hiện mỗi
lần tăng biến đếm cho đến khi
biến đếm vượt quá giá trị cuối
thì kết thúc.
- Dữ liệu kiểu số nguyên
- HS trả lời:
kiểu nguyên, giá trị cuối >=
giá trị đầu
-HS ghi vào vở
-HS lắng nghe
Trong đó:
thường có kiểu nguyên;
cuối : là các biểu thức có cùng kiểu với biến đếm Giá trị cuối phải lớn hơn hoặc bằng giá trị đầu;
for <biến đếm> := <giá trị đầu>
to <giá trị cuối> do <câu lệnh>;
Trang 10HĐ giáo viên HĐ học sinh Nội dung
Cho HS ghi hoạt động vào
vở.
Cho HS ghi ví dụ vào vở
* Bài tập ví dụ: Dùng lênh
for do viết đoạn lệnh nhập
tên và hiển thị ra màn hình
40 bạn trong lớp em.
- Gọi một HS lên bảng viết
HS theo dõi
HS Ghi vở
HS theo dõi
HS ghi ví dụ vào vở
HS viết vào giấy nháp
gán bằng giá trị đầu, sau đó giá trị biến đếm tăng dần 1 đơn
vị từ giá trị đầu đến giá trị cuối và câu lệnh được thực hiện mỗi lần tăng biến đếm cho đến khi biến đếm vượt quá giá trị cuối thì kết thúc.
Ví dụ một chương trình viết bằng Pascal:
GV Cho chạy chậm VD3:
-Một HS lên bảng viết
Trang 11Câu hỏi : Ở VD2 và bài
tập bạn làm em thấy
trong câu lệnh lặp có gì
khác nhau?
GV chốt lại: sau khóa do
có nhiều câu lệnh thì
phải gói trong khối
begin end Begin end
này được coi là câu lệnh
ghép của pascal, sau end
là dấu ;
- HS thảo luận trả lời
+ VD2: sau do là 1 câu lệnh
+ Bài tập: sau do
là các câu lệnh nằm trong khối Begin end
HS lắng nghe ghi vào vở
* Chú ý: Câu lệnh
có thể là câu lệnh đơn hoặc câu lệnh ghép
Trang 124 Hoạt động 4: một số ví dụ sử dụng câu lệnh lặp Mục tiêu:
- làm quen thêm với các tình huống sử dụng câu lệnh lặp for do và lệnh ghép
- Hướng dẫn học sinh viết chương trình bằng ngôn ngữ
lập trình.
Cách tiến hành: Sử dụng ngôn ngữ pascal để giải các
bài toán.
Trang 13*Cho HS ghi đề ví dụ 4
vào vở và làm.
- Gọi một HS nhắc lại
thuật toán tính tổng N.
- GV hướng dẫn cách
làm :
+ Tổng N rất lớn nên khai
báo kiểu dữ liệu gì?
+ gán S 0, giá thị đầu
= 1thi S:= S+1
HS ghi đề vào vở
HS trả lời
-HS tự làm vào giấy nháp
4 Tính tổng và tích bằng câu lệnh lặp:
Ví dụ 4: Tính tổng của N số
tự nhiên đầu tiên, N được nhập từ bàn phím.
Program Tinh_tong;
Var N, i : integer;
S: real;
Begin Write(‘Nhap so N = ’); readln(N);
S:= 0;
For i := 1 to N do S:= S+i;
Writeln(‘Tong cua’,N, ‘so
tu nhien dau tien S=’, S);
End.
←
Trang 14HĐ giáo viên HĐ học sinh Nội dung
*Cho HS ghi đề ví dụ 5 vào
vở và làm
- Giải thích tích N số tự nhiên
đầu tiên là N!=1.2.3 N
- Gọi một HS trình bày thuật
toán tính tổng N
- GV hướng dẫn thuật toán
và cách làm :
+ Tích N rất lớn nên khai báo
kiểu dữ liệu gì?
+gán P 1 và khi giá trị đầu
=1 thì P:=P*1
* GV gọi 2 HS lên bảng giải
- GV sửa bài và cho HS ghi
vào vở
* Nhắc nhở HS: cấu trúc lặp
được được viết ở mọi ngôn
ngữ lập trình, ta đang viết
bằng pascal, ta cũng có thể
viết bằng ngôn ngữ khác( C,
java, basic )
HS ghi đề vào vở
HS trả lời
- HS tự làm vào giấy nháp
- 2 HS lên bảng
-HS nhận xét, bổ sung
-Ghi vào vở
HS lắng nghe
Ví dụ 5: Tính tích của N số
tự nhiên đầu tiên.(Kí hiệu: N!=1.2.3 N)
Program Tinh_giai_thua; Var N, i : integer;
P: real;
Begin Write(‘Nhap so N = ’); readln(N);
P:= 1;
For i := 1 to N do P:= P*i;
Writeln(N, ‘! = ’,P );
End.
* Chú ý: N! là số rất lớn nên cần khai báo biến chứa giá trị của nó đủ lớn
←
Trang 15- Cũng cố lại câu lệnh lặp
- Cho bài tập về nhà
- Làm các bài tập ở sách giáo khoa
- Làm các bài tập trong bài thực hành 5 để tiết sau thực hành.
- Nhận xét tiết học, đánh giá tiết học
HẾT
Trang 16Lần lặp
Trang 17Program lap;
Var i: integer;
Begin
For i:= 1 to 5 do
Writeln(‘Day la lan lap thu:’,i);
Readln;
End.
Trang 18Program chao_hoi;
Var i:integer; ten: string;
Begin
For i:=1 to 40 do
Begin
Write(‘nhap ten:’); readln(ten); Write(‘chao ban:’,ten);
End;
End.
Trang 19Program chao_hoi;
Var i:integer; ten: string;
Begin
For i:=1 to 40 do
Begin
Write(‘nhap ten:’); readln(ten); Write(‘chao ban:’,ten);
End;
End.