Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Cường |
Ngày 10/05/2019 |
80
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:
21/03/2010
Giáo viên: Nguyễn Thị Kim Anh
BÀI MỚI
2
Lặp với số lần biết trước…
Kiểm tra bài cũ
Lặp
Lặp với số lần chưa biết trước…
2.2
Em hãy hoàn thành chương trình tính giá trị S:
S=a+1/(a+1)+1/(a+2)+1/(a+3)+…+1/(a+50)
(a là số nguyên #0, được nhập từ bàn phím)
Em có thể sử dụng vòng lặp for_do để giải bài
toán tính S sau được không? Vì sao?
S=a+1/(a+1)+1/(a+2)+1/(a+3)+…+1/(a+N)+…
Cho: Quá trình tính tổng S sẽ kết thúc khi 1/(a+N)<0.0001
1. Bài toán
D? liệu ra (Output) : Tổng S
D? liệu vào (Input) : Nhập a
Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên?
Cho đến khi
Tính giá trị tổng S, với a là số nguyên và a>2.
thỡ dừng lại.
II. Lặp với số lần biết trước và câu lệnh While - do
Thuật toán
Bước 2 :
S:=a; N:=1;
(Khởi tạo giá trị S, N)
Bước 3:
Nếu 1/(a+N) < 0.0001
=> Bước 5
Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> Quay lại bước 3
Bước 1: Nhập a.
Xuất S
=> Kết thúc
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
Bước 5: Xuất S => Kết thúc.
Sai
Đúng
Điều kiện
Câu lệnh
WHILE <Điều kiện> DO;
Điều kiện: là một biểu thức quan hệ hoặc 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 câu lệnh While_do
Trong đó:
Sai
Đúng
Chú ý: Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
Một số ví dụ
WHILE 1/(a+N) >= 0.0001 DO
Begin
S:=S+1/(a+N);
N:=N+1;
End;
1.
Bài toán đặt vấn đề:
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị S lên 1/(a+N) lần.
+ Tăng N thêm 1 đơn vị.
Tính giá trị tổng S, với a là số nguyên và a>2
Thì dừng lại
Cho đến khi
CHƯƠNG TRÌNH
Program VD1;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a= `);Readln(a); {Nhập giá trị đầu vào}
S:=a;N:=1; {Gán giá trị ban đầu cho biến}
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(`Gia tri cua tong S = `,S:8:3); {Xuất giá trị}
Readln;
END.
Vòng lặp While-do
2.
Viết chương trình nhập vào 2 số M,N và xác định Ư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: Trong khi M=N thì
=> Xuất ra ƯCLN(M,N)=M;
=> Kết thúc.
B1: Nhập M,N
B2 : While M<>N do
Begin
IF M>N then M:=M-N
else N:=N-M;
end;
B3: In ƯCLN(M,N)
THUẬT TOÁN
CÁC BƯỚC VIẾT CHƯƠNG TRÌNH
Từ các bước viết chương trình,
em hãy xây dựng chương trình hoàn chỉnh cho bài toán trên?
Cấu trúc câu lệnh Repeat-until (Tham khảo)
REPEAT UNTIL <Điều kiện>;
Điều kiện
Câu lệnh
Sai
Đúng
Chú ý: Câu lệnh được thực hiện cho đến khi điều kiện đúng.
Program VD3;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a= `);Readln(a);
S:=a;N:=1;
REPEAT {Bat dau lap}
S:=S+1/(a+N);
N:=N+1
UNTIL 1/(a+N)< 0.0001; {Ket thuc lap}
Writeln(`Gia tri cua tong S = `,S:8:3);
Readln;
END.
CHƯƠNG TRÌNH
BÀI TẬP CỦNG CỐ
?
1. Em hãy viết chương trình tính giá trị biểu thức sau:
S=1+1/2+1/3+1/4+…+1/100 (Sử dụng vòng lặp While_do)
Dặn dò:
Các em nắm vững các cấu trúc lặp và xem trước
phần bài tập thực hành số 2.
2. Viết chương trình nhập vào các số nguyên cho đến khi gặp số 0 thì kết thúc. Hãy đếm xem có bao nhiêu số chẵn vừa được nhập vào?
Giáo viên: Nguyễn Thị Kim Anh
BÀI MỚI
2
Lặp với số lần biết trước…
Kiểm tra bài cũ
Lặp
Lặp với số lần chưa biết trước…
2.2
Em hãy hoàn thành chương trình tính giá trị S:
S=a+1/(a+1)+1/(a+2)+1/(a+3)+…+1/(a+50)
(a là số nguyên #0, được nhập từ bàn phím)
Em có thể sử dụng vòng lặp for_do để giải bài
toán tính S sau được không? Vì sao?
S=a+1/(a+1)+1/(a+2)+1/(a+3)+…+1/(a+N)+…
Cho: Quá trình tính tổng S sẽ kết thúc khi 1/(a+N)<0.0001
1. Bài toán
D? liệu ra (Output) : Tổng S
D? liệu vào (Input) : Nhập a
Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên?
Cho đến khi
Tính giá trị tổng S, với a là số nguyên và a>2.
thỡ dừng lại.
II. Lặp với số lần biết trước và câu lệnh While - do
Thuật toán
Bước 2 :
S:=a; N:=1;
(Khởi tạo giá trị S, N)
Bước 3:
Nếu 1/(a+N) < 0.0001
=> Bước 5
Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> Quay lại bước 3
Bước 1: Nhập a.
Xuất S
=> Kết thúc
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
Bước 5: Xuất S => Kết thúc.
Sai
Đúng
Điều kiện
Câu lệnh
WHILE <Điều kiện> DO
Điều kiện: là một biểu thức quan hệ hoặc 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 câu lệnh While_do
Trong đó:
Sai
Đúng
Chú ý: Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
Một số ví dụ
WHILE 1/(a+N) >= 0.0001 DO
Begin
S:=S+1/(a+N);
N:=N+1;
End;
1.
Bài toán đặt vấn đề:
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị S lên 1/(a+N) lần.
+ Tăng N thêm 1 đơn vị.
Tính giá trị tổng S, với a là số nguyên và a>2
Thì dừng lại
Cho đến khi
CHƯƠNG TRÌNH
Program VD1;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a= `);Readln(a); {Nhập giá trị đầu vào}
S:=a;N:=1; {Gán giá trị ban đầu cho biến}
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(`Gia tri cua tong S = `,S:8:3); {Xuất giá trị}
Readln;
END.
Vòng lặp While-do
2.
Viết chương trình nhập vào 2 số M,N và xác định Ư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: Trong khi M=N thì
=> Xuất ra ƯCLN(M,N)=M;
=> Kết thúc.
B1: Nhập M,N
B2 : While M<>N do
Begin
IF M>N then M:=M-N
else N:=N-M;
end;
B3: In ƯCLN(M,N)
THUẬT TOÁN
CÁC BƯỚC VIẾT CHƯƠNG TRÌNH
Từ các bước viết chương trình,
em hãy xây dựng chương trình hoàn chỉnh cho bài toán trên?
Cấu trúc câu lệnh Repeat-until (Tham khảo)
REPEAT
Điều kiện
Câu lệnh
Sai
Đúng
Chú ý: Câu lệnh được thực hiện cho đến khi điều kiện đúng.
Program VD3;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a= `);Readln(a);
S:=a;N:=1;
REPEAT {Bat dau lap}
S:=S+1/(a+N);
N:=N+1
UNTIL 1/(a+N)< 0.0001; {Ket thuc lap}
Writeln(`Gia tri cua tong S = `,S:8:3);
Readln;
END.
CHƯƠNG TRÌNH
BÀI TẬP CỦNG CỐ
?
1. Em hãy viết chương trình tính giá trị biểu thức sau:
S=1+1/2+1/3+1/4+…+1/100 (Sử dụng vòng lặp While_do)
Dặn dò:
Các em nắm vững các cấu trúc lặp và xem trước
phần bài tập thực hành số 2.
2. Viết chương trình nhập vào các số nguyên cho đến khi gặp số 0 thì kết thúc. Hãy đếm xem có bao nhiêu số chẵn vừa được nhập vào?
* 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 Cườ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)