Bài 10. Cấu trúc lặp

Chia sẻ bởi Tu Duy | 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:

ĐẶT VẤN ĐỀ

Em hãy nêu ý tưởng của bài toán tính điểm cho học sinh một lớp (gồm 50 học sinh)?
(Nhập họ tên, điểm, tính điểm trung bình của học sinh)
(Tiết 1)
cấu trúc lặp
Bài 10


Vậy lặp là gì ?
Từ ví dụ trên thấy rằng công việc nhập họ tên , nhập điểm và tính điểm trung bình đượ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.
1. Khái nhiệm 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 đó.
1. Khái nhiệm lặp

?
Em hãy lấy ví dụ về lặp trong thực tế
Lặp
1. Khái nhiệm lặp

Ví dụ 1: Học sinh A bị phạt trực nhật trong 7 ngày.
Ví dụ 2: Học sinh B bị phạt trực nhật cho đến khi nào cô giáo thấy bạn có ý thức tốt thì mới không phải trực nhật nữa.
Ví dụ 1: phải trực nhật 7 ngày, ví dụ 2: không biết trước phải trực nhật bao nhiêu ngày
Lặp
1. Khái nhiệm lặp

Có hai loại lặp:
Lặp với số lần biết trước (ví dụ 1)
Lặp với số lần chưa biết trước ( ví dụ 2)
1. Khái nhiệm lặp
Bài toán 1:
Bài toán 2:
cho đến khi
Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
Hãy đưa ra ý tưởng giải bài toán trên?
Các giảI bài toán:
S:=0;
IF (1/a > 0.0001) then S:=S+1/a;
IF (1/(a+1) > 0.0001) then S:=S+1/(a+1);
IF (1/(a+2) > 0.0001) then S:=S+1/(a+2);
……………………………….
N= 100. Thì chương trình sẽ rất dài

* Cách để tính tổng S có nhiều điểm tương tự:
Xuất phát, S được gán giá trị
Tiếp theo: Cộng vào S một giá trị
với N=1,2,3,…
Việc cộng này được lặp đi lặp lại một số lần.
cho đến khi < 0.0001
S =
+
+
+ … +
S =
+
+
+ … +
+ …

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.
Cấu trúc lặp
1. Lặp với số lần lặp biết trước
2. Lặp với số lần lặp không biết trước
2. Lặp với số lần lặp biết trước và câu lệnh For-do
Lớp chia làm 4 nhóm thảo luận để viết thuật toán giải quyết bài toán 1 bằng cách liệt kê.
Bài toán 1:
2. Lặp với số lần lặp biết trước và câu lệnh For-do
Thuật toán Tong_1a

Bước 1. S  1/a; N  0;
Bước 2. N  N + 1;
Bước 3.Nếu N > 100 thì chuyển tới bước 5;
Bước 4. S  S + 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_1b
Có hai thuật toán Tong_1a và Tong_1b để giải quyết bài toán 1 như sau:
Bước 1. S  1/a; N  101;
Bước 2. N  N - 1;
Bước 3.Nếu N < 1 thì chuyển tới bước 5;
Bước 4. S  S + 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. S  1/a; N  0;
Bước 2. N  N + 1;
Bước 3.Nếu N > 100 thì chuyển tới bước 5;
Bước 4. S  S + 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_1b
Bước 1. S  1/a; N  101;
Bước 2. N  N - 1;
Bước 3. Nếu N < 1 thì chuyển tới bước 5;

Bước 4. S  S + 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.
Các bước 2, 3, 4 được 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
 Dạng lặp tiến
 Dạng lặp lùi
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ụ: S:=1;
FOR i:=2 TO 100 DO S:=S+1/i;
b. Dạng 2 (dạng lùi)
FOR := DOWNTO DO ;
Ví dụ: S:=1;
FOR i:=100 DOWNTO 2 DO S:=S+1/i;
a. Dạng 1 (dạng tiến)
2. Lặp với số lần lặp biết trước và câu lệnh For-do
Trong đó
? Biến đếm là biến kiểu số nguyên hoặc kí tự.
vd: For i:=1 to 10 do write(i);
For i:=`a` to `z` do write(i);

? 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 phải nhỏ hơn hoặc bằng giá trị cuối.
For i:= 100 to 200 do write(i);

? Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm.
FOR := TO DO < câu lệnh>;
Hoạt động của Dạng 1 (dạng tiến)
Biến đếm
Thực hiện
Gt đầu
Gt đầu + 1
Gt đầu + 2
Gt cuối

Thực hiện lần 1
Thực hiện lần 2
Thực hiện lần 3
Thực hiện lần cuối
Câu lệnh sau Do
Hoạt động của Dạng 2 (dạng lùi)
Biến đếm giảm dần từ giá trị cuối cho đến giá trị đầu, tương ứng với mỗi giá trị của biến đếm câu lệnh sau Do thực hiện 1 lần.
FOR := DOWNTO DO ;
Ví dụ :
S:=1/a;
- S:= S + 1/(a+i);
- i chạy từ 1 đến 100 => Số lần lặp là 100 lần.
Tính tổng S (với a là số nguyên nhập vào từ bàn phím và a>2).
?
Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp.
Viết câu lệnh lặp.
S:=1.0/a;
For N:=1 to 100 do S:=S + 1.0 / (a+N);
Dạng tiến (thuật toán Tổng_1a)
For N:=100 downto 1 do S:=S + 1.0 / (a+N);
Dạng lùi (thuật toán Tổng_1b)
Củng cố:
Trong Pascal, Xác định số lần thực hiện ;
của các cấu trúc lặp sau:
a) For i:=1 to 5 do ;
b) For i:= -2 to 2 do ;
c) For i:= 10 downto 6 do ;
Trả lời: 5 lần
2) Viết cấu trúc lặp để giải quyết bài toán in ra màn hình 5 số tự nhiên nhỏ nhất sao cho mỗi số trên một dòng.
Trả lời: For i:=1 to 5 do Writeln(i:5);
Bài tập về nhà:
1) Phân biệt sự khác nhau của 2 đoạn lệnh sau:
a) For i:=1 to N do Lenh1;
For i:=1 to N do Lenh2;

b) For i:=1 to N do
Begin
Lenh1; Lenh2;
End;
2) Sử dụng cấu trúc lặp xác định để viết chương trình thực hiện in ra màn hình từ chữ từ cái từ a đến z mỗi chữ cái in trên 1 dòng.
* 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ẻ: Tu Duy
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)