บทที่ 3
ขั้นตอนการเขยี นโปรแกรม
ขัน้ ตอนการเขียนโปรแกรมออกไดเ ปน 7 ข้ันตอนดังนี้
ขน้ั ตอนการวเิ คราะหป ญ หา (Analysis the Problem)
ขน้ั ตอนการออกแบบโปรแกรม (Design a Program)
ขนั้ ตอนการเขยี นโปรแกรมโดยใชภาษาใดภาษาหน่ึง (Coding)
ขน้ั ตอนการตรวจสอบขอผิดพลาดของโปรแกรม (Testing and Debugging)
ขั้นตอนการทดสอบความถกู ตอ งของโปรแกรม (Testing and validating)
ขั้นตอนการทําเอกสารประกอบโปรแกรม (Documentation)
ข้นั ตอนการบาํ รงุ รกั ษาโปรแกรม (Program Maintenance)
1. การวิเคราะหปญ หา (Analysis the Problem)
3
สงิ่ ท่ตี อ งพจิ ารณา
Input ? (พจิ ารณาจาก Output)
Output? (พจิ ารณาอนั ดับแรก)
Process (ยงั ไมตอ งสนใจตอนน)้ี
Input Process Output
Input 3 1
2
1. การวิเคราะหปญ หา (Analysis the Problem)
• การวิเคราะหป ญ หา Process
เขยี นขั้นตอนการแกปญหา
วิเคราะหผ ลลพั ธ วเิ คราะห Input
1. การวิเคราะหป ญหา (Analysis the Problem)
ตวั อยา ง 1 ตองการหาคาคะแนนเฉลย่ี ของนักเรียนในชน้ั
กาํ หนดวัตถุประสงค : การคํานวณหาคา คะแนนเฉลยี่
ขอมูลเขา :
จํานวนนักเรยี นทั้งหมด
คะแนนของนกั เรียนแตล ะคน
วิธกี ารประมวลผล : ใชส ูตรในการคาํ นวณ
คะแนนเฉลีย่ = ผลรวมของคะแนนท้ังหมด
จํานวนนักเรยี นทง้ั หมด
2. การออกแบบโปรแกรม (Design a Program)
คอมพิวเตอรจ ะมีการทาํ งานตามคําสั่งในโปรแกรม เปน ขนั้ ๆ ไปอยางมีลําดับ
ดังนน้ั จึงตองเขียนคําสงั่ ใหละเอียดชัดเจน และตคี วามไดอ ยา งเดยี วเทา น้ัน ซ่งึ จะ
เรียกลําดับขน้ั ตอนในการสงั่ งานนว้ี า อัลกอรทิ ึม (Algorithm)
ตวั อยา งของอลั กอรทิ ึมเชน
อัลกอรทิ ึมการสระผม
อัลกอรทิ ึมคํานวณ 8 + 10 / 5 - 6 * 3
อลั กอริทึมคํานวณการหาพืน้ ที่สเ่ี หลีย่ มคางหมู
อลั กอริทึมการเขยี นและสงจดหมาย
2. การออกแบบโปรแกรม (Design a Program)
เครือ่ งมือทช่ี ว ยอธบิ ายการทํางาน เพอื่ ชว ยในการเขียนโปรแกรมดงั น้ี
ผังงาน (Flowchart) : ซ่ึงจะแสดงถงึ ขน้ั ตอนการแกปญหาท่ลี ะขั้นตอนในลกั ษณะ ของ
รูปภาพทาํ ใหสามารถอา น และทาํ ความเขาใจไดง าย
รหัสจําลอง (Pseudo-code) : จะมีรปู แบบเปนภาษาพูดงา ย ๆ จะเปน ภาษาองั กฤษ
หรอื ภาษาไทยก็ได โดยจะแสดงขน้ั ตอนการแกปญหาเปน ขัน้ ตอนหลกั ๆ แตไ มต อ ง
เจาะเขาไปในรายละเอียดของการทาํ งานในแตล ะสว น
2. การออกแบบโปรแกรม (Design a Program)
แผนภมู โิ ครงสราง (Structure Charts) : จะมลี ักษณะการแบง งานใหญออกเปน โมดูล
ยอ ย ๆ ซง่ึ เรยี กวา การออกแบบจากบนลงลา ง (Top-Down Design) และแตละโมดูล
ยอยกย็ ังสามารถแตกออกไดอ กี จนถงึ ระดับทล่ี า งสดุ ที่สามารถเขียนโปรแกรมไดอยา ง
งาย
ฮโิ ปชารต (HIPO Chart : Hierarchy Input/Output Chart) : จะมีการบอกวา ขอ มลู
เขาคืออะไร มโี ปรเซสทําอะไรบาง และมผี ลลพั ธอะไรบาง แตจ ะเหน็ ภาพไดไ มชดั เจน
เทากบั แผนภมู ิโครงสราง
โครงสรางโปรแกรม
การใชโ ครงสรางโปรแกรม ชว ยใหการเขียนโปรแกรมมีประสิทธภิ าพและลด
ขอ ผดิ พลาด ซ่งึ การเขยี นแบบโครงสรางสามารถเขยี นได 2 แบบคือ
การออกแบบจากบนลงลา ง (Top-Down Design)
การออกแบบสวนจําเพาะ หรือ โมดูล (Modular design)
ทฤษฏีโครงสรา ง (Structure Theorem)
เปน ทฤษฏที ร่ี ะบวุ าโปรแกรมคอมพิวเตอรทุกโปรแกรมสามารถเขียนโดยใชโครงสรา ง
ควบคุมพ้ืนฐาน 3 แบบ อันไดแ ก แบบเรียงลําดับ (Sequence) แบบทางเลอื ก
(Selection) และแบบวนซํ้า (Repetition)
3. การเขียนโปรแกรมโดยใชภ าษาใดภาษาหน่ึง (Coding)
หลงั จากที่ผานขน้ั ตอนทสี่ องคือการออกแบบโปรแกรมแลว ขัน้ ตอ ไปคอื การเขยี นโปรแกรม
ซ่งึ เปน นาํ อลั กอริทึมท่ีสรา งจากขึน้ ตอนการออกแบบ มาแปลใหเปนโปรแกรมคอมพวิ เตอร
นัน่ เอง ซึ่งในการเขยี นโปรแกรมคอมพวิ เตอรนน้ั สามารถเลือกใชไดห ลายภาษา ตัวอยาง
ของภาษาคอมพิวเตอรไดแก ภาษาเบสกิ (BASIC) ภาษาโคบอล(COBOL) ภาษาปาสคาล
(PASCAL) ภาษาซ(ี C ) ฯลฯ แตล ะภาษาก็จะมีรปู แบบ โครงสรางหรือไวยากรณของภาษา
ที่แตกตา งกนั ออกไป
4. การตรวจสอบขอ ผิดพลาดของโปรแกรม
(Testing and Debugging the Program)
ขอผิดพลาดท่เี กดิ ขึ้นเราสามารถแบงได 3 ชนดิ ดังนี้
Syntax Error
Run-time Error
Logical Error
4. การตรวจสอบขอผดิ พลาดของโปรแกรม
(Testing and Debugging the Program)
• Syntax Error
▫ เปนขอผิดพลาดจากการใชไ วยากรณข องภาษาทีผ่ ิดหรือ อาจเกิดจากการสะกด
คาํ ผดิ เปน ตน ขอ ผดิ พลาดที่งา ยท่ีสดุ ตอการหาและการแกไ ข
• Run-time Error
เปนขอผิดพลาดท่ีทาํ ใหเ กดิ ความผดิ ปกตทิ างดา นการทํางานของโปรแกรมใน
ระหวางการปฏบิ ัตงิ าน(Execution) โดยทั่วไปมกั เกดิ จากความรูเทา ไมถงึ การณ
เชน การลงโปรแกรมเพื่อใชในการทํางานไมค รบถวน เปน ตน
4. การตรวจสอบขอผิดพลาดของโปรแกรม
(Testing and Debugging the Program)
Logical Error
เกดิ จากการตีความหมายของปญหาผิดไป เปนขอผดิ พลาดท่ีหาและแกไ ขยากท่สี ดุ
ตอ งทาํ การไลโ ปรแกรมที่ละคาํ สงั่ เพอ่ื หาขอ ผิดพลาดนน้ั
4. การตรวจสอบขอ ผิดพลาดของโปรแกรม
(Testing and Debugging the Program)
ข้ันตอนการตรวจสอบความผดิ พลาดของโปรแกรมมีดงั น้ี
ตรวจสอบดวยตนเอง (Self Checking)
เปน ขนั้ ตอนของการเขยี นและไลโปรแกรมทลี ะบรรทัด
ตรวจสอบดวยการแปลโปรแกรม (Translating)
เปน ขั้นตอนทใ่ี หโ ปรแกรมแปลเปนภาษาเคร่อื ง โดยอาศยั ตวั แปลภาษาทเ่ี รยี กวา
คอมไพเลอร ซึง่ ถา พบขอผิดพลาดจะแจงขอความไดแอคนอสติก (Diagnostic
Message) เพอื่ ใหท าํ การแกไขใหถกู ตอ ง แลวจึงคอ ยสั่งใหแปลใหม จนกวาจะ
ถกู ตองแลวสามารถใชงานโปรแกรมได
5. การทดสอบความถูกตอ งของโปรแกรม
(Testing and Validating)
ขน้ั ตอนการทดสอบความถกู ตองของโปรแกรม สามารถทาํ ไดด งั นี้
กรณีทีข่ อมลู ถกู ตอง (Valid case)
การใชขอบเขตและความถกู ตอ งของขอ มลู (Range check and Completeness
check)
การใชความสมเหตสุ มผล (Consistency Check)
ขอ มลู ทเ่ี ปนตัวเลขและตัวอกั ษร (Correct No. and Type character check)
ขอ มลู เปนไปตามขอ กําหนด (Existence Check)
5. การทดสอบความถกู ตองของโปรแกรม
(Testing and Validating)
ขน้ั ตอนการทดสอบความถกู ตองของโปรแกรม สามารถทําไดด งั น้ี
กรณีท่ีขอ มูลถกู ตอง (Valid Case) ทดสอบโดยใสขอ มลู ทถ่ี ูกตอ งลงไปในโปรแกรม
เพือ่ ทดสอบผลลพั ธวาตรงกบั ท่ตี อ งการหรือไม
การใชขอบเขตและความถูกตองของขอ มลู (Range check and
Completeness check) เปน การเชค็ ขอบเขตขอมูล
การใชค วามสมเหตสุ มผล (Consistency Check) โดยดจู ากผลลัพธที่ไดวา ควร
จะไดตามขอ มลู ท่ีกรอกเขา หรอื ไม
5. การทดสอบความถูกตองของโปรแกรม
(Testing and Validating)
ขอ มูลทเี่ ปน ตัวเลขและตัวอักษร (Correct No. and Type character
check) ตรวจสอบวาถา เปนฟลดท ี่เปนตวั เลขอยางเดยี ว เชน จํานวนเงิน กค็ วรจะ
ปอ นขอมลู ไดเ ฉพาะตวั เลขเทา นนั้
ขอมลู เปน ไปตามขอ กาํ หนด (Existence Check) ขอมลู ที่ปอนตอ งเปนไป
ตามทก่ี าํ หนดไวแนน อนแลว เทา นั้น
5. การทดสอบความถูกตองของโปรแกรม
(Testing and Validating)
ในการทดสอบโปรแกรมนยี้ งั สามารถแบง ไดอีก 2 แบบ
Program Testing
เปน ทดสอบโปรแกรมแตละโปรแกรมตา งหาก
System Testing
เปนการทดสอบโปรแกรม เมอื่ มกี ารรวมโปรแกรมหลาย ๆ โปรแกรมเขาดว ยกัน ซง่ึ
สวนมากจะพบของผดิ พลาดในข้ันตอนนมี้ ากทส่ี ุด เนอื่ งจากโปรแกรมเมอรแตละคน
อาจมีความเขาใจแตกตางกนั
6. การทําเอกสารประกอบโปรแกรม
(Documentation)
เอกสารประกอบโปรแกรมจะมอี ยู 2 แบบ
เอกสารประกอบโปรแกรมสําหรับผูใช (User Documentation)
โปรแกรมนที้ ําอะไร ใชงานในดานไหน
ขอ มลู เขามลี กั ษณะอยา งไร
ขอมลู ออกหรือผลลพั ธม ลี ักษณะอยางไร
การเรยี กใชโปรแกรมทําอยางไร
คาํ สัง่ หรอื ขอ มูล ท่จี าํ เปนใหโปรแกรมเริ่มทาํ งาน มีอะไรบา ง
อธบิ ายเกย่ี วกับประสทิ ธภิ าพ และความสามารถของโปรแกรม
6. การทาํ เอกสารประกอบโปรแกรม
(Documentation)
เอกสารประกอบโปรแกรมสาํ หรบั ผูเ ขียนโปรแกรม (Technical Documentation)
จะแบง ออกไดเปน 2 สวน
สว นทเ่ี ปน คําอธิบายหรอื หมายเหตใุ นโปรแกรม
ซง่ึ สวนใหญม ักจะเขียนแทรกอยูในโปรแกรม อธบิ ายการทาํ งานของโปรแกรมเปนสวน
ๆ
สว นอธิบายดาน Technical
ซงึ่ สวนน้มี กั จะทาํ เปน เอกสารแยกตางหากจากโปรแกรม ซึง่ อธิบายในรายละเอยี ดที่
มากขึ้น เชนช่อื โปรแกรมยอ ยตาง ๆ มอี ะไรบา ง แตล ะโปรแกรมยอยทําหนาทอี่ ะไร
และคําอธบิ ายยอ ๆ เกี่ยวกับวตั ถุประสงคของโปรแกรมเปนตน
7. การบาํ รุงรักษาโปรแกรม (Program
Maintenance)
เม่อื โปรแกรมผานการตรวจสอบตามขน้ั ตอนเรียบรอ ยแลว และถูกทาํ มาใหผ ูใช(user) ไดใช
งาน ในชว งแรกผใู ชอ าจจะยังไมค ุนเคย ก็อาจทาํ ใหเกดิ ปญหาขน้ึ มาบา ง ดังนน้ั จึงตองมผี ู
คอยควบคุมดแู ลและคอยตรวจสอบการทาํ งาน ซ่งึ เมื่อมีการใชง านไปนาน ๆ ก็อาจจะตอ ง
มกี ารปรับปรงุ แกไ ขโปรแกรมใหเหมาะกับเหตุการณ และความตองการของผใู ชท่ี
เปล่ยี นแปลงไป