Bài 10. Cấu trúc lặp
Chia sẻ bởi Lê Quang Hoài |
Ngày 10/05/2019 |
178
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:
Câu 1: Trình bày cấu trúc và ý nghĩa của câu lệnh If - Then?
Câu 2: Câu lệnh ghép có dạng gì? Khi nào ta sử dụng câu lệnh ghép?
Kiểm tra bài cũ
?
? Bài 10. CẤU TRÚC LẶP
?
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
Hiểu cấu trúc lặp kiểm tra điều kiện trước, sau
Vận dụng cấu trúc lặp vào tình huống cụ thể
Mô tả được thuật toán của
một số bài toán có sử dụng cấu trúc lặp
Viết đúng các câu lệnh về lặp
Viết được thuật toán của
một số bài toán đơn giản
? 1. Khái niệm lặp
Vd1: Bài toán gửi tiền vào ngân hàng:
Gửi 1 000 000đ vào ngân hàng, lãi suất là 2% một tháng, Tính số tiền thu được sau mỗi tháng.
Cách tính tiền
thu được sau mỗi tháng?
?
Tiền của tháng sau = gốc+lãi tháng trước.
1 020 000+20 400
Lãi 2%
Tháng thứ 2
Vốn 1 020 000
?
1 040 000+20 808
Lãi 2%
Tháng thứ 3
Vốn 1 040 400
1 000 000+20 000
Lãi 2%
Tháng thứ 1
Vốn 1 000 000
1 020 000
1 040 400
1 061 208
Công việc tính toán này
được lặp đi lặp lại
sau mỗi tháng
?
Gốc của tháng sau = gốc+lãi tháng trước.
Vd2:
Lập trình tính điểm cho hsinh một lớp.
Ta sẽ phải lặp đi lặp lại một số thao tác như sau với mỗi học sinh:
+ Nhập họ tên học sinh (hoặc số báo danh);
+ Nhập điểm (các môn);
+ Tính tổng điểm hoặc tính điểm trung bình;
?
?
Lặp có nghĩa là làm đi làm lại nhiều lần cùng một thao tác.
Trong lập trình, cũng có những thao tác, những câu lệnh lặp đi lặp lại nhiều lần tạo thành một cấu trúc lặp.
Có 2 loại cấu trúc lặp:
- Lặp với số lần biết trước;
- Lặp với số lần không biết trước.
Tóm lại:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
Tìm cách để lập trình giải các bài toán này?
?
Nếu N =10, S=?; lập trình giải như thế nào?
S:=0;
i=1 ? S:=S+1=1;
i=2 ? S:=S+2=3;
.....
i=10 ? S:=S+10=55;
S=1+2+3+ . +10;
Gợi ý
?
Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N;
S:=0;
i=1 ? S:=S+1;
i=2 ? S:=S+2;
.....
i=10 ? S:=S+10;
.......
i=100 ? S:=S+100
Nếu N =100, lập trình giải như thế nào?
Em có nhận xét gì về cách giải này?
?
Thuật giải:
- Đầu tiên gán giá trị 0 cho tổng S
- Cho biến đếm ( chẳng hạn i) tăng dần từ 1 đến N, cứ mỗi giá trị của i, thực hiện câu lệnh S:=S+i;
Công việc lặp này được thực hiện N lần
?
2) Lặp với số lần biết trước:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
- Câu lệnh for-do: Lặp với số lần biết trước
? Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trước:
? - Lặp dạng tiến:
? For:= to do ;
? - Lặp dạng lùi:
? For:= downto do ;
?
? Trong đó:
? - Biến đếm thường là biến kiểu số nguyên
? - Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
? - Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
? - Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
? - Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần.
?
Thuật toán 1a;
B1: S ? 0; i ?1;
B2: Nếu i >10 ? B5
B3: S ? S+i;
B4: i ? i +1; ? B2
B5: Đưa ra S ; Kết thúc
Thuật toán 1b;
B1: S ? 0; i ?10;
B2: Nếu i <1 ? b5
B3: S ? S+i;
B4: i ? i -1; ? B2
B5: Đưa ra S ; Kết thúc
?
Mô tả thuật toán:
Tính và đưa kết quả ra màn hình.
Tổng S =1+2+3+ ... +N; Với N=10
So sánh hai
thuật toán?
Thuật toán lặp bao nhiêu lần?
Chú ý:
- Sau mỗi lần lặp, biến đếm Tự động tăng lên (dạng tiến) hoặc giảm xuống (dạng lùi)
-Trong vòng lặp, không được có câu lệnh tác động đến giá trị của biến đếm.
Trong câu lệnh FOR . . . DO, Nếu giá trị đầu = giá trị cuối thì vòng lặp sẽ được thực hiện 1 lần
?
Vd4:Tính và đưa kết quả ra màn hình tổng.
S =1+2+3+ ... +N;
Cho đến khi S? 20
Giải bài toán như thế nào?
?
Bài toán này có giống bài toán trước không?
Cách giải có giống cách giải bài trên không?
Thuật giải:
- Đầu tiên gán giá trị 0 cho tổng S
- Kiểm tra, nếu S<20 thì cho biến đếm (chẳng hạn i) tăng lên 1 đơn vị rồi thực hiện câu lệnh s:=S + i; sau đó lại kiểm tra.
Không biết được phải lặp bao nhiêu lần, vì chỉ khi nào S>=20 thì ngưng lại không lặp nữa.
?
b) Lặp với số lần không biết trước:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N cho đến khi S>=20
Hãy đánh dấu vào ô đúng hoặc sai
những câu dưới đây?
Đúng Sai
?
?
?
?
?
Hãy đánh dấu vào ô đúng hoặc sai
những câu dưới đây?
Đúng Sai
?
?
?
?
?
Hết
Về nhà các em học bài và xem trước phần kế tiếp của bài học hôm nay
?
Câu 2: Câu lệnh ghép có dạng gì? Khi nào ta sử dụng câu lệnh ghép?
Kiểm tra bài cũ
?
? Bài 10. CẤU TRÚC LẶP
?
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
Hiểu cấu trúc lặp kiểm tra điều kiện trước, sau
Vận dụng cấu trúc lặp vào tình huống cụ thể
Mô tả được thuật toán của
một số bài toán có sử dụng cấu trúc lặp
Viết đúng các câu lệnh về lặp
Viết được thuật toán của
một số bài toán đơn giản
? 1. Khái niệm lặp
Vd1: Bài toán gửi tiền vào ngân hàng:
Gửi 1 000 000đ vào ngân hàng, lãi suất là 2% một tháng, Tính số tiền thu được sau mỗi tháng.
Cách tính tiền
thu được sau mỗi tháng?
?
Tiền của tháng sau = gốc+lãi tháng trước.
1 020 000+20 400
Lãi 2%
Tháng thứ 2
Vốn 1 020 000
?
1 040 000+20 808
Lãi 2%
Tháng thứ 3
Vốn 1 040 400
1 000 000+20 000
Lãi 2%
Tháng thứ 1
Vốn 1 000 000
1 020 000
1 040 400
1 061 208
Công việc tính toán này
được lặp đi lặp lại
sau mỗi tháng
?
Gốc của tháng sau = gốc+lãi tháng trước.
Vd2:
Lập trình tính điểm cho hsinh một lớp.
Ta sẽ phải lặp đi lặp lại một số thao tác như sau với mỗi học sinh:
+ Nhập họ tên học sinh (hoặc số báo danh);
+ Nhập điểm (các môn);
+ Tính tổng điểm hoặc tính điểm trung bình;
?
?
Lặp có nghĩa là làm đi làm lại nhiều lần cùng một thao tác.
Trong lập trình, cũng có những thao tác, những câu lệnh lặp đi lặp lại nhiều lần tạo thành một cấu trúc lặp.
Có 2 loại cấu trúc lặp:
- Lặp với số lần biết trước;
- Lặp với số lần không biết trước.
Tóm lại:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
Tìm cách để lập trình giải các bài toán này?
?
Nếu N =10, S=?; lập trình giải như thế nào?
S:=0;
i=1 ? S:=S+1=1;
i=2 ? S:=S+2=3;
.....
i=10 ? S:=S+10=55;
S=1+2+3+ . +10;
Gợi ý
?
Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N;
S:=0;
i=1 ? S:=S+1;
i=2 ? S:=S+2;
.....
i=10 ? S:=S+10;
.......
i=100 ? S:=S+100
Nếu N =100, lập trình giải như thế nào?
Em có nhận xét gì về cách giải này?
?
Thuật giải:
- Đầu tiên gán giá trị 0 cho tổng S
- Cho biến đếm ( chẳng hạn i) tăng dần từ 1 đến N, cứ mỗi giá trị của i, thực hiện câu lệnh S:=S+i;
Công việc lặp này được thực hiện N lần
?
2) Lặp với số lần biết trước:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
- Câu lệnh for-do: Lặp với số lần biết trước
? Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trước:
? - Lặp dạng tiến:
? For
? - Lặp dạng lùi:
? For
?
? Trong đó:
? - Biến đếm thường là biến kiểu số nguyên
? - Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
? - Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
? - Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
? - Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần.
?
Thuật toán 1a;
B1: S ? 0; i ?1;
B2: Nếu i >10 ? B5
B3: S ? S+i;
B4: i ? i +1; ? B2
B5: Đưa ra S ; Kết thúc
Thuật toán 1b;
B1: S ? 0; i ?10;
B2: Nếu i <1 ? b5
B3: S ? S+i;
B4: i ? i -1; ? B2
B5: Đưa ra S ; Kết thúc
?
Mô tả thuật toán:
Tính và đưa kết quả ra màn hình.
Tổng S =1+2+3+ ... +N; Với N=10
So sánh hai
thuật toán?
Thuật toán lặp bao nhiêu lần?
Chú ý:
- Sau mỗi lần lặp, biến đếm Tự động tăng lên (dạng tiến) hoặc giảm xuống (dạng lùi)
-Trong vòng lặp, không được có câu lệnh tác động đến giá trị của biến đếm.
Trong câu lệnh FOR . . . DO, Nếu giá trị đầu = giá trị cuối thì vòng lặp sẽ được thực hiện 1 lần
?
Vd4:Tính và đưa kết quả ra màn hình tổng.
S =1+2+3+ ... +N;
Cho đến khi S? 20
Giải bài toán như thế nào?
?
Bài toán này có giống bài toán trước không?
Cách giải có giống cách giải bài trên không?
Thuật giải:
- Đầu tiên gán giá trị 0 cho tổng S
- Kiểm tra, nếu S<20 thì cho biến đếm (chẳng hạn i) tăng lên 1 đơn vị rồi thực hiện câu lệnh s:=S + i; sau đó lại kiểm tra.
Không biết được phải lặp bao nhiêu lần, vì chỉ khi nào S>=20 thì ngưng lại không lặp nữa.
?
b) Lặp với số lần không biết trước:
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N cho đến khi S>=20
Hãy đánh dấu vào ô đúng hoặc sai
những câu dưới đây?
Đúng Sai
?
?
?
?
?
Hãy đánh dấu vào ô đúng hoặc sai
những câu dưới đây?
Đúng Sai
?
?
?
?
?
Hết
Về nhà các em học bài và xem trước phần kế tiếp của bài học hôm nay
?
* 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ẻ: Lê Quang Hoài
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)