Kiểm tra bài cũCâu 1: Em hãy nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước trong cuộc sống hàng ngày của chúng ta?. Kiểm tra bài cũCâu 2: Em hãy trình bày cú pháp của câ
Trang 2I Kiểm tra bài cũ
Câu 1: Em hãy nêu một vài ví dụ về hoạt động lặp với
số lần chưa biết trước trong cuộc sống hàng ngày của chúng ta?
Trả lời:
- Tập lái xe đến khi biết lái
- Học thuộc lòng một bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại…
Trang 3I Kiểm tra bài cũ
Câu 2: Em hãy trình bày cú pháp của câu lệnh lặp với số lần chưa biết trước? Nêu hoạt động của câu lệnh?
Trả lời:
Cú pháp: while <điều kiện> do <câu lệnh>;
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.
Câu lệnh lặp này được thực hiện như sau:
(1) Kiểm tra điều kiện:
(2) Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và chuyển
Trang 4Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC( Tiết 2)
II Mục đích, yêu cầu:
- 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 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.
- Hiểu hoạt động của của lệnh lặp với số lần
chưa biết trước while do trong Pascal
Trang 5Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
III Nội dung
1 Các hoạt động lặp với số lần chưa biết trước
2 Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 4:
( Đọc ví dụ 2 trong SGK)
Trang 6Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
2 Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 5: Viết chương trình tính tổng
T = + + + +
? Bài toán này lặp với số lần biết trước hay chưa biết trước
Bài toán lặp với số lần biết trước
Trang 7Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
* Giải bài toán bằng câu lệnh lặp với số lần biết trước
Program vidu5_1;
Var i: integer;
T: real;
Begin T:=0;
For i:=1 to 100 do T:=T+1/i;
Writeln (T);
End.
Trang 8Program vidu5_2;
Var i: integer;
T: real;
Begin T:=0;
i:=1;
while i<=100 do begin T:=T+1/i;
i:=i+1; end;
end
* Giải bài toán bằng câu lệnh lặp với số lần chưa biết trước
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Kết quả 2 chương trình trên bằng nhau
Trang 9* Lưu ý:
- Chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.
- Tùy trường hợp mà chúng ta sử dụng câu lệnh for…do… thay cho câu lệnh while…do… vì lệnh lặp while…do… chỉ
phù hợp cho lệnh lặp với số lần chưa biết trước còn câu
lệnh for…do phù hợp lệnh lặp với số lần biết trước
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 103 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.
Var a:Integer;
Begin a:=5;
While a < 6 do Begin
Writeln(‘A’);
a:=a+1;
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 11 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"
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 12GHI NHỚ:
1 Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
2 While…do là câu lệnh lặp với số lần chưa biết trước trong pascal.
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 13Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
IV Củng cố
Câu hỏi 1: Hãy nêu cú pháp câu lệnh lặp với số lần chưa biết trước ? Cho ví dụ minh họa
Trang 14Câu hỏi 2: Chương trình sau đây tính tổng 10 số tự nhiên đầu tiên Hãy nhìn vào chương trình sau và phát hiện lỗi sai của chương trình:
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 15Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Chương trình đúng như sau:
Trang 16V Dặn dò
- Về nhà chạy lại chương trình trong các ví dụ
2, 3, 4, 5 SGK
- Trả lời các câu hỏi và bài tập trang 71 SGK.
- Chú ý cú pháp và các bài tập về câu lệnh lặp với số lần chưa biết trước để tiết sau thực hành
Tiết 50 – Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC