Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Hữu Duyên |
Ngày 10/05/2019 |
98
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ô
THAM DỰ TIẾT THAO GIẢNG
TRƯỜNG THPT TỨ KIỆT
GV: NGUYỄN HỮU DUYÊN
Lớp 11A2
Kiểm tra bài cũ
Cấu trúc IF …. THEN (Dạng thiếu )
nào sau đây là đúng :
IF<đk> THEN;
IF <đk> ELSE;
IF THEN <đk>;
IF <đk> THEN;
Cấu trúc IF…THEN….ELSE Nào sau đây là đúng.
IF<đk>THENELSE
IF<đk>THEN;ELSE;
IF<đk>THENELSE;
IF<đk>THENELSE;
Kiểm tra bài cũ
Câu lệnh ghép là :
Begin
Thực hiện theo điều kiện
Ghép nhiều câu lệnh
Begin ….End.
Kiểm tra bài cũ
?
Quan sát 2 hình sau:
Dung tích
30 Lít
Dung tích
30 Lít
- Hình 1: Người thứ nhất dùng một chiếc xô dung tích 1 lít đổ đầy nước vào một chiếc thùng có dung tích 30 lít. Hỏi bao lâu thì xong?
- Hình 2: Người thứ 2 dùng một chiếc xô không rõ dung tích để đổ đầy nước vào một chiếc thùng có dung tích 30 lít . Hỏi bao lâu thì xong?
Sau
30 lần
đổ
Chừng
nào đầy
thùng
Quá trình như vậy được gọi là lặp
GIỚI THIỆU
Bài 10
CẤU TRÚC LẶP
Tuần: 13
Tiết: 14
BÀI 10: CẤU TRÚC LẶP
Từ ví dụ trên thấy rằng công việc đổ nước vào thùng được lặp đi lặp lại. Ta nói rằng trong ví dụ trên đã có hiện tượng lặp.
Vậy lặp là gì ?
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Lặp: một công việc, một thao tác, một phép toán, một câu lệnh … được thực hiện lặp đi, lặp lại một số lần.
Trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Cấu trúc lặp được sử dụng để mô tả các thao tác lặp đó.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Em hãy lấy ví dụ về lặp trong thực tế:
Có những hoạt động mà chúng ta lặp với số lần nhất định và biết trước, chẳng hạn :
- Đánh răng mỗi ngày hai lần, mỗi ngày ăn cơm 3 lần,…
- Mỗi buổi sáng học 5 tiết, …
Có những hoạt động mà chúng ta lặp với số lần không thể xác định trước, chẳng hạn:
- Học cho đến khi thuộc bài.
- Nhặt từng cọng rau cho đến khi nào xong…
Khi viết chương trình máy tính cũng vậy. Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều trường hợp ta cũng cần phải viết nhiều câu lệnh thực hiện 1 phép tính nhất định.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Cho đến khi
TÌM SỰ KHÁC BIỆT
Bài toán 1:
Bài toán 2:
Việc tính giá trị cho tổng S được lặp đi lặp lại 100 lần.
Việc tính giá trị cho tổng S được lặp đi lặp lại cho đến khi
Số lần lặp biết trước.
Số lần lặp chưa biết trước.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Có hai loại 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
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Câu hỏi: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần biết trước?
BÀI 10: CẤU TRÚC LẶP
2. Lặp với số lần biết trước và câu lệnh For …do
NHẬN XÉT:
Ban đầu : S := 1/a
Cộng lần 1: S1: = S + 1/(a+1)
Cộng lần 2: S2: = S1 + 1/(a+2)
Cộng lần 3: S3: = S2 + 1/(a+3)
.....
Cộng lần 100: S100: = S99 + 1/(a+100)
Bắt đầu từ lần cộng 1 việc tính S được lặp đi lặp lại 100 lần theo quy luật:
Ssau := Strước+ 1/(a+N)
với N chạy từ 1 100
. . . . . . . . . . . . . . . . . . . .
Từ ý tưởng trên em hãy viết thuật toán cho bài toán
PHÂN TÍCH BÀI TOÁN 1 (Ý TƯỞNG)
BÀI 10: CẤU TRÚC LẶP
2. Lặp với số lần biết trước và câu lệnh For …do
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+ 1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
THUẬT TOÁN TONG_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+ 1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100 (N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
THUẬT TOÁN TONG_1b
Số lần lặp của cả hai thuật toán trên là biết trước và như nhau (100 lần)
Giá trị N khi bắt đầu tham gia vòng lặp là? Sau mỗi lần lặp N tăng lên? N bằng bao nhiêu thì kết thúc?
Giá trị N khi bắt đầu tham gia vòng lặp là? Sau mỗi lần lặp N tăng lên? N bằng bao nhiêu thì kết thúc?
Em hãy chỉ rõ các bước phải thực hiện lặp đi lặp lại một số lần?
Em hãy chỉ rõ các bước phải thực hiện lặp đi lặp lại một số lần?
BÀI 10: CẤU TRÚC LẶP
Mô tả cấu trúc lặp với số lần biết trước và câu lệnh For…do
Dạng lặp tiến:
For:= to do ;
Dạng lặp lùi:
For:= downto do ;
2. Lặp với số lần biết trước và câu lệnh For …do
Ví dụ: S:=1;
FOR i:=2 TO 100 DO
S:=S+1/i;
Ví dụ: S:=1;
FOR i:=100 DOWNTO 2 DO
S:=S+1/i;
BÀI 10: CẤU TRÚC LẶP
Mô tả cấu trúc lặp với số lần biết trước và câu lệnh For…do
Biến đếm: Là biến đơn, thường có kiểu nguyên
Giá trị đầu, giá trị cuối: Là các biểu thức cùng kiểu
với biến đếm (Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối)
for, to, downto, do: Là từ khóa trong Pascal;
2. Lặp với số lần biết trước và câu lệnh For …do
Trong đó:
Program Tong_1a;
Var a, N: integer;
S: real;
Begin
Write (‘Nhap vao a>2: ’); Readln(a);
s:=1/a; (* Buoc 1 *)
For N:=1 to 100 do (* Buoc 2, buoc 3 *)
S:=S + 1/(a+N); (* Buoc 4 *)
Write(‘Tong S la: ’, S:5:1); (* Buoc 5 *)
Readln;
End.
HOẠT ĐỘNG NHÓM
Các câu lệnh Pascal sau có hợp lệ không? Tại sao?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS: Không hợp lệ vì giá trị đầu lớn hơn giá trị cuối
HẾT GIỜ
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS: Không hợp lệ vì giá trị đầu và giá trị cuối là số thực
For i:=1 to 10 do
Write(‘A’);
ĐS: Hợp lệ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS: Hợp lệ, AAAAAAAAAA
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
Ví dụ 1: Tính tổng S
Hãy xác định bài toán
Input:
Output:
- Dữ liệu vào (Input) : Nhập N
- Dữ liệu ra (Output) : Tổng S
S=1 + 1/2 + 1/3 +…+1/100
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
XÕY DỰNG THUẬT TOỎN
Đ
S
B1: Nhập N;
B2: S:=1; i:=2;
B3: Nếu i > N thì đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/i;
B5: i := i +1 quay lại B3.
i:= i+1
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
i
S
2.28
5
Nhập N
S := 1 ; i := 2;
2>5 ?
S
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S
S
S
6>5 ?
In Tổng S
Tổng S=2.28
Với N = 5
2.28
Đ
Đ
Mô phỏng thuật toán
S1 = 1
S2 = S1 + 1/2
S3 = S2 + 1/3
S4 = S3 + 1/4
S100 = S99 + 1/100
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ.
Var i,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
Program Tinh_tong;
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
Program vd2;
Var i:Integer;
Begin
Writeln(‘ Biến điều khiển tăng ‘);
For i:=1 to 10 do
Writeln(i);
Writeln(‘ Bấm phím để kết thúc’);
Readln;
End.
Ví dụ 2: viết chương trình in ra màn hình các số:
1 2 3 4 5 6 7 8 9 10
BÀI 10: CẤU TRÚC LẶP
CỦNG CỐ
Dạng lặp tiến:
Dạng lặp lùi:
Tăng 1 đơn vị
Giảm 1 đơn vị
For:= to
do ;
For:= dows
to do ;
1. Khái niệm lặp:
2.Lặp với số lần biết trước và câu lệnh for …do
Chuẩn bị bài tập ở nhà từ bài tập 1….bài tập 8 trang 50,51SGK
Cú pháp :
Cú pháp :
Xem
BÀI HỌC KẾT THÚC
THÂN ÁI CHÀO QUÝ THẦY CÔ VÀ CÁC EM
THAM DỰ TIẾT THAO GIẢNG
TRƯỜNG THPT TỨ KIỆT
GV: NGUYỄN HỮU DUYÊN
Lớp 11A2
Kiểm tra bài cũ
Cấu trúc IF …. THEN (Dạng thiếu )
nào sau đây là đúng :
IF<đk> THEN
IF <đk> ELSE
IF
IF <đk> THEN
Cấu trúc IF…THEN….ELSE Nào sau đây là đúng.
IF<đk>THEN
IF<đk>THEN
IF<đk>THEN
IF<đk>THEN
Kiểm tra bài cũ
Câu lệnh ghép là :
Begin
Thực hiện theo điều kiện
Ghép nhiều câu lệnh
Begin ….End.
Kiểm tra bài cũ
?
Quan sát 2 hình sau:
Dung tích
30 Lít
Dung tích
30 Lít
- Hình 1: Người thứ nhất dùng một chiếc xô dung tích 1 lít đổ đầy nước vào một chiếc thùng có dung tích 30 lít. Hỏi bao lâu thì xong?
- Hình 2: Người thứ 2 dùng một chiếc xô không rõ dung tích để đổ đầy nước vào một chiếc thùng có dung tích 30 lít . Hỏi bao lâu thì xong?
Sau
30 lần
đổ
Chừng
nào đầy
thùng
Quá trình như vậy được gọi là lặp
GIỚI THIỆU
Bài 10
CẤU TRÚC LẶP
Tuần: 13
Tiết: 14
BÀI 10: CẤU TRÚC LẶP
Từ ví dụ trên thấy rằng công việc đổ nước vào thùng được lặp đi lặp lại. Ta nói rằng trong ví dụ trên đã có hiện tượng lặp.
Vậy lặp là gì ?
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Lặp: một công việc, một thao tác, một phép toán, một câu lệnh … được thực hiện lặp đi, lặp lại một số lần.
Trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Cấu trúc lặp được sử dụng để mô tả các thao tác lặp đó.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Em hãy lấy ví dụ về lặp trong thực tế:
Có những hoạt động mà chúng ta lặp với số lần nhất định và biết trước, chẳng hạn :
- Đánh răng mỗi ngày hai lần, mỗi ngày ăn cơm 3 lần,…
- Mỗi buổi sáng học 5 tiết, …
Có những hoạt động mà chúng ta lặp với số lần không thể xác định trước, chẳng hạn:
- Học cho đến khi thuộc bài.
- Nhặt từng cọng rau cho đến khi nào xong…
Khi viết chương trình máy tính cũng vậy. Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều trường hợp ta cũng cần phải viết nhiều câu lệnh thực hiện 1 phép tính nhất định.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Cho đến khi
TÌM SỰ KHÁC BIỆT
Bài toán 1:
Bài toán 2:
Việc tính giá trị cho tổng S được lặp đi lặp lại 100 lần.
Việc tính giá trị cho tổng S được lặp đi lặp lại cho đến khi
Số lần lặp biết trước.
Số lần lặp chưa biết trước.
BÀI 10: CẤU TRÚC LẶP
1.LẶP
Có hai loại 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
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Câu hỏi: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần biết trước?
BÀI 10: CẤU TRÚC LẶP
2. Lặp với số lần biết trước và câu lệnh For …do
NHẬN XÉT:
Ban đầu : S := 1/a
Cộng lần 1: S1: = S + 1/(a+1)
Cộng lần 2: S2: = S1 + 1/(a+2)
Cộng lần 3: S3: = S2 + 1/(a+3)
.....
Cộng lần 100: S100: = S99 + 1/(a+100)
Bắt đầu từ lần cộng 1 việc tính S được lặp đi lặp lại 100 lần theo quy luật:
Ssau := Strước+ 1/(a+N)
với N chạy từ 1 100
. . . . . . . . . . . . . . . . . . . .
Từ ý tưởng trên em hãy viết thuật toán cho bài toán
PHÂN TÍCH BÀI TOÁN 1 (Ý TƯỞNG)
BÀI 10: CẤU TRÚC LẶP
2. Lặp với số lần biết trước và câu lệnh For …do
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+ 1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
THUẬT TOÁN TONG_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+ 1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100 (N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
THUẬT TOÁN TONG_1b
Số lần lặp của cả hai thuật toán trên là biết trước và như nhau (100 lần)
Giá trị N khi bắt đầu tham gia vòng lặp là? Sau mỗi lần lặp N tăng lên? N bằng bao nhiêu thì kết thúc?
Giá trị N khi bắt đầu tham gia vòng lặp là? Sau mỗi lần lặp N tăng lên? N bằng bao nhiêu thì kết thúc?
Em hãy chỉ rõ các bước phải thực hiện lặp đi lặp lại một số lần?
Em hãy chỉ rõ các bước phải thực hiện lặp đi lặp lại một số lần?
BÀI 10: CẤU TRÚC LẶP
Mô tả cấu trúc lặp với số lần biết trước và câu lệnh For…do
Dạng lặp tiến:
For
Dạng lặp lùi:
For
2. Lặp với số lần biết trước và câu lệnh For …do
Ví dụ: S:=1;
FOR i:=2 TO 100 DO
S:=S+1/i;
Ví dụ: S:=1;
FOR i:=100 DOWNTO 2 DO
S:=S+1/i;
BÀI 10: CẤU TRÚC LẶP
Mô tả cấu trúc lặp với số lần biết trước và câu lệnh For…do
Biến đếm: Là biến đơn, thường có kiểu nguyên
Giá trị đầu, giá trị cuối: Là các biểu thức cùng kiểu
với biến đếm (Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối)
for, to, downto, do: Là từ khóa trong Pascal;
2. Lặp với số lần biết trước và câu lệnh For …do
Trong đó:
Program Tong_1a;
Var a, N: integer;
S: real;
Begin
Write (‘Nhap vao a>2: ’); Readln(a);
s:=1/a; (* Buoc 1 *)
For N:=1 to 100 do (* Buoc 2, buoc 3 *)
S:=S + 1/(a+N); (* Buoc 4 *)
Write(‘Tong S la: ’, S:5:1); (* Buoc 5 *)
Readln;
End.
HOẠT ĐỘNG NHÓM
Các câu lệnh Pascal sau có hợp lệ không? Tại sao?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS: Không hợp lệ vì giá trị đầu lớn hơn giá trị cuối
HẾT GIỜ
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS: Không hợp lệ vì giá trị đầu và giá trị cuối là số thực
For i:=1 to 10 do
Write(‘A’);
ĐS: Hợp lệ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS: Hợp lệ, AAAAAAAAAA
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
Ví dụ 1: Tính tổng S
Hãy xác định bài toán
Input:
Output:
- Dữ liệu vào (Input) : Nhập N
- Dữ liệu ra (Output) : Tổng S
S=1 + 1/2 + 1/3 +…+1/100
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
XÕY DỰNG THUẬT TOỎN
Đ
S
B1: Nhập N;
B2: S:=1; i:=2;
B3: Nếu i > N thì đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/i;
B5: i := i +1 quay lại B3.
i:= i+1
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
i
S
2.28
5
Nhập N
S := 1 ; i := 2;
2>5 ?
S
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S
S
S
6>5 ?
In Tổng S
Tổng S=2.28
Với N = 5
2.28
Đ
Đ
Mô phỏng thuật toán
S1 = 1
S2 = S1 + 1/2
S3 = S2 + 1/3
S4 = S3 + 1/4
S100 = S99 + 1/100
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ.
Var i,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
Program Tinh_tong;
BÀI 10: CẤU TRÚC LẶP
3.Một số ví dụ .
Program vd2;
Var i:Integer;
Begin
Writeln(‘ Biến điều khiển tăng ‘);
For i:=1 to 10 do
Writeln(i);
Writeln(‘ Bấm phím
Readln;
End.
Ví dụ 2: viết chương trình in ra màn hình các số:
1 2 3 4 5 6 7 8 9 10
BÀI 10: CẤU TRÚC LẶP
CỦNG CỐ
Dạng lặp tiến:
Dạng lặp lùi:
Tăng 1 đơn vị
Giảm 1 đơn vị
For
For
to
1. Khái niệm lặp:
2.Lặp với số lần biết trước và câu lệnh for …do
Chuẩn bị bài tập ở nhà từ bài tập 1….bài tập 8 trang 50,51SGK
Cú pháp :
Cú pháp :
Xem
BÀI HỌC KẾT THÚC
THÂN ÁI CHÀO 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ẻ: Nguyễn Hữu Duyên
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)