Tải bản đầy đủ (.pdf) (7 trang)

Giáo án Tin Học 11Cấu trúc lặp( tiết 3) doc

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 (135.62 KB, 7 trang )

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:
- Hiểu đượ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 điều 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 huống cụ
thể;
- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng
lệnh lặp với số lần lặp chưa biết trước;
- Viết đúng các lệnh lặp với 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 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 có). 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ả lớp cùng theo dõi.
-Hình thức giảng dậy: thuyết trình, vấn đá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 và bài tập lớp 11;
- Giáo án
- Sách tham khảo và các trang thiết bị tin học như máy tính, máy
chiếu (nếu có).
III. Tiến trình lên lớp
1. ổn định lớp: (1 phút)


Yêu cầu 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 hỏi:
Cấu trúc lặp với số lần biết trước có mấy dạng ?
Phân biệt 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 điều khiển ?
3. Gợi động cơ: (3 phút)
Chúng ta đã được học một dạng của cấu 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 với số lần chưa biết trước dùng trong trường hợp mà ta
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
công việc lặp đó. Vậy cấu trúc lặp này sử dụng cú 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 của 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 giải quyết trong tiết học hôm nay.
4. Nội dung bài học:
Số
thứ
tự
Nội dung Hoạt độ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:
Có hai dạng:

Dạng 1: trong khi
<điều kiện> còn đúng thì
còn thực hiện <công
việc>;
Dạng 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 kiện, nếu
điều kiện đúng thì thực
hiện công việc (một 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ột lúc nào đó điều kiện
lặp không còn đúng nữa thì
cấu trúc lặp sẽ được kết
thúc. Trong trường hợp cấu
trúc lặp không làm thay đổi
giá trị của điều kiện thì cấu
trúc lặp sẽ kéo dài mãi mãi
(vòng lặp vô hạn). Để thoát
khỏi vòng lặp vô hạn, trong
công việc cần có câu lệnh
rẽ nhánh thoát khỏi vòng
lặp vô 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 thực hiện
trước, sau đó mới kiểm tra
điều kiện, nếu điều kiện
đúng thì thực hiện công
việc, ngược lại kết thúc lặp.
Trong công việc cần có
lệnh thoát khỏi vòng lặp.
Ở đây chúng ta chỉ nghiên
cứu dạng lặp 1

5
phút

2 Cú pháp cấu trúc lặp
với số lần chưa 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ệnh là một câu lệnh
đơn hay ghép. Ta có sơ
đồ biểu diễn như sau:


thức điều kiện còn 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 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. Nếu biểu
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ô hạn.
3 Chương trình với cấu
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à giải 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 lại 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á trị ban
đầu là 0, nếu kiểm tra điều
kiện trên thoả mãn thì nó đi

vào thực hiện cá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 lặp while-do:
tăng N lên 1 (bước 3) và
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 thực hiện. Còn
ngược lại nó sẽ thoát khỏi

vòng lặp.
Với s, ban đầu được gán
giá trị là 1.0/a. Khi vào
vòng lặp 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 và
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
>;

Dạng lặp lùi:
For < biến đếm >:=
<giá trị cuối > downto <
giá trị đầu > do
< câu lệnh >;
Yêu cầu: Yê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à dạng lặp với điều
kiện cho trước nên số lầ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 lệnh trong vòng lặp.
Quá trình lặp bắt đầu khi
biến đếm nhận giá trị đầu
và kết thúc khi nó nhận giá
trị cuối.Và một đ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 và
for-do đều là 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 có thể dừng vòng lặp,
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 lặp 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.
Một câu hỏi đặt ra là
liệu có thể chuyển từ cấu
trúc lặp for-do về cấu trúc
lặp while-do hoặc chuyển
ngược lại không ?
Yê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 lặp 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.
Giáo án Tin Học 11
Phương Thị Chang – CNTT - ĐHSPHN 6
Nhưng ngược lại thì ta có
thể chuyển từ cấu trúc lặp
với số lần lặp biết trước
for-do về cấu trúc lặp
while-do.
Vi dụ:
for i := m to n do
S := S + i;
chuyển về while-do:
i := m;
while (i >= m and i <= n)
begin
S := S+ i;

i := i + 1;
end;

5 Ví dụ 2:
Hướng dẫn học sinh
tìm hiểu ví dụ hoặc cũng
có thể cho học sinh về
nhà tìm hiểu, tiết học sau
đó s kiểm tra.
Ví dụ:
UCLN của hai số nguyên
dương m và n
Chương trình thể hiện
thuật toán tìm UCLN
Program UCLN;
Uses crt;
Var m, n: integer;
Begin
Clrscr;
Write (‘nhập vào m, n’);
Readln (m, n);
While m <> n do
If m > n then m:= m - n;
Else n := n - m;
Writeln ( ‘ UCLN của hai
so la:’, m);
Readln
End.







Thuật toán:
Bước 1: Nhập m, n;
Bước 2: nếu m = n thì lấy
giá trị chung này làm
UCLN rồi chuyển đến bước
5;
Bước 3:
nếu m > n thì
m m-n ngược lại
n n - m;
Bước 4: quay lại bước 2;
Bước 5: Đưa ra kết quả trên
màn hình.

2
phút

IV. Củng cố bài học (3 phút)
Giáo viên củng cố kiến thức của bài học:
Giáo án Tin Học 11
Phương Thị Chang – CNTT - ĐHSPHN 7
- Nhắc lại cú pháp của dạng lặp với số lần chưa biết trước;
- Nhấn mạnh tới sự liên hệ giữa cấu trúc while-do và cấu trúc
for-do để giúp học sinh có cái nhìn tổng quan về cấu trúc lặp và có
thể phân biệt được 2 cấu lặp này một cách rõ ràng hơn. Từ đó, có thể
áp dụng các cấu trúc lặp vào các trường hợp phù hợp.

V. Bài tập về nhà (1 phút)
- Xem lại các ví dụ trong lớp
- Các bài tập trong sách bài tập
VI. Nhận xét của giáo viên về tiết học: (2 phút)
- Ý thức học tập của lớp.
- Hiệu quả học tập.
- Rút kinh nghiệm sau tiết học.

×