Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp - Trương Thị Liên
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp - Trương Thị Liên", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_tin_hoc_lop_11_bai_10_cau_truc_lap_truong_thi_lien.pptx
Nội dung text: Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp - Trương Thị Liên
- SỞ GD&ĐT BÀ RỊA VŨNG TÀU TRƯỜNG THPT MINH ĐẠM Giáo viên: Trương Thị Liên CHÀO MỪNG QÚY THẦY CÔ ĐẾN DỰ
- Kiểm tra bài cũ Cho chương trình sau: Var a,d : byte; Câu 1: Chương trình trên Begin sử dụng câu lệnh rẽ nhánh dạng nào? d:=0; Câu 2: Sau khi chạy xong a:=5; chương trình kết quả của If a mod 2 = 0 then d:=d+1; d là bao nhiêu? a:=6; A. 0 B. 1 If a mod 2 = 0 then d:=d+1; C. 2 D. 3 a:=24; Câu 3: Chương trình trên If a mod 2 = 0 then d:=d+1; dùng để làm gì? End.
- Bµi 10
- I. Tìm hiểu lặp - Lặp là việc thực hiện đi thực hiện lại một hoặc một vài công việc nào đó. Vd: Múc nước đổ vào đầy thùng - Cấu trúc lặp là dùng các thao tác True để thể hiện việc lặp đó trong thuật KT đầy toán thùng? False Múc thêm 1 ca đổ vào thùng
- Bài 1: Có 1 thùng với Bài 2 : Có 1 thùng chưa biết dung tích 100 lít, Hãy dung tích, Hãy múc nước đổ đầy múc nước đổ đầy thùng thùng đó với dụng cụ chứa 1 lít. đó với dụng cụ chứa 1 lít. ? lít Hãy cho biết quá trình đổ nước cho hai 1 lít 1 lít bài toán trên có điểm giống nhau và khác nhau thế nào?
- I. Tìm hiểu lặp - Lặp là việc thực hiện đi thực hiện lại một hoặc một vài công việc nào đó. Vd: Múc nước đổ vào đầy thùng True KT đầy - Cấu trúc lặp là dùng các thao tác thùng? để thể hiện việc lặp đó trong thuật False toán Múc thêm 1 ca đổ vào thùng - Có hai dạng 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 chưa biết trước.
- Gợi ý pp: Ta xem II. Lặp với số lần biết trước như s là một cái 1. Bài toán: thùng, số hạng như Với a là số nguyên dương.Tính tổng một cái ca có dung 1 1 1 tích nước khác nhau, S = + + + a +1 a + 2 a +100 khi đó việc tính tổng trên tương tự như = + + + việc đổ nước vào thùng s bằng cái ca + Có bao nhiêu lần đổ nước vào thùng? - Có 100 lần (n=100) + Mỗi lần đổ một lượng bao nhiêu? - 1/(a+n) Lần thứ n đổ bao nhiêu? + Mỗi lần đổ 1 ca nước vào thì dung - s=s+1/(a+n) lượng thùng bao nhiêu? + Phải thực hiện bao nhiêu lần tính - 100 lần tổng s?
- II. Lặp với số lần biết trước 1. Bài toán: Với a là số nguyên dương.Tính tổng 1 1 1 S = + + + a +1 a + 2 a +100 Input: sồ nguyên Lần n=0 S = 0 dương a Output: Tổng s Lần n=1 S = S + 1/(a+1) Lần n=2 S = S + 1/(a+2) Lần n=100 S = S + 1/(a+100)
- 1. Bài toán: Với a là số nguyên dương.Tính tổng 1 1 1 S = + + + a +1 a + 2 a +100 Thuật toán 1 Thuật toán 2 Bước 1.Nhập S ; N ; Bước 1.Nhập S ; N ; Bước 2. N Bước 2. N Bước 3. Điều kiện kết thúc Bước 3. Điều kiện kết thúc thì chuyển đến bước 5; thì chuyển đến bước 5; Bước 4. S rồi Bước 4. S rồi làm gì? làm gì? Bước 5. Đưa ra kết quả gì? Bước 5. Đưa ra kết quả gì? rồi kết thúc. rồi kết thúc.
- 1. Bài toán: Với a là số nguyên dương.Tính tổng 1 1 1 S = + + + a +1 a + 2 a +100 Thuật toán 1 Thuật toán 2 Bước 1. Nhập a S0; N0; Bước 1. Nhập a;S0; N101; Bước 2. NN+1; Bước 2. NN-1; Bước 3. Nếu N>100 thì Bước 3. Nếu N<1 thì chuyển chuyển đến bước 5; đến bước 5; Bước 4. SS+1/(a+N) rồi Bước 4. SS+1/(a+N) rồi quay quay lại bước 2; lại bước 2; Bước 5. Đưa ra kết quả S , Bước 5. Đưa ra kết quả S, rồi rồi kết thúc. kết thúc.
- 2. Câu lệnh for-do a. Cú pháp: + Dạng lặp tiến: FOR := TO DO ; + Dạng lặp lùi: FOR := DOWNTO DO ; - Trong đó: + 1 là + 2 , 3 là + 2 phải nhỏ hơn hoặc bằng 3 . Nếu 2 lớn hơn 3 thì câu lệnh không được thực hiên + 4 là
- 2. Câu lệnh for-do a. Cú pháp: + Dạng lặp tiến: FOR := TO DO ; + Dạng lặp lùi: FOR := DOWNTO DO ; - Trong đó: + Biến đếm là biến đơn thường có kiểu nguyên; + 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. Nếu giá trị đầu lớn hơn giá trị cuối thì câu lệnh không được thực hiên + Câu lệnh là một lệnh của pascal
- b. Hoạt động của lệnh FOR-DO + Dạng lặp tiến: câu lệnh viết 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ị liên tiếp tăng từ giá trị đầu đến giá trị cuối. + Dạng lặp lùi: câu lệnh viết 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ị liên tiếp giảm từ giá trị cuối đến giá trị đầu. Ví dụ : Viết câu lệnh in ra màn hình 20 dòng chữ I love pascal Dạng lặp tiến: Dạng lặp lùi For i :=1 to 20 do For i :=20 downto 1 do Writeln(‘I love pascal‘); Writeln(‘i love pascal‘);
- 2. Câu lệnh for-do a. Cú pháp: b. Hoạt động của lệnh FOR-DO * Chú ý: - Giá trị của 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 - số lần lặp = gt cuối –gt đầu +1
- 3. Ví dụ Viết chương trình nhập số nguyên dương a từ bàn phím. Yêu cầu: Tính tổng 1 1 1 S = + + + a +1 a + 2 a +100 và kết quả in ra tập tin KQ.OUT
- CT hoàn chỉnh Dạng lặp tiến Dạng lặp LÙI Program tong1a; Program tong1b; Var Var Begin Begin Write Write readln . readln . s . s . for . for . s s Assign Assign Rewrite Rewrite write write close close End. End.
- CT hoàn chỉnh Dạng lặp tiến Dạng lặp lùi Program tong1a; Program tong1b; Var s: real; a, n: word;fo:text; Var s: real; a, n: word;fo:text; Begin Begin Write(‘nhap so nguyen a =’); Write(‘nhap so nguyen a =’); readln(a); readln(a); s:=0; s:=0; for n:= 1 to 100 do for n:= 100 downto 1 do s:= s+1/(a+n); s:= s+1/(a+n); assign(fo,‘KQ.out‘); assign(fo,‘KQ.out‘); rewrite(fo); rewrite(fo); write(fo, s); write(fo, s); close(fo); close(fo); End. End.
- Củng cố Trắc nghiệm: Chọn đáp án đúng nhất cho các câu sau: Câu1. Để in ra màn hình 5 dòng chữ ‘welcome to lop11’ ta dùng lệnh nào sau đây?(giả sử biến i đã khai báo kiểu số nguyên); a. Sai For i := 5 to 1 do writeln(‘welcome to lop11’); b. Sai For i := 1 downto 1 do writeln(‘welcome to lop11’); c. For i := 2 to 6 do writeln(‘welcome to lop11’); d. Sai For := 1 downto 5 do writeln(‘welcome to lop11’);
- Củng cố Câu 2. Trong câu lệnh for-do tổng quát a. Biến đếm tự động tăng hoặc giảm một đơn vị Sai b. Biến đếm có thể thuộc kiểu số thực Saic. Giá trị đầu và giá trị cuối khác kiểu dữ liệu với biến đếm d. Sai Câu lệnh sau do có thể là nhiều câu lệnh của pascal
- Củng cố Câu 3. Câu lệnh dưới đây in ra màn hình kết quả gì? (Giả sử a đã khai báo kiểu số nguyên) For a := 2 to 2 do write(a); a. 2 b. Sai 1 c. Sai 0 d. Sai Câu trả lời khác
- Củng cố Câu 4: Cho a,d là các biến nguyên. Khi thực hiện đoạn chương trình sau đây: D:=0; For a := 4 to 6 do If a mod 2 =0 then d:=d+1; Kết quả d có trong phương án nào sau đây: a. Sai 6 b. Sai 4 c. 2 d. Sai 0
- •Thực hành lại các bài tập trên máy. •Xem phần còn lại của bài •Làm bài tập về for