Giáo án Tin Hc 11
Phương Thị Chang CNTT - ĐHSPHN 1
Cấu Trúc Lặp (tiết 2)
I. MỤC ĐÍCH, YÊU CẦU:
Sau kết thúc bài:
- Hiu được nhu cầu của cấu trúc lặp trong biểu din thuật toán;
- Hiu được cu trúc lặp với s lần cho trước, cấu trúc lặp kim tra điều
kiện trước;
- Biết cách vận dụng đúng đắn cấu trúc lặp trước vào tình huống c th;
- t được thuật toán của mt s bài toán đơn gin s dụng lệnh
lặp với s lần lặp cho trước;
- Viết đúng các lnh lặp với s lần biết trước;
- Viết được thut toán của bài toán đơn giản sử dụng cấu trúc lặp trên.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN:
1. Phương pháp:
- Kết hợp kiến thức trong sgk và các kiến thức trong các sách tham
khảo và các tư liệu khác (nếu). Nếu nhà trường có máy chiếu, có th
chuẩn b các slide để trình chiếu hoặc chạy th đoạn chương trình để c lp
ng theo dõi.
-Hình thc giảng dậy: thuyết trình, vn đáp, phân tích và giải thích (nếu
cần)
2. Phương tiện:
- Sách giáo khoa tin học lớp 11;
- V ghi lý thuyết bài tp lớp 11;
- Giáo án
- Sách tham khảo và các trang thiết b tin hc như máy tính, máy chiếu
(nếu).
III. Tiến trình lên lớp
1. ổn định lớp: (1 phút)
Yêu cu lớp trưởng n định lớp và báo cáo sĩ s.
2. Kiểm tra bài cũ: (3 phút)
Câu hi:
Tại sao lại sử dụng cấu trúc lặp ?
Có my dạng cấu trúc lặp vàu trường hợp áp dụng cho mỗi
dạng ?
3. Gợi động cơ: (2 phút)
Cấu trúc lặp trước có ý nghĩa rất quan trng trong lập trình trong ngôn
ngữ lập trình pascal cũng vậy. Muốn cho việc viết chương trình thực thi
được dễ dàng thì ta phải xây dựng thuật toán. Tiết trước chúng ta đã xem xét
hai thuật toán của hai dạng lặp với số lần biết trước, tiết này chúng ta dựa
trên hai thuật toán đó để xây dựng chương trình sử dụng cú pháp lặp với số
lần cho trước.
Giáo án Tin Hc 11
Phương Thị Chang CNTT - ĐHSPHN 2
4. Nội dung bài giảng:
S
th
t
Nội dung Hot đng của thầy và trò Thời
gian
1 Chương trình xây dựng dựa
trên thut toán tong_1a:
Program tong_1a;
Uses crt;
Var s: real;
N, a: integer;
Begin
Clrscr;
Write (‘ nhap vao gia tri cua
a’);
Readln(a);
S:=1.0/a; {bước1 }
For N:= 1 to 100 do
S:= S + 1/(a+N);
{ bước 2, 3, 4 }
Write (‘ tong s la:’, s:8:4); {
bước 5 }
Readln
End.
Yêu cầu học sinh:
Đọc và tìm hiểu thuật toán
trong thời gian giáo viên viết
thuật toán lên bảng.
Thuyết trình:
Phân tích và gii thích các
lệnh trong chương trình:
Chương trình này xây dựng
dựa trên thuật toán tong_1a
(dạng lặp tiến của cấu trúc lặp)
với số lần biết trước trong đó
biến điều khiển là N, N cho
biết số lần lặp. Khi
1<= N <=100 thì thực hiện lặp,
sau lần lặp thứ 100 thì kết thúc
lặp.
ớc 1 của thuật toán:
S := 1.0/a;
For N:= 1 to 100 do
S:= S + 1/(a+N);
Câu lệnh lặp này đã bao
gồm cả ba bước 2, 3, 4 của
thuật toán. Đầu tiên N nhận
giá trị là 1, sau đó thực hiện
lệnh trong vòng for, cng vào
tổng s một số hạng 1/(a+N).
Sau khi tính toán hoàn tất thì
biến đếm đưc tự động tăng
lên giá trị tiếp theo và mi lần
tăng giá trị biến đếm là mt
lần thực hiện lệnh trong vòng
lặp. Còn với s, ban đầu được
gán giá tr là 1.0/a. Khi vào
vòng lp for thì ln lượt được
cộng thêm vào các s hạng
12
phút
Giáo án Tin Hc 11
Phương Thị Chang CNTT - ĐHSPHN 3
Chương trình này được viết
trong Pascal như sau:
Màn hình kết qu như sau:
dạng 1/(a+N)
(N=1, 2, 3...100) và nó sẽ giữ
giá trị thay đổi khi ra khỏi
vòng for.
Write (‘ tong s la:’, s:8:4);
Đây là bước thứ 5 của thuật
toán, ta đưa ra n hình giá tr
của s và sau đó kết thúc
chương trình với từ end.
Chương trình xây dựng dựa
trên thut toán tong_1b
Program tong_1b;
Uses crt;
Var s: real;
N, a: integer;
Begin
Clrscr;
Write( ‘ dua vao gia tri a’);
Readln(a);
S:= 1.0/a; { bước 1}
For N:= 100 downto 1 do
{bước 2 và bước 3}
Yêu cầu:
Giới thiệu chương trình của
thuật toán tong_1b bằng cách
gợi ý so sánh vi chương trình
của thuật toán tong_1a.
Với học sinh:
Yêu cầu lên viết chương
trình của thuật toán tong_1b và
giải thích mt s câu lệnh theo
ý hiểu.
Thuyết trình:
Chương trình này ch khác
chương trình trên trình t
8
Giáo án Tin Hc 11
Phương Thị Chang CNTT - ĐHSPHN 4
S:= S + 1/(a + N);
{bước 4}
Write(‘ tong la:’, s: 8:4);
{bước 5}
Readln
End.
thực hiệnng lặp. trên thì
biến điu khiển được t động
tăng, n dưới thì biến điều
khiển được t động giảm t
100 xuống 1 và cũng tương t
như trên thì mỗi ln biến điều
khiển giảm thì là mt lần câu
lệnh trong vòng for được thực
hiện. và nó kết thúc khi biến
đếm I nhận giá tr bng 1
2 Ví dkhác:
Viết chương trình thực
hiện nhp t bàn phím hai s
nguyên dương M và N (M <
N), tính và đưa ra màn hình
tổng các s chia hết cho 3
hoc 5 trong phạm vi t M
đến N.
Chương trình :
Program vi_du_2;
Uses crt;
Var M, N, I: integer;
T: longint;
Begin
Clrscr;
Writeln (‘nhap vao so M nho
hon so N’);
{ Bước 1}
Write (‘M = ‘);
Readln (M);
Write (‘N = ‘);
Readln (N);
T := 0; {Bước 2}
For I := M to N do
{Bước 3,c 4}
If (I mod 3 = 0) or
(I mod 5 = 0) then
T := T + I; {Bước 5}
Writeln (‘ket qua: ‘, T) {Bước
6}
Readln
End.
Yêu cầu học sinh:
Viết thuật toán cho ví d
này.
Thuật toán như sau:
Bước 1: nhập M và N
(M < N)
Bước 2: T 0 ;
I M-1;
Bước 3: I I+1;
Bước 4: nếu I > N thì chuyển
đến bước 6;
Bước 5: nếu I mod 3= 0 hoc
I mod 5= 0 thì
T= T + I; quay li bước 3;
Bước 6: đưa ra màn hình T,
rồi kết thúc.
Thuyết trình:
ví d này s lần lặp
cũng biết trước.Giá tr đầu
tiên mà biến đếm (biến điều
khiển) nhận M, sau đó t
động tăng cho đến khi nhận
giá tr N thì kết thúc.
ớc 1 của thuật toán:
T := 0;
n giá tr ban đầu của T
0
For I := 1 to 100 do
S:= S + I;
Câu lệnh lp này đã bao
gồm cả ba bước 3, 4,5 của
thuật toán. Đầu tiên I nhận giá
trị là M, sau đó thực hiện lệnh
trong vòng for, cộng vào tổng
10
Giáo án Tin Hc 11
Phương Thị Chang CNTT - ĐHSPHN 5
s giá tr I tho mãn điều kiện
chia hết cho 3 hoặc chia hết
cho 5. Sau khi tính toán hoàn
tất thì biến đếm được tự động
tăng lên giá trị tiếp theo và
mỗi lần tăng giá trị biến đếm
là mt lần thực hiện lệnh trong
vòng lp. Còn với s, ban đầu
được gán giá trị là 0. Khi vào
vòng lp for thì ln lượt được
cộng thêm vào các s hạng
dạng I ( thoả điều kiện)
(I= M,...., N) và nó sẽ giữ g
trị thay đổi khi ra khi vòng
for.
Write (‘ tong s la:’, T);
Đây là bước thứ 6 của thuật
toán, ta đưa ra n hình giá tr
của s và sau đó kết thúc
chương trình với từ end.
một điểm khác giữa
chương trình này với hai
chương trình trên là kiểm tra
điều kiện ca I tho chia hết
cho 3 hoặc chia hết cho 5 thì
mới tính tổng của T.
IV. Củng c bài học (4 phút)
Giáo viên củng c kiến thức củai học:
- Nhấn mạnh ý nghĩa của cu trúc lặp vi s lần lặp biết trước.
- Nhắc lại hai chương trình được xây dựng trong tiết hc. So sánh s
ging và khác nhau giữa hai thuật toán đ học sinh d dàng nắm
được bài. Nhận thấy s khác nhau căn bản nhất giữa hai chương
trình tính tng chương trình th nhất biến đếm s được tăng giá
tr t 1 đến 100, còn chương trình th hai thì biến đếm s giảm t
100 xung 1. Tuy có s khác nhau v biến nhưng s lần lp đều
100 cho nên cho ra chung mt kết qu s. Như vậy hai chương trình
này bản chất là như nhau ch khác cách thức tính s.
V. Bài tập về nhà (3 phút)
- Xem lại các dụ trên lớp
- Các bài tp trong sách bài tập
m bài tập sau: