Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Thành Phương |
Ngày 10/05/2019 |
55
Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11
Nội dung tài liệu:
1
XIN CHÀO CÁC EM HỌC SINH ĐẾN VỚI TIẾT HỌC HÔM NAY !
KIỂM TRA BÀI CŨ
Câu 1: Viết cấu trúc lặp IF – THEN ở dạng đủ? Cho ví dụ?
Câu 2: Viết cấu trúc câu lệnh ghép trong Pascal?
2
KIỂM TRA BÀI CŨ
Câu 3: Theo em, chương trình sau sẽ thực hiện như thế nào?
3
BÀI 10: CẤU TRÚC LẶP
4
1. LẶP
5
Hồ nước
Ví dụ mở đầu: Xét công việc đổ nước vào bình 20 lít từ hồ nước
- Đổ vào bình bằng ca 1 lít ta phải đổ bao nhiêu lần thì bình đầy?
- Đổ vào bình bằng ca không biết dung tích ta phải đổ bao nhiêu lần thì bình đầy?
Câu hỏi đặt ra:
Vậy theo các em, lặp là gì? Và có mấy dạng lặp?
1. LẶP
1. LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai loại
- Lặp với số lần biết trước
- Lặp với số lần chưa biết trước
1. LẶP
Chúng ta xét thêm hai bài toán nữa
Bài toán 1: Tính và đưa kết quả ra màn hình tổng
S = 1 + 2 + 3 + …+ 100
Bài toán 1: Tính và đưa kết quả ra màn hình tổng
S = 1 + 2 + 3 + …+ N + …
cho đến khi S > 150
Các em hãy suy nghĩ thuật toán để giải hai bài toán trên?
CÙNG TÌM THUẬT TOÁN
9
XUẤT PHÁT
LẦN 1
LẦN 2
LẦN 3
LẦN N
…
Bước 1: Gán S := 0 ;
Bước 2: Gán S := S + 1; { được S = 1}
Bước 3: Gán S := S + 2 ; { được S = 1 + 2}
Bước 3: Gán S := S + 3 ; { được S = 1 + 2 + 3}
.v.v.
Bước N + 1: Gán S := S + N; { được S = 1 + 2 + 3 + …+ N}
Mỗi lần thực hiện ta cộng vào tổng S giá trị bao nhiêu?
10
Mỗi lần thực hiện tổng S tăng lên giá trị i với i = 1, 2, 3, …, N
Ta so sánh hai bài toán
BÀI TOÁN 1
BÀI TOÁN 2
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần
Số lần lặp biết trước
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi S > 150
Số lần lặp chưa biết trước
11
2. LẶP VỚI SỐ LẦN BiẾT TRƯỚC VÀ CÂU LỆNH FOR - DO
Xét hai thuật toán Tong_1a và Tong_1b để giải bài toán 1 như sau:
* Thuật toán Tong_1a
Bước 1: S 0, i 0
Bước 2: i i + 1
Bước 3: Nếu i > 100 thì chuyển đến bước 5
Bước 4: S S + i rồi quay lại bước 2
Bước 5: Đưa S ra màn hình rồi kết thúc
Nhận xét thuật toán Tong_1a
12
Giá trị i tham gia vòng lặp là 1 và sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 ( i = 101) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i tăng lên như vậy , giống như luôn tiến về phía trước nên ta nói cách lặp trong thuật toán Tong_1a là dạng tiến
13
2. LẶP VỚI SỐ LẦN BiẾT TRƯỚC VÀ CÂU LỆNH FOR - DO
* Thuật toán Tong_1b
Bước 1: S 0, i 101
Bước 2: i i - 1
Bước 3: Nếu i < 1 thì chuyển đến bước 5
Bước 4: S S + i rồi quay lại bước 2
Bước 5: Đưa S ra màn hình rồi kết thúc
Nhận xét thuật toán Tong_1b
14
Giá trị i tham gia vòng lặp là 100 và sau mỗi lần lặp i giảm xuống 1 cho đến khi i < 1 ( i = 0) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i giảm xuống như vậy , giống như đi lùi về phía sau nên ta nói cách lặp trong thuật toán Tong_1b là dạng lùi
Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh For – Do với hai dạng tiến và lùi như sau
Dạng lặp tiến:
for < biến đếm > := < giá trị đầu > to < giá trị cuối > do < câu lệnh> ;
Dạng lặp lùi:
for < biến đếm > := < giá trị cuối > downto < giá trị đầu > do < câu lệnh> ;
Trong đó:
- Biến đếm: là biến đơn, có kiểu nguyên hoặc kiểu kí tự
- Giá trị đầu, giá trị cuối: là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
15
VÍ DỤ:
For i:=1 to 10 do writeln(‘Pascal’) ;
in ra màn hình 10 lần xâu ‘Pascal’
For i:= 20 downto 1 do writeln(‘Pascal’) ;
in ra màn hình 20 lần xâu ‘Pascal’
For i:=‘a’ to ‘z’ do write (i) ;
in ra màn hình các kí tự từ a đến z
For i:=100 downto 1 do write (i) ;
in ra màn hình các số từ 100 đến 1
Trổ tài viết câu lệnh !
Các em hãy suy nghĩ viết các câu lệnh cần thiết để tính tổng S của bài toán 1?
Chương trình tính theo thuật toán Tong_1a
Chương trình tính theo thuật toán Tong_1b
Kết quả của hai chương trình trên
Hoạt động của lệnh For - Do
Ở dạng lặp tiến: câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối
Hoạt động của lệnh For - Do
Ở dạng lặp lùi: câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
KiẾN THỨC TRỌNG TÂM
Biết lặp là như thế nào?
Nắm 2 dạng cấu trúc của câu lệnh For – Do
Hiểu được các ví dụ
CỦNG CỐ BÀI HỌC
Câu 1: x biến kiểu thực, i biến kiểu nguyên, câu lệnh nào sau đây là đúng?
A. For i:=1 to 10 do writeln(‘Lop 11A1’);
B. For i:=1 to 10 do writeln(‘Lop 11A1’);
C. For x:=1.5 to 10.5 do writeln(‘Lop 11A1’);
D. For i:=1.5 to 10 do writeln(‘Lop 11A1’);
CỦNG CỐ BÀI HỌC
Câu 2: Cú pháp lệnh lặp nào sau đây là sai?
A. For i:=10 downto 1 do writeln(‘Lop 11A1’);
B. For i:=1 downto 10 do writeln(‘Lop 11A1’);
C. For i:=0 to 100 do writeln(‘Lop 11A1’);
D. For i:=1 to 1 do writeln(‘Lop 11A1’);
Nội dung chuẩn bị cho tiết học sau
Về học lại bài , xem thêm VD SGK và chuẩn bị trước phần 3 của bài: Lặp với số lần chưa biết trước và câu lệnh WHILE - DO.
26
BÀI TẬP VỀ NHÀ
BÀI TẬP 1: ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN
Nhập vào số tự nhiên N và tính tổng S
27
BÀI TẬP 2 : ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN
Nhập vào số tự nhiên N và tính tích T
KẾT THÚC BÀI HỌC
CHÂN THÀNH CẢM ƠN !
28
XIN CHÀO CÁC EM HỌC SINH ĐẾN VỚI TIẾT HỌC HÔM NAY !
KIỂM TRA BÀI CŨ
Câu 1: Viết cấu trúc lặp IF – THEN ở dạng đủ? Cho ví dụ?
Câu 2: Viết cấu trúc câu lệnh ghép trong Pascal?
2
KIỂM TRA BÀI CŨ
Câu 3: Theo em, chương trình sau sẽ thực hiện như thế nào?
3
BÀI 10: CẤU TRÚC LẶP
4
1. LẶP
5
Hồ nước
Ví dụ mở đầu: Xét công việc đổ nước vào bình 20 lít từ hồ nước
- Đổ vào bình bằng ca 1 lít ta phải đổ bao nhiêu lần thì bình đầy?
- Đổ vào bình bằng ca không biết dung tích ta phải đổ bao nhiêu lần thì bình đầy?
Câu hỏi đặt ra:
Vậy theo các em, lặp là gì? Và có mấy dạng lặp?
1. LẶP
1. LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai loại
- Lặp với số lần biết trước
- Lặp với số lần chưa biết trước
1. LẶP
Chúng ta xét thêm hai bài toán nữa
Bài toán 1: Tính và đưa kết quả ra màn hình tổng
S = 1 + 2 + 3 + …+ 100
Bài toán 1: Tính và đưa kết quả ra màn hình tổng
S = 1 + 2 + 3 + …+ N + …
cho đến khi S > 150
Các em hãy suy nghĩ thuật toán để giải hai bài toán trên?
CÙNG TÌM THUẬT TOÁN
9
XUẤT PHÁT
LẦN 1
LẦN 2
LẦN 3
LẦN N
…
Bước 1: Gán S := 0 ;
Bước 2: Gán S := S + 1; { được S = 1}
Bước 3: Gán S := S + 2 ; { được S = 1 + 2}
Bước 3: Gán S := S + 3 ; { được S = 1 + 2 + 3}
.v.v.
Bước N + 1: Gán S := S + N; { được S = 1 + 2 + 3 + …+ N}
Mỗi lần thực hiện ta cộng vào tổng S giá trị bao nhiêu?
10
Mỗi lần thực hiện tổng S tăng lên giá trị i với i = 1, 2, 3, …, N
Ta so sánh hai bài toán
BÀI TOÁN 1
BÀI TOÁN 2
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần
Số lần lặp biết trước
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi S > 150
Số lần lặp chưa biết trước
11
2. LẶP VỚI SỐ LẦN BiẾT TRƯỚC VÀ CÂU LỆNH FOR - DO
Xét hai thuật toán Tong_1a và Tong_1b để giải bài toán 1 như sau:
* Thuật toán Tong_1a
Bước 1: S 0, i 0
Bước 2: i i + 1
Bước 3: Nếu i > 100 thì chuyển đến bước 5
Bước 4: S S + i rồi quay lại bước 2
Bước 5: Đưa S ra màn hình rồi kết thúc
Nhận xét thuật toán Tong_1a
12
Giá trị i tham gia vòng lặp là 1 và sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 ( i = 101) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i tăng lên như vậy , giống như luôn tiến về phía trước nên ta nói cách lặp trong thuật toán Tong_1a là dạng tiến
13
2. LẶP VỚI SỐ LẦN BiẾT TRƯỚC VÀ CÂU LỆNH FOR - DO
* Thuật toán Tong_1b
Bước 1: S 0, i 101
Bước 2: i i - 1
Bước 3: Nếu i < 1 thì chuyển đến bước 5
Bước 4: S S + i rồi quay lại bước 2
Bước 5: Đưa S ra màn hình rồi kết thúc
Nhận xét thuật toán Tong_1b
14
Giá trị i tham gia vòng lặp là 100 và sau mỗi lần lặp i giảm xuống 1 cho đến khi i < 1 ( i = 0) thì kết thúc lặp ( thực hiện lặp đủ 100 lần). Giá trị i giảm xuống như vậy , giống như đi lùi về phía sau nên ta nói cách lặp trong thuật toán Tong_1b là dạng lùi
Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh For – Do với hai dạng tiến và lùi như sau
Dạng lặp tiến:
for < biến đếm > := < giá trị đầu > to < giá trị cuối > do < câu lệnh> ;
Dạng lặp lùi:
for < biến đếm > := < giá trị cuối > downto < giá trị đầu > do < câu lệnh> ;
Trong đó:
- Biến đếm: là biến đơn, có kiểu nguyên hoặc kiểu kí tự
- Giá trị đầu, giá trị cuối: là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
15
VÍ DỤ:
For i:=1 to 10 do writeln(‘Pascal’) ;
in ra màn hình 10 lần xâu ‘Pascal’
For i:= 20 downto 1 do writeln(‘Pascal’) ;
in ra màn hình 20 lần xâu ‘Pascal’
For i:=‘a’ to ‘z’ do write (i) ;
in ra màn hình các kí tự từ a đến z
For i:=100 downto 1 do write (i) ;
in ra màn hình các số từ 100 đến 1
Trổ tài viết câu lệnh !
Các em hãy suy nghĩ viết các câu lệnh cần thiết để tính tổng S của bài toán 1?
Chương trình tính theo thuật toán Tong_1a
Chương trình tính theo thuật toán Tong_1b
Kết quả của hai chương trình trên
Hoạt động của lệnh For - Do
Ở dạng lặp tiến: câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối
Hoạt động của lệnh For - Do
Ở dạng lặp lùi: câu lệnh viết sau từ khóa Do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
KiẾN THỨC TRỌNG TÂM
Biết lặp là như thế nào?
Nắm 2 dạng cấu trúc của câu lệnh For – Do
Hiểu được các ví dụ
CỦNG CỐ BÀI HỌC
Câu 1: x biến kiểu thực, i biến kiểu nguyên, câu lệnh nào sau đây là đúng?
A. For i:=1 to 10 do writeln(‘Lop 11A1’);
B. For i:=1 to 10 do writeln(‘Lop 11A1’);
C. For x:=1.5 to 10.5 do writeln(‘Lop 11A1’);
D. For i:=1.5 to 10 do writeln(‘Lop 11A1’);
CỦNG CỐ BÀI HỌC
Câu 2: Cú pháp lệnh lặp nào sau đây là sai?
A. For i:=10 downto 1 do writeln(‘Lop 11A1’);
B. For i:=1 downto 10 do writeln(‘Lop 11A1’);
C. For i:=0 to 100 do writeln(‘Lop 11A1’);
D. For i:=1 to 1 do writeln(‘Lop 11A1’);
Nội dung chuẩn bị cho tiết học sau
Về học lại bài , xem thêm VD SGK và chuẩn bị trước phần 3 của bài: Lặp với số lần chưa biết trước và câu lệnh WHILE - DO.
26
BÀI TẬP VỀ NHÀ
BÀI TẬP 1: ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN
Nhập vào số tự nhiên N và tính tổng S
27
BÀI TẬP 2 : ViẾT CHƯƠNG TRÌNH GiẢI BÀI TOÁN
Nhập vào số tự nhiên N và tính tích T
KẾT THÚC BÀI HỌC
CHÂN THÀNH CẢM ƠN !
28
* 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ẻ: Nguyễn Thành Phương
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)