Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Phạm Thị Lắm |
Ngày 24/10/2018 |
44
Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8
Nội dung tài liệu:
NHIỆT LIỆT CHÀO MỪNG
QUÝ THẦY CÔ VỀ DỰ GIỜ
Trường THCS Trần Văn Trà
Giáo sinh: Phạm Thị Lắm
KIỂM TRA BÀI CŨ
Hãy ghi cú pháp của câu lệnh lặp For…do ?
For:= to
do;
Các em hãy quan sát
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
S = 1 + 2 + 3 + . . .+100
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
VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
Chưa biết lặp số lần lặp
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?
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI 8 - TIẾT 48:
(tiết 1)
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Em hãy cho thêm những ví dụ về hoạt động lặp với số lần chưa biết trước?
1. Các hoạt động lặp với số lần chưa biết trước:
Gieo hai hạt xúc sắc cho đến khi được hai mặt có cùng số nút.
Thử nhiều chìa khóa vào một ổ khóa cho đến khi tìm được đúng chìa khóa của ổ khóa.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
* Ví dụ 1:
Xảy ra 2 tình huống:
Tình huống 1: Bạn Long gọi cho Trang nhưng không có người nhấc máy và bạn Long quyết định gọi thêm 2 lần nữa.
3 lần
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
* Ví dụ 1:
- Tình hu?ng 2: M?t ngy khc, Long quy?t d?nh c? 10 pht g?i di?n m?t l?n cho Trang cho d?n khi no cĩ ngu?i nh?c my.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
Phân tích:
1
Đúng
S2 = 1 + 2
Đúng
Đúng
…..
………..
……
n
Sn = 1 + 2 + 3 + … + n
Sai KT
3
S3 = 1 + 2 + 3
2
S1 = 0 + 1
S1
=
+
n2
S2
=
+
n3
+
0
S0 = 0
S0
=
Đúng
n1
Sn-1
=
+
n
…..
………..
……
Tổng Sn
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + 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ả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Sơ đồ khối :
Điều kiện?
Kết thúc
Câu lệnh
Đúng
Sai
- Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
Kiểm tra
ĐK
Thực hiện
lệnh
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Sơ đồ khối ở ví dụ 2:
S<= 1000
n:= n + 1;
S:= S + n;
Kết thúc thuật toán
Sai
Đúng
Mô tả thuật toán với S > 10
S < =10
KT
n:=n+1;
S:=S+n;
Đúng
Sai
Đ
Đ
Đ
Đ
S
S:=0 ; n:=0
0
1
1
0 + 1=1
2
2
1+2=3
3
3
3+3=6
4
4
6+4=10
5
5
10+5=15
1
3
6
10
15
Vậy sau đoạn chương trình thì S= , n=
15
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
5
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước. Nói chung các ngôn ngữ lập trình đều có câu lệnh lặp này.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Trong Pascal câu lệnh lặp với số lần chưa biết trước có cú pháp While … do
While <điều kiện> do;
Điều kiện: biểu thức quan hệ hoặc biểu thức logic
Câu lệnh: là môt câu lệnh trong Pascal (có thể là câu lệnh đơn giản hay câu lệnh ghép)
Trong Pascal câu lệnh lặp với số lần chưa biết
trước có dạng:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Quan sát sơ đồ khối, hãy cho biết câu lệnh lặp được thực hiện như thế nào?
Bước 1: Kiểm tra điều kiện.
Bước 2: Nếu điều kiện đúng thì:
thực hiện lệnh cần lặp.
quay lại bước 1.
Điều kiện còn đúng thì câu lệnh còn thực hiện.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lệnh lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
Trong đó : While, do 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).
VD2: While a>b do
Begin write(‘a>b’); a:=a-1; End;
Trong đó : While, do 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).
Câu 1: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước?
CỦNG CỐ
Câu 2: Haõy xaùc ñònh nhöõng tröôøng hôïp sau coù phaûi laø tröôøng hôïp laëp vôùi soá laàn chöa bieát tröôùc hay khoâng?
Söûa loãi moät ñoaïn vaên baûn sau khi ñaùnh maùy
Ñeám soá böôùc ñi töø nhaø tôùi tröôøng
Ñeám soá giaây moät hoïc sinh giaûi moät baøi toaùn
Tìm soá n sao cho n laø soá nguyeân döông lôùn nhaát nhoû hôn 100
Ñeám soá xe maùy chaïy ngang qua moät ñoaïn ñöôøng trong moät ngaøy
Tính toång n soá nguyeân döông vôùi n nhaäp töø baøn phím
Ñeám soá laù coù treân moät caây
Về xem lại cấu trúc của lệnh lặp While..do, so sánh sự khác nhau giữa câu lệnh For..to..do với While..do.
Đọc trước bài mới.
HƯỚNG DẪN VỀ NHÀ
Xin chân thành cảm ơn quý thầy cô
và các em!
QUÝ THẦY CÔ VỀ DỰ GIỜ
Trường THCS Trần Văn Trà
Giáo sinh: Phạm Thị Lắm
KIỂM TRA BÀI CŨ
Hãy ghi cú pháp của câu lệnh lặp For…do ?
For
do
Các em hãy quan sát
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
S = 1 + 2 + 3 + . . .+100
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
VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
Chưa biết lặp số lần lặp
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?
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI 8 - TIẾT 48:
(tiết 1)
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Em hãy cho thêm những ví dụ về hoạt động lặp với số lần chưa biết trước?
1. Các hoạt động lặp với số lần chưa biết trước:
Gieo hai hạt xúc sắc cho đến khi được hai mặt có cùng số nút.
Thử nhiều chìa khóa vào một ổ khóa cho đến khi tìm được đúng chìa khóa của ổ khóa.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
* Ví dụ 1:
Xảy ra 2 tình huống:
Tình huống 1: Bạn Long gọi cho Trang nhưng không có người nhấc máy và bạn Long quyết định gọi thêm 2 lần nữa.
3 lần
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
* Ví dụ 1:
- Tình hu?ng 2: M?t ngy khc, Long quy?t d?nh c? 10 pht g?i di?n m?t l?n cho Trang cho d?n khi no cĩ ngu?i nh?c my.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
Phân tích:
1
Đúng
S2 = 1 + 2
Đúng
Đúng
…..
………..
……
n
Sn = 1 + 2 + 3 + … + n
Sai KT
3
S3 = 1 + 2 + 3
2
S1 = 0 + 1
S1
=
+
n2
S2
=
+
n3
+
0
S0 = 0
S0
=
Đúng
n1
Sn-1
=
+
n
…..
………..
……
Tổng Sn
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + 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ả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Sơ đồ khối :
Điều kiện?
Kết thúc
Câu lệnh
Đúng
Sai
- Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
Kiểm tra
ĐK
Thực hiện
lệnh
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
* Sơ đồ khối ở ví dụ 2:
S<= 1000
n:= n + 1;
S:= S + n;
Kết thúc thuật toán
Sai
Đúng
Mô tả thuật toán với S > 10
S < =10
KT
n:=n+1;
S:=S+n;
Đúng
Sai
Đ
Đ
Đ
Đ
S
S:=0 ; n:=0
0
1
1
0 + 1=1
2
2
1+2=3
3
3
3+3=6
4
4
6+4=10
5
5
10+5=15
1
3
6
10
15
Vậy sau đoạn chương trình thì S= , n=
15
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
5
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết:
Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước. Nói chung các ngôn ngữ lập trình đều có câu lệnh lặp này.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Trong Pascal câu lệnh lặp với số lần chưa biết trước có cú pháp While … do
While <điều kiện> do
Điều kiện: biểu thức quan hệ hoặc biểu thức logic
Câu lệnh: là môt câu lệnh trong Pascal (có thể là câu lệnh đơn giản hay câu lệnh ghép)
Trong Pascal câu lệnh lặp với số lần chưa biết
trước có dạng:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Quan sát sơ đồ khối, hãy cho biết câu lệnh lặp được thực hiện như thế nào?
Bước 1: Kiểm tra điều kiện.
Bước 2: Nếu điều kiện đúng thì:
thực hiện lệnh cần lặp.
quay lại bước 1.
Điều kiện còn đúng thì câu lệnh còn thực hiện.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví dụ về lệnh lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
Trong đó : While, do 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).
VD2: While a>b do
Begin write(‘a>b’); a:=a-1; End;
Trong đó : While, do 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).
Câu 1: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước?
CỦNG CỐ
Câu 2: Haõy xaùc ñònh nhöõng tröôøng hôïp sau coù phaûi laø tröôøng hôïp laëp vôùi soá laàn chöa bieát tröôùc hay khoâng?
Söûa loãi moät ñoaïn vaên baûn sau khi ñaùnh maùy
Ñeám soá böôùc ñi töø nhaø tôùi tröôøng
Ñeám soá giaây moät hoïc sinh giaûi moät baøi toaùn
Tìm soá n sao cho n laø soá nguyeân döông lôùn nhaát nhoû hôn 100
Ñeám soá xe maùy chaïy ngang qua moät ñoaïn ñöôøng trong moät ngaøy
Tính toång n soá nguyeân döông vôùi n nhaäp töø baøn phím
Ñeám soá laù coù treân moät caây
Về xem lại cấu trúc của lệnh lặp While..do, so sánh sự khác nhau giữa câu lệnh For..to..do với While..do.
Đọc trước bài mới.
HƯỚNG DẪN VỀ NHÀ
Xin chân thành cảm ơn quý thầy cô
và các em!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phạm Thị Lắm
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)