III. Tiến trình dạy học bài mới: –
2. Lặp với số lần biết trớc và câu lệnh For do.
* Dạng lặp tiến:
For <biến đếm> : = <Giá trị đầu> to
<giá trị cuối> do <câu lệnh>;
* Dạng lặp lùi:
For <biến đếm> : = <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
Trong đó:
- Biến đếm là biến đơn, thờng có kiểu số nguyên.
- Giá trị đầu và giá trị cuối là các biểu thức cùng kiểu với biến đếm và
giá trị đầu phải nhỏ hơn hoặc bằng
giá trị cuối.
Cách thực hiện For – do:
- ở dạng lặp tiến, câu lệnh sau 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 sau do đợc thực hiện tuần tự, với các biến đếm lần lợt nhận các giá trị liên tiếp giảm từ giá trị đầu đến giá trị cuối.
Chú ý:
- Giá trị đầu và giá trị cuối có thể là những biểu thức.
- Trong vòng lặp không nên có câu lệnh làm thay đổi giá trị biến điều
một số lần liên tiếp.
=> Lặp với số lần biết trớc. GV: Chiếu Slide 5 và 6.
GV: Thực hiện 1 lệnh đúng cú pháp
trên Pascal và yêu cầu học sinh nhận xét.
For i := 1 to 10 do Writeln(i); For i := 10 downto 1 do Writeln(i);
HS: Quan sát câu lệnh thực hiện và
nhận xét 2 câu lệnh trên.
GV: Giải thích cú pháp và ý nghĩa của
hai câu lệnh trên. Chiếu Slide 7.
GV: - Muốn in giá trị từ 1 đến 100 thì
ta phải làm thế nào?
- Sử dụng hai cú pháp hãy viết lại đoạn in các số.
- Thấy khác khi in giá trị đó nh thế nào?
HS: For i := 1 to 100 do Writeln(i: 4);
For i:=100 downto 1 do Writeln(i: 4);
GV: Chạy đoạn lệnh trên trong chơng
trình Pascal và yêu cầu học sinh nhận xét. For i := 1 to 10 do Begin Write(i); i : = i +1; end; X:=5; Y := 15;
khiển.
Chơng trình thuật toán 1:
Program Tong1; Var S, i , N : Byte; Begin
Write( ‘ Nhap N = ’); Readln(N); S : = 0; For i := 1 to N do S : = S +i; Writeln(‘ Tong la S = ’, S); Readln; End. For x := x+1 to y do
Begin Write (x : 4); x := 2; end;
HS: suy nghĩ trả lời.
GV: Tập hợp ý kiến và giải thích cho
học sinh.
- Trong vòng lặp không nên có câu lệnh gán giá trị làm thay đổi biến điều khiển. Trong Turbo Pascal thì cho phép nhng trong Free Pascal thì sẽ thông báo lỗi biên dịch.
- Các giá trị đầu và giá trị cuối có thể là những biểu thức. Giá trị đợc tính tr- ớc khi vào vòng lặp và làm nhiệm vụ giá trị đầu và giá trị cuối. Do đó, trong vòng lặp nếu có biến nào nằm trong hai biểu thức này bị thay đổi thì giá trị đầu và giá trị cuối vẫn không thay đổi.
GV: chạy chơng trình trên Pascal. HS: Chú ý quan sát kết quả khi chạy
chơng trình.
GV: Mở chơng trình Violet để cho
học sinh làm một số câu hỏi trắc nghiệm củng cố.
IV. Củng cố
Câu 1: Kết quả của S sau khi thực hiện đoạn lệnh sau:
S :=0;
a. 0 b. 1 c. 3 d. 6
Câu 2: Đoạn lệnh sau cho kết quả S bằng bao nhiêu:
S : = 0;
For i : = 3 downto 1 to S : = S +1; a. 0 b. 1 c. 3 d. 6
Câu 3: Hãy chọn đúng / sai cho các phát biểu sau đây: a. Giá trị đầu, giá rị cuối là các biểu thức cùng kiểu.
b. X là biến kiểu thực; Ta có câu lệnh lặp For X : = 1 to 100 do S : = s + x; c. S, i là kiểu nguyên; Câu lệnh For i : = 1 to 1 do S := S + 1;
Câu lệnh S : = S + 1; sẽ đợc lặp hai lần.