Bài 10. Cấu trúc lặp
Chia sẻ bởi Phan Thi Doan Trang |
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:
Kính chào quý thầy cô về dự giờ
Tập thể lớp 11 A3
Kiểm tra bài cũ
Cho biết kết quả của đoạn chương trình sau?
Program VD;
Begin
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Readln;
End.
PASCAL PASCAL PASCAL PASCAL PASCAL
Kết quả
CẤU TRÚC LẶP
Bài 10
H?ng ngy 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 tắm 1 lần.
-Một bình nước có dung tích 20lit mỗi lần đỗ vào bình 1 lít.Để cho bình nước đầy ta phảI thực hiện 20 lần
-Học cho đến khi thuộc bài.
-Nhặt từng cọng rau cho đến khi 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.
Chúng ta còn lặp lại những công việc với số lần không thể xác định trước, chẳng hạn
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng.
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân hai loại :
+ 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/ LẶP
Bài toán 1:
Bài toán 2:
VD: Xét 2 bài toán: Tính và đưa kết quả ra màn hình tổng
cho đến khi
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 tăng thêm bao nhiêu?
Sau mỗi lần thực hiện giá trị tổng S tăng thêm giá trị i ( với i =1; 2; 3 ; ...;N)
Cùng tìm thuật toán
Lần 3
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 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
? Số lần lặp chưa biết trước.
FOR := TO DO < câu lệnh>;
Ví dụ:
FOR i:=1 TO 5 DO WRITELN(i);
* Dạng 2 (dạng lặp lùi)
FOR := DOWNTO DO ;
Ví dụ:
FOR i:=5 DOWNTO 1 DO WRITELN(i);
a. Câu lệnh For-do:
2. Lặp với số lần lặp biết trước và câu lệnh For-do
* Dạng 1 (dạng lặp tiến)
Viết ra 5 số
Từ 5 -1
Viết ra 5 số
Từ 1 ->5
? - Giá trị đầu, giá trị cuối là các biểu thức có cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
For i:= 100 to 200 do write(i);
Trong đó
? - Biến đếm là biến đơn, và có kiểu số nguyên hoặc kiểu kí tự.
For i:=1 to 10 do write(i);
For i:=`a` to `z` do write(i);
2. Lặp với số lần lặp biết trước và câu lệnh For-do
? - ễ daùng laởp tieỏn: Bieỏn ủeỏm tửù ủoọng taờng dan tửứ giaự trũ ủau ủeỏn giaự trũ cuoỏi.
? - ễ daùng laởp luứi: Bieỏn ủeỏm tửù ủoọng giaỷm dan tửứ giaự trũ cuoỏi ủeỏn giaự trũ ủau.
? - Tửụng ửựng vụựi moói giaự trũ cuỷa bieỏn ủeỏm, caõu leọnh sau do thửùc hieọn 1 lan.
Bước 1: Gán giá trị đầu cho biến đếm.
Bước 2: Nếu biến đếm <= giá trị cuối thì
thực hiện lệnh cần lặp, ngược lại thì chuyển sang lệnh khác trong chương trình.
Bước 3: Tăng biến đếm 1 đơn vị, và quay lại bước 2
Bước 1: Gán giá trị cuối cho biến đếm.
Bước 2: Nếu biến đếm >= giá trị đầu thì
thực hiện lệnh cần lặp, ngược lại thì chuyển sang lệnh khác trong chương trình.
Bước 3: Giảm biến đếm 1 đơn vị, và quay lại bước 2
Chú ý:
- Trong câu lệnh FOR . . . DO, Nếu giá trị đầu = giá trị cuối thì vòng lặp sẽ được thực hiện 1 lần.
- Trong câu lệnh FOR . . . DO
Số lần lặp = Giá trị cuối - Giá trị đầu + 1.
2. Lặp với số lần lặp biết trước và câu lệnh For-do
b/VD: Bài toán :
- Dữ liệu ra (Output) : Tổng S
Lập chương trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập N
Hãy xác định INPUT và OUTPUT của bài toán trên!
2. Lặp với số lần lặp biết trước và câu lệnh For-do
Nếu N =10, S=?; lập trình giải như thế nào?
S0 := 0;
i=1 ? S1 := S0 + 1 = 1;
i=2 ? S2 := S1 + 2 = 3;
.....
i=10 ? S10 :=S9+10=55;
S=1+2+3+ . +10;
Phân tích bài toán với TừNG TRƯờng hợp của N
S0 := 0;
i=1 ? S1 := S0 + 1;
i=2 ? S2 := S1 + 2;
.....
i=10 ? S10 := S9 + 10;
.......
i=100 ? S100 :=S99+100;
Nếu N =100, lập trình giải như thế nào?
Em có nhận xét gì về cách giải này?
Nhận xét:
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật:
Ssau = Strước+ i
với i chạy từ 1 ? 100
Hãy áp dụng câu lệnh dạng lặp tiến để viết chương trình?
Lập trình tính tổng:
Nhóm 1 và 3
Hãy áp dụng câu lệnh dạng lặp lùi để viết chương trình?
Nhóm 2 và 4
Program tong1 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := 1 to n do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lặp tiến
Program tong1 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := 1 to n do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lặp tiến
Program tong2 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := n downto 1 do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lùi
? Chương trình dùng câu lệnh lặp For - do dạng lùi
Program tong2 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := n downto 1 do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
Bài tập trắc nghiệm củng cố:
Câu 1: x biến thực ,i biến nguyên ,câu lệnh nào sau đây la đúng?
A.for x:=1 to 10 do writeln(‘lop 11a3’);
B. for i:=1 to 10 do writeln(‘lop 11a3’);
C. for x:=1.5 to 10.5 do writeln(‘lop 11a3’);
D. for i:=1.5 to 10 do writeln(‘lop 11a3’);
Bài tập trắc nghiệm củng cố:
Câu 2: cú pháp lệnh lặp nào sau đây là sai?
A. For I:=n downto 1 do …
B. For I:=1 downto n do …
C. For I:=0 to n do …
D. For I:=1 to n do …
c. Bài tập về nhà
2. Lặp với số lần lặp biết trước và câu lệnh For-do
BT1: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. Tính tổng S:
BT2: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. Tính tích T:
Tập thể lớp 11 A3
Kiểm tra bài cũ
Cho biết kết quả của đoạn chương trình sau?
Program VD;
Begin
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Readln;
End.
PASCAL PASCAL PASCAL PASCAL PASCAL
Kết quả
CẤU TRÚC LẶP
Bài 10
H?ng ngy 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 tắm 1 lần.
-Một bình nước có dung tích 20lit mỗi lần đỗ vào bình 1 lít.Để cho bình nước đầy ta phảI thực hiện 20 lần
-Học cho đến khi thuộc bài.
-Nhặt từng cọng rau cho đến khi 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.
Chúng ta còn lặp lại những công việc với số lần không thể xác định trước, chẳng hạn
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng.
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân hai loại :
+ 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/ LẶP
Bài toán 1:
Bài toán 2:
VD: Xét 2 bài toán: Tính và đưa kết quả ra màn hình tổng
cho đến khi
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 tăng thêm bao nhiêu?
Sau mỗi lần thực hiện giá trị tổng S tăng thêm giá trị i ( với i =1; 2; 3 ; ...;N)
Cùng tìm thuật toán
Lần 3
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 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
? Số lần lặp chưa biết trước.
FOR
Ví dụ:
FOR i:=1 TO 5 DO WRITELN(i);
* Dạng 2 (dạng lặp lùi)
FOR
Ví dụ:
FOR i:=5 DOWNTO 1 DO WRITELN(i);
a. Câu lệnh For-do:
2. Lặp với số lần lặp biết trước và câu lệnh For-do
* Dạng 1 (dạng lặp tiến)
Viết ra 5 số
Từ 5 -1
Viết ra 5 số
Từ 1 ->5
? - Giá trị đầu, giá trị cuối là các biểu thức có cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
For i:= 100 to 200 do write(i);
Trong đó
? - Biến đếm là biến đơn, và có kiểu số nguyên hoặc kiểu kí tự.
For i:=1 to 10 do write(i);
For i:=`a` to `z` do write(i);
2. Lặp với số lần lặp biết trước và câu lệnh For-do
? - ễ daùng laởp tieỏn: Bieỏn ủeỏm tửù ủoọng taờng dan tửứ giaự trũ ủau ủeỏn giaự trũ cuoỏi.
? - ễ daùng laởp luứi: Bieỏn ủeỏm tửù ủoọng giaỷm dan tửứ giaự trũ cuoỏi ủeỏn giaự trũ ủau.
? - Tửụng ửựng vụựi moói giaự trũ cuỷa bieỏn ủeỏm, caõu leọnh sau do thửùc hieọn 1 lan.
Bước 1: Gán giá trị đầu cho biến đếm.
Bước 2: Nếu biến đếm <= giá trị cuối thì
thực hiện lệnh cần lặp, ngược lại thì chuyển sang lệnh khác trong chương trình.
Bước 3: Tăng biến đếm 1 đơn vị, và quay lại bước 2
Bước 1: Gán giá trị cuối cho biến đếm.
Bước 2: Nếu biến đếm >= giá trị đầu thì
thực hiện lệnh cần lặp, ngược lại thì chuyển sang lệnh khác trong chương trình.
Bước 3: Giảm biến đếm 1 đơn vị, và quay lại bước 2
Chú ý:
- Trong câu lệnh FOR . . . DO, Nếu giá trị đầu = giá trị cuối thì vòng lặp sẽ được thực hiện 1 lần.
- Trong câu lệnh FOR . . . DO
Số lần lặp = Giá trị cuối - Giá trị đầu + 1.
2. Lặp với số lần lặp biết trước và câu lệnh For-do
b/VD: Bài toán :
- Dữ liệu ra (Output) : Tổng S
Lập chương trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập N
Hãy xác định INPUT và OUTPUT của bài toán trên!
2. Lặp với số lần lặp biết trước và câu lệnh For-do
Nếu N =10, S=?; lập trình giải như thế nào?
S0 := 0;
i=1 ? S1 := S0 + 1 = 1;
i=2 ? S2 := S1 + 2 = 3;
.....
i=10 ? S10 :=S9+10=55;
S=1+2+3+ . +10;
Phân tích bài toán với TừNG TRƯờng hợp của N
S0 := 0;
i=1 ? S1 := S0 + 1;
i=2 ? S2 := S1 + 2;
.....
i=10 ? S10 := S9 + 10;
.......
i=100 ? S100 :=S99+100;
Nếu N =100, lập trình giải như thế nào?
Em có nhận xét gì về cách giải này?
Nhận xét:
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật:
Ssau = Strước+ i
với i chạy từ 1 ? 100
Hãy áp dụng câu lệnh dạng lặp tiến để viết chương trình?
Lập trình tính tổng:
Nhóm 1 và 3
Hãy áp dụng câu lệnh dạng lặp lùi để viết chương trình?
Nhóm 2 và 4
Program tong1 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := 1 to n do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lặp tiến
Program tong1 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := 1 to n do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lặp tiến
Program tong2 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := n downto 1 do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
? Chương trình dùng câu lệnh lặp For - do dạng lùi
? Chương trình dùng câu lệnh lặp For - do dạng lùi
Program tong2 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);
S:= 0;
For i := n downto 1 do
S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.
Bài tập trắc nghiệm củng cố:
Câu 1: x biến thực ,i biến nguyên ,câu lệnh nào sau đây la đúng?
A.for x:=1 to 10 do writeln(‘lop 11a3’);
B. for i:=1 to 10 do writeln(‘lop 11a3’);
C. for x:=1.5 to 10.5 do writeln(‘lop 11a3’);
D. for i:=1.5 to 10 do writeln(‘lop 11a3’);
Bài tập trắc nghiệm củng cố:
Câu 2: cú pháp lệnh lặp nào sau đây là sai?
A. For I:=n downto 1 do …
B. For I:=1 downto n do …
C. For I:=0 to n do …
D. For I:=1 to n do …
c. Bài tập về nhà
2. Lặp với số lần lặp biết trước và câu lệnh For-do
BT1: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. Tính tổng S:
BT2: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. Tính tích 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ẻ: Phan Thi Doan Trang
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)