การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

20
การพัฒนาโปรแกรม จัดทำาโดย นางสาว วิชญา บูรพางกุร ชั้นมัธยมศึกษาปีท 4/9 เลขที26

Transcript of การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

Page 1: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การพฒนาโปรแกรม

จดท ำาโดย นางสาว ว ชญา บรพางก ร

ชนม ธยมศ กษาปท 4/9 เลขท 26

Page 2: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

ขนตอนการพฒนาโปรแกรมขนตอนการพฒนาโปรแกรมประกอบดวย1.การว เคราะหป ญหา2.การออกแบบโปรแกรม3.การเข ยนโปรแกรมดวยภาษาคอมพวเตอร 4.การทดสอบและแกไขโปรแกรม5.การทำาเอกสารประกอบโปรแกรม6.การบำาร งร กษาโปรแกรม

Page 3: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การออกแบบโปรแกรม

การออกแบบขนตอนการทำางานของโปรแกรมเป น ขนตอนทใช เป นแนวทางในการลงรหสโปรแกรม

ผออกแบบขนตอนการทำางานของโปรแกรมอาจใช เคร องม อต างๆ ชวยในการออกแบบ อาทเชน ค ำาส ง

ลำาลอง (Pseudo code) หรอ ผ งงาน (Flow chart) การออกแบบโปรแกรมนนไมต องพะวงก บร ปแบบคำาส ง

ภาษาคอมพวเตอร แต ให ม งความสนใจไปทล ำาด บข นตอนในการประมวลผลของโปรแกรมเทาน น

Page 4: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การเขยนโปรแกรมดวยภาษาคอมพวเตอร

การเข ยนโปรแกรมเป นการนำาเอาผลลพธของการ ออกแบบโปรแกรม มาเปล ยนเป น

โปรแกรมภาษาคอมพวเตอร ภาษาใดภาษาหนง ผ เข ยนโปรแกรมจะตองใหความสนใจตอ

ร ปแบบคำาส งและกฎเกณฑของภาษาทใช เพ อให การประมวลผลเป นไปตามผลลพธท ได

ออกแบบไว นอกจากนนผ เข ยนโปรแกรมควรแทรก คำาอธบายการทำางานตางๆ ลงใน

โปรแกรมเพ อให โปรแกรมนนม ความกระจ างชดและ งายต อการตรวจสอบและ โปรแกรมน

ย งใช เป นส วนหนงของเอกสารประกอบ

Page 5: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การทดสอบและแกไขโปรแกรม การทดสอบโปรแกรมเป นการนำาโปรแกรมทลงรห สแล วเขา

คอมพวเตอร เพ อตรวจสอบร ปแบบกฎเกณฑของภาษา และผลการทำางานของโปรแกรมนน ถ าพบว าย งไม ถ กกแก ไขใหถก

ตองต อไป ขนตอนการทดสอบและแกไขโปรแกรม อาจแบงได เป น 3 ขน

1.สร างแฟมเกบโปรแกรมซงส วนใหญน ยมนำาโปรแกรมเขาผ านทางแป นพมพ โดยใชโปรแกรมประมวลค ำา2.ใชตวแปลภาษาคอมพวเตอร แปลโปรแกรมทสร างข นเป นภาษา

เคร อง โดยระหว างการแปลจะม การตรวจสอบความถกต องของร ป แบบและกฎเกณฑในการใชภาษา ถาค ำาส งใดม ร ปแบบไมถกต องก

จะแสดงขอผ ดพลาดออกมาเพ อให ผ เขยนนำาไป แกไขตอไป ถา ไม ม ขอผ ดพลาด เราจะไดโปรแกรมภาษาเคร องท สามารถให

คอมพวเตอร ประมวลผลได 3. ตรวจสอบความถกต องของการประมวลผลของโปรแกรม

โปรแกรมทถ กต องตามร ปแบบและกฎเกณฑของภาษา แตอาจให ผลลพธ ของการประมวลผลไมถกต องกได ด งน นผ เขยนโปรแกรม

จำาเป นต องตรวจสอบว าโปรแกรมประมวลผลถกต องตามตอง การ หรอไม ว ธ การหนงกค อ สมมตข อม ลต วแทนจากขอม ลจร งน ำาไปให

โปรแกรมประมวลผลแลวตรวจสอบผลลพธ ว าถ กต องหร อไม ถา พบวาไม ถกต องก ต องด ำาเน นการแกไขโปรแกรมตอไป การสมมต

ขอม ลต วแทนเพอการทดสอบเป นส งท ม ความส ำาค ญเป นอยางมากล กษณะของขอม ลต วแทนทด ควรจะสมมตท งขอม ลท ถ กต องและ

ขอม ลท ผ ด พลาด เพ อทดสอบว าโปรแกรมทพ ฒนาขนสามารถ ครอบคลมการปฏบ ต งานในเง อนไข ตางๆ ได ครบถวน นอกจากน

อาจตรวจสอบการทำางานของโปรแกรมดวยการสมมตต วเองเป น คอมพวเตอร ท จะประมวลผล แล วท ำาตามค ำาส งท ละค ำาส งของโปร

แกรมนนๆ ว ธ การนอาจทำาได ยากถาโปรแกรมมขนาดใหญ หร อม การประมวลผลทซ บซ อน

Page 6: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การทำาเอกสารประกอบโปรแกรม การทำาเอกสารประกอบโปรแกรมเปนงานทสำาคญของการพฒนา

โปรแกรม เอกสารประกอบโปรแกรม ชวยใหผใชโปรแกรมเขาใจวตถประสงค ขอมลทจะตองใชกบโปรแกรม

ตลอดจนผลลพธทจะไดจาก โปรแกรม การทำาโปรแกรมทกโปรแกรมจงควรตองทำาเอกสารกำากบ เพอ

ใชสำาหรบการอางองเมอจะใชงาน โปรแกรมและเมอตองการแกไขปรบปรง โปรแกรม เอกสารประกอบ

โปรแกรมทจดทำา ควรประกอบดวยหวขอตอไปน

1.วตถประสงค2.ประเภทและชนดของคอมพวเตอรและอปกรณทใชในโปรแกรม3.วธการใชโปรแกรม4.แนวคดเกยวกบการออกแบบโปรแกรม5.รายละเอยดโปรแกรม6.ขอมลตวแทนทใชทดสอบ7.ผลลพธของการทดสอบ

Page 7: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การบำารงรกษาโปรแกรม

เมอโปรแกรมผานการตรวจสอบตามขนตอนเรยบรอยแลว และ ถกนำามาใหผใชไดใชงาน

ในชวงแรกผใชอาจจะยงไมคนเคยกอาจทำาใหเกดปญหาขนมา บาง ดงนนจงตองมผคอย

ควบคมดแลและคอยตรวจสอบการทำางาน การบำารงรกษาโปรแกรมจงเปนขนตอนทผเขยน

โปรแกรมตองคอยเฝาดและหา ขอผดพลาดของโปรแกรมใน ระหวางทผใชใชงานโปรแกรม

และปรบปรงโปรแกรมเมอเกดขอผดพลาดขน หรอในการใชงาน โปรแกรมไปนานๆ ผใช

อาจตองการเปลยนแปลงการทำางานของระบบงานเดมเพอให เหมาะกบ เหตการณ นกเขยน

โปรแกรมกจะตองคอยปรบปรงแกไขโปรแกรมตามความตองการ ของผใชท เปลยนแปลงไป

นนเอง

Page 8: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

ภาษาโปรแกรมคอมพวเตอร

การแกปญหาดวยคอมพวเตอรนน หลงจากทไดวเคราะหปญหาจนไดขน ตอนวธในการแกปญหา ซงอาจจะอย

