Trong bất cứ một ngôn ngữ lập trình nào, việc sử dụng các câu lệnh điều khiển là bắt buộc, vì có sử dụng chúng, ta mới có thể lập trình giải quyết bài toán trong Tin học. Trong chương trinh Tin học 11, học sinh được giới thiệu tìm hiểu 2 cấu trúc điều khiển là cấu trúc rẽ nhãnh và cấu trúc lặp. Trong đó, theo tôi cấu trúc lặp là một nội dung đặc biệt quan trọng, chính vì vậy tôi quyết định chọn chuyên đề “Cấu trúc lặp” để tổ chức soạn giảng theo hướng tự học của học sinh, giúp các em có thể tự mình tìm tòi, nghiên cứu, lĩnh hội các tri thức mới.
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO ………….
TRƯỜNG TRUNG HỌC PHỔ THÔNG …………
CHUYÊN ĐỀ ĐỔI MỚI SINH HOẠT CHUYÊN MÔN
Tên chuyên đề:
CẤU TRÚC LẶP
………
Năm học: 2018
Trang 2A Phần mở đầu
I Giới thiệu về chuyên đề
- Trong bất cứ một ngôn ngữ lập trình nào, việc sử dụng các câu lệnh điều khiển là bắtbuộc, vì có sử dụng chúng, ta mới có thể lập trình giải quyết bài toán trong Tin học
- Trong chương trinh Tin học 11, học sinh được giới thiệu tìm hiểu 2 cấu trúc điềukhiển là cấu trúc rẽ nhãnh và cấu trúc lặp Trong đó, theo tôi cấu trúc lặp là một nội
dung đặc biệt quan trọng, chính vì vậy tôi quyết định chọn chuyên đề “Cấu trúc lặp”
để tổ chức soạn giảng theo hướng tự học của học sinh, giúp các em có thể tự mình tìmtòi, nghiên cứu, lĩnh hội các tri thức mới
II Phạm vi chuyên đề:
- Chuyên đề “Cấu trúc lặp” được chia làm 2 phần
+ Câu lệnh lặp For do;
+ Câu lệnh lặp While do;
- Số tiết dạy: 06 tiết
Tiết
1 Lặp với số lần đếm được và câu lệnh For do
2 Bài tập (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 không đếm được và câu lệnh While do
4 Bài tập (Lặp với số lần biết trước và câu lệnh For do)
5 Bài tập và thực hành
6 Bài tập và thực hành
III Lí thuyết chuyên đề:
a) Lặp với số lần đếm được và câu lệnh For do:
* Dạng lặp tiến:
* Dạng lặp lùi:
• Trong đó:
• For, to, downto, do là từ khóa
• Giá trị đầu ≤ Giá trị cuối, và đều phải cùng kiểu với biến đếm
• Biến đếm thường có kiểu nguyên hoặc kí tự
• Câu lệnh có thể là câu lệnh đơn hoặc câu lệnh ghép
* Hoạt động của câu lệnh lặp
Trang 3* Dạng tiến: Biến đếm nhận lần lượt các giá trị từ gtđầu đến gt cuối, với mỗi lần biến đếm nhận 1 giá trị, câu lệnh sau do được thực hiện.
Dạng tiến:
* Dạng lùi: Biến đếm nhận lần lượt các giá trị từ gt cuối về gt đầu, với mỗi lần biến đếm nhận 1 giá trị, câu lệnh sau do được thực hiện.
Dạng lùi:
b) Lặp với số lần không đếm được và câu lệnh While do
While <điều kiện> do <câu lệnh>;
Trang 4- While, do là các từ khóa
- Điều kiện là biểu thức quan hệ hoặc biểu thức logic
- Câu lệnh trong Pascal có thể là câu lệnh đơn hoặc câu lệnh ghép
* Hoạt động: Trong khi điều kiện vẫn còn đúng thì câu lệnh tiếp tục được thực hiện Điều kiện sai thì thoát khỏi cấu trúc lặp
Trang 5B Kế hoạch dạy học - Chuyên đề: Cấu trúc lặp
I Mục tiêu chuyên đề
1 Kiến thức
- 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 kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước
- Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tính huống 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 đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước
- Viết được chương trình giải một số bài toán đơn giản
3 Thái độ
- Học sinh hiểu bài, có hứng thú học tập môn học, yêu thích môn học
II Định hướng các năng lực hướng tới
- Năng lực tự học: tự tiếp thu kiến thức từ các nguồn khác nhau
- Năng lực tính toán: trả lời các câu hỏi định lượng, vận dụng trong bài
- Năng lực sử dụng ngôn ngữ: trình bày những bài tập khi GV yêu cầu
- Năng lực sử dụng CNTT và truyền thông: lập trình các bài toán, sử dụng mạng internet để tìm hiểu thêm về nội dung của bài
- Năng lực hợp tác: hoạt động nhóm
- Năng lực giao tiếp: giao tiếp với bạn cùng nhóm, lớp, giáo viên trong quá trình học
- Năng lực sáng tạo: từ yêu cầu bài toán có thể nhìn ra những cách giải quyết khác nhau
- Năng lực tự quản lý: quản lý, phân công các thành viên trong nhóm hoạt động
- Năng lực giải quyết vấn đề: ở mỗi câu hỏi, nội dung kiến thức GV đưa ra HS có thể nhìn nhận và phát hiện giải quyết vấn đề được đặt ra
- Diễn tả thuật toán cấu trúc lặp trên NNLT
III Tiến trình dạy học
Chuyên đề: Cấu trúc lặp
Tiết 1 1 Lặp với số lần đếm được và câu lệnh For do
Tiết 2 2 Bài tập (Lặp với số lần biết trước và câu lệnh For do)
Tiết 3 3 Lặp với số lần không đếm được và câu lệnh While do
Tiết 4 4 Bài tập (Lặp với số lần biết trước và câu lệnh For do)
Tiết 6 Bài tập và thực hành
Tiết 7 Bài tập và thực hành
Trang 6* Nội dung tiếp theo của chuyên đề sẽ chỉ giới thiệu minh họa tiến trình dạy các tiết lý thuyết trong chuyên đề
Tiết 1: Lặp với số lần đếm được và câu lệnh for do
I Mục tiêu:
a Kiến thức
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán và lập trình
- Hiểu cấu trúc lặp với số lần biết trước for do ở 2 dạng: dạng tiến và dạng lùi
- Biết cách vận dụng câu lệnh for do (dạng tiến hoặc dạng lùi)vào lập trình giải một số bài toán cụ thể
b Kĩ năng
- Sử dụng được câu lệnh lặp for do vào viết các (doạn) chương trình đơn giản
- Kĩ năng làm việc nhóm, kĩ năng thuyết trình, kĩ năng lãnh đạo
+ Máy chiếu, máy tính và các công cụ hỗ trợ dạy học
+ Chia lớp thành 4 nhóm, có nhóm trưởng, thư kí, phân công người trình bày
2 Học sinh:
+ Sách vở
+ Chuẩn bị bài trước ở nhà
III Tiến trình lên lớp
1 Kiểm diện
2 Tiến trình bài học
* Hoạt động 1: Tình huống xuất phát
1 Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu cấu trúc lặp
2 Phương pháp: Thảo luận nhóm, cá nhân
3 Phương tiện: Máy tính, máy chiếu
4 Kết quả: Học sinh có nhu cầu tìm hiểu cấu trúc lặp
Hoạt động của giáo viên Hoạt động của học sinh
Chia nhóm hoạt động: Chia lớp làm 4
nhóm Thời gian suy nghĩ là 2 phút
VD1: Lập trình hiện ra trên màn hình 5
dòng chữ : “chao ca lop” Và các em có
Gọi một nhóm trình bày kết quả thảoluận; các nhóm khác lắng nghe và nhậnxét
Câu trả lời mong muốn:
Trang 7nhận xét gì về chương trình của nhóm
mình
BeginWrite(‘chao ca lop’);
Trong chương trình, câu lệnh writeln(‘chao ca lop’) được viết đi viết lại 5 lần
Trong chương trình trên, câu lệnh
writeln(‘chao ca lop’) được viết lặp đi
lặp lại nhiều lần, trước hết là ta thấy
mất thời gian Giả sử như bài toán yêu
cầu viết ra 100 dòng hoặc nhiều hơn thì
ta phải làm thế nào?
Yêu cầu đặt ra là với các chương trình
mà các câu lệnh được lặp như vậy có
cách nào để thế hiện, xử lí không,
chúng ta sẽ cùng nhau đi tìm hiểu ở bài
ngày hôm nay
2 Phương pháp: Thảo luận nhóm, phát hiện và giải quyết vấn đề
3 Phương tiện: Máy tính, máy chiếu, SGK, bảng phụ
4 Kết quả: Học sinh biết và hiểu câu lệnh lặp For do và bước đầu viết được câu lệnh hoặc một đoạn chương trình giải bài toán đơn giản;
Hoạt động của giáo viên Hoạt động của học sinh
- Nhóm 1,2: Tìm hiểu cú pháp và hoạt
động của câu lệnh for to do (For
dạng tiến); Vận dụng câu lệnh For dạng
tiến viết dòng lệnh đưa ra màn hình 5
dòng chữ “chao ca lop” và giải thích
hoạch động của dòng lệnh
- Nhóm 3,4: Tìm hiểu cú pháp và hoạt
động của câu lệnh for downto do
(For dạng lùi); Vận dụng câu lệnh For
Các nhóm suy nghĩ và ghi chép kết quảthảo luận
Trang 8dạng lùi viết dòng lệnh đưa ra màn
hình 5 dòng chữ “chao ca lop” và giải
thích hoạch động của dòng lệnh
Gọi nhóm 1 hoặc nhóm 2; nhóm 3 hoặc
nhóm 3 trình bày kết quả thảo luận của
nhóm mình
Các nhóm báo cáo kêt quả thảo luậnCác nhóm khác nhận xét, đặt câu hỏi cho nhóm
Giáo viên tổng hợp lại kiến thức
1 Câu lệnh for do
Cú pháp:
* For to do (For dạng tiến)
For <biến đếm>:=<gt đầu> to <gt
cuối> do <Câu lệnh>;
* For downto do (For dạng lùi)
For <biến đếm>:=<gt cuối> to <gt
đầu> do <Câu lệnh>;
Trong đó:
Biến đếm: là biến kiểu nguyên, kí tự
hoặc miền con;
Giá trị đầu, giá trị cuối: là biểu thức
cùng kiểu với biến đếm Giá trị đầu
phải nhỏ hơn hoặc bằng giá trị cuối
Hoạt động câu lệnh
* Dạng tiến: Biến đếm nhận lần lượt
các giá trị từ gtđầu đến gt cuối, với
mỗi lần biến đếm nhận 1 giá trị, câu
lệnh sau do được thực hiện.
* Dạng lùi: Biến đếm nhận lần lượt
các giá trị từ gt cuối về gt đầu, với mỗi
lần biến đếm nhận 1 giá trị, câu lệnh
sau do được thực hiện.
Học sinh ghi chép nội dung kiến thức vào vở
* Hoạt động 3: Luyện tập: Tìm hiểu thuật toán giải bài toán 1
1 Mục tiêu: Học sinh củng cố lại hiểu biết về câu lệnh for do thông qua việc giải thíchchương trình trong SGK
2 Phương pháp: Thảo luận nhóm, phát hiện và giải quyết vấn đề, vấn đáp
3 Phương tiện: Máy tính, máy chiếu, SGK, bảng phụ
4 Kết quả: Giải thích được ý nghĩa thuật toán, hoạt động câu lệnh for do sử dụng trong bài toán 1 SGK Tin 11
Hoạt động của giáo viên Hoạt động của học sinh
Yêu cầu học sinh đọc phần phân tích
bài toán, thuật toán và chương trình
Thảo luận nhóm, điển các câu trả lời vào phiếu học tập
Trang 9tong_1a trong SGK, và trả lời các câu
hỏi theo phiếu học tập sau:
Gọi 1 nhóm trả lời câu hỏi Một nhóm trả lời câu hỏi
Các nhóm còn lại góp ýGV: Tổng hợp lại kiến thức
Xuất phát S:=1/a;
Giả sử n là biến đếm, phạm vi của i từ
1 100
Với mỗi lần n nhận thêm 1 đơn vị, ta
cộng thêm 1/(a+n) vào S
For n:=1 to 100 do
S:=S+1/(a+n);
Ghi chép vào sản phẩm học tập của mình
* Hoạt động 4: Tìm tòi – mở rộng kiến thức:
1 Mục tiêu: Giúp học sinh có nhu cầu mở rộng và củng cố thêm kiến thức của mình
2 Phương pháp/kĩ thuật dạy học: cá nhân
3 Phương tiện dạy học: SGK, giáo án, máy tính, máy chiếu,…
4 Sản phẩm: HS phân tích được bài toán, xác định được thao tác lặp trong bài toán,phạm vi của biến đếm và viết đoạn chương trình xử lí bài toán
Hoạt động của giáo viên Hoạt động của học sinh
Ông An có số tiền là S, ông gửi tiết Các nhóm thảo luận, ghi chép
Trang 10kiệm ngân hàng theo tháng với lãi suất
1,5%/tháng, tiền lãi được cộng dồn vào
tiền gốc Hỏi sau 12 tháng (không rút
tiền lãi hàng tháng) ông ta được số tiền
là bao nhiêu?
Hãy xác định phạm vi biến đếm, hoạt
động lặp trong bài toán là gì (thể hiện
qua công thức tính toán) và viết câu
lệnh giải quyết bài toán trên
Giáo viên cho 1 nhóm báo cáo kết quả
thảo luận
1 nhóm thảo luận, các nhóm còn lại
góp ýĐưa ra câu lệnh
Trang 11Tiết 3: Lặp với số lần không đếm được và câu lệnh While do
I Mục tiêu bài học
I Mục tiêu bài học
1 Kiến thức:
- Hiểu được ý nghĩa của cấu trúc lặp có số lần lặp chưa biết trong các bài toán
- Biết được cấu trúc chung của lệnh lặp While – do trong Pascal
- Nắm được hoạt động của câu lệnh lặp while – do
2 Kĩ năng:
- Sự khác nhau giữa while – do và for – do
- Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết các bài toán đơn giản
3 Thái độ
- Từ việc tính toán, lập trình các bài tập liên quan đến toán học từ đó các em có liên hệ với môn học khác, đặc biệt là môn Toán và thêm yêu thích môn học
- Khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính
- Rèn luyện các phẩm chất của người lập trình, xem xét giải quyết vấn đề cẩn thận, chuđáo, logic, có sáng tạo,…
- Thái độ học tập nghiêm túc, tích cực, chủ động tìm hiểu kiến thức
(2) Phương pháp/kĩ thuật dạy học: cá nhân
(3) Phương tiện dạy học: SGK, Projector, máy tính,…
(4) Sản phẩm: HS có nhu cầu tìm hiểu câu lệnh While do trong Pascal
Dựa vào thuật toán, chương trình tổng
1b trong SGK, trả lờ vào phiếu học tập
Các nhóm thảo luận và trả lời vàophiếu
Trang 12Điều kiện kết thúc công việc lặp:
Gọi 1 nhóm lên trình bày kết quả Tính chất: tăng dần 1 đơn vị ở mẫu
Số hạng tổng quát là 1/(a+N)Giá trị khởi tạo: S:=1/a;
Ở đây ta nhận thấy bài toán trên có xuất
hiện tình huống lặp; nhưng số lần lặp
của tình huống lặp là không biết trước,
không đếm được; do đó không thể sử
dụng câu lệnh for do được
Để giải quyết bài toán trên, trong ngôn
ngữ lập trình pascal có cung cấp câu
lệnh để xử lí các tình huống lặp mà
không đếm được số lần lặp Để tìm hiểu
câu lệnh đó chúng ta cùng nhau đi vào
bài ngày hôm nay
Lắng nghe
2 Hình thành kiến thức
Trang 13(1) Mục tiêu: HS nắm được cú pháp của câu lệnh lặp while – do Hiểu cách viết lệnhwhile – do.
(2) Phương pháp/kĩ thuật dạy học: Đàm thoại, phát hiện và giải quyết vấn đề
(3) Phương tiện dạy học: SGK, máy tính, máy chiếu,…
(4) Hình thức tổ chức hoạt động: cá nhân, thảo luận nhóm
(5) Sản phẩm: HS hiểu về cấu trúc và cách hoạt động của cấu trúc lặp và sử dụng cấutrúc lặp while – do
Hoạt động của Giáo viên Hoạt động của Học sinh
Các nhóm đọc SGK, thông qua chương trinh
tong_1b, thảo luận trả lời các câu hỏi sau:
Cú pháp của câu lệnh While do
Hoạt động của câu lệnh
Hãy chỉ ra các thông số của câu lệnh trong
Giáo viên tổng hợp lại kiến thức
While <điều kiện> do <câu lệnh>;
- While, do là các từ khóa
- Điều kiện là biểu thức quan hệ hoặc biểu
thức logic
- Câu lệnh trong Pascal có thể là câu lệnh
đơn hoặc câu lệnh ghép
* Hoạt động: Trong khi điều kiện vẫn còn
đúng thì câu lệnh tiếp tục được thực hiện
Điều kiện sai thì thoát khỏi cấu trúc lặp
Trang 143 Luyện tập – Vận dụng
(1) Mục tiêu: HS viết được chương trình có sử dụng cấu trúc lặp while – do hoặcrepeat - until
(2) Phương pháp/kĩ thuật dạy học: cá nhân, thảo luận nhóm
(3) Phương tiện dạy học: SGK, máy tính, máy chiếu, …
(4) Sản phẩm: HS bước đầu biết sử dụng câu lệnh lặp trong chương trình
Hoạt động của Giáo viên Hoạt động của Học sinh
Sử dụng câu lệnh While do, viết đoạn
chương trình giải quyết các bài toán sau
Chọn 2 nhóm tốt nhất trình bày, các nhóm
còn lại thảo luận
Các nhóm quan sát, cho ý kiến
Trang 154 Hoạt động tìm tòi mở rộng
(1) Mục tiêu: HS có nhu cầu mở rộng thêm kiến thức của mình
(2) Phương pháp/kĩ thuật dạy học: cá nhân
(3) Phương tiện dạy học: SGK, máy tính, máy chiếu,…
(5) Sản phẩm: HS biết phân tích từng dạng bài toán và sử dụng đúng loại cấu trúc lặp
Nội dung hoạt động – Thời gian: còn lại
Hoạt động của GV Hoạt động của HS
Vẫn với bài toán liên quan đến lãi suất ngân
hàng Bảng lãi suất trong tiết trước:
VD: Bài toán: Ông A có số tiền ban đầu là 10
triệu VNĐ Ông muốn gửi tiết kiệm trong ngân
hàng trong x tháng với hình thức có kì hạn và
lấy lãi ở cuối kì
- Nếu ông rút tiền sau y tháng Vậy ông A sẽ có
được bao nhiêu tiền.
- Nếu ông muốn mình có được ít nhất là 20
triệu VNĐ và ông gửi với kì hạn là y tháng Thì
ông phải gửi ít nhất là bao nhiêu tháng
Đưa ra những bài toán mà em có thể gặp trong thực tế với lãi suất ngân hàng mà từ đó em có thể lập trình để tính toán
HS tìm hiểu thực tế lãi suất trong ngân hàng và có thể làm thành một bài tập lớn và nộp cho GV các chương trình và phân tích bài toán
Trang 16IV Hệ thống câu hỏi, bài tập luyện tập sử dụng trong các tiết bài tập, bài tập thực hành
1 Câu lệnh for do
Câu 1: Cú pháp lệnh lặp For – do dạng lùi:
A for < biến đếm> = < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
B for < biến đếm> := < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
C for < biến đếm> = < Giá trị cuối >down < Giá trị đầu > do < câu lệnh >;
D for < biến đếm> := < Giá trị đầu >downto < Giá trị cuối > do < câu lệnh>;
Đáp án: B
Câu 2: Cú pháp lệnh lặp For – do dạng tiến:
A for < biến đếm> = < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
B for < biến đếm> := < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
C for < biến đếm> = < Giá trị cuối >down < Giá trị đầu > do < câu lệnh >;
D for < biến đếm> := < Giá trị đầu > to < Giá trị cuối > do < câu lệnh>;
Đáp án: D
Câu 3: Kiểu dữ liệu của biến đếm trong lệnh lặp For – do:
A Cùng kiểu với giá trị đầu và giá trị cuối B Chỉ cần khác kiểu với giá trị đầu
C Cùng kiểu với các biến trong câu lệnh D Không cần phải xác định kiểu dữ liệu
Đáp án: A
Câu 4: Trong lệnh lặp For <biến đếm>:=<giá trị cuối> downto <giá trị đầu> do:
A Giá trị đầu phải nhỏ hơn giá trị cuối
B Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
C Giá trị đầu phải lớn hơn giá trị cuối
D Giá trị đầu phải bằng giá trị cuối
Đáp án: B
Câu 5: Câu lệnh lặp for – do nào sau đây là đúng cú pháp?
A For i= -10 to 0 do d:=d+1; B For i:= -10 to 0 do d:= d+1;
C For i:=0.5 to -10.5 do d:= d+1; D For i= 0.5 to 10.5 do d:=d+1;
Đáp án: B
Câu 6: Trong các đoạn lệnh sau, đoạn lệnh nào có câu lệnh sau do được thực hiện
ít nhất 1 lần?
A For i:=1 to 10 do writeln(‘A’); B For i:= 1.5 to 10.5 do writeln(‘A’);
C For i=1 to 10 do writeln(‘A’); D For i:= 100 to 1 do writeln(‘A’);
Đáp án: A
Câu 7: Đâu là câu lệnh lặp for – do dạng lùi đúng: