- ổ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
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: