Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Khuyến |
Ngày 10/05/2019 |
59
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 A7
Giáo viên: Nguyễn Thị Khuyên
?
Kiểm tra bài cũ
Bài 10
cấu trúc lặp
Giáo án điện tử tin học lớp 11
(Tiết 1)
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
1. Khái niệm 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 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.
?
Lặp có nghĩa là làm đi làm lại nhiều lần cùng một thao tác.
Trong lập trình, cũng có những thao tác, những câu lệnh lặp đi lặp lại nhiều lần tạo thành một cấu trúc lặp.
Có 2 loại cấu trúc 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.
Tóm lại:
1. Khái niệm lặp
a. Bài toán đặt vấ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
Đ
S
B1: Nhập N;
B2: S ? 0; i ? 1;
B3: Nếu i > N thì sang Bước 5;
B4 : S ? S + i;
i ? i +1; Quay lại B3
B5: Đưa ra giá trị S rồi Kết thúc.
Xây dựng thuật toán
i i + 1
Đ
S
B1: Nhập N;
B2: S ? 0; i ? N;
B3: Nếu i <1 thì sang bước 5;
B4 : S ? S + i;
i ? i -1; Quay lại B3
B5: Đưa ra giá trị S rồi Kết thúc.
Xây dựng thuật toán
i i - 1
Thuật toán dạng lặp tiến.
Dạng lặp tiến: Biến đếm tự động tăng dần từ giá trị đầu đến giá trị cuối.
Thuật toán dạng lặp lùi.
Dạng lặp lùi: Biến đếm tự động giảm dần từ giá trị cuối đến giá trị đầu.
So sánh hai thuật toán sau
2. Lặp với số lần lặp biết trước và câu lệnh For-do
FOR := TO DO < câu lệnh>;
Ví dụ:
FOR i:=1 TO 100 DO S:=S+i;
* Dạng 2 (dạng lặp lùi)
FOR := DOWNTO DO ;
Ví dụ:
FOR i:=100 DOWNTO 1 DO S:=S+i;
b. 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)
? - 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ú ý:
- Sau mỗi lần lặp, biến đếm Tự động tăng lên (dạng tiến) hoặc giảm xuống (dạng lùi). Cho nên trong vòng lặp, không được có câu lệnh tác động đến giá trị của biến đếm.
- 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
Var i, n : byte; S : integer;
BEGIN
Readln;
END.
S:=0;
FOR i:= 1 to n do S := S + i;
Writeln(` Tong S = `, S:6);
Write(` Nhap gia tri n vao : `); readln(n);
Program Tinh_tong;
Hãy áp dụng câu lệnh dạng lặp tiến để viết chương trình giải bài toán đặt vấn đề.
Lập trình tính tổng:
Trắc nghiệm củng cố
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:
kết thúc bài
Tập thể lớp 11 A7
Giáo viên: Nguyễn Thị Khuyên
?
Kiểm tra bài cũ
Bài 10
cấu trúc lặp
Giáo án điện tử tin học lớp 11
(Tiết 1)
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
1. Khái niệm 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 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.
?
Lặp có nghĩa là làm đi làm lại nhiều lần cùng một thao tác.
Trong lập trình, cũng có những thao tác, những câu lệnh lặp đi lặp lại nhiều lần tạo thành một cấu trúc lặp.
Có 2 loại cấu trúc 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.
Tóm lại:
1. Khái niệm lặp
a. Bài toán đặt vấ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
Đ
S
B1: Nhập N;
B2: S ? 0; i ? 1;
B3: Nếu i > N thì sang Bước 5;
B4 : S ? S + i;
i ? i +1; Quay lại B3
B5: Đưa ra giá trị S rồi Kết thúc.
Xây dựng thuật toán
i i + 1
Đ
S
B1: Nhập N;
B2: S ? 0; i ? N;
B3: Nếu i <1 thì sang bước 5;
B4 : S ? S + i;
i ? i -1; Quay lại B3
B5: Đưa ra giá trị S rồi Kết thúc.
Xây dựng thuật toán
i i - 1
Thuật toán dạng lặp tiến.
Dạng lặp tiến: Biến đếm tự động tăng dần từ giá trị đầu đến giá trị cuối.
Thuật toán dạng lặp lùi.
Dạng lặp lùi: Biến đếm tự động giảm dần từ giá trị cuối đến giá trị đầu.
So sánh hai thuật toán sau
2. Lặp với số lần lặp biết trước và câu lệnh For-do
FOR
Ví dụ:
FOR i:=1 TO 100 DO S:=S+i;
* Dạng 2 (dạng lặp lùi)
FOR
Ví dụ:
FOR i:=100 DOWNTO 1 DO S:=S+i;
b. 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)
? - 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ú ý:
- Sau mỗi lần lặp, biến đếm Tự động tăng lên (dạng tiến) hoặc giảm xuống (dạng lùi). Cho nên trong vòng lặp, không được có câu lệnh tác động đến giá trị của biến đếm.
- 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
Var i, n : byte; S : integer;
BEGIN
Readln;
END.
S:=0;
FOR i:= 1 to n do S := S + i;
Writeln(` Tong S = `, S:6);
Write(` Nhap gia tri n vao : `); readln(n);
Program Tinh_tong;
Hãy áp dụng câu lệnh dạng lặp tiến để viết chương trình giải bài toán đặt vấn đề.
Lập trình tính tổng:
Trắc nghiệm củng cố
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:
kết thúc bài
* 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 Khuyế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)