Bài 10. Cấu trúc lặp
Chia sẻ bởi Lê Thu Thủy |
Ngày 10/05/2019 |
67
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 cũ:
Câu 1:Nêu cấu trúc câu lệnh
for – do dạng tiến và dạng lùi?
Câu 2: Liệt kê các câu lệnh (trong phần thân chương trình) của TP đã được học?
Đáp án:
Câu 1:Cấu trúc câu lệnh for – do
a.dạng tiến :
For:= to do ;
b.dạng lùi:
For:= downto do ;
Đáp án:
Câu 2:Các câu lệnh trong phần thân chương trình của TP đã được học:
Câu lệnh đọc DL vào từ bàn phím: read/readln(ds biến vào);
Câu lệnh viết thông tin ra màn hình: write/writeln(ds kq ra);
Câu lệnh gán::= ;
Câu lệnh rẽ nhánh:if – then ;
+dạng khuyết: if <đk> then;
+dạng đủ: if <đk> then else ;
5. Câu lệnh lặp với số lần biết trước for – do :
+Dạng tiến: for:= to do ;
+Dạng lùi: For:= downto do ;
Giỏo ỏn tin h?c 11
Tiết 16: CẤU TRÚC LẶP (t3)
Bài 10
Bài 10: Cấu trúc lặp (t3)
I. Lặp với số lần biết trước
II. Lặp với số lần chưa biết trước
Bài toán 1:
Bài toán 2:
Xét bài toán tính tổng s, với a>2, nguyên
Cho t?i khi
Bài 10: Cấu trúc lặp
Xuất phát
L?n 1
L?n 2
+…
L?n N
M?i l?n th?c hi?n giỏ tr? t?ng S tang thờm bao nhiờu?
1
Sau m?i l?n th?c hi?n giỏ tr? t?ng S tang thờm ???? ( v?i i =1; 2; 3 ; ...;N)
a + i
Xõy d?ng thu?t toỏn
Bài toán 1
Bài toán 2
Cho t?i khi
Lặp với số lần biết trước và sử dụng câu lệnh for – do để giải bài toán.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
TÌM SỰ KHÁC BIỆT
Lặp với số lần chưa biết trước.
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 t?i khi
Bài toán 2:Tính giá trị tổng S, với a là số nguyên và a>2.
II. Lặp với số lần chưa biết trước và câu lệnh While – do.
1.Lặp với số lần chưa biết trước
Bu?c 2:
S:=1/a; N:=1;
{Kh?i t?o S v N}
Bu?c3:
N?u 1/(a+N) < 0.0001
sang Bu?c 5
Bu?c 4:
S:=S+1/(a+N);
N:=N+1;
=> quay l?i bu?c 3
Thu?t toỏn
Bu?c 1: Nh?p a.
Đưa ra s, kết thúc.
? Vũng l?p ch? d?ng khi: 1/(a+N)<0.0001
S
đ
Bước 5: In S => Kết thúc.
Cấu trúc:
WHILE <điều kiện> DO;
Điều kiện
đúng
Cõu l?nh
Di?u ki?n :L bi?u th?c quan h? ho?c logic
Cõu l?nh: L m?t cõu l?nh c?a Pascal.
Sai
2.Cõu l?nh While - do .
Trong đó:
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
While
do
Cõu l?nh
Cách thực hiện:
Nếu điều kiện đúng thì thực hiện câu lệnh, sau đó quay lại kiểm tra điều kiện, cứ như thế đến khi điều kiện sai thì kết thúc vòng lặp.
Thoát
While 1/(a+N) >= 0.0001 Do
Begin
S:=S+1/(a+N);
N:=N+1;
End;
3. Một số ví dụ:
a
Vd1:Bài toán 2: Tính giá trị tổng s, với a>2 nguyên
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì thực hiện:
+ Tính giá trị của tổng S thêm 1/(a+N).
+ Tăng N lên một đơn vị
Thì dừng lại.
Cho tới khi
Em hãy viết câu lệnh While – do để mô tả nhận xét này?
Program tong2;
Uses crt;
Var . . .: integer ;
. : real;
BEGIN clrscr;
. . . Nh?p vo a
S:=. . .; N:=..; {kh?i t?o S,N}
Readln;
END.
WHILE DO
BEGIN
S:=S+....;
N:=N+....;
END;
3. Một số ví dụ:
Em hãy hoàn thành chương trình tính tổng S, bài toán 2 theo dàn ý sau:
Viết ra tổng S
a
Vd1:
Var a,N:Integer;
S:Real;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
WHILE 1/(a+N)>=0.0001 DO
S:=S+1/(a+N);
N:=N+1;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
S:=1.0/a;N:=1;
Chương trình
b
Vd2:Lập chương trì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 no M?N
n?u M>N thỡ M:=M-N,
ngu?c l?i thỡ N:=N-M;
B3: d?n khi M=N thỡ
=> dua ra ƯCLN(M,N)=M;
=> K?t thỳc.
B1: Nh?p M,N
B2 : While M<>N DO
IF M>N then M:=M-N
else N:=N-M;
B3: In ƯCLN(M,N)
Thu?t toỏn
Cỏc bu?c vi?t chuong trỡnh
Về nhà hoàn thành chương trình
Hóy nh?!
Cõu l?nh r? nhỏnh.
Cõu l?nh l?p
IF THEN ;
Trong pascal
FOR ... TO ... DO ....
IF THEN
ESLE;
FOR ... Downto ... DO ...
While Do ;
D?ng khuy?t.
D?ng d?.
L?p v?i s? l?n l?p bi?t tru?c
L?p v?i s? l?n l?p chua bi?t tru?c
BÀI TẬP VỀ NHÀ
Làm các bài tập: 3,5b,7,8 sgk trang 51
Chuẩn bị tiết sau làm bài tập.
Thực hiện tháng 10 năm 2011
Bài học đã kết thúc
Xin chân thành cảm ơn quí thầy cô và các em!
Câu 1:Nêu cấu trúc câu lệnh
for – do dạng tiến và dạng lùi?
Câu 2: Liệt kê các câu lệnh (trong phần thân chương trình) của TP đã được học?
Đáp án:
Câu 1:Cấu trúc câu lệnh for – do
a.dạng tiến :
For
b.dạng lùi:
For
Đáp án:
Câu 2:Các câu lệnh trong phần thân chương trình của TP đã được học:
Câu lệnh đọc DL vào từ bàn phím: read/readln(ds biến vào);
Câu lệnh viết thông tin ra màn hình: write/writeln(ds kq ra);
Câu lệnh gán:
Câu lệnh rẽ nhánh:if – then ;
+dạng khuyết: if <đk> then
+dạng đủ: if <đk> then
5. Câu lệnh lặp với số lần biết trước for – do :
+Dạng tiến: for
+Dạng lùi: For
Giỏo ỏn tin h?c 11
Tiết 16: CẤU TRÚC LẶP (t3)
Bài 10
Bài 10: Cấu trúc lặp (t3)
I. Lặp với số lần biết trước
II. Lặp với số lần chưa biết trước
Bài toán 1:
Bài toán 2:
Xét bài toán tính tổng s, với a>2, nguyên
Cho t?i khi
Bài 10: Cấu trúc lặp
Xuất phát
L?n 1
L?n 2
+…
L?n N
M?i l?n th?c hi?n giỏ tr? t?ng S tang thờm bao nhiờu?
1
Sau m?i l?n th?c hi?n giỏ tr? t?ng S tang thờm ???? ( v?i i =1; 2; 3 ; ...;N)
a + i
Xõy d?ng thu?t toỏn
Bài toán 1
Bài toán 2
Cho t?i khi
Lặp với số lần biết trước và sử dụng câu lệnh for – do để giải bài toán.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
TÌM SỰ KHÁC BIỆT
Lặp với số lần chưa biết trước.
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 t?i khi
Bài toán 2:Tính giá trị tổng S, với a là số nguyên và a>2.
II. Lặp với số lần chưa biết trước và câu lệnh While – do.
1.Lặp với số lần chưa biết trước
Bu?c 2:
S:=1/a; N:=1;
{Kh?i t?o S v N}
Bu?c3:
N?u 1/(a+N) < 0.0001
sang Bu?c 5
Bu?c 4:
S:=S+1/(a+N);
N:=N+1;
=> quay l?i bu?c 3
Thu?t toỏn
Bu?c 1: Nh?p a.
Đưa ra s, kết thúc.
? Vũng l?p ch? d?ng khi: 1/(a+N)<0.0001
S
đ
Bước 5: In S => Kết thúc.
Cấu trúc:
WHILE <điều kiện> DO
Điều kiện
đúng
Cõu l?nh
Di?u ki?n :L bi?u th?c quan h? ho?c logic
Cõu l?nh: L m?t cõu l?nh c?a Pascal.
Sai
2.Cõu l?nh While - do .
Trong đó:
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
While
do
Cõu l?nh
Cách thực hiện:
Nếu điều kiện đúng thì thực hiện câu lệnh, sau đó quay lại kiểm tra điều kiện, cứ như thế đến khi điều kiện sai thì kết thúc vòng lặp.
Thoát
While 1/(a+N) >= 0.0001 Do
Begin
S:=S+1/(a+N);
N:=N+1;
End;
3. Một số ví dụ:
a
Vd1:Bài toán 2: Tính giá trị tổng s, với a>2 nguyên
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì thực hiện:
+ Tính giá trị của tổng S thêm 1/(a+N).
+ Tăng N lên một đơn vị
Thì dừng lại.
Cho tới khi
Em hãy viết câu lệnh While – do để mô tả nhận xét này?
Program tong2;
Uses crt;
Var . . .: integer ;
. : real;
BEGIN clrscr;
. . . Nh?p vo a
S:=. . .; N:=..; {kh?i t?o S,N}
Readln;
END.
WHILE
BEGIN
S:=S+....;
N:=N+....;
END;
3. Một số ví dụ:
Em hãy hoàn thành chương trình tính tổng S, bài toán 2 theo dàn ý sau:
Viết ra tổng S
a
Vd1:
Var a,N:Integer;
S:Real;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
WHILE 1/(a+N)>=0.0001 DO
S:=S+1/(a+N);
N:=N+1;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
S:=1.0/a;N:=1;
Chương trình
b
Vd2:Lập chương trì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 no M?N
n?u M>N thỡ M:=M-N,
ngu?c l?i thỡ N:=N-M;
B3: d?n khi M=N thỡ
=> dua ra ƯCLN(M,N)=M;
=> K?t thỳc.
B1: Nh?p M,N
B2 : While M<>N DO
IF M>N then M:=M-N
else N:=N-M;
B3: In ƯCLN(M,N)
Thu?t toỏn
Cỏc bu?c vi?t chuong trỡnh
Về nhà hoàn thành chương trình
Hóy nh?!
Cõu l?nh r? nhỏnh.
Cõu l?nh l?p
IF
Trong pascal
FOR ... TO ... DO ....
IF
ESLE
FOR ... Downto ... DO ...
While
D?ng khuy?t.
D?ng d?.
L?p v?i s? l?n l?p bi?t tru?c
L?p v?i s? l?n l?p chua bi?t tru?c
BÀI TẬP VỀ NHÀ
Làm các bài tập: 3,5b,7,8 sgk trang 51
Chuẩn bị tiết sau làm bài tập.
Thực hiện tháng 10 năm 2011
Bài học đã kết thúc
Xin chân thành cảm ơn quí thầy cô và các em!
* 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ê Thu Thủy
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)