kin
sai
ỳng
lnh k tip
Hỡnh 1: S ca lnh If dng 1
LnhP
A. đặt vấn đề
Tin học là một môn khoa học có rất nhiều ứng dụng trong đời sống, xã hội
Trong trờng phổ thông, bộ môn tin học đã bớc đầu đợc đa vào chơng trình học
cho học sinh
Tin học là một bộ môn khoa học có tác dụng phát triển t duy logic, phát huy
tính linh hoạt, sáng tạo và tính thẩm mĩ trong học tập. Việc học tốt bộ môn Tin sẽ giúp
học sinh sử dụng thành thạo máy vi tính từ đó học sinh có thể sử dụng nó để phục vụ
học các bộ môn khác: Toán, Lý, Hoá, Địa, Mĩ thuật Và nắm bắt kịp thời những khoa
học kĩ thuật của nhân loại. Có thể nói tin học đóng vai trò quan trọng trong học tập và
trong thực tế hàng ngày.
B. giải quyết vấn đề
1. Cõu lnh IF dng 1
Cỳ phỏp :
IF éiukin THEN LnhP ;
éiukin l mt biu thc lụgic cho kt qa TRUE (ỳng) hay FALSE (sai). LnhP
cú th l mt lnh n gin hoc mt lnh cú cu trỳc. Nu LnhP l mt lnh ghộp,
tc l gm nhiu lnh, thỡ nh l cỏc lnh ny phi c t trong khi: begin v end .
í ngha: Tựy theo éiukin l ỳng hay sai m quyt nh cú lm LnhP
hay khụng. Nu éiukin l ỳng thỡ lm LnhP ri chuyn sang lnh k tip phớa
di. Nu éiukin l sai thỡ khụng lm LnhP m chuyn ngay sang lnh k tip. S
?cỳ phỏp ca lnh IF c v trong hỡnh 8.1.
Vớ d
Nhp vo hai s a v b, tỡm v in lờn mn hỡnh s ln nht ca hai s ú.
Ta dùng một biến phụ đặt tên là Max để chứa gía trị lớn nhất phải tìm. Thuật
toán gồm hai bước:
Bước 1: Gán số thứ nhất vào Max, tức là:
Max:=a;
Bước 2: Kiểm tra nếu Max nhỏ hơn số thứ hai thì gán số thứ hai vào Max:
If Max < b then Max:=b;
Bước 3: In gía trị Max lên màn hình.
Giải thích: Sau bước 1, biến Max có gía trị bằng a. Sang bước 2, có thể xảy ra
hai tình huống :
* Hoặc là Max < b , tức b là số lớn nhất, khi đó gía trị lớn nhất b được gởi vào
biến Max
* Hoặc là Max >= b, tức gía trị của Max là lớn nhất rồi nên không phải làm gì
nữa.
Chương trình cụ thể như sau:
PROGRAM VIDU1; { Tim Max của hai so }
Var a, b, max : Real;
Begin
Write(‘ Nhap a va b :’);
Readln(a,b);
Max :=a ;
If Max < b then Max:=b ;
Writeln(‘ So lon nhat la: ‘ , Max:6:2);
Readln; End.
Nhận xét:
Việc tìm số nhỏ nhất của hai số a, b cũng tương tự, ta dùng biến phụ Min chứa
gía trị nhỏ nhất, và thực hiện các lệnh sau:
Min:=a;
Đkiện
sai
đúng
lệnh kế tiếp
Hình 2: Sơ đồ của lệnh If dạng 2
LệnhP
LệnhQ
If Min > b then Min:=b;
Có thể mở rộng thuật toán trên để tìm số lớn nhất trong ba số hoặc nhiều hơn.
Ðầu tiên ta tìm số lớn nhất của hai số a và b, ký hiệu là Max, sau đó tìm số lớn nhất
của hai số Max và c, cũng vẫn ký hiệu là Max. Dưới đây là các lệnh chính để tìm số
lớn nhất trong ba số a, b, c :
Max:=a;
If Max < b then Max:=b; { Max là số lớn nhất của a và b }
If Max < c then Max:=c; { Max là số lớn nhất của a, b và c }
2. Câu lệnh IF dạng 2
Cú pháp
IF Ðiềukiện THEN LệnhP
ELSE
LệnhQ ;
Chú ý
Trước từ khóa ELSE không có dấu chấm phẩy.
LệnhP và LệnhQ có thể là một lệnh ghép, tức là gồm nhiều lệnh được đặt trong
khối begin và end.
Ý nghĩa của lệnh
Tùy theo Ðiềukiện là đúng hay sai mà quyết định làm một trong hai lệnh:
LệnhP hoặc LệnhQ .
Nếu Ðiềukiện là đúng thì làm LệnhP, không làm LệnhQ, mà chuyển ngay sang
thực hiện lệnh kế tiếp ở sau LệnhQ.
Ngược lại, nếu Ðiềukiện là sai thì không làm LệnhP mà làm LệnhQ rồi chuyển
sang lệnh kế tiếp ở sau LệnhQ.
Ví dụ Ðể tìm số lớn nhất của hai số a và b, dùng lệnh:
If a<b then Max:=b else Max:=a;
Chương trình dưới đây sẽ nhập vào hai số a và b, tìm và in số nhỏ nhất và số lớn
nhất của chúng:
PROGRAM VIDU2; { Tim so lon nhat va so nho nhat của hai so }
Var a, b, Max, Min : Real;
Begin
Write(‘ Nhap a va b :’);
Readln(a,b);
If a < b then
begin
Max:= b; Min:= a;
end
else { trước else không có dấu ; }
begin
Max:= a; Min:= b;
end;
Writeln(‘ So lon nhat la: ‘ , Max:6:2); Writeln(‘ So nho nhat la: ‘ , Min:6:2);
Readln; End.
3. Câu lệnh IF lồng nhau :
Trong câu lệnh IF, nếu LệnhP hoặc LệnhQ, hoặc cả hai, lại là câu lệnh IF thì ta có
cấu trúc IF lồng nhau. Chẳng hạn dưới đây là hai câu lệnh IF ELSE lồng nhau :
IF Ðiềukiện1 THEN
If Ðiềukiện2 then LệnhP
else
LệnhQ
ELSE
LệnhR ;
Ví dụ: Nhập vào họ tên một chủ hộ, chỉ số điện kế tháng trước (chiso1) và chỉ số
điện kế tháng này (chiso2), tính tiền điện tháng này cho hộ, biết rằng :
Mỗi kw trong 60 kw đầu tiên có đơn gía là 5đ,
Từ kw thứ 61 đến kw thứ 160 có đơn giá 8đ,
Từ kw thứ 161 trở lên có đơn gía 10đ.
Ví dụ, ông A có chỉ số điện tháng trước là chiso1=1020 và chỉ số điện tháng này là
chiso2=1070, lượng điện tiêu thụ tính ra là Ldtt= 1070-1020=50, do lượng điện tiêu
thụ < 60 nên số tiền sẽ là:
Tien = 50*5= 250đ.
Nếu chiso2=1150 thì Ldtt = 1150-1020=130, do lượng điện tiêu thụ vượt qúa 60
kw nhưng chưa vượt qúa 160 kw nên tiền điện được tính là:
Tien=60*5 + (130-60) *8 = 860 đ.
Nếu chiso2=1234, thì Ldtt = 1234-1020= 214, do lượng điện tiêu thụ vượt qúa 160
kw nên tiền điện sẽ là:
Tien=60*5 + 100*8 + (214-160)*10= 300+800+54*10= 1640 đ.
Chương trình được viết như sau:
PROGRAM VIDU3; { Tính tiền điện }
Var
Ho_ten: String[18];
chiso1, chiso2, Ldtt, Tien : Real;
Begin
Write( Nhap ho va ten :);
Readln(Ho_ten);
Write( Nhap ch s thỏng trc, ch s thỏng ny: );
Readln( chiso1, chiso2);
Ldtt:=chiso2- chiso1;
If Ldtt<= 60 then Tien:=Ldtt*5
else
if Ldtt <=160 then Tien:=60*5+(Ldtt - 60)*8
else
Tien:=60*5 + 100*8 + (Ldtt - 160) * 10;
Writeln( H v tờn l , Ho_ten);
Writeln( Tin phi tr l , Tien:10:2);
Readln; End.
Lnh IF trong chng trỡnh trờn lng nhau nhiu cp nờn rt phc tp. Khi hc cu
trỳc mng ta s gii bi toỏn ny gn hn.
Chỳ ý: Trong cõu lnh IF lng nhau, cỏch xỏc nh t khúa ELSE no i vi
t khúa IF no l nh sau: xột ngc t di lờn, ELSE luụn i vi IF gn nht
phớa trờn nú m cha cú ELSE bt cp.
C. Kết luận
Kết quả thực tế: Đổi mới phơng pháp giảng dạy nhằm nâng cao chất lợng giáo dục là
mục tiêu của toàn bộ giáo viên trong đó áp dụng các phơng tiện hiện đại vào giảng dạy
nh máy vi tính, máy chiếu Projector, các phần mềm giảng dạy hỗ trợ ngày càng phổ
biến tạo sự lí thú say mê của học sinh trong học tập.
Chất lợng khảo sát thực tiễn nh sau:
- Kết quả trớc khi áp dụng đề tài
Lớp (sĩ số)
Giỏi Khá TB Yếu
SL % SL % SL % SL %
11A1(46) 7 15.2 28 60.9 11 23.9 0 0
- Kết quả sau khi áp dụng đề tài
D. Bài học rút ra
Việc dùng phơng pháp chia từng dạng của câu lệnh if then trong dạy học lập
trình Pascal là một phơng pháp phát huy tính tích cực, sáng tạo của học sinh trong học
tập. Tiết kiệm thời gian và có cách ghi chép khoa học và giúp học sinh dễ học thuộc, dễ
nhớ. Trong tiết thực hành không cần giáo viên hớng dẫn học sinh vẫn có khả năng thực
hành tốt theo từng bớc làm trong tiết học lí thuyết đã học.
Chắc chắn trong khi viết, tôi không tránh khỏi khiếm khuyết, vậy kính mong các
đồng chí trong hội đồng khoa học nhà trờng và cấp trên góp ý để tôi có thể hoàn thiện
hơn nữa kinh nghiệm này và để kinh nghiệm có khả năng thực tiễn hơn.
Tôi xin chân thành cảm ơn!
Ngời thực hiện
Nguyễn Thuỳ Dung
Lớp (sĩ số)
Giỏi Khá TB Yếu
SL % SL % SL % SL %
11A1 12 26.1 30 65.2 4 8.7 0 0