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 . : 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. 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. chiso1, chiso2); Ldtt:=chiso 2- 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