VIẾT CHƯƠNG TRÌNH KIỂM TRA 3 SỐ NHẬP TỪ BÀN PHÍM CÓ PHẢI LÀ 3 CẠNH TAM...
3. Lệnh lặp với số lần lặp biết trứơc: (lệnh
GV: Yêu cầu học sinh nghiên cứu SGK và cho
biết cấu trúc chung của lệnh lặp While.
WHILE)
a) Cú pháp: while <điều kiện> do <lệnh>;
HS: Chú ý theo dõi làm theo yêu cầu giáo
viên.
<điều kiện> là biểu thức quan hệ hoặc biểu thức
logic.
GV: Cú pháp, chức năng lệnh while.
<lệnh> là lệnh đơn hoặc lệnh ghép.
b) Chức năng:Bước 1:tính và kiểm tra điều kiện.
Bước 2:Nếu điều kiện sai thì kết thúc
câu lệnh.
Nếu điều kiện đúng thì thực hiện
GV: Nêu chú ý.
lệnh và quay lại bước 1.
GV: Hỏi: sự khác nhau trong lệnh cần lặp của
For và While là gì?
HS: Suy nghĩ và trả lời: trong câu lệnh while
phải có tăng biến chỉ số.
GV: Hỏi:
Dựa vào sơ đồ khối hãy xác định máy
sẽ thực hiện tính <điều kiện> trước hay thực
hiện <lệnh cần lặp> trước?
HS: Tính biểu thức điều kiện trước, thực hiện
Điều
kiện
lệnh cần lặp sau.
Câu lệnh
c)Chú ý: Nếu ngay từ đầu điều kiện sai thì câu lệnh
sau Do không thực hiện, điều kiện đúng thì
câu lệnh sau Do thực hiện vô hạn.
Hoạt động 2: Rèn luyện vận dụng lệnh While qua một số bài tập.
*Bài tập 1: viết chương trình tính s=1+1/2+…+1/n, đến
GV: Chia học sinh làm hai nhóm, yêu cầu
khi s>10 thì dừng.
nhóm 1 viết thuật toán, tiếp theo nhóm 2 viết
chương trình.
HS: Theo dõi .
HS: Làm theo yêu cầu giáo viên:
*Viết thuật toán:
Bước 1:gán i:=1,s:=0;
Bước 2:nếu s>10 thì xuất giá trị của s;
Bước 3: gán s:=s+1/i; i:=i+1; và quay lại bước 2.
*Viết chương trình:
Program bt;
Var s:real; I:integer;
Begin
I:=1; s;=0;
While s<=10 do begin
S:=s+1/I; I:=I+1;
End;
Writeln('tong s la:',s:8:4);
End.
GV: Diễn giảng: Muốn biết số lần lặp của lệnh
ta in kết quả của i.
Muốn cộng vào biến s là 1 đại
lượng là x ta dùng s:=s+x;
HS: Chú ý lắng nghe.
*Bài tập 2: một người có số tiền là s, gửi tiết kiệm
GV: Yêu cầu học sinh.
0.5% tháng. Hỏi sau bao nhiêu tháng thì có số tiền lớn
-Định hướng vấn đề chính:
hơn s1?
+Xác định điều kiện để lặp.
+Xác định các lệnh cần lặp.
-Nhận xét chương trình.
HS: Định hướng:
Điều kiện:s<s1
s:=s+0.005 *s; để tính tiền.
I:=i+1; để tính số tháng.
HS: Làm việc nhóm để viết chương trình hoàn
chỉnh.
Program bt2;
Const ls=0.005;
Var s,s1:real;
i:integer;
Writeln('nhap so tien da gui:');readln(s);
Writeln('nhap so tien muon nhan:');
readln(s1);
while s>= s1 do begin
s:=s+0.005*s; i:=i+1;
end;
readln
end.
*Bài tập 3:viết chương trình nhập vào hai số nguyên
GV: Chia nhóm học sinh viết chương trình.
dương a và b. Tìm ước số chung lớn nhất của hai số
đó?
Program uocchung;
Var a,b,m,n,ucln:integer;
Writeln('nhap hai so a va b:'); readln(a,b);
if a=0 then ucln:=b
else begin
m:=a;
n:=b;
r:=n mod m;
while r<>0 do begin
n:=m;
m:=r;
ucln:=m;
writeln('ucln cua', a,' va',b,' la:',ucln);
readln
end.
.Củng cố:
-Củng cố nội dung đã học:cấu trúc lệnh lặp while và cách thực hiện.
.Dặn dò bài tập về nhà:
-Giải bài tập SGK .
.Rút kinh nghiệm bổ sung:
...
------
CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI TẬP VÀ THỰC HÀNH 2 (2 TIẾT)
I. MỤC TIÊU BÀI HỌC: