Cách giải bài toán trên máy tính, sử dụng bằng ngôn ngữ lập trình pascal

  • Số trang: 13 |
  • Loại file: PDF |
  • Lượt xem: 17 |
  • Lượt tải: 0
tailieuonline

Đã đăng 27670 tài liệu

Mô tả:

S¸ng kiÕn kinh nghiÖm A- PHẦN MỞ ĐẦU: 1. Lí do chọn đề tài - Trong thời đại hiện nay, sự bùng nổ CNTT đã tác động lớn đến công cuộc phát triển kinh tế xã hội. HiÖn nay n­íc ta còng nh­ c¸c n­íc trªn thÕ giíi ®ang c¹nh tranh vÒ nghµnh c«ng nghÖ chÕ t¹o m¸y còng nh­ c¸c s¶n phÇn phÇn mÒm gióp Ých cho con ng­êi trªn mäi lÜnh vùc. VËy lµm thÕ nµo ®Ó lµm ®­îc ®iÒu ®ã : nhê vµo ngµnh c«ng nghÖ th«ng tin. Ngµy nay con ng­êi kh«ng biÕt sö dông m¸y vi tÝnh th× coi nh­ lµ mù chữ. VËy khi biÕt sö dông m¸y vi tÝnh råi chóng ta sÏ lµm g× hay chØ ngåi ch¬i ®iÖn tö, c¸c trß gi¶i trÝ, so¹n th¶o c¸c bµi v¨n b¶n mµ th«i? Lµ mét gi¸o viªn tin häc mét trong c¸c môc tiªu khi ®­a tin häc vµo tr­êng häc lµ nh»m gióp häc sinh kh«ng chØ biÕt so¹n th¶o mµ cßn ph¶i cã kh¶ n¨ng ph©n tÝch, tæng hîp, trõu t­îng ho¸, kh¸i qu¸t ho¸ vÊn ®Ò vµ ®Æc biÖt lµ ph¸t triÓn t­ duy, s¸ng t¹o. Nh÷ng n¨m qua m«n tin häc ë THCS ch­a cã s¸ch gi¸o khoa cô thÓ h­íng dÉn cho häc sinh vÒ c¸ch ph©n tÝch lËp tr×nh. V× vËy häc sinh ch­a cã tÝnh ®éc lËp s¸ng t¹o mµ ph¶i nhê vµo gi¸o viªn rÊt nhiÒu. Nh­ng n¨m nay ®· cã s¸ch gi¸o khoa h­íng dÉn cho häc sinh cô thÓ qui tr×nh lËp tr×nh nh­ thÕ nµo.V× thÕ mµ t«i sÏ h­íng cho häc sinh líp 8 c¸ch ®Ó trë thµnh mét nhµ lËp tr×nh th× cÇn ph¶i n¾m b­íc c¬ b¶n nµo? 2. C¬ së thùc tiÔn Trong qu¸ tr×nh d¹y t«i nhËn thÊy ë c¸c em häc sinh là người dân tộc thiểu số. Đây là môn học mới, và các em bước đầu làm quen với máy tính nên còn khó khăn trong việc thao tác máy. Ở trong lËp tr×nh còng bµi to¸n ®ã mµ ph¶i lµm ®Õn hµng chôc phót mµ l¹i cã thÓ cho kÕt qu¶ sai. Song b»ng nh÷ng t©m huyÕt cña m×nh vµ còng nh­ sù yªu thÝch cña häc sinh. NhÊt lµ n¨m nay nghµnh gi¸o dôc cã ph¸t ®éng phong trµo gi¶i to¸n trªn m¹ng. §iÒu ®ã ®· thóc ®Èy t«i rÊt nhiÒu trong viÖc d¹y häc lµ lµm sao ®­a ra ®­îc cho c¸c em sù ®am mª vµ ph¸t triÓn tµi n¨ng cña häc sinh trong viÖc ®µo t¹o nh©n tµi cho ®Êt n­íc . Ng«n ng÷ lËp tr×nh PASCAL lµ mét phÇn mÒm cã cÊu tróc vµ rÊt ®­îc nhiÒu ®éc gi¶ quan t©m vµ còng chÝnh ®ã còng cã nhiÒu cuèn s¸ch do nhiÒu t¸c gi¶ viÕt. Song víi b¶n th©n t«i khi lùa chän viÕt ®Ò tµi nµy lµ muèn ®­a ra “ 1 S¸ng kiÕn kinh nghiÖm CÁCH GIẢI BÀI TOÁN TRÊN MÁY TÍNH” Sö dông b»ng ng«n ng÷ lËp tr×nh pascal. 3. Đối tượng nghiên cứu: Ứng dụng ngôn ngữ lập trinh Pascal để giải một số bài toán trên máy. 4. Khách thể nghiên cứu: Học sinh lớp 8. 5. Phạm vi nghiên cứu: Các tiết học tin học của lớp 8. Sự hứng thú và tích cực của học sinh lớp 8 về tiết học. Thời gian nghiên cứu là từ năm học 2009-2010 đến năm học 20122013. 6. Phương pháp nghiên cứu: Phương pháp phân tích. Phương pháp tổng hợp kinh nghiệm trong giảng dạy. Phương pháp trò chuyện trao đổi. Phương pháp nghiên cứu tài liệu. Phương pháp cử đôi bạn học tập, tạo sự hoạt động nhóm. 2 S¸ng kiÕn kinh nghiÖm B. NỘI DUNG I- Giải quyết vấn đề Ph­¬ng ph¸p c¬ b¶n gi¶i c¸c bµi to¸n trong tin häc kh«ng chØ dïng ®Ó gi¶i mét bµi to¸n cô thÓ mµ cßn gi¶i 1 líp c¸c bµi to¸n cô thÓ thuéc cïng mét lo¹i. Bµi to¸n ®­îc cÊu t¹o tõ hai yÕu tè c¬ b¶n: Th«ng tin vµo (Input) vµ th«ng tin ra (Output). 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 c¸c b­íc : 1. X¸c ®Þnh c¸c bµi to¸n. 2. Viết thuËt to¸n 3. ViÕt ch­¬ng tr×nh 4. Ch¹y thö, söa ®æi ch­¬ng tr×nh 1- XÁC ĐỊNH BÀI TOÁN a. Kh¸i niÖm bµi to¸n Trong qu¸ tr×nh häc ng­êi häc sinh hay bÊt kú mét c¸ nh©n nµo lu«n ph¶i liªn tôc gi¶i quyÕt c¸c bµi to¸n. Trong cuéc sèng lµ 1 chuçi c¸c bµi to¸n mµ ta ph¶i ®èi ®Çu gi¶i quyÕt kh«ng mét chót ®¬n gi¶n mµ nhiÒu lóc ph¶i bøc m×nh. Song ®èi víi häc sinh líp 8 do ch­¬ng tr×nh häc to¸n cña c¸c chØ míi ®Õn gi¶i ph­¬ng tr×nh bËc nhÊt lµ cao nhÊt. Nªn viÖc ®­a c¸c líp bµi to¸n vµo gi¶i cho c¸c em ®ang cßn mét phÇn nµo bÞ h¹n chÕ. Nh­ng bÊt kú mét bµi to¸n nµo th× chóng ta còng ®äc ®Ò råi x¸c ®Þnh nã : A  B. Trong ®ã:- A lµ gi¶i thiÕt : ®iÒu kiÖn ban ®Çu hoÆc c¸i ®· cho khi b¾t ®Çu gi¶i bµi to¸n. - B lµ kÕt luËn: Kết quả thu được hay c¸i ph¶i t×m, ph¶i lµm ra khi kÕt thóc bµi to¸n . -  Lµ suy luËn: gi¶i ph¸p cÇn x¸c ®Þnh hay mét chuèi thao t¸c thùc hiÖn tõ A ®Õn B. b. Bµi to¸n trªn m¸y vi tÝnh Bµi to¸n trªn m¸y còng mang ®Çy ®ñ c¸c tÝnh chÊt cña bµi to¸n tæng qu¸t trªn, nh­ng nã l¹i ®­îc diÔn ®¹t theo mét c¸ch kh¸c. - A: lµ ®­a th«ng tin vµo (Input ) - B: lµ ®­a th«ng tin ra( Output) -  : lµ ch­¬ng tr×nh t¹o tõ c¸c lÖnh c¬ b¶n cña m¸y tÝnh cho phÐp biÕn ®æi tõ A ®Õn B. c. Mét sè vÝ dô 3 S¸ng kiÕn kinh nghiÖm VÝ dô 1: TÝnh diÖn tÝch h×nh ch÷ nhËt. Ta cÇn x¸c ®Þnh cho bµi to¸n: + Th«ng tin vµo: ChiÒu dµi lµ c¹nh a, chiÒu réng lµ c¹nh b + Th«ng tin ra: KÕt qu¶ diÖn tÝch khi đã có chiều dài và chiều rộng + C¸c th«ng tin cÇn chÕ biÕn th«ng tin nh­: i. LÇn l­ît ®­a a,b vµo ( cho a=3,b=4) ii. ¸p dông c«ng thøc tÝnh diÖn tÝch h×nh ch÷ nhËt: a*b iii. KÕt qu¶ in ra lµ 12. VÝ dô 3: T×m tÊt c¶ c¸c sè hoàn hảo trong c¸c sè nguyªn N ®­îc nhËp vµo tõ bµn phÝm: + X¸c ®Þnh th«ng tin vµo:NhËp sè nguyªn N +X¸c®Þnh th«ng tin ra: C¸c sè hoàn hảo (có tổng các ước bằng chính nó) II- T×m thuËt to¸n ThuËt to¸n lµ mét qu¸ tr×nh thực hiện c¸c thao t¸c ®¬n gi¶n ®­îc s¾p xÕp theo mét tr×nh tù sao cho tõ Input cña bµi to¸n sÏ t×m ra ®­îc Output bµi to¸n . Mét bµi to¸n ta cã 3 c¸ch thÓ hiÖn thuËt to¸n: C¸c b­íc x¸c ®Þnh b»ng lêi, lËp s¬ ®å khèi, dïng mét ng«n ng÷ lËp tr×nh (Pascal). VÝ dô: T×m ­íc sè chung lín nhÊt cña 2 sè nguyªn d­¬ng a,b . ta cã thÓ gi¶i b»ng c¸c c¸ch trªn C¸ch 1: C¸c b­íc x¸c ®Þnh bµi to¸n b»ng lêi: - B­íc 1: NhËp 2 sè nguyªn d­¬ng lµ a,b - B­íc 2: So s¸nh gi¸ trÞ a vµ b . NÕu a b»ng b th× sang b­íc 3, ng­îc l¹i a kh¸c b th× sang b­íc 4 - B­íc 3: T×m ®­îc ­íc sè chung lµ a vµ kÕt thóc ch­¬ng tr×nh - B­íc 4: NÕu a lín h¬n b th× ­íc sè chung lín nhÊt lµ a vµ quay trë l¹i b­íc 2. Ng­îc l¹i ­íc sè chung lµ b vµ quay trë l¹i b­íc 2 C¸ch 2: Gi¶i bµi to¸n b»ng s¬ ®å - Cã h×nh thoi  thÓ hiÖn c¸c thao t¸c so s¸nh - H×nh ch÷ nhËt thÓ hiÖn c¸c phÐp tÝnh to¸n, c¸c c©u lÖnh - H×nh «van thÓ hiÖn b¾t ®Çu vµ kÕt thóc - C¸c mòi tªn quy ®Þnh tr×nh tù c¸c thao t¸c 4 S¸ng kiÕn kinh nghiÖm Begin a, b a=b ®óng UCLN lµ a sai END §óng Sai a<>b b:= b - a a:= b - a C¸ch 3: ViÕt ch­¬ng tr×nh hoµn chØnh (dïng ng«n ng÷ pascal) PROGRAM USCLN; USES CRT; VAR a,b, :integer; BEGIN CLRSCR; WRITE('nhap 2 gia tri m,n=');READLN(a,b); WHILE m<>n DO IF a>b THEN a:=a – b else b:=b-a; WRITELN('uoc so chung lon nhat cua 2 so’,a:5); READLN END. 5 S¸ng kiÕn kinh nghiÖm III- ViÕt ch­¬ng tr×nh LËp tr×nh lµ dïng ng«n ng÷ cô thÓ (ng«n ng÷ Pascal) ®Ó diÔn t¶ thuËt to¸n, cÊu tróc d÷ liÖu thµnh c©u lÖnh ®Ó m¸y tÝnh cã thÓ thùc hiÖn ®­îc vµ gi¶i quyÕt ®óng bµi to¸n mµ ng­êi lËp tr×nh mong muèn. 1. Kü n¨ng lËp tr×nh - RÌn luyÖn ®­îc cho häc sinh kü n¨ng cµi ®Æt thµnh c«ng c¸c thuËt to¸n b»ng mét ng«n ng÷ lËp tr×nh. - §· gäi lµ kü n¨ng th× chØ cã thÓ cã ®­îc th«ng qua rÌn luyÖn tÝch cùc. - Kinh nghiÖm cho thÊy mét thuËt to¸n do cµi ®Æt vông vÒ, lén xén th× khi ch¹y trªn m¸y tÝnh cã thÓ cho kÕt qña tåi tÖ. 2. Ph¸t triÓn ch­¬ng tr×nh b»ng c¸ch tinh chÕ tõng b­íc Mét bµi to¸n ta cã thÓ ®­a ra nhiÒu c¸ch gi¶i kh¸c nhau, song lµ mét gi¸o viªn th× chóng ta cÇn gióp häc sinh viÕt ch­¬ng tr×nh lµm sao ng­êi xem nh×n vµo cã thÓ dÔ hiÓu ®­îc bµi to¸n ®ã lµ g× ? Do ®ã viÖc tinh chØnh c¸c b­íc cho bµi to¸n trong m¸y tÝnh lµ ph­¬ng ph¸p khoa häc, cã hÖ thèng gióp ta ph©n tÝch c¸c thuËt to¸n vµ cÊu tróc d÷ liÖu tõ ®ã thµnh mét ch­¬ng tr×nh . Muèn lËp tr×nh giái kh«ng ph¶i chØ cÇn n¾m ng«n ng÷ lËp tr×nh lµ ®ñ. Mµ vÊn ®Ò cèt yÕu lµ biÕt ph­¬ng ph¸p ph¸t triÓn dÇn dÇn ®Ó chuyÓn c¸c ý t­ëng ra thµnh ch­¬ng tr×nh hoµn chØnh. 3. Ph­¬ng ph¸p tinh chÕ tõng b­íc Mét ch­¬ng tr×nh b¾t ®Çu ®­îc viÕt b»ng lêi tù nhiªn(tiÕng viÖt) thÓ hiÖn sù ph©n tÝch tæng thÓ cña ng­êi lËp tr×nh ®­îc thÓ hiÖn ë tõng b­íc sau c¸c c©u lÖnh ®­îc ph©n tÝch chi tiÕt h¬n, b»ng nh÷ng lêi kh¸c nhau t­¬ng øng víi sù ph©n tÝch c«ng viÖc thµnh c¸c viÖc nhá chi tiÕt h¬n dÔ hiÓu vµ chØnh x¸c h¬n. Song ng«n ng÷ lËp r×nh pascal ng­êi lËp tr×nh cã thÓ ®­a ra ph­¬ng ph¸p tinh chØnh tõng b­íc lµ thÓ hiÖn t­ duy gi¶i quyÕt vÊn ®Ò bµi to¸n tõ trªn xuèng trong ®ã c¸c b­íc lµ h­íng vÒ ng«n ng÷ lËp tr×nh lµm sao cho bµi to¸n ®a ra ®îc ph­¬ng ph¸p lËp tr×nh tèi ­u, s¸ng söa. 4. VÝ dô T×m tÊt c¶ c¸c sè nguyªn tè trong c¸c sè nguyªn N ®­îc nhËp vµo tõ bµn phÝm a. Tinh chÕ lÇn 1 - LÊy 2 tËp NT= [ ] (®Ó chøa c¸c sè nguyªn tè t×m ®îc) S = [2,..N] (tËp c¸c sè cÇn xÐt ) - T×m sè ®Çu tiªn trong S ®a vµo NT 6 S¸ng kiÕn kinh nghiÖm - Lo¹i bá khái S c¸c béi sè cña sè nguyªn tè võa t×m ®­îc - Sè ®Çu tiªn cßn l¹i cña S lµ sè nguyªn tè. TiÕp tôc qu¸ tr×nh cho ®Õn khi S=[] - XuÊt NT b. Tinh chÕ lÇn 2 B¾t ®Çu NT: = [ ] S = [2,..N] Repeat T×m sè ®Çu tiªn trong S NT:= NT+ [S0] Lo¹i khái S c¸c béi sè cña S0 Until S=[ ]; XuÊt NT; KÕt thóc; c. Tinh chÕ lÊn 3 ( ch­¬ng tr×nh hoµn chØnh) Program nguyen_to; Const N=100; Type nguyen=1..N; var NT, S:set of nguyen; s0,I:integer; begin NT:=[]; S:=[2..N];S0:=2; repeat while not (S0 in S) do S0:=S0+1; NT:=NT+[S0];I:=S0; While I<=N do Begin s:=S-[i];I:=I+S0; End; until S=[]; for I:= 1 to n do If I in Nt then Write(I:4); readln end. 7 S¸ng kiÕn kinh nghiÖm d. Tinh chÕ lÇn 4. Râ rµng cÊu tróc d÷ liÖu tËp hîp Set of nguyen tuy dÔ hiÓu nh­ng rÊt cång kÒnh vµ lµm m¸y ch¹y chËm ch¹p, ta cã thÓ dïng m¶ng Boolean linh ho¹t h¬n nh­ sau: Program nguyen_to; Const N=100; var a:array[1..N] of boolean; i,j:integer; begin a[1]:=false; for i:=2 to N do a[i]:=true; for i:= 2 to N div 2 do for j:= 2 to N div i do a[i*j]:=false; for i:= 1 to N do if a[i] then write(i:3); readln end. e. Tinh chÕ lÇn 5 Trong ng«n ng÷ pascal nÕu dïng m¶ng boolean th× ta bÞ giíi h¹n N<10000. §Ó cã thÓ ch¹y víi sè lín h¬n ta kh«ng dïng m¶ng , tËp hîp mµ dïng nh­ sau: Program nguyen_to; uses crt; var i,j,k,n:integer; begin repeat write('nhap n=');readln(n); until n>= 2; for i:= 2 to n do begin k:=0; for j:= 2 to trunc(sqrt(i)) do if i mod j=0 then k:= 1; if k=0 then write(i:3); end; readln 8 S¸ng kiÕn kinh nghiÖm end. VËy ®ã lµ kü n¨ng lËp tr×nh ng­êi lËp tr×nh cã thÓ tinh chØnh ch­¬ng tr×nh tõng b­íc lµm sao ®­a ra mét ph­¬ng ¸n tèi ­u cho ngwêi xem dÔ tiÕp thu còng nh­ chiÕm bé nhí cña m¸y tÝnh cµng Ýt c¸c tèt. IV- Ch¹y Thö , thay ®æi, kiÓm tra ch­¬ng tr×nh 1. Ch¹y thö Mét ch­¬ng tr×nh ®· viÕt xong ch­a ch¾c ®· ch¹y ®­îc trªn m¸y vi tÝnh ®Ó cho kÕt qu¶ mong muèn. VÝ dô: T×m sè lín nhÊt trong 3 sè a,b,c nguyªn d­¬ng ®­îc nhËp vµo tõ bµn phÝm. LÇn 1: Program tim_so; uses crt; var a,b,c:integer; begin clrscr; write('nhap 3 so=');readln(a,b,c); if a - Xem thêm -