Giáo án Tin Học 11
Phương Thị Chang CNTT - ĐHSPHN 1
Cấu trúc lặp( tiết 3)
I. MỤC ĐÍCH, YÊU CẦU:
Sau kết thúc bài:
- Hiu được cấu trúc lặp với s lần chưa biết trước hay cấu trúc lặp
kiểm tra điu kiện trước;
- Biết cách vận dụng đúng đắn cấu trúc lặp này vào tình hung c
th;
- t được thuật toán ca một s i toán đơn giản s dụng
lệnh lặp vi s ln lp chưa biết trước;
- Viết đúng các lệnh lặp vi s lần lặp chưa biết trước;
- Viết được thuật toán của bài toán đơn giản s dụng cu trúc lp
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 cù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 cn)
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ũ: (4 phút)
Câu hi:
Cấu trúc lặp với s lần biết trước mấy dạng ?
Phân bit hai dạng của cấu trúc lặp với s lần lăp biết trước ?
Nêu những điều cần lưu ý đối với biến điu khiển ?
3. Gợi động cơ: (3 phút)
Chúng ta đã được học mt dạng của cu trúc lặp đó là cấu trúc lặp
với s lần biết trước. Cấu trúc này th hiện qua câu lệnh for-do. Hôm
nay chúng ta học dạng cấu trúc lặp còn lại đó là lặp với s lần chưa
biết trước. Lặp vi s lần chưa biết trước dùng trong trường hợpta
không biết trước s lần lặp nhưng ta biết trước một điều kiện để dừng
ng việc lặp đó. Vậy cấu trúc lặp này s dụng pháp lặp như thế
nào ? Có gì tương quan giữa cú pháp này với cú pháp ca cấu trúc lặp
Giáo án Tin Học 11
Phương Thị Chang CNTT - ĐHSPHN 2
với s lần biết trước, ta có th chuyển hóa giữa hai cấu trúc lặp hay
không ?
Các vấn đề này s được chúng ta gii quyết trong tiết học hôm nay.
4. Nội dung bài học:
S
th
t
Nội dung Hot động của thầy và trò thời
gian
1 Giới thiệu về cấu trúc
lặp với số lần chưa biết
trước:
hai dạng:
Dng 1: trong khi
<điều kiện> còn đúng thì
còn thực hiện <công
việc>;
Dng 2: Thực hiện
<công việc> trong khi
<điều kiện> đúng.
Thuyết trình:
Trong dạng 1:
Đầu tiên kiểm tra và tính
giá tr của điều kin, nếu
điều kiện đúng thì thực
hiệnng vic (mt lần).
Giá tr của điều kiện s
được thay đổi sau mỗi lần
thực hiện công việc đến
mộtc nào đó điu kiện
lặp không còn đúng na thì
cấu trúc lp s được kết
thúc. Trong trường hợp cấu
trúc lp không làm thay đổi
giá tr của điều kin thì cấu
trúc lp s kéo dài mãi i
(vòng lặp vô hn). Đ thoát
khỏi vòng lp vô hạn, trong
công việc cần có câu lệnh
r nhánh thoát khỏing
lặp hạn khi tho mãn
điều kiện r nhánh.
Trong dạng 2:
Tiến hành ngược lại,
công việc được thc hiện
trước, sau đó mi kiểm tra
điều kiện, nếu điều kiện
đúng thì thc hiệnng
việc, ngược lại kết thúc lặp.
Trong công việc cn có
lệnh thoát khi vòng lp.
đây chúng ta ch nghiên
cứu dạng lặp 1
5
phút
2 Cú pháp cu trúc lặp
với số lần ca biết
trước
Thuyết trình:
Câu lệnh sau t khoá do
được thực hiện khi biểu
5
phút
Giáo án Tin Học 11
Phương Thị Chang CNTT - ĐHSPHN 3
Trong Pascal, cú pháp
của dạng 1 như sau:
While iều kiện>
do <câu lệnh>
trong đó
điều kiện là biểu thức
logic
câu lệnhmột câu lệnh
đơn hay gp. Ta có
đồ biểu diễn như sau:
thức điều kiệnn nhận giá
tr true. Biểu thức điều kiện
được tính giá tr trước khi
câu lệnh được thực hiện,
nếu biu thc điu kiện đã
nhận giá tr false ngay t
đầu thì câu lệnh chưa được
thực hin lần o. Nếu biu
thức điều kiện luôn nhận
giá tr true thì câu lệnh
được thực hiện mãi, ta gọi
là vòng lặp vô hn.
3 Chương trình với cu
trúc lặp while-do:
Chương trình:
program tong_1b;
uses crt;
var s:real;
a, N: integer;
begin
write(‘ hay nhap gia tri
a vao’);
readln(a);
s:= 1.0/a; N:= 0;
{bước 1}
Yêu cầu học sinh:
Đọc và tìm hiểu chương
trình trong thời gian giáo
viên viết chương trình 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_1b với số lần lặp chưa
biết trước nhưng biết trước
được điều kiện dừng vòng
lặp. Khi
1/(a + N)<0.0001 thì thực
hiện lặp, còn ngược li thì
kết thúc lặp.
Bước 1 của thuật toán:
s:= 1.0/a; N:= 0;
while not
(1/(a + N)<0.0001) do
Bước 2 của thuật toán.
Với a được đưa vào từ bàn
phím và N nhận giá trban
đầu 0, nếu kiểm tra điều
kiện trên thomãn thì nó đi
vào thực hiện c lệnh
7
phút
Giáo án Tin Học 11
Phương Thị Chang CNTT - ĐHSPHN 4
while not
(1/(a + N)<0.0001) do
{bước 2}
Begin
N:= N + 1; {bước 3}
S:=S + 1.0/(a+N);
{bước 4}
End;
Write (‘tong s la: ‘,
S:8:4);
{bước 5}
Readln
End.
trong vòng lp while-do:
tăng N lên 1 (bước 3)
cộng vào tổng s một số
hạng 1.0/(a+N) ( bước 4).
Sau khi tính toán hoàn tất
thì nó s quay lên kiểm tra
điều kiện. Nếu thoả mãn
tiếp tục thc hiện. Còn
ngược lại nó sẽ thoát khỏi
vòng lp.
Với s, ban đầu được gán
giá trị là 1.0/a. Khi vào
vòng lp while-do thì lần
lượt được cộng thêm vào
các s hạng dạng 1/(a+N)
(N=1, 2, 3...) và nó sẽ giữ
giá trị thay đổi khi ra khỏi
vòng while-do.
Bước 5:
Write (‘ tong s la:’, s:8:4);
Đưa ra màn hình tổng s và
kết thúc chương trình
4 Cấu trúc while-do
for-do
Cấu trúc lặp while-do
While iều kiện>
do <câu lệnh>
Cấu trúc lặp for-do
Dạng lặp tiến:
For <biến đếm>:=
<giá trị đầu > to < giá
tr cuối > do < câu lệnh
>;
Dng lpi:
For < biến đếm >:=
<giá tr cuối > downto <
giá trị đầu > do
< câu lệnh >;
Yêu cầu: u cầu học sinh
liên hệ hai cấu trúc này.
Thuyết trình:
Nhận thấy rằng cấu trúc
for-do là dng lặp với điều
kiện cho trước nên slần
lặp là xác định, cố định .
cấu trúc này s dụng biến
đếm hay biến điều khiển để
duy trì vòng lặp. Mỗi lần
tăng hay giảm biến điều
khiển là một lần thực hiện
các lnh trong vòng lặp.
Quá trình lặp bắt đầu khi
biến đếm nhận giá trị đầu
kết thúc khi nó nhận giá
trị cuối.Và mt điều cần
lưu ý là giá trị của biến
đếm trong vòng for tự điều
12
phút
Giáo án Tin Học 11
Phương Thị Chang CNTT - ĐHSPHN 5
chỉnh. Vì vậy câu lệnh viết
sau do không được làm
thay đổi giá trị biến đếm.
Cấu trúc while-do chưa
biết trước số lần lặp. Do đó
nó có thể kết thúc vòng lặp
bất cứ lúc nào điều kiện
duy trì vòng lặp không còn
tho mãn. Nếu biểu thức
điều kiện đã nhận giá trị
false ngay t đầu thì câu
lệnh chưa được thực hiện
lần nào.
Tóm lại cả while-do
for-do đều cú pháp xây
dựng để thực hiện các thao
tác lặp mang lại hiệu qu
cao cho việc lập trình.
Điểm khác nhau cơ bản
giữa chúng : while-do thì
s lần lặp chưa xác định
trước nhưng biết trước điều
kiện th dừng vòng lp,
còn lệnh for-do thì s lần
lặp đã xác định, nó sử dụng
biến đếm để duy trì vòng
lặp, cứ mỗi lần biến đếm
tăng là một lần các lệnh
trong vòng lp s được thực
hiện, vòng lặp sẽ dừng lại
khi nào biến đếm nhận giá
trị cuối.
Mt câu hỏi đặt ra
liệu th chuyn t cấu
trúc lp for-do v cấu trúc
lặp while-do hoặc chuyển
ngược lại không ?
u cầu học sinh tr lời.
Phân tích và tr lời:
Cấu trúc while-do là cấu
trúc lp không định trước
s lần lặp nên không th
chuyển v cấu trúc lặp với
s lần lặp đã biết trước.