Bài 10. Cấu trúc lặp
Chia sẻ bởi Trần Anh Thư |
Ngày 10/05/2019 |
83
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:
NGÔN NGỮ LẬP TRÌNH PASCAL
TIN HỌC 11
Kiểm tra bài cũ
Bài mới
BÀI 10
CẤU TRÚC LẶP (tiết 1)
Nội dung bài học
1. Khái niệm lặp
2. Lặp với số lần biết trước vơi câu lệnh fo - do
3. Chức năng của lệnh lặp for tiến và for lùi
4. Bài tập áp dụng
finish
I. KHÁI NIỆM CẤU TRÚC LẶP:
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
Khái niệm:
Cấu trúc lặp là điều khiển thực hiện công việc lặp đi lặp lại một số lần hoặc thỏa mãn một điều kiện nào đó đề hoàn thành một công việc
Có hai loại cấu trúc lặp: Lặp với số lần biết trước và lặp với số lần không biết trước
Ví dụ: Bài toán
1. Với a là số nguyên và a>2. Tính tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+100)
2. Tính và đưa kết quả ra màn hình tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+N) + …
Cho đến khi 1/(a+N) <0.0001
II. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
1/ Ví dụ: Bài toán
1. Với a là số nguyên và a>2. Tính tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+100)
Để giải bài toán trên trên máy tính, người ta đưa ra 2 cách giải sau:
* Cách 1: (thuật toán 1)
Bước 1: S 1/a; N 0; {Khởi tạo tổng S ban đầu và giá trị N}
Bước 2: N N +1;
Bước 3: Nếu N >100 thì chuyển sang bước 5
Bước 4: S S + 1/(a + N), rồi quay lại bước 2
Bước 5: Đưa ra tổng S cần tính rồi kết thúc
* Cách 2: (thuật toán 2)
Bước 1: S 1/a; N 101; {Khởi tạo tổng S ban đầu và giá trị N}
Bước 2: N N - 1;
Bước 3: Nếu N <1 thì chuyển sang bước 5
Bước 4: S S + 1/(a + N), rồi quay lại bước 2
Bước 5: Đưa ra tổng S cần tính rồi kết thúc
Với cách 1 thì giá trị tham gia ban đầu của N =1 và dừng lại khi N = 101 (N>100)
Với cách 2 thì giá trị tham gia ban đầu của N =100 và dừng lại khi N = 0 (N<1)
Lặp dạng tiến
Lặp dạng lùi
Cả 2 cách đều dừng lại khi thỏa mãn số lần xác định (N = 100lần)
Để mô tả cấu trúc lặp với số lần biết trước, Pascal sử dụng câu lệnh for – do với hai dạng tiến và lùi như sau:
For tiến:
For:= to do ;
For lùi:
For:= downto do ;
Trong đó:
Biến đếm (còn gọi là biến điều khiển) là một biến đơn, thường có kiểu nguyên, và sau mỗi một lần lặp thì giá trị của biến đếm tự động tăng lên 1 (hoặc giảm đi 1)
Giá trị đầu và giá trị cuối là các biểu thức cùng kiểu dữ liệu với biến đếm
- Giá trị đầu <= giá trị cuối, nếu giá trị đầu lớn hơn giá trị cuối thì không thực hiện lặp (dừng lặp)
2. Hoạt động của vòng lặp for:
For tiến: Các câu lệnh sau do được tự động thực hiện khi biến đếm tự động tăng từ giá trị đầu đến giá trị cuối, vòng lặp dừng lại khi biến đếm lớn hơn giá trị cuối
For lùi: Các câu lệnh sau do được tự động thực hiện khi biến đếm tự động giảm từ giá trị cuối về giá trị đầu, vòng lặp dừng lại khi biến đếm nhỏ hơn giá trị đầu
1
2
3
4
5
6
7
8
9
10
I
1
2
3
10
S
……….
I
1
2
3
4
5
6
7
8
9
10
10
9
8
1
……….
S =
1
+
2
+
…
+
10
S =
10
+
9
+
…
+
1
0
3
6
10
55
S
0
19
27
35
55
11
dừng lặp
0
dừng
Ví dụ: Tính tổng S = 1 + 2 + 3 + ... + 10
3/ Ví dụ minh họa:
Lập trình tính tổng S của 50 số nguyên đầu tiên và in kết quả ra màn hình, biết
S=1 + 2 + 3 + … + 50
Khi thực hiện chương trình các câu lệnh được thực hiện như sau:
Đầu tiên: s 0
Lần 1: i = 1 S = 0+1 = 1
Lần 2: i = 2 S =1 + 2 = 3
…………………………
- Lần 50: i = 50 S = 1 + 2 + 3 + …+ 50
Lần 51: i = 51 i > 50 (giá trị cuối)
dừng lặp và đưa ra kết quả S
Minh họa bằng Pascal
Minh họa bằng Pascal
Từ chương trình for tiến, em hãy viết lại chương trình với for lùi?
Củng cố
Nội dung đã học
Thế nào là lặp?
Ý nghĩa của For tiến và for lùi
Bài tập về nhà:
Làm bài tập 5a trang 51 SGK,
Bài tập tham khảo: 3.29 sách bài tập
Bài tập làm thêm:
Lập trình nhập vào từ bàn phím số nguyên dương N.
1. tính tổng S và in giá trị S ra màn hình biết:
S = 1 + 2 + 3 + … + N
2. Tính tổng các số lẻ, tổng các số chẵn
End
Em hãy nêu cấu trúc,chức năng câu lệnh rẽ nhánh dạng thiếu và biểu diễn biểu thức toán học sau sang cấu trúc if .. Then .. else
Lệnh rẽ nhánh dạng khuyết
If <điều kiện> then;
Lệnh if sẽ kiểm tra điều kiện: Nếu điều kiện đúng thì thực hiện câu lệnh sau then, ngược lại điều kiện sai thì không thực hiện gì cả
If x>=0 then Z:=x
Else Z:=-x;
TIN HỌC 11
Kiểm tra bài cũ
Bài mới
BÀI 10
CẤU TRÚC LẶP (tiết 1)
Nội dung bài học
1. Khái niệm lặp
2. Lặp với số lần biết trước vơi câu lệnh fo - do
3. Chức năng của lệnh lặp for tiến và for lùi
4. Bài tập áp dụng
finish
I. KHÁI NIỆM CẤU TRÚC LẶP:
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
Khái niệm:
Cấu trúc lặp là điều khiển thực hiện công việc lặp đi lặp lại một số lần hoặc thỏa mãn một điều kiện nào đó đề hoàn thành một công việc
Có hai loại cấu trúc lặp: Lặp với số lần biết trước và lặp với số lần không biết trước
Ví dụ: Bài toán
1. Với a là số nguyên và a>2. Tính tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+100)
2. Tính và đưa kết quả ra màn hình tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+N) + …
Cho đến khi 1/(a+N) <0.0001
II. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH For - do
1/ Ví dụ: Bài toán
1. Với a là số nguyên và a>2. Tính tổng
S=1/a + 1/(a+1) + 1/(a+2) + … + 1/(a+100)
Để giải bài toán trên trên máy tính, người ta đưa ra 2 cách giải sau:
* Cách 1: (thuật toán 1)
Bước 1: S 1/a; N 0; {Khởi tạo tổng S ban đầu và giá trị N}
Bước 2: N N +1;
Bước 3: Nếu N >100 thì chuyển sang bước 5
Bước 4: S S + 1/(a + N), rồi quay lại bước 2
Bước 5: Đưa ra tổng S cần tính rồi kết thúc
* Cách 2: (thuật toán 2)
Bước 1: S 1/a; N 101; {Khởi tạo tổng S ban đầu và giá trị N}
Bước 2: N N - 1;
Bước 3: Nếu N <1 thì chuyển sang bước 5
Bước 4: S S + 1/(a + N), rồi quay lại bước 2
Bước 5: Đưa ra tổng S cần tính rồi kết thúc
Với cách 1 thì giá trị tham gia ban đầu của N =1 và dừng lại khi N = 101 (N>100)
Với cách 2 thì giá trị tham gia ban đầu của N =100 và dừng lại khi N = 0 (N<1)
Lặp dạng tiến
Lặp dạng lùi
Cả 2 cách đều dừng lại khi thỏa mãn số lần xác định (N = 100lần)
Để mô tả cấu trúc lặp với số lần biết trước, Pascal sử dụng câu lệnh for – do với hai dạng tiến và lùi như sau:
For tiến:
For
For lùi:
For
Trong đó:
Biến đếm (còn gọi là biến điều khiển) là một biến đơn, thường có kiểu nguyên, và sau mỗi một lần lặp thì giá trị của biến đếm tự động tăng lên 1 (hoặc giảm đi 1)
Giá trị đầu và giá trị cuối là các biểu thức cùng kiểu dữ liệu với biến đếm
- Giá trị đầu <= giá trị cuối, nếu giá trị đầu lớn hơn giá trị cuối thì không thực hiện lặp (dừng lặp)
2. Hoạt động của vòng lặp for:
For tiến: Các câu lệnh sau do được tự động thực hiện khi biến đếm tự động tăng từ giá trị đầu đến giá trị cuối, vòng lặp dừng lại khi biến đếm lớn hơn giá trị cuối
For lùi: Các câu lệnh sau do được tự động thực hiện khi biến đếm tự động giảm từ giá trị cuối về giá trị đầu, vòng lặp dừng lại khi biến đếm nhỏ hơn giá trị đầu
1
2
3
4
5
6
7
8
9
10
I
1
2
3
10
S
……….
I
1
2
3
4
5
6
7
8
9
10
10
9
8
1
……….
S =
1
+
2
+
…
+
10
S =
10
+
9
+
…
+
1
0
3
6
10
55
S
0
19
27
35
55
11
dừng lặp
0
dừng
Ví dụ: Tính tổng S = 1 + 2 + 3 + ... + 10
3/ Ví dụ minh họa:
Lập trình tính tổng S của 50 số nguyên đầu tiên và in kết quả ra màn hình, biết
S=1 + 2 + 3 + … + 50
Khi thực hiện chương trình các câu lệnh được thực hiện như sau:
Đầu tiên: s 0
Lần 1: i = 1 S = 0+1 = 1
Lần 2: i = 2 S =1 + 2 = 3
…………………………
- Lần 50: i = 50 S = 1 + 2 + 3 + …+ 50
Lần 51: i = 51 i > 50 (giá trị cuối)
dừng lặp và đưa ra kết quả S
Minh họa bằng Pascal
Minh họa bằng Pascal
Từ chương trình for tiến, em hãy viết lại chương trình với for lùi?
Củng cố
Nội dung đã học
Thế nào là lặp?
Ý nghĩa của For tiến và for lùi
Bài tập về nhà:
Làm bài tập 5a trang 51 SGK,
Bài tập tham khảo: 3.29 sách bài tập
Bài tập làm thêm:
Lập trình nhập vào từ bàn phím số nguyên dương N.
1. tính tổng S và in giá trị S ra màn hình biết:
S = 1 + 2 + 3 + … + N
2. Tính tổng các số lẻ, tổng các số chẵn
End
Em hãy nêu cấu trúc,chức năng câu lệnh rẽ nhánh dạng thiếu và biểu diễn biểu thức toán học sau sang cấu trúc if .. Then .. else
Lệnh rẽ nhánh dạng khuyết
If <điều kiện> then
Lệnh if sẽ kiểm tra điều kiện: Nếu điều kiện đúng thì thực hiện câu lệnh sau then, ngược lại điều kiện sai thì không thực hiện gì cả
If x>=0 then Z:=x
Else Z:=-x;
* 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 Anh Thư
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)