Bài 10. Cấu trúc lặp
Chia sẻ bởi Trần Thị Vui |
Ngày 10/05/2019 |
60
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:
Giáo án điện tử tin học lớp 11
Bài 10
CẤU TRÚC LẶP
(tiết 3)
Trường THPT Trần Bình Trọng
KIỂM TRA BÀI CŨ
Em hãy viết cấu trúc lặp với số lần biết trước và câu lệnh FOR-DO ở hai dạng ?
* FOR:= TO DO ;
* FOR := DOWNTO DO ;
Em hãy cho nhận xét về hai ví dụ sau đây?
FOR i := 15 To 3 Do
FOR i := 12 DOWNTO 500 DO
FOR i := 15 DOWNTO 3 Do
FOR i := 12 TO 500 DO
Bài toán 1:
Bài toán 2:
Cho đến khi
? Số lần lặp biết trước.
Việc tăng giá trị cho biến S được lặp đi lặp lại ch đến khi
Vi?c tang giỏ tr? cho bi?n S du?c l?p di l?p l?i
tìm sự khác biệt
? Số lần lặp chưa biết trước.
100 lần.
Cấu trúc lặp
I. Lặp với số lần lặp biết trước:
II. Lặp với số lần lặp không biết trước:
1. Bài toán
Dữ liệu ra (Output) :
Dữ liệu vào (Input) :
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 lặp không biết trước
Nh?p a
T?ng S
Đưa ra S
=> Kết thúc
S
D
Bước 2:
S:=1/a; N:=1;
{Khởi tạo S và 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.
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
Bước 5: Dua ra S => Kết thúc.
Thuật toán
thuật toán
Đưa ra S
=> Kết thúc
?Khi di?u ki?n 1/(a+N) >= 0.0001 cũn dỳng thỡ cũn th?c hi?n cõu l?nh
S
Đ
Câu lệnh
While
DO
WHILE <Điều kiện> DO;
Điều kiện
Đúng
Câu lệnh
Điều kiện: Là biểu thức
quan hệ hoặc lôgic.
Câu lệnh: Là một câu lệnh của Pascal.
Sai
3. Lặp với số lần lặp chưa biết trước và câu lệnh while - do:
Trong đó:
Khi nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
(Ghi tập)
While
DO
WHILE 1/(a+N) >= 0.0001 DO
Begin
S:=S+1/(a+N);
N:=N+1;
END;
Ví dụ 1: (sgk)
Bài toán :
Nhận xét:
Khi nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+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 Tinhtong_2;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a = `);Readln(a);
S:=1/a;N:=1;
WHILE 1/(a+N) >= 0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(`Gia tri cua tong S = `,S);
Readln;
END.
(Ghi tập)
WHILE NOT (1/(a+N) < 0.0001) DO
BÀI TOÁN 2
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ố đó.
INPUT: NHÂP M, N
OUTPUT: UCLN
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 : Khi 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;
=> 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: Dua ra ƯCLN(M,N)
Thuật toán
các bước viết chương trình
Ví dụ 2: (sgk)
Chương trình
Program UCLN;
Uses Crt;
Var M,N:Integer;
BEGIN
Clrscr;
Write(`M, N= `);Readln(M,N);
WHILE M <> N DO
IF M>N then M:=M - N
else N:=N - M;
Writeln(`UCLN = `,M);
Readln;
END.
(Ghi tập)
* Chú ý: Cỏc cõu l?nh trong vũng l?p thu?ng du?c l?p l?i nhi?u l?n, vỡ v?y d? tang hi?u qu? c?a chuong trỡnh thỡ nh?ng thao tỏc khụng c?n l?p l?i nờn dua ra ngoi vũng l?p
VÍ DỤ CŨNG CỐ
Chạy 12 vòng
Chạy khi nào Cô cho phép nghỉ
Lặp với số lần biết trước
Lặp với số lần chưa biết trước
1
2
Câu lệnh rẽ nhánh.
Câu lệnh lặp
IF <đk> THEN;
trong pascal
FOR ... TO ... DO ....
IF <đk> THEN
ESLE;
FOR ... Downto ... DO ...
While <đk> Do;
Dạng khuyết.
Dạng đầy đủ.
Lặp với số lần lặp biết trước.
Lặp với số lần lặp không biết trước.
TÓM TẮT
Bài 10
CẤU TRÚC LẶP
(tiết 3)
Trường THPT Trần Bình Trọng
KIỂM TRA BÀI CŨ
Em hãy viết cấu trúc lặp với số lần biết trước và câu lệnh FOR-DO ở hai dạng ?
* FOR
* FOR
Em hãy cho nhận xét về hai ví dụ sau đây?
FOR i := 15 To 3 Do
FOR i := 12 DOWNTO 500 DO
FOR i := 15 DOWNTO 3 Do
FOR i := 12 TO 500 DO
Bài toán 1:
Bài toán 2:
Cho đến khi
? Số lần lặp biết trước.
Việc tăng giá trị cho biến S được lặp đi lặp lại ch đến khi
Vi?c tang giỏ tr? cho bi?n S du?c l?p di l?p l?i
tìm sự khác biệt
? Số lần lặp chưa biết trước.
100 lần.
Cấu trúc lặp
I. Lặp với số lần lặp biết trước:
II. Lặp với số lần lặp không biết trước:
1. Bài toán
Dữ liệu ra (Output) :
Dữ liệu vào (Input) :
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 lặp không biết trước
Nh?p a
T?ng S
Đưa ra S
=> Kết thúc
S
D
Bước 2:
S:=1/a; N:=1;
{Khởi tạo S và 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.
? Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
Bước 5: Dua ra S => Kết thúc.
Thuật toán
thuật toán
Đưa ra S
=> Kết thúc
?Khi di?u ki?n 1/(a+N) >= 0.0001 cũn dỳng thỡ cũn th?c hi?n cõu l?nh
S
Đ
Câu lệnh
While
DO
WHILE <Điều kiện> DO
Điều kiện
Đúng
Câu lệnh
Điều kiện: Là biểu thức
quan hệ hoặc lôgic.
Câu lệnh: Là một câu lệnh của Pascal.
Sai
3. Lặp với số lần lặp chưa biết trước và câu lệnh while - do:
Trong đó:
Khi nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
(Ghi tập)
While
DO
WHILE 1/(a+N) >= 0.0001 DO
Begin
S:=S+1/(a+N);
N:=N+1;
END;
Ví dụ 1: (sgk)
Bài toán :
Nhận xét:
Khi nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+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 Tinhtong_2;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(`Nhap gia tri cua a = `);Readln(a);
S:=1/a;N:=1;
WHILE 1/(a+N) >= 0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(`Gia tri cua tong S = `,S);
Readln;
END.
(Ghi tập)
WHILE NOT (1/(a+N) < 0.0001) DO
BÀI TOÁN 2
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ố đó.
INPUT: NHÂP M, N
OUTPUT: UCLN
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 : Khi 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;
=> 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: Dua ra ƯCLN(M,N)
Thuật toán
các bước viết chương trình
Ví dụ 2: (sgk)
Chương trình
Program UCLN;
Uses Crt;
Var M,N:Integer;
BEGIN
Clrscr;
Write(`M, N= `);Readln(M,N);
WHILE M <> N DO
IF M>N then M:=M - N
else N:=N - M;
Writeln(`UCLN = `,M);
Readln;
END.
(Ghi tập)
* Chú ý: Cỏc cõu l?nh trong vũng l?p thu?ng du?c l?p l?i nhi?u l?n, vỡ v?y d? tang hi?u qu? c?a chuong trỡnh thỡ nh?ng thao tỏc khụng c?n l?p l?i nờn dua ra ngoi vũng l?p
VÍ DỤ CŨNG CỐ
Chạy 12 vòng
Chạy khi nào Cô cho phép nghỉ
Lặp với số lần biết trước
Lặp với số lần chưa biết trước
1
2
Câu lệnh rẽ nhánh.
Câu lệnh lặp
IF <đk> THEN
trong pascal
FOR ... TO ... DO ....
IF <đk> THEN
ESLE
FOR ... Downto ... DO ...
While <đk> Do
Dạng khuyết.
Dạng đầy đủ.
Lặp với số lần lặp biết trước.
Lặp với số lần lặp không biết trước.
TÓM TẮT
* 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ẻ: Trần Thị Vui
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)