Bài 10. Cấu trúc lặp

Chia sẻ bởi Bùi Thị Bích Diệp | Ngày 10/05/2019 | 88

Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11

Nội dung tài liệu:

Kịch bản bài giảng
điện tử
Giáo viên hướng dẫn: Nguyễn Duy Hải
Sinh viên: Bùi Thị Bích Diệp
Phạm Thị Mai Lan
Lớp: K56A – CNTT
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
NỘI DUNG KỊCH BẢN
Nội dung kiến thức
Chương trình hóa bài học
Mô đun hóa hoạt động thực hành.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
NỘI DUNG KIẾN THỨC
Đối tượng: Học sinh lớp 11.
Nội dung: Bài 10 chương III: Cấu trúc lặp.
Thời lượng: 90 phút.
Nội dung kiến thức: Cấu trúc lặp:
1. Mô tả cấu trúc lặp.
2. Lặp với số lần biết trước và câu lệnh for-do .
3. Lặp với số lần chưa biết trước và câu lệnh while-do
(Theo SGK Tin học lớp 11)
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
THIẾT KẾ KỊCH BẢN
Nội dung: Cấu trúc lặp.
Mục tiêu:
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
Hiểu cấu trúc lặp với số lần biết trước và với số lần chưa biết trước.
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.
Yêu cầu đối với học sinh:
Nắm được các câu lệnh lặp với số lần biết trước và với số lần chưa biết trước.
Vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể
Từ đó có thể áp dụng để thể hiện được thuật toán của một số bài toán đơn giản.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 1: CHƯƠNG TRÌNH HÓA BÀI HỌC
Kiến thức N1:
Sự cần thiết sử dụng câu lệnh lặp trong bài toán thực tế.
Khái niệm về cấu trúc lặp .
Câu hỏi Q1:
Áp dụng cấu trúc lặp để mô 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= 1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+100)
Bài toán 2: Tính tổng
S2 = 1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+N) + …
Với điều kiện 1/(a+N) < 0,0001


04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 1: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Hoạt động dạy T1:

Cách giải bài toán 1:
S1:=0;
S1:=S1+1/a;
S1:=S1+1/(a+1);
S1:=S1+1/(a+2);
S1:=S1+1/(a+3);

S1:=S1+1/(a+100)


Cách giải bài toán 2:
S1:=0;
If(1/a > 0,0001) then s1:=s1+1/a;
If(1/(a+1) > 0,0001) then s1:=s1+1/(a+1);
If(1/(a+2) > 0,0001) then s1:=s1+1/(a+2);
If(1/(a+3) > 0,0001) then s1:=s1+1/(a + 3);

04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 1: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Nêu nhận xét từ ví dụ trên
Với cách giải bài toán 1 việc cộng thêm dừng khi N = 100
→ số lần lặp đã biết trước.
Với cách giải bài toán 2 việc cộng thêm dừng khi 1/(a+N) < 0.0001
→số lần lặp chưa biết trước.
=> Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi cấu trúc biểu diễn thao tác đó là cấu trúc lặp.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 1: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

NNLT 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.
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.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 1: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

Hoạt động học H1
HS theo dõi và suy nghĩ về tình huống.
Nêu nhận xét của mình với việc giải bài toán theo 2 cách trên
Hiểu được cấu trúc lặp với số lần biết trước và số lần không biết trước.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: CHƯƠNG TRÌNH HÓA BÀI HỌC

Kiến thức N2:
Nắm được cú pháp và hoạt động của câu lệnh lặp với số lần biết trước.
Hiểu từng thành phần trong cú pháp câu lệnh for – do và biết áp dụng vào từng ví dụ cụ thể.
Câu hỏi Q2:
Câu hỏi Q2: Sử dụng câu lệnh lặp để giải bài toán 1
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Hoạt động dạy T2
So sánh hai thuật toán sau:
Thuật toán tong_1a
B1. S:=1/a; N:=0;
B2. N:=N+1
B3. Nếu N>100 thì sang B5.
B4. S:=S+1/(a+N) rồi quay lại B2.
B5. Đưa ra S rồi kết thúc.


