- Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn cho máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn.. * kỹ năng: [r]
Trang 1Ngày soạn:
Lặp với số lần chưa biết trước
(Tiết 49)
A Mục tiêu.
* Kiến thức: - Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ
lập trình.
- Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn cho máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn.
* kỹ năng: - Nhận biết được đâu là hoạt động lặp với số lần chưa biết trước.
* Thái độ: - Nghiêm túc, nghiên cứu tài liệu, yêu thích môn học.
B Phương pháp.
- Đặt, giải quyết vấn đề.
- Thuyết trình, phát vấn.
C Chuẩn bị.
1 Chuẩn bị của giáo viên: Giáo án, SGK, phương tiện dạy học.
2 Chuẩn bị của học sinh: SGK, tài liệu tham khảo, đồ dùng học tập.
D Tiến trình lên lớp.
I ổn định: Kiểm tra sĩ số (1 phút)
II Kiểm tra bài cũ: (4 phút)
- Viết thuật toán tính tổng 100 số tự nhiên đầu tiên?
III Bài mới:
1 Đặt vấn đề: Chúng ta đã được làm quen với các hoạt động lặp với số lần đã xác
định trước Vậy với các hoạt động lặp với số lần chưa biết trước thì như thế nào?
2 Triển khai bài:
a Hoạt động 1: Lặp với số lần chưa biết trước (35 phút)
GV: Yêu cầu HS nghiên cứu ví dụ 1 SGK và lấy
ví dụ về các hoạt động lặp với số lần chưa
biết trước?
HS: Nghiên cứu và đưa ra ví dụ.
1 Các hoạt động lặp với số lần chưa biết trước.
a) Ví dụ 1: (SGK).
Trang 2GV: Nhận xét, bổ sung.
GV: Giới thiệu ví dụ 2 SGK Yêu cầu HS đưa
ra ý tưởng về thuật toán và giải thích ý tưởng?
HS: Nghiên cứu và trình bày.
GV: Phân tích thuật toán để HS nắm bắt được
các bước giải thuật.
HS: Chú ý, ghi bài.
GV: Em hãy đưa ra ý tưởng đối với chương
trình này?
HS: Đưa ra ý tưởng.
GV: Nhận xét và đưa ra chương trình cho HS
tham khão.
HS: Chú ý, quan sát, ghi bài.
GV: Giới thiệu chương trình của VD3 và đưa ra
sơ đồ khối sau:
Từ ví dụ và sơ đồ trên GV giới thiệu đây là
câu lệnh có dạng lặp với số lần chưa biết
trước.
HS: Chú ý nghe giảng và ghi bài.
b) Ví dụ 2:
- Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1,
2, 3 ) Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng T n nhỏ nhất lớn hơn 1000?
* Thuật toán:
- Bước 1: S 0, n 0;
- Bước 2: Nếu S ≤ 1000, n n + 1; Ngược lại chuyển tới bước 4.
- Bước 3: S S + n và quay lại bước 2.
- Bước 4: In kết quả.
c) Ví dụ 3:
- Viết chương trình in ra lời chào của từng bạn trong lớp em, chương trình cho phép từng bạn nhập tên của mình từ bàn phím và in ra lời chào tương ứng (Giả sử: chưa biết số bạn trong lớp).
* Chương trình (Pascal):
Var Tieptuc: Char;
Ten: String;
Begin Tieptuc:= ‘C’;
While tieptuc = C do Begin
Write (‘Nhap ten cua ban:‘); Readln (Ten); Writeln (‘Chao ban ‘, Ten);
Write (‘Tiep tuc ? c/k ‘); Readln(tieptuc); End;
Readln End.
IV Cũng cố: (5 phút)
- Nhấn mạnh những nội dung chính, trọng tâm.
- Hướng dẫn học sinh nghiên cứu và giải thích chương trình ở VD3.
Trang 3V Dặn dò:
- Học bài Xem trước các phần còn lại của bài “Lặp với số lần chưa biết trước”.
* Rút kinh nghiệm:
Trang 4
Ngày soạn:
Lặp với số lần chưa biết trước
(Tiết50)
A Mục tiêu.
* Kiến thức: - Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ
lập trình.
- Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn cho máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn.
* kỹ năng: - Hiểu hoạt động của cõu lệnh lặp với số lần chưa biết trước while do…
trong Pascal
* Thái độ: - Nghiêm túc, nghiên cứu tài liệu, yêu thích môn học.
B Phương pháp.
- Đặt, giải quyết vấn đề.
- Thuyết trình, phát vấn, làm bài tập theo nhóm.
C Chuẩn bị.
1 Chuẩn bị của giáo viên: Giáo án, SGK, phương tiện dạy học.
2 Chuẩn bị của học sinh: SGK, tài liệu tham khảo, đồ dùng học tập.
D Tiến trình lên lớp.
I ổn định: Kiểm tra sĩ số (1 phút)
II Kiểm tra bài cũ: (4 phút)
- Lấy ví dụ về cấu trúc lặp với số lần chưa biết trước? Trình bày sơ đồ cấu trúc?
III Bài mới:
1 Đặt vấn đề: Chúng ta đã được làm quen với các hoạt động lặp với số lần đã xác
định trước Vậy với các hoạt động lặp với số lần chưa biết trước thì như thế nào?
2 Triển khai bài:
a Hoạt động 1: Lặp với số lần chưa biết trước (35 phút)
GV: Yêu cầu HS trình bày sơ đồ mô tả cấu
trúc lặp với số lần chưa biết trước.
HS: Lên bảng thực hiện
2 Ví dụ về lệnh lặp với số lần chưa biết trước.
* Trong pascal:
- While <Điều kiện> do <Câu lệnh>;
Trang 5GV: Dựa vào sơ đồ mà HS đã thực hiện để
đưa ra cú pháp của câu lệnh lặp với số lần
chưa biết trước.
HS: Chú ý nghe giảng, ghi bài.
GV: ta tiếp tục xột cỏc vớ dụ mà trong
chương trỡnh cú cõu lệnh với số lần lặp
chưa biết trước
Xột vớ dụ 4
GV: Cho học sinh quan sỏt phim trong
chương trỡnh
Hs: quan sỏt
GV: Chạy chương trỡnh này, ta nhận
được giỏ trị ntn?
GV: giới thiệu vớ dụ 5 sgk
Viết chương trỡnh tớnh tổng
T
GV: Vớ dụ này cho thấy rằng chỳng ta cú
thể sử dụng cõu lệnh while…do thay cho
cõu lệnh for…do
- Trong đó:
+ Điều kiện: Thường là một phép so sánh;
+ Câu lệnh: Có thể là câu lệnh đơn giản hay câu lệnh ghép;
* Nguyên tắc hoạt động:
- Kiểm tra điều kiện.
- Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc Nếu điều kiện
đúng, thực hiện câu lệnh và quay lại kiểm tra
điều kiện.
Vớ dụ 4 Chương trỡnh Pascal dưới đõy thể
hiện thuật toỏn tớnh số n trong vớ dụ 2:
var S,n: integer;
begin S:=0; n:=1;
while S<=1000 do begin S:=S+n; n:=n+1; end;
writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S);
end.
Vớ dụ 5 Viết chương trỡnh tớnh tổng
T
Giải :
Để viết chương trỡnh tớnh tổng
ta cú thể sử dụng lệnh
T
lặp với số lần lặp biết trước for…do :
T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
Nếu sử dụng lệnh lặp while…do , đoạn chương trỡnh dưới đõy cũng cho cựng một kết quả:
T:=0;
i:=1;
while i<=100 do begin T:=T+1/i; i:=i+1 end;
Trang 6GV: Giới thiệu phần 3
GV: Khi viết chương trỡnh sử dụng cấu
trỳc lặp cần chỳ ý trỏnh tạo nờn vũng lặp
khụng bao giờ kết thỳc
Hs: Chỳ ý nghe
GV: Cho HS quan sát chương trình lặp vô
hạn ở máy chiếu ? Vì sao chương trình này sẽ
lặp vô hạn?
HS: Trả lời.
GV: Nhận xét và lưu ý cho HS.
Trong chương trỡnh trờn, giỏ trị của biến
a luụn luụn bằng 5, điều kiện a<6 luụn
luụn đỳng nờn lệnh writeln('A') luụn được
thực hiện.
HS: Chú ý, ghi bài.
writeln(T);
* Nhận xột: Vớ dụ này cho thấy rằng chỳng
ta cú thể sử dụng cõu lệnh while…do thay cho cõu lệnh for…do
3 Lặp vô hạn lần - lỗi lập trình cần tránh.
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
* Lưu ý: Do vậy, khi thực hiện vũng lặp, điều
kiện trong cõu lệnh phải được thay đổi để
sớm hay muộn giỏ trị của điều kiện được chuyển từ đỳng sang sai Chỉ như thế
chương trỡnh mới khụng "rơi" vào những
"vũng lặp vụ tận".
IV Cũng cố: (5 phút)
- Nhấn mạnh những nội dung chính, trọng tâm.
- Hướng dẫn học sinh các câu hỏi và bài tập ở SGK.
V Dặn dò:
- Học bài Làm bài tập 1, 2, 3, 4, 5 SGK Chuẩn bị cho bài TH 6.
* Rút kinh nghiệm: