Bài 10. Cấu trúc lặp
Chia sẻ bởi Phạm Thị Hảo |
Ngày 10/05/2019 |
57
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:
CHÀO MỪNG QUÝ THẦY CÔ VỀ DỰ GIỜ
KIỂM TRA BÀI CŨ
Có mấy loại cấu trúc lặp? Đó là những loại nào?
Bài toán tính giai thừa: Với n là số nguyên dương nhập vào từ bàn phím, viết đoạn lệnh tính và xuất ra màn hình kết quả của n!
Đáp án:
Có 2 cấu trúc lặp:
Lặp với số lần biết trước
Lặp với số lần chưa biết trước
2. tich:=1;
For i:=n downto 1 do
tich:=tich*i;
Write(‘ket qua la:’, tich:4);
Bài toán 1:
Bài toán 2:
Tính và xuất ra màn hình tổng S, với a là số nguyên và a>2
cho đến khi
Bài toán 2:
Tính và xuất ra màn hình tổng S, với a là số nguyên và a>2
cho đến khi
Bước 1:
S:=1/a; N:=1;
{Khởi tạo S và N}
Bước 2:
Nếu 1/(a+N) < 0.0001
dua S ra mn hình rồi kết thúc
Bước 4:
S:=S+1/(a+N);
=> quay lại bước 2
thuật toán bài toán 2:
Bước 3: N? N+1;
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
3. Lặp với số lần chưa biết trước và câu lệnh while - do
While <điều kiện> do
Điều kiện: là biểu thức logic.
Câu lệnh là một câu lệnh đơn hoặc ghép.
Cấu trúc
Hoạt động của While - do
Câu lệnh
Điều kiện
Đúng
Sai
Sơ đồ hoạt động
While <điều kiện> do
SƠ đồ khối bài toán 2:
Đưa ra S
=> Kết thúc
Đ
S
Lưu ý:
Phủ định của biểu thức logic 1/(a+N) <0.0001 là biểu thức not(1/(a+N) <0.0001)
1/(a+N)>=0.0001
* Ví dụ 1: Viết đoạn lệnh tính và xuất ra màn hình tổng S trong bài toán 2
S:=1/a; N:=0;
While not(1/(a+N)<0.0001) do
begin
N:=N+1;
S:=S+1/(a+N);
end;
Writeln(‘Tong la:’, S:8:2);
* Ví dụ 2:
Nhập vào 2 số nguyên dương M, N. Tìm và xuất ra màn hình ƯCLN(M, N).
* Yêu cầu: Vi?t do?n lệnh nhập vào hai số nguyên dương M,N. Tìm ƯCLN của hai số đó.
B1: Nhập M,N;
B2 : Chừng nào M?N
nếu M>N thì M:=M-N,
ngược lại thì N:=N-M;
B3: Đến khi M=N thì
đưa ra ƯCLN(M,N)=M;
B1: readln(M,N);
B2 : While M<>N DO
Begin
IF M>N then M:=M-N
else N:=N-M; end;
B3: write(`UCLN la`, M);
Thuật toán
các bước viết câu lệnh
Mô tả hoạt động của vòng lặp, giả sử:
M= 4 ;N=10
M=4<>N=10 :kiểm tra
MM=4
N=6
M=4<>N=6 :kiểm tra
MM=2
N=2
M=4<>N=2 :kiểm tra
M>N nên M=M-N=4-2 =2
M=N :thoát khỏi vòng lặp
In ra ƯCLN là M
M=4
N=2
Lần thực hiện 1
Lần thực hiện 2
Lần thực hiện 3
Tham khảo:
Dạng khác của câu lệnh lặp với số lần lặp không biết trước
REPEAT UNTIL <Điều kiện>;
Điều kiện
Sai
Câu lệnh
Đúng
Sử dụng while…do… viết câu lệnh tính bài toán giai thừa:
tich:=1;
For i:=1 to n do
tich:=tich*i;
Write(‘ket qua la:’, tich:4);
tich:=1; i:=1;
While i<=n do
begin
tich:=tich*i;
i:=i+1;
End;
Write(‘ket qua la:’, tich:4);
Bài tập củng cố
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 3 b. 4 c. 5 d. 6
Bài tập củng cố
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 9 b. 10 c. 12 d. Kết quả khác
Dặn dò
Về nhà học bài cũ, làm các bài tập 4, 5, 6, 7, 8/ trang 51 SGK chuẩn bị tiết bài tập và thực hành
KIỂM TRA BÀI CŨ
Có mấy loại cấu trúc lặp? Đó là những loại nào?
Bài toán tính giai thừa: Với n là số nguyên dương nhập vào từ bàn phím, viết đoạn lệnh tính và xuất ra màn hình kết quả của n!
Đáp án:
Có 2 cấu trúc lặp:
Lặp với số lần biết trước
Lặp với số lần chưa biết trước
2. tich:=1;
For i:=n downto 1 do
tich:=tich*i;
Write(‘ket qua la:’, tich:4);
Bài toán 1:
Bài toán 2:
Tính và xuất ra màn hình tổng S, với a là số nguyên và a>2
cho đến khi
Bài toán 2:
Tính và xuất ra màn hình tổng S, với a là số nguyên và a>2
cho đến khi
Bước 1:
S:=1/a; N:=1;
{Khởi tạo S và N}
Bước 2:
Nếu 1/(a+N) < 0.0001
dua S ra mn hình rồi kết thúc
Bước 4:
S:=S+1/(a+N);
=> quay lại bước 2
thuật toán bài toán 2:
Bước 3: N? N+1;
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
3. Lặp với số lần chưa biết trước và câu lệnh while - do
While <điều kiện> do
Điều kiện: là biểu thức logic.
Câu lệnh là một câu lệnh đơn hoặc ghép.
Cấu trúc
Hoạt động của While - do
Câu lệnh
Điều kiện
Đúng
Sai
Sơ đồ hoạt động
While <điều kiện> do
SƠ đồ khối bài toán 2:
Đưa ra S
=> Kết thúc
Đ
S
Lưu ý:
Phủ định của biểu thức logic 1/(a+N) <0.0001 là biểu thức not(1/(a+N) <0.0001)
1/(a+N)>=0.0001
* Ví dụ 1: Viết đoạn lệnh tính và xuất ra màn hình tổng S trong bài toán 2
S:=1/a; N:=0;
While not(1/(a+N)<0.0001) do
begin
N:=N+1;
S:=S+1/(a+N);
end;
Writeln(‘Tong la:’, S:8:2);
* Ví dụ 2:
Nhập vào 2 số nguyên dương M, N. Tìm và xuất ra màn hình ƯCLN(M, N).
* Yêu cầu: Vi?t do?n lệnh nhập vào hai số nguyên dương M,N. Tìm ƯCLN của hai số đó.
B1: Nhập M,N;
B2 : Chừng nào M?N
nếu M>N thì M:=M-N,
ngược lại thì N:=N-M;
B3: Đến khi M=N thì
đưa ra ƯCLN(M,N)=M;
B1: readln(M,N);
B2 : While M<>N DO
Begin
IF M>N then M:=M-N
else N:=N-M; end;
B3: write(`UCLN la`, M);
Thuật toán
các bước viết câu lệnh
Mô tả hoạt động của vòng lặp, giả sử:
M= 4 ;N=10
M=4<>N=10 :kiểm tra
M
N=6
M=4<>N=6 :kiểm tra
M
N=2
M=4<>N=2 :kiểm tra
M>N nên M=M-N=4-2 =2
M=N :thoát khỏi vòng lặp
In ra ƯCLN là M
M=4
N=2
Lần thực hiện 1
Lần thực hiện 2
Lần thực hiện 3
Tham khảo:
Dạng khác của câu lệnh lặp với số lần lặp không biết trước
REPEAT
Điều kiện
Sai
Câu lệnh
Đúng
Sử dụng while…do… viết câu lệnh tính bài toán giai thừa:
tich:=1;
For i:=1 to n do
tich:=tich*i;
Write(‘ket qua la:’, tich:4);
tich:=1; i:=1;
While i<=n do
begin
tich:=tich*i;
i:=i+1;
End;
Write(‘ket qua la:’, tich:4);
Bài tập củng cố
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 3 b. 4 c. 5 d. 6
Bài tập củng cố
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 9 b. 10 c. 12 d. Kết quả khác
Dặn dò
Về nhà học bài cũ, làm các bài tập 4, 5, 6, 7, 8/ trang 51 SGK chuẩn bị tiết bài tập và thực hành
* 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ị Hảo
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)