Kiến thức - Biết được ý nghĩa của cấu trúc lặp - Biết được cấu trúc chung của câu lệnh lặp For - Do trong ngôn ngữ lập trìnhPascal - Biết sử dụng đúng hai dạng câu lệnh For trong ngôn ng
Trang 1Giáo án Tin học 11
CẤU TRÚC LẶP
I Mục tiêu
1 Kiến thức
- Biết được ý nghĩa của cấu trúc lặp
- Biết được cấu trúc chung của câu lệnh lặp For - Do trong ngôn ngữ lập trìnhPascal
- Biết sử dụng đúng hai dạng câu lệnh For trong ngôn ngữ lập trình Pascal
2 Kỹ năng
Bước đầu sử dụng được lệnh For để lập trình giải quyết được một số bài toán đơngiản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy - học
1 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp
a Mục tiêu
Trang 2- Học sinh thấy được sự cần thiết của cấu trúc lặp trong lập trình
b Nội dung
Bài toán 1: Viết chương trình in ra màn hình dãy số nguyên liên tiếp từ 1 đến 5?Bài toán 2: Viết chương trình tính tổng S= 1/1+1/2+1/3+1/4+1/5
TG Hoạt động của giáo viên Hoạt động của học sinh
3’ 1 Chiếu bài toán 1
- Gợi ý: Để viết được 5 số liên
tiếp thì viết như thế nào?
2 Chiếu bài toán 2
- Gợi ý: Cách tính tổng như vậy
có thể liên hệ đến việc chia táo:
Có 5 quả táo, quả đầu tiên được
cả, quả thức 2 chia làm đôi và
được một phân, quả thức ba chia
làm ba, được một phần…, đến
quả thứ 5, chia làm 5 phần và
1 Chú ý quan sát bài toán đặt vấn đề
- Dùng câu lệnh write để viết các số ramàn hình
- Để viết 5 số từ 1 đến 5 ra màn hình thìdùng 5 câu lệnh write liên tiếp
Trang 3được một phần Mỗi lần chia
cộng vào sẽ được tổng số táo
được chia sau 5 lần
- Cách tính tổng S?
- Tương tự nmhư bài 1, chúng ta
cũng phải thao tác cộng mấy lần?
- Thuật toán bài 1?
- Viết thuật toán bài 2?
- Với thuật toán như vậy, có thể
sử dụng câu lệnh If - Then
không?
- Với câu lệnh IF - THEN khi
điều kiện được kiểm tra và cho
- Cách tính tổng S:
+ Tính tổng 1+1/2+ Được kết quả bao nhiêu cộng với 1/3+ Được kết quả trên cộng với ẳ
+Được kết quả cộng với 1/5+ Tổng là kết quả sau 5 lần cộng dồn
- Thao tác cộng 5 lần mới cho kết quả
- Thuật toán:
+ B1: i 1;
+B2: Nếu i>5 thì xuống B5 +B3: Đưa giá trị của i ra màn hình+B4: i i+1, rồi quay lại B2
Trang 4kết quả đúng chỉ thực hiện được 1
lần, không có sự lặp lại Để thể
hiện được thao tác lặp, Turbo
Pascal cung cấp cấu trúc lặp
- Với bài toán này, thao tác ghi
giá trị của i được lặp 5 lần, tức là
đã biết trước số lần lặp Để diễn
tả thao tác lặp biết trước số lần
lặp trong thuật toán Pascal cung
cấp câu lệnh FOR-DO
+B4: i i+1, quay lại B2;
+B5: Đưa ra S rồi kết thúc
- Không thể sử dụng câu lệnh IF - THEN
vì câu lệnh IF - THEN không thể hiện sựlặp đi lặp lại 5 lần thao tác đưa giá trị của
For, To, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Trang 5Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.
- Sự thực hiện của máy:
+ Bước 1: Tính giá trị đầu, gán cho biến đếm
+ Bước 2: kiểm tra, nếu biến đếm <= giá trị cuối thì
For, DownTo, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Trang 6Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.
- Sự thực hiện của máy:
+ Bước 1: Tính giá trị cuối, gán cho biến đếm
+ Bước 2: kiểm tra, nếu biến đếm >=giá trị đầu thì
Trang 7- Sau mỗi lần thực hiện in giá trị của i
hoặc cộng dồn tổng thì i thay đổi như
được không? Nếu được thì các bài
toán trên được tính như thế nào?
- Sau mỗi lần thực hiện in giá trị i
hoặc cộng dồn tổng thì giá trị i thay
đổi như thế nào?
-Phát biểu dạng lặp trong trường hợp
này?
- i được tăng lên một đơn vị
- Tương ứng trong tiếng Anh:
For …….To…… Do
- Có thể tính từ số lớn lùi về được:+Bài 1: Lần lượt với giá trị của i từ 5lùi về 1 thực hiện lệnh đưa giá trị của
i ra ngoài màn hình
+Bài 2: Lần lượt với mỗi giá trị của i
từ 5 lùi về 1, thực hiện cộng dồn 1/ivào tổng
- i được giảm đi 1 đơn vị
Từ 5 lùi về 1, thực hiện đưa giá trị
Trang 8- Từ … Lùi về (quay về) …Thực
hiện (làm), tương ứng trong tiếng
Anh?
- Dạng lặp như vậy gọi là lặp lùi
- Cấu trúc dạng lặp tiến và lùi:
Trang 9Biến đếm: Là biến kiểu
nguyên, ký tự hoặc miềm con
- Giải thích sự thực hiện của máy 1
dạng tiến và yêu cầu học sinh giải
thích dạng lùi
Gtrị đầu, Gtrị cuối là hằng,
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
- Ý nghĩa của giá trị đầu và giá trị
cuối?
- Đối với bài 1 và 2 thì giá trị đầu và
giá trị cuối bằng bao nhiêu?
- Dùng để giới hạn biến đếm (giới hạnvòng lặp)
- Giá trị đầu và giá trị cuối trong bài 1
và 2 là: Giá trị đầu = 1, giá trị cuối =5
3 Hoạt động 3: Rèn luyện kỹ năng dùng câu lệnh FOR.
Trang 1010p 1 Nêu bài toán 1.
+ Xác định giá trị đầu, giá trị cuối
+ Xác định lệnh lặp
- Từ mệnh đề phát biểu bằng lời các
dạng lặp, yêu cầu HS chuyển sang
câu lệnh For dạng tiến:
Từ 1 đến 5, thực hiện đưa giá trị của
- Giá trị đầu, giá trị cuối, lệnh lặp?
- Viết thành câu lệnh lặp For
- Giá trị đầu = 1, giá trị cuối = 5;
- Lệnh lặp là lệnh in giá trị của i ramàn hình: Write(i);
- For i:=1 To 5 Do write(i);
- For i:=5 DownTo 1 Do write(i);
- Giá trị đầu = 1, giá trị cuối = N
- S:=0
- For i:=1 To N Do S:=S+1/i;
IV Củng cố bài - bài tập về nhà (5p)
- Cú pháp câu lệnh lặp biết trước số lần lặp ở 2 dạng: Tiến và lùi
- Bài tập về nhà sgk - tr.51, sbt - bài tập chương trình 3 - tr.18
Trang 11CẤU TRÚC LẶP (tiết 2)
I Mục tiêu
1 Kiến thức
- Biết được ý nghĩa của cấu trúc lặp với số lần chưa biết trước số lần lặp
- Biết được cấu trúc chung của câu lệnh lặp While - Do trong ngôn ngữ lập trìnhPascal
- Biết sử dụng đúng hai dạng câu lệnh WHILE trong ngôn ngữ lập trình Pascal
2 Kỹ năng
Bước đầu sử dụng được lệnh While để lập trình giải quyết được một số bài toánđơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy - học
* Kiểm tra bài cũ (5ph):
- Một học sinh lên viết cú pháp dạng lặp tiến và lùi, giải thích các thành phần củacâu lệnh
- Một học sinh lên bảng vẽ sơ đồ thực hiện và nêu cách thực hiện của máy
Trang 121 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp chưa biết trước số lần lặp
a Mục tiêu
- Học sinh thấy được sự cần thiết của cấu trúc lặp có số lần chưa xác định trong lậptrình
b Nội dung
Bài toán 1: Bài toán bỏ bi vào thùng?
Bài toán 2: Viết chương trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi1/N<0.0001
c Các bước tiến hành
TG Hoạt động của giáo viên Hoạt động của học sịnh10’ 1 Chiếu nội dung bài 1:
- Hỏi: Trong bài toán này có sự lặp đi
lặp lại không? Nếu có thì công việc nào
được lặp đi lặp lại?
- Hỏi: Trong bài toán này, chúng ta có
biết bỏ bao nhiêu lần bi thì đầy thùng
không?
- Hỏi: Lặp bao nhiêu lần?
- Hỏi: Lặp đến khi nào?
- Chiếu hình ảnh mô phỏng
2 Chiếu nội dung bài 2
- Trong bài toán có sự lặp đi lặplại, công việc bỏ bi vào thùngđược lặp đi lặp lại
- Lặp không biết số lần lặp
- Lặp đến khi thùng đầy
- Chú ý theo dõi kỹ để trả lời câuhỏi
Trang 13- Chiếu lại nội dung bài toán trước và
biết trước số lần lặp với câu lệnh For
Nhưng trong thực tế, có nhiều sự việc,
bài toán có sự lặp mà không biết trước
số lần lặp Turbo Pascal cung cấp câu
lệnh lặp không biết trước số lần lặp:
Trang 14b Nội dung
Cấu trúc:
While <điều kiện> Do <lệnh cần lặp>;
Trong đó: While, Do: 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 là một câu lệnh nào đó của Pascal
- Sự thực hiện của máy:
+ Bước 1: Tính và kiểm tra điều kiện
+ Bước 2: Nếu điều kiện đúng (có giá trị True) thì thực hiẹn câu lệnh cần lặp, rồiquay lại bước1 Nếu sai thì thoát khỏi câu lệnh while - do
- Sơ đồ thực hiện:
c Các bước tiến hành
TG Hoạt động của giáo viên Hoạt động của học sinh
- Chiếu lại mô phỏng
- Phát biểu cách bỏ bi? - Bỏ bi vào thùng đến khi nào
F T
Điều kiện
Câu lệnh cần lặp
Trang 15- Phát biểu lại như sau: Chừng nào mà
thùng chưa đầy thì bỏ bi vào
Hoặc: Trong khi thùng chưa đầy thì thực
hiện (làm) bỏ bi vào.
- Hỏi: Tương tự có thể phát biểu cách tính
tổng của bài 2 như thế nào?
- Hỏi: Điều kiện nào được thỏa mãn thì bỏ
bi (Tính tổng)?
- Hỏi: Công việc được lặp?
- Hỏi: Trong khi, làm - tương ứng trong
tiếng Anh?
- Hỏi: Viết lại phát biểu trên, chúng ta có
câu lệnh lặp không biết trước số lần lặp:
While <điều kiện) Do <câu lệnh cần lặp>;
- Giải thích các thành phần của câu lệnh,
cách thực hiện của máy
- Hỏi: Trong bài toán 2 thì câu lệnh cần
Trang 16- Hỏi: Viết sơ đồ thực hiện?
- Hỏi: Trong câu lệnh FOR biến chỉ số
thay đổi như thế nào?
- Nhưng trong câu lệnh While thì biến chỉ
số không được thay đổi giá trị tự động mà
phải có một câu lệnh thay đổi giá trị của
biến đếm
- Hỏi: Vậy, sau từ khóa DO có ít nhất mấy
câu lệnh?
- Hỏi: Theo cú pháp thì sau DO chỉ có một
câu lệnh nào đó của Pascal, muốn thực
hiện ít nhất 2 câu lệnh sau DO thì phải sử
dụng câu lenẹh nào?
N:=N+1;
- Trong câu lệnh FOR biến chỉ sốđược tự động tăng (giảm) mộtđơn vị
- Vẽ sơ đồ thực hiện vào vở, mộthọc sinh lên bảng vẽ
- Sau từ khóa DO có ít nhất 2câu lệnh, một câu lệnh cần lặp vàmột câu lệnh làm thay đổi giá trịcủa biến đếm
- Để sau DO thực hiện được ítnhất 2 câu lệnh thì sau DO là câulệnh ghép, ghép các câu lệnh nàythành một câu lệnh
3 Hoạt động 3: Rèn luyện kỹ năng vận dụng câu lệnh lặp không biết trước số lần
Trang 17Bài 1: Viết chương trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi
1/N<0.0001?
Bài 2: Viết chương trình tìm ước chung lớn nhất của hai số nguyên dương a và b?
c Các bước tiến hành
1 Chiếu nội dung bài 1 Mục tiêu là viết
chương trình hoàn thiện
- Định hướng các vấn đề chính
+ Xác định điều kiện để tiếp tục lặp
+ Xác định các lệnh cần lặp
- Yêu cầu học sinh viết chương trình
hoàn chỉnh và gọi một học sinh lên bảng
viết chương trình hoàn chỉnh, rồi nhận
- Vậy, trường hợp lặp với số lần biết
trước là trường hợp đặc biệt của lặp
không biết trước số lần lặp Mọi câu lệnh
For - Do chúng ta đều có thể chuyển về
- Điều kiện: 1/N<0.0001;
- S:=S+1/N;
- N:=N+1;
- Có thể sử dụng câu lệnh While - Dođược, với điều kiện là i<=N thì tínhtổng
Trang 18câu lenẹh While - Do được.
- Hỏi: Chuyển từ câu lệnh FOR sang câu
lệnh WHILE như thế nào?
2 Chiếu nội dung bài 2
- Hỏi: Thuật toán tìm ước chung lớn nhất
của 2 số nguyên dương a và b?
- Hỏi: Điều kiện lặp?
- Hỏi: Lệnh cần lặp?
- yêu cầu học snh viết chương trình?
- Hỏi: Để giải quyết được các bài toán lặp
cần chỉ trả lời được hai câu hỏi nào?
i:=1;
- While i<=N Do S:= S+1/i;
* Thuật toán:
- B1: Nhập a và b nguyên dương;
- B2: Nếu a=b thì ucln=a, rồi kết thúc
- B3: Nếu a>b thì a:=a-b, rồi quay lại b2;
- B4: b:=b-a, rồi quay lại b2;
- Điều kiện lặp: a<>b
- Lệnh cần lặp là a:=a-b hoặc b:=b-a;
- Phai trả lời được hai câu hỏi:
+ Điều kiện lặp?
+ lệnh cần lặp?
IV Bài tập về nhà: Bài 4, 5b, 7, 8 - sgk - tr.51 + sbt - tr 18 - tr.29
BÀI TẬP CÂU LỆNH LẶP Mục tiêu
1 Kiến thức
- Củng cố câu lệnh lặp For - Do và câu lệnh While - Do
Trang 19- Biết vận dụng 2 câu lệnh lặp cho mỗi bài toán.
- Biết cách thực hiện của máy ở cả lặp biết trước số lần lặp và lặp không biết trước
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Trang 20- Dạng tiến:
Cấu trúc:
For <biến đếm>:= <Gtrị đầu> To <Gtrị cuối> Do <Lệnh cần lặp>;
Trong đó:
For, To, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối
- Sự thực hiện của máy:
+ Bước 1: Tính giá trị đầu, gán cho biến đếm
+ Bước 2: kiểm tra, nếu biến đếm <= giá trị cuối thì
For, DownTo, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Trang 21Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.
- Sự thực hiện của máy:
+ Bước 1: Tính giá trị cuối, gán cho biến đếm
+ Bước 2: kiểm tra, nếu biến đếm >=giá trị đầu thì
Thực hiện câu lệnh cần lặp,
Giảm biến đếm lên 1 đơn vị rồi quay lại Bước 2
- Dạng lặp không biết trước số lần lặp:
Cấu trúc:
While <điều kiện> Do <lệnh cần lặp>;
Trong đó: While, Do: 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 là một câu lệnh nào đó của Pascal
- Sự thực hiện của máy:
+ Bước 1: Tính và kiểm tra điều kiện
+ Bước 2: Nếu điều kiện đúng (có giá trị True) thì thực hiện câu lệnh cần lặp, rồiquay lại bước1 Nếu sai thì thoát khỏi câu lệnh while - do
c Các bước tiến hành
Trang 22TG Hoạt động của giáo viên Hoạt động của học sinh
5’ 1 Yêu cầu học sinh lại
Giá trị đầu và giá trị cuối
có mối quan hệ như thế
nào với biến đếm?
+ For <biến đếm>:= <Gtrị đầu> To <Gtrị cuối>
Do <Lệnh cần lặp>;
+ For <biến đếm>:= <Gtrị cuối> DownTo <Gtrịđầu> Do <Lệnh cần lặp>;
+ While <điều kiện> Do <lệnh cần lặp>;
- Giống nhau: Đều là lệnh lặp
- Khác nhau: Dạng For - Do:
+ Lặp biết trước số lần lặp, còn dạng While - Do:Lặp không biết trước số lần lặp
+ Trong câu lệnh For biến đếm tự động thay đổigiá trị, còn trong câu lệnh While phải có câu lệnhlàm thay đổi giá trị biến đếm
- Giá trị đầu và giá trị cuối phải có kiểu hợp vớikiểu của biếm đếm Thường là kiểu số nguyênhoặc kiểu kí tự Giá trị đầu pơhải nhỏ hơn hoạcbằng giá trị cuối
Trang 232 Hoạt động 2 Rèn luyện kĩ năng vận dụng tổ chức lặp
TG Hoạt động của giáo viên Hoạt động của học sinh
13’ 1 Tìm hiểu bài 1 và giải quyết
- Chiếu nội dung lên bảng
- Có thể khai triển biểu thức Y :
Trang 24Y= 1/2+2/3+3/4+…+50/51;
- Hỏi: Nhìn vào biểu thức triển
khai của Y, N có giá trị trong
2 Tìm hiểu bài 2 và giải quyết
- Chiếu nội dung lên bảng
- ý tưởng giải quyết bài toán?
- Điều kiện là gì?
- Khi nào thì thỏa mãn điều kiện?
- Sử dụng dạng lặp nào?
- Viết chương trình hoàn chỉnh?
- N có giá trị trong khoảng 1 50;
Trang 251 Nội dung đã học
- Có 2 cấu trúc lặp: For và While
2 Câu hỏi và bài tập về nhà
- Hãy thay câu lệnh dạng For sang dạng While trong bài 1
- Bài tập về nhà: Các bài tập chương trình 3 trong sgk và sbt
Trang 261 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Sách giáo khoa, một số chương trình bài tập
III Hoạt động dạy - học
1 Hoạt động 1 Ôn lại lý thuyết đã học
a Mục tiêu
- Nhắc lại kiến thức đã học
b Nội dung
- Khái niệm về lập trình và ngôn ngữ lập trình
- Có hai loại chương trình trình dịch: Thông dịch và biên dịch
Trang 27- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa
- Các khái niệm; Tên, hằng, biến và chú thích
- Cấu trúc của chương trình Pascal: Phần khai bào và phần thân
- Các kiểu dữ liệu chuẩn: Kiểu nguyên, kiẻu thực, kí tự và logic
Đặt câu hỏi gợi ý cho học sinh tự
- Cấu trúc chung của chương trình
- lập trình là diễn tả thuật toán bằng mộtngôn ngữ lập trình
- Biên dịch và thông dịchBảng chữ cái, cú pháp và ngữ nghĩa
- Khái niệm tên, biến, hằng và chúthích
- Gồm 2 phàn: Phần khai báo và phần
Trang 28- Nêu tên các kiểu dữ liệu chuẩn?
- Nêu tên các nhóm phép toán đã
- Một số hàm: sqr, sqrt, cos, sin, abs,
- Read, readln, write và writeln
- Dạng đủ: If <ĐK> Then <câu lệnh1>else <câu lệnh 2>;
- Dạng thiếu: If <ĐK> Then <câu lệnh>