ในรปแบบรหสลำาลอง หรอผงงาน ขนตอนตอไปคอการเขยนโปรแกรมคอมพวเตอรขนเพอแกปญหาตาม

ขนตอนทไดวางแผนไว แตเนองจากคอมพวเตอรจะรบรคำาสงทเปนภาษาเครองเทานนและมนษยไมสามารถ

เขยนโปรแกรมภาษาเครองไดโดยตรง เนองจากไมสะดวก ยากตอการ ทำาความเขา จงไดมการสรางภาษา

คอมพวเตอรระดบสงขนมาเพอใหงายตอการเขยนโปรแกรม ผเขยน โปรแกรมไมจำาเปนตองเรยนรการทำางาน และโครงสรางภายในของเครองคอมพวเตอร กสามารถเขยนโปรแกรม

ไดโดยตองผานการแปลใหเปน ภาษาเครองกอนทจะใชสงงานคอมพวเตอรได

Page 9: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

ภาษาเช งกระบวนความโปรแกรมคอมพวเตอร ท เข ยนด วยภาษาเช งกระบวนความมล กษณะ

การทำางานตามล ำาดบของค ำาส ง จากค ำาส งแรกจนถง คำาส งส ดท าย และบางค ำาส งอาจจะถกท ำาซ ำา หร อบางค ำาส งอาจจะไม

ถกกระท ำาเลยขนอย ก บเง อนไขในโปรแกรม ภาษาในกลมน เหมาะส ำาหร บการเร มต นท ำาความเข าใจก บการเขยนโปรแกรม

คอมพวเตอร เน องจากชวยใหผ เร ยนร จ กการค ดอย าง เป นระบบ อนเป นพนฐานสำาค ญในการเข ยนโปรแกรมภาษาอ น

นอกจากนในภาษาโปรแกรมประเภทอนก จะย งม ร ปแบบ การทำางานเช งกระบวนความแฝงอย ภายในดวยเสมอ การใชงาน

ภาษาในกลมน เช น งานคำานวณทางว ทยาศาสตร อาจเล อกใชภาษาฟอร แทรน (FORTRAN) งานประมวลผลขอม ลทางธ รก จ

การเง นหร อธนาคารอาจเล อกใชภาษาโคบอล(COBOL) หรอภาษาอาร พ จ (RPG) การเขยนโปรแกรมควบคมการทำางาน

ของระบบคอมพวเตอร ม กเล อก ใชภาษาซเน องจากภาษาเคร องท ไดจะท ำางานได รวดเร ว หร อการ

เร ยนการสอนการโปรแกรมเช งกระบวนความอาเล อกใช ภาษาปาสคาล (Pascal) หรอภาษาซ เป นต น

Page 10: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

ภาษาเช งว ตถ ภาษาเช งว ตถจะอ ำานวยความสะดวกใหก บผ เขยนโปรแกรมในการ

พฒนาโปรแกรมทใหญและซบซอนได เป นอย างด อ กท งย งสามารถใชเข ยนโปรแกรมในลกษณะเด ยวก บภาษาเช งกระบวน