Thuật toán tong_1b
B1. S:=1/a; N:=101;
B2. N:=N-1;
B3. Nếu N < 1 thì sang B5.
B4. S:=S+1/(a+N) rồi quay lại B2.
B5. Đưa ra S rồi kết thúc.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

Trong Pascal có 2 loại câu lệnh lặp có số lần biết trước: lặp dạng tiến và lặp dạng lùi.
Lặp dạng tiến:
for := to do ;
Lặp dạng lùi:
for := downto do ;
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Trong đó:
Bien_dem thường là biến kiểu số nguyên.
Gia_tri_dau, gia_tri_cuoi: là các biểu thức cùng kiểu với biến đếm. gia_tri_dau phải nhỏ hơn hay bằng gia_tri_cuoi.
Ở dạng lặp tiến: bien_dem tự tăng dần từ gia_tri_dau đến gia_tri_cuoi.
Ở dạng lặp lùi: bien_dem tự giảm dần từ gia_tri_cuoi đến gia_tri_dau.
Tương ứng với mỗi giá trị của bien_dem, câu lệnh sau DO thực hiện 1 lần
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
VD1: Hai chương trình cài đặt thuật toán Tong_1a và Tong_1b
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
VD2: Tính tổng các số nguyên chia hết cho 3 hoặc 5 trong phạm vi từ M đến N (Mprogram Vidu_2;
uses crt;
var m,n,i: integer; t:longint;
Begin
clrscr;
writeln(`Nhap so m nho hon so n`);
writeln(`m = `); readln(m);
writeln(`n = `); readln(n);
t:=0;
for i:=m to n do
if (i mod 3 = 0) or (i mod 5 = 0) then t:=t+i;
writeln(`ket qua: `,t);
readln;
End.

04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 2: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

Hoạt động học H2
Quan sát 2 thuật toán.
Nắm được cấu trúc cú pháp và cách hoạt động của câu lệnh lặp trong Pascal.
Đưa ra nhận xét của mình, tham gia xây dựng bài.
Suy nghĩ , vận dụng kiến thức để giải bài toán trong ví dụ 1 và ví dụ 2: dựa vào gợi ý có sẵn, học sinh đưa ra cách làm của mình, có thể tham khảo đáp án.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 3: CHƯƠNG TRÌNH HÓA BÀI HỌC

Kiến thức N3:
Nắm được cú pháp và hoạt động của câu lệnh lặp với số lần chưa biết trước.
Hiểu từng thành phần trong cú pháp câu lệnh while – do và biết áp dụng vào từng ví dụ cụ thể.
Câu hỏi Q3:
Sử dụng câu lệnh lặp với số lần chưa biết trước để giải bài toán 2.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 3: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Hoạt động dạy T3
Để giải bài toán 2 ta dùng thuật toán như sau:
B1: S:= 1/a; N:= 0;
B2: Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5.
B3: N:= N+1;
B4: S:= S+1/(a+N) rồi quay lại B2;
B5: Đưa kết quả S ra màn hình rồi kết thúc.
Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn
→ Pascal có câu lệnh lặp WHILE - DO để tổ chức lặp với số lần chưa biết như trên.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 3: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Cú pháp:
WHILE DO
Trong đó:
dieu_kien: là biểu thức quan hệ hoặc logic;
cau_lenh: là một câu lệnh trong NNLT Pascal.
Ý nghĩa:
Khi dieu_kien còn đúng thì còn thực hiện cau_lenh sau DO, sau đó quay lại kiểm tra dieu_kien.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 3: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH







Hình 1: Sơ đồ lặp với số lần chưa biết trước
Điều kiện
Câu lệnh
Đúng
Sai
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 3: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

Hoạt động học H3
Hiểu được cú pháp và cách sử dụng câu lệnh lặp với số lần chưa biết trước.
Đưa ra nhận xét của mình, tham gia xây dựng bài.
Suy nghĩ , vận dụng kiến thức để trả lời câu hỏi Q3 dựa vào gợi ý có sẵn, có thể tham khảo đáp án
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 4: CHƯƠNG TRÌNH HÓA BÀI HỌC
Kiến thức N4:
Vận dụng câu lệnh lặp vào bài toán cụ thể.
Xác định đúng input, output của bài toán.
Viết sơ đồ khối mô tả thuật toán.
Biết sử dụng câu lệnh lặp.
Câu hỏi Q4:
Tính tổng S trong bài toán 2.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 4: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Hoạt động dạy T4.
Xác định chính xác
Input: Số a được nhập từ bàn phím.
Output: Đưa kết quả của tổng S ra màn hình.
Yêu cầu học sinh viết sơ đồ khối để giải bài toán.
Yêu cầu học sinh viết chương trình trên máy (có kết nối đến pascal) rồi đối chiếu, so sánh với đáp án.

04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 4: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Sơ đồ khối và chương trình cài đặt thuật toán Tong_2;











Hình 2: Sơ đồ khối của thuật toán Tong_2.
Nhập a
S←1/a;
N←0;
N← N+1;
S← S+1/(a+N);
1/(a+N)<0,0001
Đưa ra S, kết thúc
Đúng
Sai
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 4: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Chương trình cài đặt thuật toán Tong_2.
program Tong_2;
uses crt;
var S:real; a, N: integer;
Begin
write(`Hay nhap gia tri a vao!`);
readln(a);
S:=1.0/a; N:=0; {Buoc 1}
while not (1/(a+N)<0.0001) do {Buoc 2}
begin
N:=N+1; {Buoc 3}
S:=S+1.0/(a+N); {Buoc 4}
end;
writeln(`Tong S la: `,S:8:4); {Buoc 5}
readln;
End.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 5: CHƯƠNG TRÌNH HÓA BÀI HỌC
Kiến thức N5:
Vận dụng câu lệnh lặp vào bài toán cụ thể.
Hiểu tư tưởng về mặt toán học.
Xác định đúng input, output của bài toán.
Viết sơ đồ khối mô tả thuật toán.
Viết chương trình giải bài toán.
Câu hỏi Q5:
Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 5: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Hoạt động dạy T5:
Xác định chính xác
Input: Số M, N được nhập từ bàn phím.
Output: Đưa kết quả ƯCLN của M và N ra màn hình.
Yêu cầu học sinh viết sơ đồ khối để giải bài toán.
Yêu cầu học sinh viết chương trình trên máy (có kết nối đến pascal) rồi đối chiếu, so sánh với đáp án.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 5: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH











Hình 3: Sơ đồ khối của thuật toán tìm ƯCLN.
Nhập M và N
M = N ?
Đưa ra M, kết thúc.
M > N ?
N← N - M
M← M - N
Sai
Đúng
Sai
Đúng
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 5: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH
Chương trình mô phỏng:
Program UCLN;
Uses crt;
Var m, n: integer;
Begin
Clrscr;
Write(‘Nhap hai số m ,n: ‘);
writeln(‘m = ’); Readln(m);
Writeln(‘n = ‘); Readln(n);
While (m<>n) do
If m > n then m:= m – n Else n:= n - m;
Writeln(‘UCLN của m và n là: ‘, m);
Readln;
End.
04/12/2009
Bùi Thị Bích Diệp - Phạm Thị Mai Lan
K56A – CNTT - ĐHSPHN
Modul 5: MODUL HÓA HOẠT ĐỘNG
THỰC HÀNH

Hoạt động học H5
Học sinh đọc và suy nghĩ vấn đề.
Chăm chú xem hướng dẫn và giải quyết bài toán.
Viết đầy đủ chương trình và kiểm tra kết quả.
Nắm được ý nghĩa của việc sử dụng cấu trúc lặp.
Vận dụng được cấu trúc For – do và cấu trúc While – do.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Bùi Thị Bích Diệp
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)