Tải bản đầy đủ (.doc) (5 trang)

Bài giảng bài 10: cấu trúc lặp

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

BÀI 10: CẤU TRÚC LẶP

I. Mục đích, yêu cầu:
1. Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu thức thuật toán.
- Hiểu được ý nghĩa của cấu trúc lặp với số lần biết trước.
- Biết vận dụng đúng đắn 2 dạng cấu trúc lặp trong các bài toán cụ thể.
2. Kĩ năng:
- 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.
- Viết được thuật toán của một số bài toán đơn giản.
3. Thái độ học tập:
- Nghiêm túc.
- Nhận thức được tầm quan trọng của cấu trúc lặp.
II. Chuẩn bị:
1. Giáo viên:
- Nghiên cứu tài liệu,SGK tin học 11,SGV tin học 11,soan giáo án, bảng phụ.
2. Học sinh:
- Đọc trước bài mới, SGK tin học 11.
III. Phương pháp giảng dạy :
- Vấn đáp, minh họa.
IV. Tiến trình lên lớp :
1. Ổn định lớp, tổ chức lớp:
- Kiểm tra sĩ số, vệ sinh lớp.
- Ổn định trật tự, tạo tâm lý tốt bắt đầu tiết học.
2. Kiểm tra bài cũ:
Câu 1 : Trình bày cấu trúc rẽ nhánh? Sự khác nhau giữa các dạng rẽ nhánh đó?
Câu 2: Viết CT nhập vào 2 số a, b và thực hiện đưa ra màn hình giá trị của số lớn hơn.
program SLN;
uses crt;
var a, b, max:…..;
begin


clrscr;
write('Nhap ……. = ');
………….;
……(a>b) then
max:=……;
else
max:=b;
write('So lon nhat la : ', max);
readln;
end.
Giới thiệu bài mới: Trong cuộc sống hàng ngày chúng ta thường hay gặp hay làm
những công việc cứ lặp đi lặp lại nhiều lần, Mỗi năm cứ vào ngày 2/9 thì cả nước lại tổ
chức kỉ niệm ngày quốc khánh nước CHXHCN Việt Nam, Việc tổ chức ngày quốc
khánh cứ lặp lại mỗi năm. Hôm nay chúng ta sẽ tìm hiểu cấu trúc có liên quan đến việc
lặp đó trong Pascal, cấu trúc đó là: “Cấu trúc lặp”.
3. Nội dung bài:
Nội dung Hoạt động của GV và HS
1. Lặp:
- Xét 2 bài toán như sau với a > 2 là số
nguyên cho trước :
Bài toán 1 : Tính tổng
S1=
100
1
...
2
1
1
11
+

++
+
+
+
+
aaaa
Bài toán 2 : Tính Tổng
- GV: Qua lời dẫn,yêu cầu HS cho VD có liên
quan đến việc lặp?
- HS: Chú ý lắng nghe và tìm hiểu.
- GV: Nhận xét và cho thêm VD:
+ Cứ mỗi năm trường ĐHAG lại tổ chức cho sinh
viên khoa sư phạm đi kiến tập, việc đi kiến tập
của SV được lặp lại mỗi năm.
+ Vậy, một công việc mà ta cứ thực hiện đi thực
hiện lại nhiều lần gọi là lặp.
Trong lập trình, những thao tác phải lặp lại nhiều
lần, ta gọi là cấu trúc lặp.
- GV: Quan sát bài toán 1, bài toán 2 SGK_42 và
cho biết giữa hai bài toán khác nhau ở điểm nào?
- HS: Chú ý quan sát và trả lời.
- GV: Nhận xét và bổ sung:
+ Ở bài toán 1 : Quá trình thực hiện cộng diễn ra
100 lần ( lặp đi lặp lại đúng 100 lần) => biết trước
số lần lặp.
+ Ở bài toán 2: quá trình cộng lặp lại hoài cho
S=
...
1
...

2
1
1
11
+
+
++
+
+
+
+
Naaaa
Với điều kiện
0001.0
1
<
+
Na
Lặp thường có 2 loại :
- Lặp với số lần biết trước .
- Lặp với số lần không biết trước .
2. Lặp với số lần biết trước và câu
lệnh for – do:
đến khi thỏa điều kiện
0001.0
1
<
+
Na
=> Số lần

