Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Ngọc Hợi |
Ngày 10/05/2019 |
73
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:
? 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 các 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 các bài toán đơn giản
?
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ũ
?
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 đ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, những thao tác, những câu lệnh lặp đi lặp lại nhiều lần thì 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?
?
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
Gợi ý
Nếu N =10, S=?; lập trình giải như thế nào?
S=1+2+3+ . +10;
S:=0;
i=1 ? S:=S+i=1;
i=2 ? S:=S+i=3;
.....
i=10 ? S:=S+i=55;
?
S:=0;
i=1 ? S:=S+i;
i=2 ? S:=S+i;
.....
i=10 ? S:=S+i;
.......
i=100 ? S:=S+i
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
- 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
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
Tên gọi của thuật toá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
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
Mô tả các bước đi của thuật toá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
Cũng với bài toán trên hãy nêu các bước của thuật toán lặp dạng lùi
?
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+ ... ;
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
?
?
?
?
?
Nắm vững cú pháp và cách sử dụng câu lệnh lặp có số lần biết trước;
Tiết sau sẽ nghiên cứu câu lệnh lặp có số lần không biết trước;
?
?
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 các 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 các bài toán đơn giản
?
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ũ
?
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 đ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, những thao tác, những câu lệnh lặp đi lặp lại nhiều lần thì 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?
?
Vd3: Tính và đưa kết quả ra màn hình
Tổng S =1+2+3+ ... +N
Gợi ý
Nếu N =10, S=?; lập trình giải như thế nào?
S=1+2+3+ . +10;
S:=0;
i=1 ? S:=S+i=1;
i=2 ? S:=S+i=3;
.....
i=10 ? S:=S+i=55;
?
S:=0;
i=1 ? S:=S+i;
i=2 ? S:=S+i;
.....
i=10 ? S:=S+i;
.......
i=100 ? S:=S+i
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
- 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
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
Tên gọi của thuật toá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
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
Mô tả các bước đi của thuật toá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
Cũng với bài toán trên hãy nêu các bước của thuật toán lặp dạng lùi
?
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+ ... ;
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
?
?
?
?
?
Nắm vững cú pháp và cách sử dụng câu lệnh lặp có số lần biết trước;
Tiết sau sẽ nghiên cứu câu lệnh lặp có số lần không biết trước;
?
?
* 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 Ngọc Hợ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)