ความได เช นก น ภาษาในกลมน เช น ภาษาจาวา(Java) ภาษาซชาร ป (C#) และภาษาซพล สพลส (C++)

ร ปท 7.5 แสดงต วอยางโปรแกรมภาษาซพล สพลสท ใหผ เล นทาย ตวเลขทโปรแกรมส มข นมาหนงต ว

Page 11: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

ภาษาอ นๆ1. โฟร ทจ แอล (fourth-generation languages: 4GLs) เป นกล มของภาษาท

แตกตางจากภาษาเช งกระบวนความ ทเน นใหผ ใช สามารถเขาถง ขอม ลในฐานขอม ลได โดยง าย ภาษาจะม ความคล ายคล ง

กบภาษาอ งกฤษทใช กนอย ต วอยางของภาษา 4GL เชน ภาษาเอสค ว แอล (SQL)

2. เอชทเอ มแอล (Hypertext Markup Language: HTML ) เป นภาษาทใช จ ดร ปแบบการแสดงผล

ของขอความและร ปภาพ รวมถงส อประสมบนหนาเว บ ด งน นเอชทเอ มแอลจ งไม ได ถ กจ ดเป นภาษาทใช ในการเขยน

โปรแกรมอย างแทจร ง แต เป นการก ำาหนดว ธการในการแสดงผล เอช ทเอ มแอลจะใชแท ก (tags) เป นต วก ำาหนดว าส วน

ใดในเอกสารจะใหแสดงผลอยางไร ร ปท 7.7 (ก) แสดงตวอย างของภาษาเอชทเอ มแอลทใช ในการสร างเว บเพจในรปท 7.7 (ข)

Page 12: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การโปรแกรมดวยภาษาซ ในบทนจะได แนะนำาใหร จ กกบภาษาซ ซ งเป นภาษาทเข ยนเป นแบบ

โครงสร าง และเป นภาษาทใช เป นพ นฐานในการเร ยนร การเข ยนโปรแกรมเช งกระบวนความได เป นอยางด

โครงสร างของภาษาซโครงสร างพ นฐานของโปรแกรมภาษาซจะต องประกอบดวยฟงกช น

อยางน อย 1 ฟงกช น ค อ ฟงกช น main( ) ซงม ร ปแบบดงร ปท 7.8

01 int main ( ) { <สวยหวของฟงกช น02 การประกาศตวแปรต วแปรทองถ น ;

03 คำาส งต างๆ ;

04 }

Page 13: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

องคประกอบของภาษาซในทน จะไดอธบายองคประกอบพนฐานของภาษาซจากตวอยาง

ของโปรแกรมในรปท 7.10 ซงเปน โปรแกรมทพฒนามาจากผงงานในตวอยางท 6.9 โดยเพมการ

นบจ ำานวนครงของการทายทงหมดดวย( ร ปท 7.9 แสดงผงงานทสอดคลองกบโปรแกรมในรปท

7.10 )

Page 14: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

- การประกาศรวมแฟมส วนหรอ ( header files ) 1 #include <stdio.h>1 #include <stdiob.h>

การประกาศรวมแฟมสวนหวด งแสดงในบรรทดท 1 และ 2 เป นการรวมเอาฟงก ช น มาตรฐานของภาษาซเขามาร วมใชงานกบโปรแกรมทเข ยนขน ท ำาให

นกเข ยนโปรแกรมสามารถเร ยกใชฟงก ช นมาตรฐานทภาษาซเตร ยมไว ให ได เช น ฟงก ช น printf( ) และ scanf( ) เป นตน

- การประกาศตวแปร ( variable declaration ) 6  int target ;7  int number ;8. int no_of_guesses = 1 ;

ในบรรทดท 6 ถง 8 เป นการประกาศตวแปร ซงเป นขอก ำาหนดของภาษาซท ต องม การประกาศตวแปรไว ท ตอนตนของฟงก ช น ก อนทจะสามารถใชงานตว

แปรเหลาน นได ในทน ม การประกาศตวแปรtarget, number และ no_of_guesses เป น ชนดจ ำานวนเตม ( int ) สงเกตว าร ปแบบของการประกาศ

ตวแปร คอ data_type identification_name ซง data_type เป นชนดของขอมล และidentification_name เป นชอต วแปรทก ำาหนด

ขนใหม ชนดตามทระบ นอกจากนย งสามารถกำาหนดคาเร มตนให ก บตวแปรทเพ งจะ ประกาศขนได เลย ดงเช นทก ำาหนดคา 1 ใหก บตวแปร no_of_guesses

ในบรรทดท 8 - การร บขอม ลเข า10  scanf ("%", &target) ;12  scanf ("%", &number) ;13  scanf ("%", &number) ;

ในบรรทดท 10.12 และ 20 เป นการเร ยกฟงก ชน scanf ( ) ในการร บข อมลเขา โดย ตองมการระบพารามเตอร ค อ ตวแรกเป นสายอกขระของการกำาหนด

ร ปแบบของขอมลเขาท ตองการร บ ในทน ค อ"%d" หมายถงว าตองการร บขอม ลเขาท อย ในรปแบบจำานวนเตม และต วท สองเป นต ำาแหนงในหนวยความจำาของตว

แปรทตองการใชเก บค าท ร บเข า สงเกตว าภาษาซใชเคร องหมาย & นำาหนาชอตวแปร เป นการอางถ งต ำาแหนงในหนวยความจำาของตวแปรนน

Page 15: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

- การพมพผลลพธ 11 printf ("Enter the number you guess ") ;16 printf ("Too high\n") ;17 printf ("Too low\n") ;19 printf ("Enter the number you guess ") ;        ในบรรทดท 11. 16. 18 และ 19 เปนการเรยกใชฟ งก ช น

printf ( ) เพ อพ มพขอความออกทางจอภาพซงเราสามารถกำาหนดขอความ

อยภายในเคร องหมายอญประกาศใหเปนพารามเตอรของฟงก ชน printf ( ) ได เลย

23 printf ("Correct - You try %d time . \n" , no_of_guesses ) ;        สำาหรบในบรรทดท 23 จะมการพมพคาของต วแปรชนด

จ ำานวนเต ม no_of_guesses ดวย โดยจะต องระบรปแบบขอม ลของตวแปลทต องการใหพ มพ ภายในขอความทเปนพารามเตอรต วแรก

ดวย ในทน ต วแปร no_of_guesses เปนชนด int ซงจะใช รปแบบกำาหนดการพมพคอ "%d" ในลกษณะเด ยวกนก บฟงกช น scanf ( )

นนเอง- คำาส งควบคมการทำางานแบบวนซำา

Page 16: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

  คำาส ง while เป นค ำาส งเพ อควบคมว าช ดค ำาส งภายใตค ำาส ง while ( คอ ต งแต บรรทดท 14 ถง 22)จะถกวนทำาซ ำาอ ก

หรอไม โดยเม อโปรแกรมทำางานมาถงบรรทดท 13 จะตรวจสอบกอนว าเง อนไข เป นจร งหร อไม ในทน ค อตรวจสอบวา

คาของตวแปร number ไม เท าก นก บค าของตวแปร target หรอไม ถ าเป นจร ง ก จะไปทำางานตามคำาส งภายใน

บรรทดด งกล าวหนงรอบ กอนทจะย อนกลบไปตรวจสอบเง อนไขอกคร ง ถ า เง อนไขเป นเท จ ก จะไปทำางานในบรรทดท

23 ตอไป- คำาส งก ำาหนดคาแปรใหก บต วแปร21 no_of_guesses = no_of_guesses + 1 ;

ในบรรทดท 21 เป นการกำาหนดคาใหมให ก บต วแปร no_of_guesses โดยใช เคร องหมายกำาหนดคา ( = ) ซง

เป นการกำาหนดใหต วแปรทอย ทางซายของเคร องหมายกำาหนดคา ม ค าเท าก บค าของนพจนทางขวาของเคร องหมาย

กำาหนดคา ซ งในทน เป นการเพมค าของตวแปร no_of_guesses ขนอ ก 1 นนเอง ภาษาซใช น พจนทางคณตศาสตร เพ อค ำานวนและเปร ยบเทยบ นพจนประกอบ

ดวยต วถ กด ำาเน นการ ( operand ) และ ตวด ำาเน นการ ( operator ) ทสามารถถกลดร ปหร อถ กประเม นใหเป นค าทาง

คณตศาสตร เพ ยงค าเด ยวได เช น 2 * 5 เป น นพจน เน องจากสามารถหาคาได เป น 10 ตวด ำาเน นการในภาษาซม หลายประเภท

- คำาส งควบคมการทำางานแบบมทางเล อก15 if (number > target)16 printf ("Too high\n") ;17 else18 printf ("Too low\n") ;

Page 17: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

คำาส ง if-else ในบรรทดท 15 ถง 18 เป นการเล อกว าจะท ำางานตามคำาส ง ภายใต if หรอภายใต elseแล วแต เง อนไขท

อย หล ง if ในบรรทดท 15 โดยถาเง อนไขเป นจร ง จะท ำางานภายใต if นนค อค ำาส งในบรรทดท 16 เท าน น แล วจะข ามไป

ทำางานในบรรทดท 19 เลย แตถ าเง อนไขในบรรทดท 15 เป นเท จก จะ ขามค ำาส งภายใต if ไปทำางานทค ำาส งภายใต else

ในบรรทดท 18 เท าน น กอนทจะท ำางานในบรรทดท 19 ตอไป- คำาส ง return

25 return 0;

ในบรรทดท 25 คำาส ง return เป นการจบการทำางานของฟงก ช น แลวส งค าท ระบ ( คอค า 0 ) กลบไปใหก บ

 ฟงกช นท เร ยกมา ส ำาหร บโปรแกรมภาษาซท ถกเร ยกใหท ำางานจาก ระบบปฏบ ต การนน เน องจากระบบปฏบ ตการเป น

ผ เร ยกใหฟ งก ช นmain ( ) ในโปรแกรมทำางาน ดงน นเม อโปรแกรม ทำางานเสร จส นลง ฟงกช น main ( ) จงสงค า 0

ไปใหกบระบบปฏบ ตการ

Page 18: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2

การพฒนาโครงงานคอมพวเตอร โครงงานคอมพวเตอร เป นการนำาเอาความร ในด านการเข ยนโปรแกรม มา

ใชร วมก บอ ปกรณคอมพวเตอร รวมถง อปกรณอ นท เก ยวข อง เพ อผล ตผลงานสำาหร บแกป ญหา หรอน ำาผลงานมา

ประย กต ในงานจร งน กเร ยนจะต องใชความร และประสบการณ เพ อวางแผนการพฒนา โครงงาน โดยอาจขอคำาปร กษา

จากอาจารย ผ สอน หรอผ ทรงค ณวฒ อ น เป าหมายสงส ดของการจ ดท ำาโครงงานคอ การทโครงงานไดถ กน ำาไปใชงาน

จร งและก อให เก ดประโยชนในชว ตจร งของ ผน ำาไปใช

ในการเล อกหวข อโครงงานนนผ พ ฒนาอาจเร มจากการใชความคด สร างสรรค ร วมก บประสบการณในการคดค นถ งส งท เป ป ญหา

และความเป นไปไดในการนำาเอาระบบคอมพวเตอร มาช วยงาน โดยทวไปแลว โครงงานคอมพวเตอร สามารถแบงออกไดเป น 5

ประเภท คอ1.โครงงานพฒนาสอเพ อการศ กษาเป นการสร างบทเร ยนทอาจม แบบฝกห ดหร อค ำาถามเพอทดสอบดวย2.โครงงานพฒนาเคร องม อเป นการพฒนาโปรแกรมชวยงานในดานตางๆ3. โครงงานจำาลองทฤษฎเป นการพฒนาโปรแกรมเพอจ ำาลองการทดลองในดานตางๆทไม สามารถทดลองดวยสถานการณจร งได 4.โครงงานประย กต เป นการนำาเอาคอมพวเตอร มาประย กต ร วมก บอ ปกรณอ นในการประด ษฐ ส งของหร อปร บปร งเคร องม อท ม อย เด มให ม ประส ทธ ภาพสงข น5.โครงงานพฒนาเกม

เป นการสร างเกมเพอการศ กษาหร อความบนเท ง

Page 19: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
Page 20: การพัฒนาโปรแกรม วิชญา เลขที่ 26.2