Bài 10. Cấu trúc lặp
Chia sẻ bởi Trần Thu Hà |
Ngày 10/05/2019 |
68
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:
NHIỆT LIỆT CHÀO MỪNG
HỘI THI GIÁO VIÊ N GIỎI THÀNH PHỐ - NĂM 2012
Giáo viên thực hiện :
Nguyễn Thị Thúy
Trường THPT Thái Phiên
Sử dụng lệnh rẽ nhánh , viết các lệnh để :
“Tìm giá trị lớn nhất của hai biến a,b ”
bằng hai cách
Cách 2: if a> b then max :=a else max:=b;
Kiểm tra bài cũ
Đáp án :
Cách 1: max :=a;
if b>max then max:=b;
*. Lặp trong cuộc sống thực tế :
Đổ đầy nước vào 8 thùng nhựa.
Công nhân lắp ráp máy tính ở dây chuyền trong một ca làm việc.
Gọi thí sinh vào phòng thi.
Công việc lặp ?
Điều kiện nào còn lặp ?
Bài 10
Cấu trúc lặp
thứ bảy, 01 tháng mười hai 2012
1/ LẶP
Bài toán đăt vấn đề :
Nhập số nguyên a (a>2). Tính tổng S cho :
Bài toán 1:
Bài toán 2:
Cho đến khi
Input : a
Output : Tổng S
Xác định bài toán
Xuất phát :
S = ….
S
i = ….
;
( Tru?c khi l?p)
Công việc lặp ?
Điều kiện nào còn lặp ?
Điều kiện lặp:
Khi i =<100
BT1
Khi 1/(a+ i ) >= 0.0001
BT2
Cách tính tổng S ?
Cấu trúc lặp mô tả thao tá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 .
1/ LẶP
Nhập số nguyên a (a>2). Tính tổng cho các bài toán sau:
Trước khi lặp
Công việc lặp
Điều kiện lặp
Lặp
Được phân làm hai loại :
BT1
BT2
Cho đến khi
Bài toán 1:
Bài toán 2:
Nhập số nguyên a (a>2). Tính tổng S cho các bài toán sau:
Bài toán 1:
S
i=100
Công việc lặp :
Tăng i lên 1
Cộng thêm 1/(a+ i ) vào S
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
For := to do < Công vi?c>;
Dạng lặp tiến
Giải thích
Ví dụ 1 :
biến đếm : thu?ng l m?t bi?n ki?u s? nguyờn
giá trị đầu, giá trị cuối : cựng ki?u v?i bi?n d?m v giá trị đầu ? giá trị cuối
Công việc : l m?t cõu l?nh don ho?c ghộp
For i:= 1 to 3 do Writeln(`*****`);
Thực hiện lệnh:
Công việc sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị tăng liên tiếp từ giá trị đầu đến giá trị cuối
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Kết quả trên màn hình :
*****
*****
*****
For := downto do ;
Dạng lặp lùi
a. Câu lệnh For-do
Hoặc giảm liên tiếp từ giá trị cuối về giá trị đầu (với dạng lặp lùi)
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
b. Các ví dụ
Ví dụ 1: Tính giá trị của S sau khi các lệnh thực hiện xong:
S := 0;
For i:= 1 to 3 do S := S + 4;
Trước khi lặp:
Lặp :
S
i
1
4
2
8
3
12
S =
= 0
S := 0;
For i:= 3 downto 1 do S := S +4 ;
Trước khi lặp:
Lặp :
S
i
3
4
2
8
1
12
S =
= 0
Input : a
Output : Tổng S
Xác định bài toán :
Xuất phát :
;
( Tru?c khi l?p)
Điều kiện lặp:
Khi i =<100
Viết thuật toán cho bài toán?
Bước 1: Nhập a ( a>2)
Bước 2: S 1/a ; i 0;
Bước …: Đưa ra S rồi kết thúc
….
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
b. Các ví dụ
Ví dụ 2: Bài toán 1 - Tính tổng
Thuật toán :
Bước 3: i i+1;
Bước 4: Nếu i >100 thì sang Bước 6
Bước 5: S S + 1/(a+i);
rồi quay lại Bước 3
6
Hoạt động nhóm 1
HẾT GIỜ
Bước 1: Nhập a ( a>2)
Bước 2: S 1/a ; i 0;
Bước 6 : Đưa ra S rồi kết thúc
Bước 3: i i+1;
Bước 4: Nếu i >100 thì
sang Bước 6
Bước 5: S S + 1/(a+i);
rồi quay lại Bước 3
Hoàn thành chương trình bài toán 1 – Tính tổng S :
Thuật toán :
Chương trình :
Var a,i : integer; S: Real;
Begin
S:=1/a;
Write(` Nhap a = `);
readln(a);
Readln;
End.
Writeln(` Tong S =`,S:8:3);
Program Tong_1a;
For i:=1 to 100 do
S := S+1/(a+i);
.
Hoạt động nhóm 2
Các câu lệnh d?ng ti?n sau có hợp lệ không? vì sao ?
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
TL : 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’);
TL : không hợp lệ, vì giá trị đầu, giá trị cuối là dữ liệu kiểu số thực
For i:=1 to 10 do Write(‘A’);
TL : Hỵp lƯ, k?t qu? : AAAAAAAAAA
For i:=10 to 12 do Write(‘A’);
TL : Hỵp lƯ, k?t qu? : AAA
Hoạt động nhóm 3
Tính giá trị biến S sau khi các lệnh sau thực hiện?
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
S = 9
HẾT GIỜ
S:=10; For i:=2 to 4 do S:=S-3 ;
S:= 1; For i:=10 to 13 do S:=S*2;
S=6
S:=0; For i:=10 Downto 7 do S:=S+2;
S=8
S:=1; For i:= 3 Downto 1 do S:=S*2;
S= 6
Hãy nhớ!
1. Lặp : Cấu trúc lặp mô tả thao tác lặp.
2. Lặp với số lần biết trước
For := to do ;
Dạng lặp tiến
For := downto do ;
Dạng lặp lùi
Thực hiện lệnh:
Sau mỗi lần thực hiện công việc sau từ khóa do biến đếm tăng lên 1 đơn vị, từ giá trị đầu đến giá trị cuối
Sau mỗi lần thực hiện công việc sau từ khóa do biến đếm giảm đi 1 đơn vị, từ giá trị cuối về giá trị đầu
Về nhà :
So sánh thực hiện lệnh; số lần lặp của hai dạng lặp tiến là lặp lùi
viết chương trình cho bài toán tính tổng S bằng dạng lặp lùi.
Số lần lặp
= giá trị cuối – giá trị đầu +1
Chúc các em học sinh chăm ngoan, học tốt !
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
HẾT GIỜ
TL : K?t qu? : 11
S := 1; k:=1;
For i:=2 to 4 do
begin S := S * k; k:= k+2; end;
S := 0;
For i:=1 to 2 do
For j:= i to 3 do S := S + j;
TL : K?t qu? : 15
S := 1; k:=1;
For i:=2 to 4 do
begin S := S * k; k:= k+2; end;
Trước khi lặp:
Lặp :
S
i
2
1
3
3
S =
= 1; k =1;
k
3
5
4
15
7
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 1
Nhóm 2
S := 0;
For i:=1 to 2 do
For j:= i to 3 do S := S + j;
Trước khi lặp:
Lặp :
i
1
1
3
6
S =
= 0
2
11
S
j
1
2
3
2
3
8
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 3
Nhóm 4
Bài tập áp dụng:
Nhận xét :
Nếu a là ước thực sự của N thì:
N chia hết cho a
a sẽ có giá trị trong đoạn từ 1 đến n div 2
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Nhập số nguyên dương N .
Tính tổng các ước thực sự ( khác N) của N.
Input : N
Output : Tổng các ước thực sự của N
Xác định bài toán
Cách tìm tổng các ước thực sự của N ?
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Trước khi lặp:
Lặp :
S
i
3
30
2
60
S =
= 10
S := 10;
For i:=3 downto 2 do S := S * i;
Ví dụ :
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Hãy nhớ!
1. Lặp : Cấu trúc lặp mô tả thao tác lặp.
2. Lặp với số lần biết trước
For := to do ;
Dạng lặp tiến
For := downto do ;
Dạng lặp lùi
Thực hiện lệnh:
Sau mỗi lần lặp biến đếm tăng đi 1 đơn vị từ giá trị đầu đến giá trị cuối
Sau mỗi lần lặp biến đếm giảm đi 1 đơn vị từ giá trị cuối về giá trị đầu
Về nhà : Hãy viết chương trình cho bài toán tính tổng S bằng dạng lặp lùi.
Chúc các em học sinh cham ngoan, học tốt !
Sơ đồ Thực hiện lệnh:
Dạng lặp tiến
Dạng lặp lùi
Biến đếm := Giá trị đầu
Biến đếm <= Giá trị cuối
Công việc lặp
Biến đếm tăng 1
Đúng
Sai
Biến đếm := Giá trị cuối
Biến đếm >= Giá trị đầu
Công việc lặp
Biến đếm giảm 1
Đúng
Sai
HỘI THI GIÁO VIÊ N GIỎI THÀNH PHỐ - NĂM 2012
Giáo viên thực hiện :
Nguyễn Thị Thúy
Trường THPT Thái Phiên
Sử dụng lệnh rẽ nhánh , viết các lệnh để :
“Tìm giá trị lớn nhất của hai biến a,b ”
bằng hai cách
Cách 2: if a> b then max :=a else max:=b;
Kiểm tra bài cũ
Đáp án :
Cách 1: max :=a;
if b>max then max:=b;
*. Lặp trong cuộc sống thực tế :
Đổ đầy nước vào 8 thùng nhựa.
Công nhân lắp ráp máy tính ở dây chuyền trong một ca làm việc.
Gọi thí sinh vào phòng thi.
Công việc lặp ?
Điều kiện nào còn lặp ?
Bài 10
Cấu trúc lặp
thứ bảy, 01 tháng mười hai 2012
1/ LẶP
Bài toán đăt vấn đề :
Nhập số nguyên a (a>2). Tính tổng S cho :
Bài toán 1:
Bài toán 2:
Cho đến khi
Input : a
Output : Tổng S
Xác định bài toán
Xuất phát :
S = ….
S
i = ….
;
( Tru?c khi l?p)
Công việc lặp ?
Điều kiện nào còn lặp ?
Điều kiện lặp:
Khi i =<100
BT1
Khi 1/(a+ i ) >= 0.0001
BT2
Cách tính tổng S ?
Cấu trúc lặp mô tả thao tá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 .
1/ LẶP
Nhập số nguyên a (a>2). Tính tổng cho các bài toán sau:
Trước khi lặp
Công việc lặp
Điều kiện lặp
Lặp
Được phân làm hai loại :
BT1
BT2
Cho đến khi
Bài toán 1:
Bài toán 2:
Nhập số nguyên a (a>2). Tính tổng S cho các bài toán sau:
Bài toán 1:
S
i=100
Công việc lặp :
Tăng i lên 1
Cộng thêm 1/(a+ i ) vào S
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
For
Dạng lặp tiến
Giải thích
Ví dụ 1 :
biến đếm : thu?ng l m?t bi?n ki?u s? nguyờn
giá trị đầu, giá trị cuối : cựng ki?u v?i bi?n d?m v giá trị đầu ? giá trị cuối
Công việc : l m?t cõu l?nh don ho?c ghộp
For i:= 1 to 3 do Writeln(`*****`);
Thực hiện lệnh:
Công việc sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị tăng liên tiếp từ giá trị đầu đến giá trị cuối
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Kết quả trên màn hình :
*****
*****
*****
For
Dạng lặp lùi
a. Câu lệnh For-do
Hoặc giảm liên tiếp từ giá trị cuối về giá trị đầu (với dạng lặp lùi)
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
b. Các ví dụ
Ví dụ 1: Tính giá trị của S sau khi các lệnh thực hiện xong:
S := 0;
For i:= 1 to 3 do S := S + 4;
Trước khi lặp:
Lặp :
S
i
1
4
2
8
3
12
S =
= 0
S := 0;
For i:= 3 downto 1 do S := S +4 ;
Trước khi lặp:
Lặp :
S
i
3
4
2
8
1
12
S =
= 0
Input : a
Output : Tổng S
Xác định bài toán :
Xuất phát :
;
( Tru?c khi l?p)
Điều kiện lặp:
Khi i =<100
Viết thuật toán cho bài toán?
Bước 1: Nhập a ( a>2)
Bước 2: S 1/a ; i 0;
Bước …: Đưa ra S rồi kết thúc
….
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
b. Các ví dụ
Ví dụ 2: Bài toán 1 - Tính tổng
Thuật toán :
Bước 3: i i+1;
Bước 4: Nếu i >100 thì sang Bước 6
Bước 5: S S + 1/(a+i);
rồi quay lại Bước 3
6
Hoạt động nhóm 1
HẾT GIỜ
Bước 1: Nhập a ( a>2)
Bước 2: S 1/a ; i 0;
Bước 6 : Đưa ra S rồi kết thúc
Bước 3: i i+1;
Bước 4: Nếu i >100 thì
sang Bước 6
Bước 5: S S + 1/(a+i);
rồi quay lại Bước 3
Hoàn thành chương trình bài toán 1 – Tính tổng S :
Thuật toán :
Chương trình :
Var a,i : integer; S: Real;
Begin
S:=1/a;
Write(` Nhap a = `);
readln(a);
Readln;
End.
Writeln(` Tong S =`,S:8:3);
Program Tong_1a;
For i:=1 to 100 do
S := S+1/(a+i);
.
Hoạt động nhóm 2
Các câu lệnh d?ng ti?n sau có hợp lệ không? vì sao ?
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
TL : 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’);
TL : không hợp lệ, vì giá trị đầu, giá trị cuối là dữ liệu kiểu số thực
For i:=1 to 10 do Write(‘A’);
TL : Hỵp lƯ, k?t qu? : AAAAAAAAAA
For i:=10 to 12 do Write(‘A’);
TL : Hỵp lƯ, k?t qu? : AAA
Hoạt động nhóm 3
Tính giá trị biến S sau khi các lệnh sau thực hiện?
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
S = 9
HẾT GIỜ
S:=10; For i:=2 to 4 do S:=S-3 ;
S:= 1; For i:=10 to 13 do S:=S*2;
S=6
S:=0; For i:=10 Downto 7 do S:=S+2;
S=8
S:=1; For i:= 3 Downto 1 do S:=S*2;
S= 6
Hãy nhớ!
1. Lặp : Cấu trúc lặp mô tả thao tác lặp.
2. Lặp với số lần biết trước
For
Dạng lặp tiến
For
Dạng lặp lùi
Thực hiện lệnh:
Sau mỗi lần thực hiện công việc sau từ khóa do biến đếm tăng lên 1 đơn vị, từ giá trị đầu đến giá trị cuối
Sau mỗi lần thực hiện công việc sau từ khóa do biến đếm giảm đi 1 đơn vị, từ giá trị cuối về giá trị đầu
Về nhà :
So sánh thực hiện lệnh; số lần lặp của hai dạng lặp tiến là lặp lùi
viết chương trình cho bài toán tính tổng S bằng dạng lặp lùi.
Số lần lặp
= giá trị cuối – giá trị đầu +1
Chúc các em học sinh chăm ngoan, học tốt !
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 1
Nhóm 2
Nhóm 3
Nhóm 4
HẾT GIỜ
TL : K?t qu? : 11
S := 1; k:=1;
For i:=2 to 4 do
begin S := S * k; k:= k+2; end;
S := 0;
For i:=1 to 2 do
For j:= i to 3 do S := S + j;
TL : K?t qu? : 15
S := 1; k:=1;
For i:=2 to 4 do
begin S := S * k; k:= k+2; end;
Trước khi lặp:
Lặp :
S
i
2
1
3
3
S =
= 1; k =1;
k
3
5
4
15
7
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 1
Nhóm 2
S := 0;
For i:=1 to 2 do
For j:= i to 3 do S := S + j;
Trước khi lặp:
Lặp :
i
1
1
3
6
S =
= 0
2
11
S
j
1
2
3
2
3
8
Hoạt động nhóm
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Nhóm 3
Nhóm 4
Bài tập áp dụng:
Nhận xét :
Nếu a là ước thực sự của N thì:
N chia hết cho a
a sẽ có giá trị trong đoạn từ 1 đến n div 2
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Nhập số nguyên dương N .
Tính tổng các ước thực sự ( khác N) của N.
Input : N
Output : Tổng các ước thực sự của N
Xác định bài toán
Cách tìm tổng các ước thực sự của N ?
2/ LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
Trước khi lặp:
Lặp :
S
i
3
30
2
60
S =
= 10
S := 10;
For i:=3 downto 2 do S := S * i;
Ví dụ :
Tính gi tr? c?a S sau khi cc l?nh th?c hi?n xong:
Hãy nhớ!
1. Lặp : Cấu trúc lặp mô tả thao tác lặp.
2. Lặp với số lần biết trước
For
Dạng lặp tiến
For
Dạng lặp lùi
Thực hiện lệnh:
Sau mỗi lần lặp biến đếm tăng đi 1 đơn vị từ giá trị đầu đến giá trị cuối
Sau mỗi lần lặp biến đếm giảm đi 1 đơn vị từ giá trị cuối về giá trị đầu
Về nhà : Hãy viết chương trình cho bài toán tính tổng S bằng dạng lặp lùi.
Chúc các em học sinh cham ngoan, học tốt !
Sơ đồ Thực hiện lệnh:
Dạng lặp tiến
Dạng lặp lùi
Biến đếm := Giá trị đầu
Biến đếm <= Giá trị cuối
Công việc lặp
Biến đếm tăng 1
Đúng
Sai
Biến đếm := Giá trị cuối
Biến đếm >= Giá trị đầu
Công việc lặp
Biến đếm giảm 1
Đúng
Sai
* 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 Thu Hà
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)