chưa biết trước.
- GV: Vậy, ở bài toán hai việc lặp phụ thuộc vào
hệ số nào?
- HS: Chú ý lắng nghe, suy nghĩ và trả lời.
- GV: Nhận xét và hoàn chỉnh: Phụ thuộc vào hệ
số a. a càng lớn thì số lần lặp càng ít.
- HS: Chú ý lắng nghe.
- GV: Qua hai bài toán các em hãy cho biết có
mấy loại cấu trúc lặp?
- HS: Trả lời.
- GV: Ngôn ngữ lập trình nào cũng cung cấp một
số câu lệnh để mô tả các cấu trúc lặp như trên.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong
ngôn ngữ Pascal.
- GV: Xét VD sau đây:
a. Tính của 20 số tự nhiên đầu tiên.
b. Tính tổng của n số tự nhiên đầu tiên vói n
<=20.
- GV: Chia lớp thành 6 nhóm và yêu cầu các em
lên viết thuật toán
- HS: Tập trung suy nghĩ và trả lời.
- GV: Nhận xét và bổ sung: Có sự lặp lại nhưng
giá trị của nó thay đổi:
S
sau
= S
trước
+1 ( i chạy từ 1 đến 20).
Mô tả thuật toán:
Thuật toán 1:

B1: S=0; n=0
B2: n → n +1
B3: Nếu n > 20 thì chuyển đến B5
B4: S= S + n rồi quay lai b2
B5: Đưa S ra màn hình và kết thúc
Thuật toán 2:
B1: S=0; n=20
B2: n → n -1
Trong Pascal, có 2 lọai câu lệnh lặp có
số lần biết trước :
a. Lặp dạng tiến:
For <biến đếm> := <giá trị đầu> to
<giá trị cuối> do <câu lệnh>;
b. Lặp dạng lùi
For <biến đếm> := <giá trị cuối>
downto <giá trị đầui> do <câu
lệnh>;
Trong đó:
- Biến đếm thường là biến kiểu số
nguyên.
- Giá trị đầu, giá trị cuối là các biểu
thức cùng kiểu với biến đếm. Giá trị
đầu phải nhỏ hơn hay bằng giá trị
cuối.
Hoạt động của For – Do:
+ Dạng lặp tiến: câu lệnh viết sau từ
khóa DO được thực hiện tuần tự, với
biến đếm lần lượt nhận các giá trị liên
tiếp tăng từ giá trị đầu đến giá trị cuối,
+ Dạng lặp lùi: câu lệnh viết sau từ

khóa DO được thực hiện tuần tự, với
biến đếm lần lượt nhận các giá trị liên
tiếp giảm từ giá trị cuối đến giá trị
đầu.
Tương ứng với mỗi giá trị của
biến đếm, câu lệnh sau do thực
hiện 1 lần
B3: Nếu n < 1 thì chuyển đến B5
B4: S= S + n rồi quay lai b2
B5: Đưa S ra màn hình và kết thúc.
- GV: Từ 2 ví dụ trên các em hãy cho biết có mấy
dạng cấu trúc lặp lại với số lần biết trước?
- HS: Trả lời.
- GV: Dạng tiến và dạng lùi biến đếm là như
nhau. Dạng tiến thì giá trị đầu < = giá trị cuối.
Còn ở dạng lùi thì ngược lại.
- GV: Yêu cầu HS nghiên cứu SGK và nêu hoạt
động của lệnh For – Do.
- HS: Trả lời.
- GV: Giải thích các thông số trong câu lệnh.
- HS: Chú ý lắng nghe và ghi chép cẩn thận.
- GV: Viết chương trình của VD trên.
- HS: Thực hiện.
- GV: Nhận xét và bổ sung:
program vd;
uses crt;
var s,i,n: integer;
begin
clrscr;
writeln('nhap n= ');

readln(n);
s:=0;
for i:=1 to n do
s:= s+i;
writeln( ' s=:',s);
readln;
end.
4. Củng cố:
Các câu lệnh Pascal sau đây câu nào không hợp lệ? vì sao?
a) For i:=100 to 1 do Writeln(‘A’);
b) For i:= 1 to 10 do Writeln(‘A’);
c) For i:=1.5 to 10.5 do Writeln(‘A’);
d) For i:=1 to n do Writeln(‘A’);
Đáp án: a, c.
5. Dặn dò: Giải bài tập SGK/51.

×