Mục tiêu nghiên cứu của sáng kiến kinh nghiệm là giới thiệu về các thành phần cơ bản, cú pháp và nguyên lý hoạt động của các câu lệnh trong ngôn ngữ lập trình Pascal. Một số kinh nghiệm dạy lập trình nói chung và Pascal nói riêng. Một số thuật toán, chương trình cơ bản khi học môn Tin học lớp 8. Lý thuyết dãy số các thuật toán đơn cơ bản trên dữ liệu mảng một chiều. Cách xử lý lỗi khi chạy, kiểm tra tính đúng đắn của chương trình
Trang 11. PH N M Đ UẦ Ở Ầ
1.1. Lý do ch n đ tàiọ ề
các tr ng trung h c h c s s h c sinh đ c h c r t nhi u b môn
trong đó môn tin h c. Họ ọc sinh được ti p c n nhi u trên các phế ậ ề ương ti n hi nệ ệ
đ i, h th ng phòng máy v i các thi t b máy tính có c u hình tạ ệ ố ớ ế ị ấ ương đ i cao, hố ệ
th ng m ng cáp quang tố ạ ương đ i m nh đ đ m b o ph c v t t nhu c u h cố ạ ể ả ả ụ ụ ố ầ ọ
t p và tra c u b môn Tin h c c a h c sinh trong nhà trậ ứ ộ ọ ủ ọ ường;
Trong các kh i l p h c thì môn tin h c l p 8 là môn h c tố ớ ọ ọ ớ ọ ương đ i khá tr uố ừ
tượng, khó hi u, khô khan khó nu t đ i v i các em. Vi c h c t t môn Tin h cể ố ố ớ ệ ọ ố ọ
l i càng khó khăn h n đ i v i các em vì h u h t ki n th c ch y u và tr ng tâmạ ơ ố ớ ầ ế ế ứ ủ ế ọ
c a là l p trình trên môi trủ ậ ường ngôn ng l p trình Pascal, đòi h i h c sinh ph iữ ậ ỏ ọ ả chú ý tìm hi u k v n đ , hi u để ỹ ấ ề ể ược cách gi i bài toán, hi u cách mô t thu tả ể ả ậ toán đ gi i bài toán, cách vi t chể ả ế ương trình, ki m tra l i, s a l i chể ỗ ử ỗ ương trình
và ki m tra tính đúng đ n c a chể ắ ủ ương trình. Trong quá trình gi ng d y b n thânả ạ ả tôi nh n th y h c sinh kh i 8 r t s môn tin h c vì ki n th c l p trình khá m iậ ấ ọ ố ấ ợ ọ ế ứ ậ ớ
m và khó hi u. Các em ph i t p trung cao đ , tìm hi u ch t ch v n đ c aẻ ể ả ậ ộ ể ặ ẽ ấ ề ủ
t ng bài toán trên c s hừ ơ ở ướng d n c a giáo viên thì mong m i hi u đẫ ủ ớ ể ược cách
l p trình cho m t bài toán; ậ ộ
Chính vì v y, đ giúp các em hi u đậ ể ể ược ngôn ng l p trình Pascal, hi uữ ậ ể
được cách mô t bài toán, l p trình vi t bài toán nên tôi m nh d n ch n gi iả ậ ế ạ ạ ọ ả pháp “M t s bi n pháp rèn luy n k năng h c l p trình Pascal môn Tin h c ộ ố ệ ệ ỹ ọ ậ ọ
l p 8 ớ ” đ chia s m t vài kinh nghi m trong công tác gi ng d y giúp h c sinhể ẽ ộ ệ ả ạ ọ
ti n b h n trong h c t p đ c bi t là các gi th c hành b môn Tin h c kh iế ộ ơ ọ ậ ặ ệ ờ ự ở ộ ọ ố
8 b c trung h c c s ậ ọ ơ ở
* Đi m m i c a đ tàiể ớ ủ ề
Đ tài t ng h p l i các bề ổ ợ ạ ước đ gi i quy t m t bài toán theo trình t hoànể ả ế ộ ự
ch nh giúp h c sinh d dàng xác đ nh đỉ ọ ễ ị ược bài toán và tìm ra gi i pháp vi tả ế
chương trình phù h p;ợ
Hình thành cho h c sinh các k năng nh : k năng tìm hi u và gi i quy tọ ỹ ư ỹ ể ả ế
v n đ , k năng t h cấ ề ỹ ự ọ giúp các em có được k t qu h c t p cao h n nhi u soế ả ọ ậ ơ ề
Trang 2v i trớ ước khi các em ch a đư ược trang b ;ị
Qua các gi i pháp c a đ tài, h c sinh có th t mình vi t chả ủ ề ọ ể ự ế ương trình
v i ngôn ng l p trình Pascal, ch y th và s a l i mà không còn b ớ ữ ậ ạ ử ử ỗ ị “choáng”
khi l p trình n a.ậ ữ
1.2. Ph m vi áp d ng c a đ tàiạ ụ ủ ề
Khi d y ngôn ng l p trình nói chung, ngôn ng l p trình Pascal nói riêngạ ữ ậ ữ ậ
có r t nhi u v n đ c n l u ý. Tuy nhiên trong ph m vi sáng ki n kinh nghi mấ ề ấ ề ầ ư ạ ế ệ này tôi ch trình bày m t s l u ý, kinh nghi m c a cá nhân tôi qua các n i dungỉ ộ ố ư ệ ủ ộ
c th sau:ụ ể
Gi i thi u v các thành ph n c b n, cú pháp và nguyên lý ho t đ ngớ ệ ề ầ ơ ả ạ ộ
c a các câu l nh trong ngôn ng l p trình Pascal;ủ ệ ữ ậ
M t s kinh nghi m d y l p trình nói chung và Pascal nói riêng.ộ ố ệ ạ ậ
M t s thu t toán, chộ ố ậ ương trình c b n khi h c môn Tin h c l p 8 .ơ ả ọ ọ ớ
Lý thuy t dãy s các thu t toán đ n c b n trên d li u m ng m tế ố ậ ơ ơ ả ữ ệ ả ộ chi u.ề
Cách x lý l i khi ch y, ki m tra tính đúng đ n c a chử ỗ ạ ể ắ ủ ương trình
Do v y, đ tài này có th v n d ng trong công tác gi ng d y cho t t cậ ề ể ậ ụ ả ạ ấ ả
h c sinh m i b t đ u làm quen ngôn ng l p trình Pascal, ph đ o h c y u kémọ ớ ắ ầ ữ ậ ụ ạ ọ ế môn tin h c l p 8 trong ph m vi trọ ớ ạ ường trung h c c s V i các gi i pháp trongọ ơ ở ớ ả
đ tài h c sinh có th t h c, t th c hành t i phòng máy ho c t i nhà khiề ọ ể ự ọ ự ự ạ ặ ạ không có giáo viên hướng d nẫ
Trang 32. PH N N I DUNGẦ Ộ
2.1. Th c tr ng trự ạ ước khi th c hi n các gi pháp c a đ tàiự ệ ả ủ ề
2.1.1. S li u th ng kêố ệ ố
Trong quá trình gi ng d y, b n tôi nh n th y k năng đ c hi u bài toán,ả ạ ả ậ ấ ỹ ọ ể
mô t bài toán và k năng vi t chả ỹ ế ương trình đ i v i các em h c sinh kh i l p 8ố ớ ọ ố ớ
là r t y u, ch a đáp ng đấ ế ư ứ ược yêu c u khi ti p xúc v i các bài t p l p trìnhầ ế ớ ậ ậ Pascal;
Theo kh o sát đ u năm h c v i h c sinh các l p 8 t i trả ầ ọ ớ ọ ớ ạ ường thì kho ngả
g n 60% các em ch a hi u ngôn ng l p trình ầ ư ể ữ ậ Pascal là gì? Vi c ti p c n ki nệ ế ậ ế
th c l p trình đ áp d ng gi i bài toán c th còn nhi u v n đ gây khó khăn,ứ ậ ể ụ ả ụ ể ề ấ ề trong đó ph i k đ n là các bả ể ế ước mô t thu t toán và vi t chả ậ ế ương trình, ki mể
l i, s a l i chỗ ử ỗ ương trình và ch y th tính đúng đ n c a chạ ử ắ ủ ương trình;
Th c t cho th y t l h c sinh đ t đi m trung bình tr lên khi làm nh ngự ế ấ ỷ ệ ọ ạ ể ở ữ bài t p đ n gi n đ u tiên khá th p, các em ch a hi u rõ v n đ , ch a th c sậ ơ ả ầ ấ ư ể ấ ề ư ự ự ham thích, ch a thu c các cú pháp câu l nh và sai c u trúc khá nhi u d n đ nư ộ ệ ấ ề ẫ ế
k t qu không nh mong đ i. C th k t qu qua bài kh o sát:ế ả ư ợ ụ ể ế ả ả
Đi m sể ố S lố ượng h c sinh/T ng s h c sinhọ ổ ố ọ T lỷ ệ
B ng s li u t l kh o sát đ u năm qua các bài th c hành trên l p ả ố ệ ỷ ệ ả ầ ự ớ
2.1.2. Tình hình trước khi th c hi n các gi i pháp c a đ tàiự ệ ả ủ ề
Qua th c t gi ng d y t i trự ế ả ạ ạ ường, tôi nh n th y: Theo thói quen c a nhi uậ ấ ủ ề
em h c sinh, h c môn Tin h c là h c nh ng thao tác v i máy tính nh cách sọ ọ ọ ọ ữ ớ ư ử
d ng s d ng h đi u hành Window, chụ ử ụ ệ ề ương trình so n th o văn b n Word,ạ ả ả
Trang 4chương trình b ng tính Exell, chả ương trình so n th o trình di n PowerPoint,ạ ả ễ khai thác Internet, … đây là nh ng ph n h c không c n đòi h i t duy, mà chữ ầ ọ ầ ỏ ư ỉ
c n h c kĩ và nh thao tác, th c hành nhi u l n thì s thànhầ ọ ớ ự ề ầ ẽ th o; trong khi đóạ môn tin h c l p 8 các em h c sinh b t đ u làm quen v i l p trình mà ch y u làọ ớ ọ ắ ầ ớ ậ ủ ế
l p trình b ng ngôn ng l p trình Pascal;ậ ằ ữ ậ
Khi h c b môn l p trình Passal l p 8 c p h c Trung h c c s thì h uọ ộ ậ ở ớ ấ ọ ọ ơ ở ầ
nh các em b ư ị “choáng” vì b môn r t ộ ấ “m i”, ớ và cách h c cũng ọ “m i” ớ Nh ngữ thao tác và th c hành nhi u không còn tác d ng, h c thu c bài cũng không cònự ề ụ ọ ộ
n n a, các em c n ph i h c cách t duy logic, tìm thu t toán, và vi t nh ng
dòng l nh máy tính chính xác đúng cú pháp và đúng ng nghĩa. ệ ữ
2.1.3. Nguyên nhân d n đ n tình hình trênẫ ế
Nguyên nhân th nh t: Các em h c sinh ch a n m đứ ấ ọ ư ắ ược v các thànhề
ph n c b n, cú pháp và nguyên lý ho t đ ng c a các câu l nh trong ngôn ngầ ơ ả ạ ộ ủ ệ ữ
l p trình Pascal;ậ
Nguyên nhân th hai: Các em h c sinh ch a n m đứ ọ ư ắ ược v các bề ước vi tế
m t chộ ương trình;
Nguyên nhân th ba: Các em h c sinh ch a bi t phân tích chi ti t bài toánứ ọ ư ế ế
đ tìm ra n i dung c n vi t chể ộ ầ ế ương trình;
Nguyên nhân th t : Các em h c sinh ch a bi t cách phát hi n l i và cáchứ ư ọ ư ế ệ ỗ
s a l i chử ỗ ương trình khi th c hành trên máy tính;ự
Nguyên nhân th năm: Các em h c sinh ch a bi t cách làm vi c v i dãy sứ ọ ư ế ệ ớ ố các thu t toán đ n c b n trên d li u m ng m t chi u.ậ ơ ơ ả ữ ệ ả ộ ề
2.2. M t s gi i phápộ ố ả
2.2.1 Gi i pháp 1: Giáo viên b môn c n giúp h c sinh n m v ng lýả ộ ầ ọ ắ ữ thuy t; cú pháp, nguyên lý ho t đ ng c a các câu l nh; nguyên t c vi tế ạ ộ ủ ệ ắ ế
m t chộ ương trình hoàn ch nh v i ngôn ng l p trình Pascalỉ ớ ữ ậ
2.2.1.1 Gi i thi u chung giúp h c sinh n m đ ớ ệ ọ ắ ượ c v các thành ph n ề ầ
c b n c a ngôn ng l p trình Pascal ơ ả ủ ữ ậ
Ngôn ng l p trình Pascal g m: B ng ch cái và các quy t c đ vi t cácữ ậ ồ ả ữ ắ ể ế câu l nhệ
Trang 5*B ch cái trong Pascal g m: ộ ữ ồ 26 ch la tinh l n: A, B, C,…Z ; 26 ch laữ ớ ữ tinh nh : a, b, c,…z ; d u g ch dỏ ấ ạ ưới _; b ch s th p phân: 0, 1, 2, 3, 4, 5, 6, 7,ộ ữ ố ậ
8, 9 ; các ký hi u toán h c: +, , *, / ,< >,>=,<=,>,<,=; ký t đ c bi t: @, #, !, $,ệ ọ ự ặ ệ
%,… d u kho ng tr ng (space),các d u (,),’, {,},[,], ;,:, ấ ả ắ ấ
T b ch cái ta có th l p thành các T khóa, tên, câu l nhừ ộ ữ ể ậ ừ ệ
T khóaừ là các t mà Pascal dành riêng đ ph c v cho m c đích c a nó.ừ ể ụ ụ ụ ủ Khi so n th o trong chạ ả ương trình trong môi trường l p trình Free Pascal thì tậ ừ khóa được hi n th khác màu v i các t khác ể ị ớ ừ (đây là d u hi u d nh n bi t đ ấ ệ ễ ậ ế ể khi so n th o ch ạ ả ươ ng trình các em không b l i đ t tên trùng t khóa) ị ỗ ặ ừ
Tên: Là m t dãy ký t dùng đ đ t tên cho các h ng, bi n, tên ch ngộ ự ể ặ ằ ế ươ trình…
+Khi đ t tên, ta ph i nh n m nh cho h c sinh chú ý m t s đi m sau: ặ ả ấ ạ ọ ộ ố ể
++Không được đ t trùng tên v i t khoá ặ ớ ừ
++ Ký t đ u tiên c a tên không đự ầ ủ ược b t đ u b i các ký t đ c bi t ho cắ ầ ở ự ặ ệ ặ
ch s ữ ố
++Không được đ t tên có ch a ký t space, các phép toán.ặ ứ ự
++Các đ i lạ ượng khác nhau ph i đ t tên khác nhauả ặ
D u ch m ph y (;) ấ ấ ẩ D u ch m ph y đấ ấ ẩ ược dùng đ ngăn cách gi a cácể ữ câu l nh. ệ
L i gi i thích:ờ ả Các l i bàn lu n, l i chú thích có th đ a vào b t k chờ ậ ờ ể ư ấ ỳ ỗ nào trong chương trình đ cho ngể ườ ọi đ c d hi u mà không làm nh hể ể ả ưởng đ nế các ph n khác trong chầ ương trình. L i gi i thích đờ ả ược đ t gi a hai d u ngo cặ ữ ấ ặ { và } ho c gi a c m d u (* và *). ặ ữ ụ ấ
Ví d : ụ Var a,b,c:Real; {Khai báo bi n}ế
Delta := b*b – 4*a*c; (* Tính delta đ gi i phể ả ương trình b c 2 *)ậ
2.2.1.2 Gi i thi u cho h c sinh các ki u d li u th ớ ệ ọ ể ữ ệ ườ ng dùng, cách khai báo h ng, bi n; bi u th c và câu l nh ằ ế ể ứ ệ
a) Các ki u d ki u ể ữ ệ
Ki u s nguyênể ố
Các ki u s nguyênể ố Ph m vi giá triạ
Trang 6 Ki u s th c : Realể ố ự
Các phép toán s h c trên ki u d li u s th c : + (phép c ng), (phépố ọ ể ữ ệ ố ự ộ
tr ), * (phép nhân), / (phép chia). Không có phép chia l y ph n nguyên và phépừ ấ ầ chia l y ph n d trên ki u d li u s th c. ấ ầ ư ể ữ ệ ố ự
Ki u d li u ký t : Char ể ữ ệ ự
+ Ph m vi giá tr : M t ký tạ ị ộ ự
Ki u d li u xâu: Stringể ữ ệ
+ Ph m vi giá tr : M t xâu ký t , t i đa g m 255 ký tạ ị ộ ự ố ồ ự
b) Cách khai báo và s d ng h ng ử ụ ằ
H ng là m t đ i lằ ộ ạ ượng có giá tr không thay đ i trong su t chị ổ ố ương trình
Cú pháp khai báo h ng: ằ CONST <Tên h ng> = <Giá tr >;ằ ị
+Ví d khai báo h ng có tên ụ ằ Pi khi tính di n tích hình tròn là: ệ Const Pi=3.14;
Trang 7+Trong đó: Danh sách bi n là m t ho c nhi u tên bi n đế ộ ặ ề ế ược cách nhau b iở
d u ph y; Ki u d li u là m t trong các ki u d li u c a ngôn ng l p trìnhấ ẩ ể ữ ệ ộ ể ữ ệ ủ ữ ậ Pascal
Ví dụ: VAR x, y: Real; {Khai báo hai bi n x, y có ki u là Real}ế ể
Var a, b: Integer; {Khai báo hai bi n a, b có ki u integer}ế ể
d) Bi u th c ể ứ
Đ th c hi n t t k năng vi t bi u th c trong l p trình Pascal các em c nể ự ệ ố ỹ ế ể ứ ậ ầ
n m v ng các công th c toán h c c a bài toán, cách chuy n các phép toán trongắ ữ ứ ọ ủ ể toán h c sang các ký hi u trong ngôn ng l p trình Pascal đ có th chuy n đ iọ ệ ữ ậ ể ể ể ổ công th c y sang bi u th c Pascal. Cho h c sinh ghi nh l i các công th c toánứ ấ ể ứ ọ ớ ạ ứ
h c mà các em ch a bi t, ch a hi u vào v bài t p. Ví d m t s công th c cọ ư ế ư ể ở ậ ụ ộ ố ứ ơ
b n nh sau: ả ư
+ Tính di n tích hình ch nh t: ệ ữ ậ SCN = chi u dài × chi u r ngề ề ộ Khi đó ta
chuy n sang bi u th c Pascal s là: ể ể ứ ẽ S:=a*b; (trong đó: S là di n tích, a là s đo ệ ố
c a chi u dài, b là s đo c a chi u r ng) ủ ề ố ủ ề ộ nên l u ý h c sinh khi vi t xong cu iư ọ ế ố dòng công th c ph i có d u ch m ph y; ứ ả ấ ấ ẩ
+ Tính di n tích hình vuông: ệ SHV = c nh × c nhạ ạ Khi đó ta chuy n sangể
bi u th c Pascal s là: ể ứ ẽ S:=a*a; (trong đó: S là di n tích, a là s đo c a c nh) ệ ố ủ ạ
nên l u ý h c sinh khi vi t xong cu i dòng công th c ph i có d u ch m ph y;ư ọ ế ố ứ ả ấ ấ ẩ+ Tính chu vi hình tam giác: CVABC = c nh a + c nh b + c nh cạ ạ ạ Khi đó ta chuy n sang bi u th c Pascal s là: ể ể ứ ẽ CV:=a+b+c; (trong đó: CV là chu vi; a,b,c
là s đo c a 3 c nh) ố ủ ạ nên l u ý h c sinh khi vi t xong cu i dòng công th c ph iư ọ ế ố ứ ả
Trang 8+ Các phép toán +,
e) Câu l nh ệ
* Câu l nh gán ệ
Cú pháp: <tên bi n>:=<bi u th c>;ế ể ứ
Trong đó: tên bi n là tên c a bi n , ki u c a giá tr bi u th c ph i phù h pế ủ ế ể ủ ị ể ứ ả ợ
v i ki u c a bi nớ ể ủ ế
Ch c năng:ứ Gán giá tr m i c a bi n b ng giá tr c a bi u th c v ph i.ị ớ ủ ế ằ ị ủ ể ứ ở ề ảVD: x :=2*a; {gán giá tr c a bi u th c 2*a cho bi n x}ị ủ ể ứ ế
C n l u ý cho h c sinh 2 v n đ sau ầ ư ọ ấ ề :
Thông thường ki u d li u c a bi n ph i cùng ki u d li u v i ki uể ữ ệ ủ ế ả ể ữ ệ ớ ể
d li u c a giá tr bi u th c, ữ ệ ủ ị ể ứ bi n ki u th c có th nh n giá tr ki u nguyên vàế ể ự ể ậ ị ể
bi n ki u xâu có th nh n ki u kí t , ngế ể ể ậ ể ự ượ ạc l i thì không
Sau khi th c hi n câu l nh gán thì giá tr c a bi n s nh n giá tr m iự ệ ệ ị ủ ế ẽ ậ ị ớ
b ng giá tr c a bi u th c v ph iằ ị ủ ể ứ ở ế ả
* Các l nh xu t nh p d li u: ệ ấ ậ ữ ệ
Đ xu t d li u ra màn hình, ta s d ng ba d ng sau: ể ấ ữ ệ ử ụ ạ
WRITE([Các tham s ]);ố Sau khi xu t giá tr c a các tham s ra mànấ ị ủ ố
hình thì con tr không xu ng dòng.ỏ ốWRITELN([Các tham s ]);ố Sau khi xu t giá tr c a các tham s ra mànấ ị ủ ố
hình thì con tr xu ng đ u dòng ti p theo.ỏ ố ầ ếWRITELN; Xu t ra màn hình m t dòng tr ng.ấ ộ ố
Trong đó: Các tham s có th là các h ng, bi n, bi u th c, chu i thông báo.ố ể ằ ế ể ứ ỗ
N u có nhi u tham s trong câu l nh thì các tham s ph i đế ề ố ệ ố ả ược phân cách nhau
b i d u ph y. ở ấ ẩ
C n l u ý cho h c sinh 2 v n đ sau: ầ ư ọ ấ ề
N u tham s là m t chu i thông báo thì ph i đ t c p d u nháy đ n vàoế ố ộ ỗ ả ặ ặ ấ ơ hai đ u chu i thông báo đóầ ỗ
Ví d : writeln(‘chao cac ban’); ụ
Trang 9 N u tham s là bi n, h ng, bi u th c có giá tr tr v có ki u d li uế ố ế ằ ể ứ ị ả ề ể ữ ệ
s th c thì nên đ t thêm đ nh d ng khoa h c dố ự ặ ị ạ ọ ướ ại d ng write([tham s ]:m:n);ố
ho c writeln([tham s ]:m:n); ặ ố trong đó m là đ dài dùng đ vi t s trên màn ộ ể ế ố hình, n là s ch s th p phân sau d u th p phân ố ữ ố ậ ấ ậ
Ví d : writeln(x:10:1); {vi t giá tr bi n x trên màn hình có đ dài là 10ụ ế ị ế ộ
và làm tròn đ n ch s th p phân th nh t}ế ữ ố ậ ứ ấ
Đ nh p d li u t bàn phím cho các bi n ể ậ ữ ệ ừ ế
+ Cú pháp: READLN( [Danh sách bi n]); ế
+Trong đó: Danh sách bi n là tên m t ho c nhi u bi n; n u nhi u h n 1ế ộ ặ ề ế ế ề ơ
bi n thì các bi n ph i cách nhau b i d u ph y.ế ế ả ở ấ ẩ
+Khi ch y chạ ương trình, đ nh p d li u cho bi n thì khi nh p d li uể ậ ữ ệ ế ậ ữ ệ xong cho 1 bi n ph i b m phím Enterế ả ấ
++ Ví d : Đ nh p d li u cho bi n x ta s d ng l nh Readln(x);ụ ể ậ ữ ệ ế ử ụ ệ
+Chú ý: Khi g p câu l nh READLN; (không có danh sách bi n), chặ ệ ế ươ ngtrình s d ng l i ch ngẽ ừ ạ ờ ườ ử ụi s d ng nh n phím ENTER m i ch y ti p. L nhấ ớ ạ ế ệ này thường được dùng trướ ừc t khóa k t thúc chế ương trình (End.) đ xem k tể ế
qu xu t ra màn hình thay vì thao tác b m t h p phím ả ấ ấ ổ ợ Alt+F5 (nên khuy n ế khích h c sinh s d ng l nh này tr ọ ử ụ ệ ướ ừ c t khóa k t thúc ch ế ươ ng trình End. B i ở
vì khi ch y ch ạ ươ ng trình, n u không đ t l nh Readln; tr ế ặ ệ ướ ừ c t khóa End. thì h c ọ sinh th ườ ngb tâm lý “ho ng s ” do không nhìn th y đ ị ả ợ ấ ượ ế c k t qu ) ả
* Câu l nh đi u ki n d ng thi u ệ ề ệ ạ ế
Cú pháp: IF <đi u ki n> THEN <Câu l nh>;ề ệ ệ
+ Trong đó: đi u ki n ề ệ là phép so sánh
Nguyên t c ho t đ ng: Khi g p câu l nh đi u ki n d ng thi u, chắ ạ ộ ặ ệ ề ệ ạ ế ươ ngtrình s ki m tra đi u ki n. N u đi u ki n đẽ ể ề ệ ế ề ệ ược th a mãn (ỏ đi u ki n có giá tr ề ệ ị đúng) thì chương trình s th c hi n câu l nh sau t khóa THEN. Ngẽ ự ệ ệ ừ ượ ạ c l i(đi u ki n có giá tr sai) thì câu l nh đó b b qua.ề ệ ị ệ ị ỏ
Ví d : IF x>y THEN writeln(‘DUNG ROI’); {v i x, y là 2 bi n có giá trụ ớ ế ị nguyên}
+ Gi s trả ử ước đó x có giá tr 6, y có giá tr 5 thì câu l nh writeln(‘DUNGị ị ệ ROI’); được th c hi n trên màn hình hi n ra DUNG ROI; ự ệ ệ
Trang 10+ Gi s x có giá tr 5, y có giá tr 6 thì câu l nh writeln(‘DUNG ROI’)ả ử ị ị ệ không được th c hi n; ự ệ
C n l u ý cho h c sinh v các phép so sánh: > (l n h n),<(bé h n),>=ầ ư ọ ề ớ ơ ơ (l n h n ho c b ng),<= (bé h n ho c b ng),=(b ng), <> (khác) và k t qu c aớ ơ ặ ằ ơ ặ ằ ằ ế ả ủ các phép so sánh đó ch nh n m t trong 2 giá tr : Đúng ỉ ậ ộ ị ho c ặ Sai
*Câu l nh đi u ki n d ng đ y đ : ệ ề ệ ạ ầ ủ
Cú pháp: IF <đi u ki n> THEN <Câu l nh 1> ELSE <Câu l nhề ệ ệ ệ 2>;
Nguyên t c ho t đ ng: Khi g p câu l nh đi u ki n d ng thi u, chắ ạ ộ ặ ệ ề ệ ạ ế ươ ngtrình s ki m tra đi u ki n. N u đi u ki n đẽ ể ề ệ ế ề ệ ược th a mãn ỏ (đi u ki n có giá tr ề ệ ị đúng) thì chương trình s th c hi n câu l nh 1 sau t khóa THEN. Ngẽ ự ệ ệ ừ ượ ạ c l i
(đi u ki n có giá tr sai) ề ệ ị thì câu l nh 2 s đệ ẽ ược th c hi n.ự ệ
C n l u ý cho h c sinh 3 v n đ sau: ầ ư ọ ấ ề
Các phép so sánh và k t qu c a các phép so sánhế ả ủ
Có th s d ng các câu l nh IF THEN l ng nhau đ x lý h t cácể ử ụ ệ ồ ể ử ế
trường h p trong l p trìnhợ ậ
K t thúc câu l nh trế ệ ướ ừc t khóa ELSE không được có d u ch m ph yấ ấ ẩ+Ví d nh đ so sánh giá tr c a hai bi n x và y ta có các trụ ư ể ị ủ ế ường h p cóợ
th x y ra là: giá tr c a x l n h n giá tr c a y ể ả ị ủ ớ ơ ị ủ ho c ặ giá tr c a x bé h n giá trị ủ ơ ị
c a y ủ ho c ặ giá tr c a x b ng giá tr c a y. Khi đó ta s d ng các câu l nhị ủ ằ ị ủ ử ụ ệ IF THEN l ng nhau nh sau:ồ ư
FOR <bi n đ m> := <giá tr đ u> TO <giá tr đ u> DO <Câu l nh>;ế ế ị ầ ị ầ ệ
+Trong đó: Bi n đ m là bi n có ki u s nguyên; giá tr đ u, giá tr cu i làế ế ế ể ố ị ầ ị ố các giá tr nguyênị
Trang 11 Nguyên t c ho t đ ng: Khi g p câu l nh FOR DO, ban đ u bi n đ m sắ ạ ộ ặ ệ ầ ế ế ẽ
nh n giá tr b ng giá tr đ u, sau m i vòng l p thì bi n đ m t đ ng tăng thêmậ ị ằ ị ầ ỗ ặ ế ế ự ộ
m t đ n v cho đ n khi b ng giá tr cu i; khi bi n đ m có giá tr l n h n giá trộ ơ ị ế ằ ị ố ế ế ị ớ ơ ị
cu i thì thoát kh i câu l nh l p.ố ỏ ệ ặ
Ví d : ụ Đ xu t ra 5 ch O trên 5 dòng trên màn hình, ta có đo n l nh sau:ể ấ ữ ạ ệFOR I :=1 TO 5 DO Writeln(‘O’);
C n l u ý cho h c sinh: Ch s d ng câu l nh l p v i s l n l p bi t ầ ư ọ ỉ ử ụ ệ ặ ớ ố ầ ặ ế
tr ướ c FOR DO đ i v i các bài toán đã xác đ nh tr ố ớ ị ướ ố ầ ặ c s l n l p c a câu l nh ủ ệ sau t khóa DO ừ
*Câu l nh l p v i s l n ch a bi t tr ệ ặ ớ ố ầ ư ế ướ c WHILE DO
Đ th c hành t t các d ng bài t p câu l nh l p v i s l n ch a bi t trể ự ố ạ ậ ệ ặ ớ ố ầ ư ế ướ c
h c sinh c n thi t n m v ng ki n th c lý thuy t thông qua cú pháp:ọ ầ ế ắ ữ ế ứ ế
WHILE <Đi u ki n> DO <Câu l nh>; ề ệ ệ
Trong đó: Đi u ki n là phép so sánh ề ệ
Nguyên t c ho t đ ng: Khi g p câu l nh WHILE DO chắ ạ ộ ặ ệ ương trình sẽ
th c hi n theo các bự ệ ước sau:
+Bước 1: Ki m tra đi u ki nể ề ệ
+Bước 2: N u đi u ki n sai thì câu l nh sau t khóa DO b b qua và k tế ề ệ ệ ừ ị ỏ ế thúc l nh l p. N u đi u ki n đúng thì th c hi n câu l nh sau t khóa DO vàệ ặ ế ề ệ ự ệ ệ ừ quay l i bạ ước 1
Ví d : Tính t ng các s đụ ổ ố ược nh p vào t bàn phím. Khi t ng l n h nậ ừ ổ ớ ơ
100 thì d ng vi c nh p và thông báo k t qu ra màn hình. Ta có đo n l nh sau:ừ ệ ậ ế ả ạ ệ
S:=0; {S là bi n đ l u k t qu t ng các s nh p t bàn phím}ế ể ư ế ả ổ ố ậ ừWhile S <=100 Do
Trang 12 Giá tr các bi n trong đi u ki n trong câu l nh ph i thay đ i đ s m hayị ế ề ệ ệ ả ổ ể ớ
mu n giá tr c a ộ ị ủ <Đi u ki n> ề ệ chuy n t đúng sang sai. Ch nh v y chể ừ ỉ ư ậ ươ ngtrình m i không b r i vào tình tr ng “l p vô h n”.ớ ị ơ ạ ặ ạ
Nh l i k t qu c a các phép so sánh ớ ạ ế ả ủ (đã đ c p câu l nh đi u ki n ề ậ ở ệ ề ệ IF THEN)
Có th linh ho t s d ng câu l nh l p v i s l n ch a bi t trể ạ ử ụ ệ ặ ớ ố ầ ư ế ướ cWHILE DO thay cho câu l nh l p FOR DO.ệ ặ
2.2.1.1 Giáo viên gi i thi u cách vi t m t ch ớ ệ ế ộ ươ ng trình b ng ngôn ng ằ ữ
l p trình Pascal ậ
*C u trúc c b n nh t c a m t bài l p trình Pascal:ấ ơ ả ấ ủ ộ ậ
V m t lý thuy t giáo viên nên cung c p ch c ch n cho h c sinh c u trúcề ặ ế ấ ắ ắ ọ ấ chung c a m t bài l p trình nh sauủ ộ ậ ư :
+Xây d ng khung chự ương trình đ tránh trể ường h p chợ ương trình quá dài
h c sinh b quên ho c b sót c u trúc chọ ỏ ặ ỏ ấ ương trình; nên khuy n khích h c sinhế ọ khi so n th o khung chạ ả ương trình đ y đ nh sau: ầ ủ ư
+ Bên c nh đó, cũng c n l u ý h c sinh cách đ t tên chạ ầ ư ọ ặ ương trình đúng quy
t c, đ m b o không sai cú pháp khi đ t tên chắ ả ả ặ ương trình, tên chương trình không
được trùng v i các t khóa: ớ ừ PROGRAM, BEGIN, USES, VAR, END, , dùng
d u g ch n i xen gi a n u tên dài quá 8 ký t và ph i đ m b o tên không dàiấ ạ ố ữ ế ự ả ả ả quá 127 ký t , tên chự ương trình ph i đả ược đ t b ng ti ng vi t không d u,ặ ằ ế ệ ấ không s d ng d u cách; ử ụ ấ
Trang 13+ Các bi n ph n khai báo ph i đ m b o phù h p v i bài toán và phù h pế ở ầ ả ả ả ợ ớ ợ
v i ki u d li u c n nh p. Các h ng ph n khai báo ph i đ m b o phù h pớ ể ữ ệ ầ ậ ằ ở ầ ả ả ả ợ
v i bài toán. ớ
C n l u ý cho h c sinh 5 v n đ sau: ầ ư ọ ấ ề
Khi so n th o chạ ả ương trình trên máy tính nên t t các ph n m m h trắ ầ ề ỗ ợ
gõ ti ng Vi t nh Vietkey, unikey; ế ệ ư
Khi th c hi n chự ệ ương trình máy tính s th c hi n các l nh trong ph nẽ ự ệ ệ ầ thân chương trình theo tu n t nên khi vi t chầ ự ế ương trình ph i xác đ nh vi t l nhả ị ế ệ nào trước, l nh nào sau theo t duy thu t toán.ệ ư ậ
Các l nh khi vi t ph i tuân theo cú pháp c a nó. C n nh c l i sau cácệ ế ả ủ ầ ắ ạ
l nh đ u k t thúc b ng d u ch m ph y; s d ng l nh Clrscr đ xóa màn hìnhệ ề ế ằ ấ ấ ẩ ử ụ ệ ể
(l u ý h c sinh: đ s d ng đ ư ọ ể ử ụ ượ ệ c l nh này trong ph n thân thì ph i khai báo ầ ả
th vi n Crt ph n khai báo c a ch ư ệ ở ầ ủ ươ ng trình) và l nh ệ Readln đ hi n th k tể ể ị ế
qu ra màn hình ả
Thông thường trong cú pháp các câu l nh thệ ường là <câu l nh> ệ là m tộ
l nh đ n (m t thao tác trong thu t toán) c n ch th cho máy tính th c hi n. Tuyệ ơ ộ ậ ầ ỉ ị ự ệ nhiên, trong các câu l nh đi u ki n và câu l nh l p ta thệ ề ệ ệ ặ ường th y có nhi u thaoấ ề tác được th c hi n khi đi u ki n th a mãn thì các l nh đ n đó ph i đự ệ ề ệ ỏ ệ ơ ả ược đ tặ trong c p t khóa ặ ừ Begin và End đ t o thành câu l nh ghép.ể ạ ệ
=> Khi h c sinh n m v ng lý thuy t; cú pháp, nguyên lý ho t đ ng c a các ọ ắ ữ ế ạ ộ ủ câu l nh; nguyên t c vi t m t ch ệ ắ ế ộ ươ ng trình hoàn ch nh v i ngôn ng l p trình ỉ ớ ữ ậ Pascal thì các em có th vi t ch ể ế ươ ng trình đúng c u trú, đúng cú pháp h n ch ấ ạ ế
đ ượ ỗ c l i cú pháp khi ch y ch ạ ươ ng trình.
2.2.2 Gi i pháp 2: ả Gi i thi u v quá trình gi i bài toán trên máy tính ớ ệ ề ả
Phương pháp t ng quát đ gi i m t bài toán b ng máy vi tính d a trên ngônổ ể ả ộ ằ ự
ng Pascal thì c n th c hi n đữ ầ ự ệ ược các bướ ụ ểc c th nh sau:ư
B ướ c 1 . Xác đ nh các bài toán: ị
Là xác đ nh xem ta ph i gi i quy t v n đ gì?; t phát bi u c a bài toán,ị ả ả ế ấ ề ừ ể ủ các em ph i xác đ nh đả ị ược đâu là thông tin đã cho (Input) và đâu là thông tin c nầ