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.
* Ghi chú:
- SLL=0 Khi cận đầu > cận cuối.
- SLL= Cận cuối - cận đầu +1 (For tiến).
c) Các ví dụ:
Ví dụ 1: Viết chương trình in ra màn hình 10 dòng
chữ ‘chao cac ban’.
Program Chao; Uses Crt; var i:byte; BEGIN Clrscr; For i:=1 to 10 do
Writeln('Chao cac ban'); readln;
END.
Ví dụ 2:Viết chương trình in ra 2 hàng số nguyên:
1 2 3 4 5 6 7 8 9 1010 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 Ví dụ 3: Viết chương trình tính tổng các số chẵn từ 1 tới N. Với N nhập từ bàn phím. Program tinh_tong_chan; Uses Crt; Var i,n,s:integer; BEGIN Clrscr; Write('Nhap N='); readln(N); S:=0;
Tuần 15 tiết 20
Ngày soạn: 20/11/2011. Ngày dạy: 22/11/2011.
Đề bài dạy: CẤU TRÚC LẶP (Tiết 2)
I. Mục đích yêu cầu:
- Kiến thức:
+ Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa xác định. + Biết được cấu trúc chung của lệnh lặp While trong ngôn ngữ Pascal. + Biết được sự thực hiện của máy khi gặp lệnh lặp While.
- Kỹ năng:
+ Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While. + Sử dụng đúng lệnh lặp While trong lập trình.
+ Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết được một số bài toán đơn giản.
II. Chuẩn bị của thầy và trò:
- Thầy: SGK + Giáo án.
- Troø: SGK + vở ghi.
III. Tiến trình tiết dạy:
1. Ổn định lớp.2. Kiểm tra bài cũ: 2. Kiểm tra bài cũ:
- Câu hỏi: Nêu cú pháp và ý nghĩa của câu lệnh lặp For tiến.
- Trả lời: + Cú pháp: For <BĐ>:=<GT đầu> to <GT cuối> do <Câu lệnh>; + Ý nghĩa: B1: Tính giá trị cận đầu, cận cuối.
B2: Gán GT cận đầu cho biến đếm.
B3: Nếu GT biến đếm <=GT cuối thì thực hiện câu lệnh sau từ khóa Do
Ngược lại thoát khỏi vòng lặp.
B4: Tắng giá trị biến đếm và quay lại B3.
3. Vào bài mới:
Hoạt động của thầy và trò Nội dung cần đạt
GV: Nêu cú pháp của cấu trúc lặp?
HS: Dựa vào SGK nêu cú pháp cấu trúc lặp. GV: Nêu ý nghĩa của cấu trúc lặp?
HS: Dựa vào SGK trả lời câu hỏi.
GV: Hãy cho biết SLL=0 khi nào và trong trường
hợp nào thi câu lệnh While lặp vô hạn lần.
HS: Dựa vào sự hoạt động của câu lệnh While trả
lời câu hỏi.
2. Cấu trúc lặp với số lần chưa biết trước, câu lệnh lặp While-do (điều kiện trước): lệnh lặp While-do (điều kiện trước):
- Cú pháp: While <Điều kiện> do <Câu lệnh>;- Ý nghĩa: - Ý nghĩa:
B1: Tính giá trị của biểu thức điều kiện.
B2: Nếu điều kiện đúng thì thực hiện câu lệnh sau Do và quay lại bước 1. Ngược lại thoát khỏi While.
- Nhận xét:
+ SLL=0 nếu ngay từ đầu biểu thức điều kiện có giá trị False.
+ Nếu biểu thức điều kiện luôn có giá trị đúng thì
While sẽ bị Loop (Lặp vô hạn lần). Do đó các câu
lệnh trong While phải có sự tham gia tính toán làm thay đổi giá trị của biểu thức điều kiện.
GV: Xác định InPut và Output của bài toán. HS: Input: a
Output: S
GV: Xác định sử dụng vòng lặp nào? Điều kiện
dừng của vòng lặp là gì? Công việc được thực hiện trong vòng lặp là gì? HS: - Sử dụng vòng lặp While-do. - Điều kiện để vòng lặp dừng là: 1 0,0001 a N < +
- Công việc trong vòng lặp là: 1 ( 1, 2,...) S S i a i = + = +
GV: Xác định Input và Output của bài toán. HS: Input: 2 số nguyên a,b.
Output: UCLN của a,b.
GV: Xác định điều kiện dừng của vòng lặp? Công
việc thực hiện trong vòng lặp là gì?
HS: - Điều kiện để vong lặp dừng là: a=b.
- Công việc được thực hiện trong vòng lặp: if a>b then a:=a-b Else b:=b-a;
VD1: Bài toán tính tổng: 1 1 1 1 ... ... 1 2 S a a a a N = + + + + + + + + cho đến khi 1 0,0001 a N < + .
VD2: Viết chương trình tìm UCLN của 2 số nguyên
a,b. Program Tim_UCLN; Uses Crt; Var a,b:integer; BEGIN Clrscr;
Write('Nhap vao 2 so nguyen:');readln(a,b); While a<>b do
if a>b then a:=a-b Else b:=b-a; Write('UCLN=',b);
Readln; END.
4. Củng cố: Có thể dùng câu lệnh While-do để thay thế cho câu lệnh For-do được không? Nếu được,
hãy thực hiện điều đó với chương trinhg Tong_1a của SGK.
5. Dặn dò: Học kỹ cú pháp và ý nghĩa của câu lệnh For-do và While-do chuẩn bị cho tiết sau chúng ta
đi xét một số ví dụ minh họa.
Tuần 11 tiết 13.
Ngày soạn: 24/10/2010. Ngày dạy: 25/10/2010.
Đề bài dạy: CẤU TRÚC LẶP (Tiết 3)
I. Mục đích yêu cầu:
II. Chuẩn bị của thầy và trò:
- Thầy: SGK + Giáo án.
- Troø: SGK + vở ghi.
III. Tiến trình tiết dạy:
1. Ổn định lớp.2. Kiểm tra bài cũ: 2. Kiểm tra bài cũ:
Câu hỏi: - Nêu cú pháp của câu lệnh For-do và While-do. Trả lời: - Cú pháp câu lệnh For:
+ Cú pháp dạng tiến:
For <BĐ>:=<GT đầu> to <GT cuối> do <câu lệnh>;
+ Cú pháp dạng lùi:
For<BĐ>:=<GT cuối> Downto <GT đầu> do <câu lênh>;
- Cú pháp câu lệnh While-do: While <Điều kiện> do <Câu lệnh>;
3. Vào bài mới:
Hoạt động của thầy và trò Nội dung cần đạt
GV: Hãy cho biết Input và Out put của bài toán. HS: Input: N.
Output: Tổng S.
GV: Xác định vòng lặp cần sử dụng. HS: Vòng lặp với số lần định trước For-do.
GV: Xác định giá trị đầu, giá trị cuối của vòng lặp. HS: GT đầu là 1, GT cuối là N.
GV: Xác định công việc được lặp đi lặp lại là gì? HS: S:=S+i; (i:=1..N)
GV: Hãy viết lại chương trình trên bằng cách sử
dụng câu lệnh While-do thay cho câu lệnh For-do.
HS: Viết lại chương trình trên bằng cách sử dụng
câu lệnh While-do.
Bài 1: Viết chương trình tính tổng N số tự nhiên đầu
tiên, với N nhập từ bàn phím. Program Tinhtong; Uses Crt; Var i,n:byte; S: Word; BEGIN Clrscr; Write('Nhap N='); Readln(N); For i:=1 to N do S:=S+i;
Write('Tong ',N,' so tu nhien dau tien =',S); Readln; END. Program TinhTong; Uses Crt; Var i,N:byte; S:word; BEGIN Clrscr; Write('Nhap N='); Readln(N); i:=1; While i<=N do
GV: Cho biết số lần lặp của vòng lặp For . HS: Vòng lặp for lặp 50 lần.
GV: Công việc được thực hiện ở trong vòng lặp là
gi?
HS: S:=S+N/(N+1);
GV: Biến đếm N chạy từ chỉ số nào tới số nào? HS: N chạy từ 1 tới 50.
GV: Để viết chương trình giải bài toán 5b ta sử dụng
cấu trúc lặp nào?
HS: Cấu trúc lặp While-do.
GV: Điều kiện lặp của While-do là gì? HS: Điều kiệ lặp: 1/lt>=0.000002.
BEGIN S:=S+i; i:=i+1; End;
Write('Tong ', N,' so tu nhien dau tien = ',S); Readln; END. Bài 2: 5a-trang 51 SGK. Program Bai5a_trang51SGK; Uses Crt; Var S:real; N:byte; BEGIN Clrscr; S:=0; For N:=1 to 50 do S:=S+N/(N+1); Write('Y= ',S:4:1); Readln; END. Bài 3: 5b-trang 51 SGK. Program Bai5_b; Uses Crt;
Var e:real; n,lt:longint;
BEGIN Clrscr; Clrscr; e:=1; lt:=1;n:=1; While 1/lt>=0.000002 do BEGIN e:=e+1/lt; lt:=lt*n; n:=n+1; End; Write('Tong e=',e:8:3); Readln;
Tuần 12 tiết 14.
Ngày soạn: 30/10/2010. Ngày dạy: 01/11/2010.
Bài dạy: BÀI TẬP VÀ THỰC HÀNH 2 (THỰC HÀNH)
I. Mục tiêu
1. Kiến thức
- Nắm được cấu trúc và ý nghĩa thực hiện cấu trúc rẽ nhánh
2. Kĩ năng
- Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số bài tốn đơn giản.
- Làm quen với các cơng cụ phục vụ và hiệu chỉnh chương trình.
3. Thái độ
- Tự giác, tích cực và chủ động trong thực hành.