- ổn định trật tự - Kiểm tra bài cũ.
Câu 1: Cấu trúc rẽ nhánh có mấy dạng, hãy mô tả. Câu 2: Lấy một ví dụ về câu lệnh ghép.
Bài mới
Hoạt động của giáo viên và học sinh
Nội dung
GV: Đa ra bài toán, yêu cầu học sinh tìm cách lập trình để giải bài toán này. - HS: Đa ra cách giải
- GV: Đa ra cách giải cho bài toán.
Giải theo cách lặp tuần tự S1:=0;
- Nếu (1/a>0.0001) then S1:=S1+1/a; - Nếu (1/(a+1)>0.0001) then S1:=S1+1/ (a+1);
- Nếu (1/(a+2)>0.0001) then S1:=S1+1/ (a+2);
- Nếu (1/(a+3)>0.0001) then S1:=S1+1/
1. Khái niệm lặp
- Xét 2 bài toán nh sau với a>2 là số nguyên cho trớc
Bài Toán 1: Tính tổng
S1= 1/a +1/(a+1) +....1/(a+100)
Bài toán 2: Tính tổng
S2= 1/a +1/(a+2)+...1/(a+n) với điều kiện 1/ (a+N)<0.0001
Cách giải:
- Bắt đầu S đợc gán giá trị 1/a.
- Tiếp theo mỗi lần cộng thêm vào S là a/(a+N) với N=1,2,3...
- Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) với N=1,2,3,...
(a+3); ...
HS: có nhận xét gì theo cách đó
Gv: đa ví dụ thực tế để học sinh hiểu đ- ợc khái niệm lặp
VD1: Bài toán gửi tiền vào ngân hàng. Hàng tháng phải tính lãi và cộng thêm vào gốc đang gửi hay gốc của tháng sau = gốc + lãi tháng trớc VD2; Tính tổng của N= 1+ 2+ 3...+N Thuật toán tổng_a1 B1:S:=1/a;N:=0; B2: N:=N+1; B3: Nếu N>100 thì chuyển sang bớc 5 B4: S:=S+1/ (a+N) quay lại bớc 2 B5: đa ra S rồi kết thúc. Thuật toán tổng_b1 B1:S:=1/a;N:=101; B2: N:=N-1; B3: Nếu N<1 thì chuyển sang bớc 5 B4: S:=S+1/(a+N) quay lại bớc 2 B5: đa ra S rồi kết thúc.
- Với bài toán 2, việc cộng thêm dừng khi 1/ (a+N)<0.0001 số lần lặp cha biết trớc.
Trong lập trình có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
- Lặp thờng có 2 loại:
+ Lặp số lần biết trớc
+ Lặp số lần không biết trớc.
NNLT nào cũng cung cấp một số câu lệnh để mô tả cấu trúc lặp nh trên (adsbygoogle = window.adsbygoogle || []).push({});
Sau đây chúng ta tìm hiểu các câu lệnh lặp trong ngông ngữ Pascal.
2. Lặp số lần biết trớc và câu lệnh For do–
- Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trớc: