* Có thể diễn tả bài toán trên bằng sơ Sơ đồ khối Các hoạt động lặp với số lần đồ như sau: chưa biết trước phụ thuộc vào Sai cái gì và chỉ dừng lại khi nào?... Ví dụ về lệnh lặp với số l[r]
(1)Giaùo vieân: Phan Theá Duïc PhanLop8.net Thế Dục (2) KIỂM TRA BÀI CŨ: • Caâu hoûi: Neâu cuù phaùp cuûa caâu leänh lặp với số lần biết trước Pascal: for to do? TRẢ LỜI: PhanLop8.net Thế Dục (3) Cú pháp câu lệnh lặp For…Do For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; Trong đó: For, to, do: là các từ khóa <biến đếm>: là biến có kiểu liệu nguyên <gt đầu>, <gt cuối>: là các số nguyên <câu lệnh>: có thể là lệnh đơn lệnh gheùp PhanLop8.net Thế Dục (4) VD1: Viết chương trình tính tổng các số tự nhiên từ đến 100 S = + + + +100 VD2: Viết chương trình nhập vào các số gặp thì dừng lại Tính tổng các số vừa nhập Chưa biết lặp lần Lặp 100 lần Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do để viết chương trình Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình? PhanLop8.net Thế Dục (5) PhanLop8.net Thế Dục (6) Các hoạt động lặp với số lần chưa biết trước Ví duï 1: Moät ngaøy chuû nhaät, baïn Long goïi ñieän cho Trang Khoâng coù nhaác maùy Long quyeát ñònh goïi thêm hai lần Nếu không có nhấc máy thì là không có nhà Như Long đã biết trước là mình lặp lại hoạt động gọi điện thêm hai lần Một ngày khác, Long định 10 phút gọi điện lần cho Trang nào có người nhấc maùy PhanLop8.net Thế Dục (7) ?Lần nàyLong lặp lại hoạt động gọi lần? ?Điều kiện để kết thúc hoạt động lăp là gì? Trả lời: -Long chưa biết lặp lại hoạt động gọi điện lần -Điều kiện kết thúc hoạt động lặp là có người nhấc máy PhanLop8.net Thế Dục (8) Ví dụ 2: Nếu cộng n số tự nhiên đầu tiên (n=1, 2, 3,…), Ta các kết quaû T1=1, T2=1+2, T3=1+2+3,… taêng daàn Cần cộng bao nhiêu số tự nhiên đầu tiên dể ta nhân tổng Tn nhỏ lớn 1000 ? PhanLop8.net Thế Dục (9) … tăng dần Điều kiện: Khi tổng Tn nhỏ Điều kiện thì nàokết lớn 1000 thì kết thúc hoạt động thúc hoạtlặp? động lặp PhanLop8.net Thế Dục (10) Phân n … tích bài toán: Tổng Tn T1 = T2 = + T3 = + + … Tn = + + + … ? +? (Sao cho Tn nhỏ lớn 1000) PhanLop8.net Thế Dục Điều kiện Tn ≤ 1000 Đúng Đúng Đúng … Sai, kết thúc việc tính tổng 10 (11) Kí hiệu S là tổng cần tìm và ta có thuật toán sau: S 0, n Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước S S + n và quay lại bước In kết quả: S và n là số tự nhiên nhỏ cho S>1000 Kết thúc thuật toán PhanLop8.net Thế Dục 11 (12) * Có thể diễn tả bài toán trên sơ Sơ đồ khối Các hoạt động lặp với số lần đồ sau: chưa biết trước phụ thuộc vào Sai cái gì và dừng lại nào? Điều kiện? S1000? Đúng Đúng Câu lệnh n n+1; S S+n; PhanLop8.net Thế Dục Sai 12 (13) Ví dụ lệnh lặp với số lần chưa biết trước • Trong Pascal, cú pháp câu lệnh lặp với số lần chưa biết trước có dạng: • While < ñieàu kieän> <caâu leänh> ; • Trong đó: • Điều kiện thường là phép so sánh; • Caâu leänh coù theå laø caâu leänh ñôn giaûn hay caâu PhanLop8.net Thế Dục 13 (14) * Câu lệnh lặp này thực sau: Bước 1: Kiểm tra điều kiện Bước 2: Nếu điều kiện SAI, câu lệnh bị bỏ qua và việc thực lệnh lặp kết thúc Nếu điều kiện ĐÚNG, thực câu lệnh và quay lại bước * Ý nghĩa: Trong <điều kiện> còn đúng thì thực hiên <câu lệnh> PhanLop8.net Thế Dục 14 (15) SƠ ĐỒ KHỐI Điều kiện Sai Đúng Câu lệnh Phan Thế Dục Lop8.net 15 (16) VD1: While a<=b a:=a+1; Trong đó : While, là các từ khóa Điều kiện là a<=b (chứa phép so sánh) Câu lệnh là a:=a+1 (câu lệnh đơn) PhanLop8.net Thế Dục 16 (17) VD2: While a>b Begin write(‘a>b’); a:=a-1; End; FTrong đó : While, là các từ khóa Điều kiện là a>b (chứa phép so sánh) Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép) PhanLop8.net Thế Dục 17 (18) •Hoạt động nhóm Câu 1: Trong các hoạt động đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước? Vì sao? A B C D Tính tổng các số tự nhiên từ đến 20 Nhập các số nguyên từ bàn phím đủ 50 số Mỗi ngày học bài lần Nhập vào số số nhập vào là số chẵn thì dừng Phan Thế Dục Lop8.net 18 (19) • Đáp án đúng là: D • Vì: Khi nhập vào số ta chưa biết nào nhập số chẵn PhanLop8.net Thế Dục 19 (20) Phan Thế Dục Lop8.net 20 (21)