Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore หลักการเขียนโปรแกรม

หลักการเขียนโปรแกรม

Published by chulalak thachaila, 2019-09-07 21:29:00

Description: ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
หลักการเขียนโปรแกรม
วงจรการพัฒนาโปรแกรม
คุณลักษณะของโปรแกรมที่ดี
เครื่องมือในการออกแบบโปรแกรม

Search

Read the Text Version

หนว่ ยที่ 1 หลักการเขียนโปรแกรม จุฬาลกั ษณ์ ถาไชยลา ภาควิชาคอมพวิ เตอรธ์ ุรกจิ วิทยาลยั อาชีวศึกษามหาสารคาม

หน่วยที่1 หลกั การเขียนโปรแกรม 1 หน่วยท่ี 1 หลกั การเขยี นโปรแกรม สาระการเรียนรู้ 1. ความรูเ้ บ้ืองตน้ เก่ียวกบั การเขียนโปรแกรม 2. หลกั การเขียนโปรแกรม 3. วงจรการพฒั นาโปรแกรม 4. คุณลกั ษณะของโปรแกรมท่ดี ี 5. เคร่ืองมือในการออกแบบโปรแกรม จุดประสงค์การเรียนรู้ 1. บอกข้นั ตอนการวางแผนและพฒั นาโปรแกรมได้ 2. บอกคุณลกั ษณะของโปรแกรมท่ีดีได้ 3. อธิบายเครื่องมือตา่ ง ๆ ในการออกแบบโปรแกรมได้ 4. บอกวธิ ีการลงรหสั ของโปรแกรมได้ 5. อธิบายการทดสอบและแกไ้ ขโปรแกรมได้ 6. วเิ คราะห์ข้นั ตอนเพอ่ื แกป้ ัญหาของคอมพวิ เตอร์ได้ 7. พฒั นาลาดบั ข้นั ตอนวธิ ีการทางานได้ 8. เขียนข้นั ตอนการหาแนวทางการแกป้ ัญหาดว้ ยคอมพวิ เตอร์ได้ 9. เลือกเคร่ืองมือในการออกแบบโปรแกรมใหเ้ หมาะสม 10. มีความสนใจใฝ่เรียนรู้ ต้งั ใจเรียน 11. มีวนิ ยั เขา้ เรียนทนั เวลา ปฏบิ ตั ติ ามกฎระเบียบของวทิ ยาลยั ฯ 12. มีความรับผดิ ชอบงานที่ไดร้ บั มอบหมาย 13. มีความคิดริเร่ิมสรา้ งสรรค์ มีความเชื่อมน่ั กลา้ ลองผดิ ลองถูก 14. มีความซ่ือสตั ยต์ อ่ ตนเองและผอู้ ่ืน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

2 หน่วยที่1 หลกั การเขียนโปรแกรม ความรู้เบือ้ งต้นเกย่ี วกบั การออกแบบโปรแกรม โปรแกรมคอมพวิ เตอร์ หมายถึง ชุดกลุ่มคาสงั่ งานท่ีจดั ทาข้นึ เพอื่ ใหส้ ามารถใชใ้ น ระบบการทางานลกั ษณะประยกุ ตใ์ ชป้ ระโยชน์จากคอมพวิ เตอร์ มีจุดประสงคเ์ พอ่ื แบ่งเบาภาระงาน ของมนุษย์ ทาใหร้ ะบบงานมีความสะดวกรวดเร็วในการทางาน โดยที่การใชง้ านคาสง่ั ตอ้ งใชต้ าม กฎเกณฑก์ ารใชง้ านของแตล่ ะภาษาคอมพวิ เตอร์ที่เลือกใช้ การเขียนโปรแกรมคอมพวิ เตอร์โดยใชภ้ าษาระดบั สูง เช่น ภาษาปาสคาล หรือ ภาษาซี บอ่ ยคร้งั ท่ผี ทู้ ี่ทาการเขียนโปรแกรมสาหรบั แกไ้ ขปัญหาน้นั ในทนั ที ไม่ไดม้ ีการออกแบบ และวางแผนข้นั ตอนการเขียนโปรแกรม โดยหวงั วา่ เมื่อทาการเขียนโปรแกรมเสร็จแลว้ โปรแกรม ท่เี ขียนข้นึ มาน้นั จะสามารถทางานไดอ้ ยา่ งถูกตอ้ ง วธิ ีการดงั กล่าวเป็ นวธิ ีการเขยี นโปรแกรมที่ไม่ ถูกตอ้ ง ถา้ ตอ้ งการจะทาการแกไ้ ขหรือพฒั นาการทางานเพมิ่ เติมการทางานเขา้ ไปในภายหลงั จะทา ไดย้ ากและไม่สะดวก ดงั น้นั ก่อนการลงมอื ทาการเขยี นโปรแกรม จึงตอ้ งมีการวางแผนและศกึ ษาความ เป็นไปไดข้ องการนาโปรแกรมมาใชง้ าน รวมถึงข้นั ตอนวธิ ีการทางานของการแกป้ ัญหาทตี่ อ้ งการ แกไ้ ขก่อนที่จะทาการเขียนโปรแกรม เหมือนกบั การก่อสร้างบา้ น จะตอ้ งมีการเขียนแบบก่อนทา การสร้างจริงก่อน คานึงถึงส่ิงตา่ ง ๆ ที่จะนามาใช้ ขนาดของเสาทจี่ ะใชว้ า่ สามารถรองรบั น้าหนกั ได้ หรือไม่ ถา้ ไม่คานึงถึงจุดน้ี หลงั จากทสี่ ร้างเสร็จแลว้ อาจไม่ปลอดภยั แก่ผทู้ เ่ี ขา้ มาพกั อาศยั การเขยี นโปรแกรมคอมพวิ เตอร์กเ็ ช่นกนั จะตอ้ งมีการออกแบบ เขียนโครงร่าง เกี่ยวกบั การทางานของโปรแกรมก่อนลงมือเขียนจริง ถา้ ไม่ทาเช่นน้ีโปรแกรมที่ทาการเขยี นข้ึนมา อาจจะใชง้ านไม่ไดจ้ ริง ทาให้เสียท้งั เวลาในการเขยี นโปรแกรม เสียท้งั คา่ แรงงานทตี่ อ้ งจา้ งนกั เขยี น โปรแกรมมาทาการเขยี นโปรแกรม เวลาและจานวนของนกั เขียนโปรแกรมทใี่ ชส้ าหรับทาการเขียน โปรแกรมคอมพวิ เตอร์ข้ึนอยกู่ บั ขนาดของโปรแกรม สามารถแบ่งขนาดของโปรแกรมคอมพวิ เตอร์ ไดด้ งั น้ี ขนาดของโปรแกรม จานวนของนักเขยี น เวลาทใี่ ช้สาหรับการ จานวนบรรทัดของ โปรแกรม เขยี นโปรแกรม โปรแกรม เลก็ มาก 1 คน 1 – 4 สปั ดาห์ 500 เลก็ 1 คน 1 – 6 เดือน 1,000 – 5,000 ปานกลาง 2 – 5 คน 1 – 2 ปี 5,000 – 50,000 ใหญ่ 5 – 20 คน 2 – 3 ปี 50,000 – 100,000 ใหญม่ าก 100 - 1000 คน 4 – 5 ปี 1,000,000 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่1 หลกั การเขียนโปรแกรม 3 หลกั การออกแบบโปรแกรม การออกแบบโปรแกรมน้นั มีดว้ ยกนั หลายวธิ ี เช่น การสงั เคราะห์ การวเิ คราะห์ และลอง ผดิ ลองถูก เป็นตน้ การออกแบบโปรแกรมโดยใชว้ ิธีการสงั เคราะห์น้นั จะเป็ นวธิ ีท่ตี รงไปตรงมา โดยการสงั เคราะห์โปรแกรมออกมาตามขอ้ กาหนดท่ีตอ้ งการ ถา้ หากมีการทางานท่ีผดิ พลาด จะตอ้ ง ทาการพจิ ารณาปัญหาท่เี กิดข้นึ แลว้ ทาการสงั เคราะห์โปรแกรมใหม่ การออกแบบอีกวธิ ีหน่ึงท่ีนิยม คือ การวเิ คราะห์ โดยทาควบคูไ่ ปกบั การลองผดิ ลองถูก โดยจะเริ่มจากการพจิ ารณาขอ้ กาหนดท่ตี อ้ งการก่อน จากน้นั ทาการออกแบบในข้นั ตน้ ท่ีคดิ วา่ สามารถจะทาการแกป้ ัญหาน้นั ได้ แลว้ ทาการทดสอบวา่ สามารถแกป้ ัญหาไดห้ รือไม่ ถา้ สามารถ แกป้ ัญหาไดต้ รงกบั ขอ้ กาหนดกใ็ ชไ้ ด้ ถา้ ไม่ตรงกบั ขอ้ กาหนดก็ทาการวเิ คราะห์วา่ ผดิ พลาดที่ ข้นั ตอนใด ทท่ี าใหไ้ ม่ตรงกบั ขอ้ กาหนด จากน้นั ก็ทาการแกไ้ ขในข้นั ตอนน้นั แลว้ ทาการทดสอบ และวเิ คราะห์ เช่นน้ีไปเรื่อย ๆ จนกวา่ จะถูกตอ้ งตรงตามขอ้ กาหนดจนครบถว้ น วธิ ีการท่ีจะนาเคร่ืองคอมพวิ เตอร์มาใชใ้ นการแกป้ ัญหาตา่ ง ๆ น้นั จะตอ้ งทราบถึงวธิ ีการ ในการแกป้ ัญหาน้นั เสียก่อน วา่ มีวธิ ีการในการแกป้ ัญหาน้นั อยา่ งไร จากน้นั เรียบเรียงข้นั ตอนการ ทางาน เพอื่ ใชใ้ นการส่งงานใหเ้ ครื่องคอมพวิ เตอร์ทางานตามลาดบั ข้นั ตอนการทางาน ในการวางแผนเพอ่ื เขียนโปรแกรมน้นั สิ่งที่สาคญั ก็คือการทาใหเ้ ครื่องคอมพวิ เตอร์ทางาน ไดถ้ ูกตอ้ ง ตรงตามความตอ้ งการของผใู้ ชม้ ากท่ีสุด ไม่ซบั ซอ้ นมากนกั ใชง้ านงา่ ย หากเป็ น โปรแกรมที่ใหญ่ มีการทางานที่ซบั ซอ้ นมากกอ็ าจเกิดปัญหาหรือขอ้ ผดิ พลาดไดง้ ่าย ดงั น้นั เวลา เขยี นโปรแกรมจึงตอ้ งมีการเตรียมงานท่ดี ี เพอ่ื ไม่ใหเ้ กิดปัญหาขณะเขยี นโปรแกรม ท้งั มีการเตรียม งานท่ดี ี บ่อยคร้ังการนาคอมพวิ เตอร์มาใชส้ าหรับการแกป้ ัญหา นามาใชไ้ ดไ้ ม่เหมาะสมกบั งานที่ ตอ้ งการใหค้ อมพวิ เตอร์ช่วย ไม่วา่ จะเป็นระดบั ความสามารถของเครื่องคอมพวิ เตอร์ ราคาของ โปรแกรมทใี่ ชส้ าหรบั การแกป้ ัญหา การบารุงรักษาเครื่อง รวมไปถึงค่าใชจ้ า่ ยสาหรับจา้ งวเิ คราะห์ ระบบและการเขยี นโปรแกรม ลาดบั แรกสาหรบั การนาโปรแกรมคอมพวิ เตอร์ เพอ่ื นามาใชส้ าหรบั การแกป้ ัญหา คอื ตอ้ งต้งั คาถามกบั ตวั เองถึงความคุม้ คา่ สาหรบั การซ้าเคร่ืองคอมพวิ เตอร์ ซ้ือหรือจา้ งจดั ทาโปรแกรม คอมพวิ เตอร์มาใชส้ าหรับช่วยในการแกป้ ัญหา ลกั ษณะของขอ้ มลู ที่ใชแ้ ละจานวนของขอ้ มูลท่จี ะ นามาใชส้ าหรบั การแกป้ ัญหา วา่ คุม้ คา่ กบั การนาเคร่ืองคอมพวิ เตอร์มาใชส้ าหรบั แกป้ ัญหาหรือไม่ งานงา่ ย ๆ บางงานก็ไม่จาเป็นท่ีตอ้ งใชเ้ ครื่องคอมพวิ เตอร์สาหรับการแกป้ ัญหา เพราะจะเป็ นการไม่ คุม้ คา่ สาหรบั การนาคอมพวิ เตอร์มาใชง้ าน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

4 หน่วยที่1 หลกั การเขียนโปรแกรม วงจรการพฒั นาโปรแกรม ในการเขียนโปรแกรมหรือพฒั นาโปรแกรม ผเู้ ขียนโปรแกรมตอ้ งเตรียมงาน เก่ียวกบั การเขียนโปรแกรมอยา่ งเป็นข้นั ตอน อาจแบง่ ข้นั ตอนสาหรับการออกแบบและพฒั นาการ เขียนโปรแกรมดว้ ยคอมพวิ เตอร์ออกเป็น 6 ข้นั ตอนดงั น้ี 1. การวเิ คราะห์ความต้องการ(Requirement Analysis & Feasibility Study) เป็ นข้นั ตอนวเิ คราะห์ปัญหาจากระบบงาน สาหรับการวเิ คราะหค์ วามตอ้ งการ การ ทาความเขา้ ใจกบั ปัญหา และคน้ หาส่ิงทตี่ อ้ งการ นิยมใชว้ ธิ ีวเิ คราะหจ์ ากผลลพั ธ์ หรือลกั ษณะ รูปแบบรายงานของระบบงานน้นั ๆ เพอ่ื วเิ คราะห์ยอ้ นกลบั ไปถึงที่มาของขอ้ มูล สมการคานวณ จนถึงการป้ อนขอ้ มูลทม่ี ีความเก่ียวขอ้ งในการดาเนินการประมวลผล เพอ่ื ใหไ้ ดผ้ ลลพั ธเ์ ขา้ ระบบ การกาหนดลกั ษณะของการทางานของโปรแกรม ระหวา่ งผทู้ ี่ทาหนา้ ทีใ่ นการออกแบบโปรแกรม และผทู้ ีต่ อ้ งการใชง้ านใหม้ ีความเขา้ ใจตรงกนั โดยทาความเขา้ ใจเกี่ยวกบั ลกั ษณะการทางานของ โปรแกรม ความสามารถของโปรแกรม ผทู้ ่ที าการออกแบบโปรแกรมตอ้ งเก็บความตอ้ งการท้งั หมด ของผใู้ ช้ ทีต่ อ้ งการไดร้ บั จากโปรแกรมคอมพวิ เตอร์ ยงิ่ เก็บรายละเอียดความตอ้ งการของผใู้ ชง้ าน ไดม้ ากเท่าใด โปรแกรมคอมพวิ เตอร์ทีไ่ ดร้ บั การออกแบบจะสามารถแกป้ ัญหาน้นั ไดด้ ียงิ่ ข้นึ การ เก็บรายละเอียดของความตอ้ งการไดไ้ ม่ครบถว้ นจะทาใหเ้ สียเวลาในการออกแบบโปรแกรม เพราะ ตอ้ งทาการแกไ้ ขโปรแกรมหลงั จากที่ทาการออกแบบไปแลว้ รวมไปถึงอาจตอ้ งทาการเขียน โปรแกรมเพม่ิ ข้นึ ในส่วนที่ตอ้ งการให้โปรแกรมทางานเพมิ่ เติม ข้นั ตอนการวเิ คราะหค์ วามตอ้ งการ เป็นการศึกษาวเิ คราะห์โดยละเอียดวา่ ตอ้ งการ ผลลพั ธอ์ ะไร ตอ้ งการใชข้ อ้ มูลอะไรเพอื่ ใหไ้ ดผ้ ลลพั ธต์ ามตอ้ งการ และมีข้นั ตอนการประมวลผล อยา่ งไรบา้ ง เรียกข้นั ตอนน้ีวา่ การวเิ คราะหป์ ัญหาหรือการวเิ คราะหง์ าน การวเิ คราะหค์ วาม ตอ้ งการเป็ นข้นั ตอนซ่ึงถอื เป็นข้นั ตอนท่ีสาคญั กอ่ นถึงข้นั วางแผนแกไ้ ขปัญหาและดาเนินการเขียน โปรแกรม วธิ ีการวเิ คราะห์งานแบ่งเป็ น 5 หวั ขอ้ ไดแ้ ก่ 1. สิ่งทีต่ อ้ งการ บอกใหท้ ราบวา่ งานท่ีตอ้ งการใหท้ ามีอะไรบา้ ง 2. รูปแบบผลลพั ธ์ การศึกษารูปแบบหรือลกั ษณะการแสดงขอ้ มูล 3. ขอ้ มูลนาเขา้ ขอ้ มูลทตี่ อ้ งใชใ้ นการประมวลผลมีอะไรบา้ ง 4. ตวั แปรทใี่ ช้ ตวั แปรอะไรแทนขอ้ มูลเขา้ หรือแทนคา่ ทอี่ ยรู่ ะหวา่ งประมวลผล และตวั แปรทีใ่ ชแ้ สดงผลลพั ธ์ 5. วธิ ีการประมวลผล ข้นั ตอนของคาสงั่ หรือวธิ ีการท่ีใชใ้ นโปรแกรม ซ่ึงข้นั ตอนตา่ ง ๆ จะตอ้ งเรียงลาดบั ก่อนหลงั สลบั ลาดบั ไม่ได้ เพราะจะทาใหไ้ ม่ สามารถประมวลผลหรือทาใหไ้ ดผ้ ลลพั ธไ์ ม่ตรงตามท่ีตอ้ งการ จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี1 หลักการเขียนโปรแกรม 5 ตวั อย่างการวเิ คราะห์ความต้องการ ตวั อยา่ งที่ 1 จงคานวณค่าลงทะเบียนเรียนของนกั ศกึ ษาระดบั ปวช. คิดคา่ ลงทะเบียนหน่วยกิตละ 80 บาท 1. ส่ิงท่ีตอ้ งการ : คา่ ลงทะเบียน 2. รูปแบบผลลพั ธ์ : ชื่อนกั ศึกษา , จานวนหน่วยกิต , ค่าลงทะเบยี น 3. ขอ้ มูลนาเขา้ : ช่ือนกั ศกึ ษา จานวนหน่วยกิต 4. ตวั แปรทใี่ ช้ : NAME = ชื่อนกั ศกึ ษา CRE = จานวนหน่วยกิต 5. วิธีการประมวลผล : MONEY = ค่าลงทะเบยี น 1. เร่ิมตน้ 2. รบั ค่า NAME , CRE 3. คานวณค่าลงทะเบียน MONEY = CRE * 80 4. พมิ พ์ NAME , CRE , MONEY 5. จบการทางาน ตวั อยา่ งที่ 2 จงคานวณคะแนนเฉล่ียจากการสอบ 3 วชิ าของนกั ศกึ ษา ประกอบดว้ ยวชิ าภาษาไทย คณิตศาสตร์และภาษาองั กฤษ 1. ส่ิงทต่ี อ้ งการ : คะแนนเฉลี่ย 3 วชิ า 2. รูปแบบผลลพั ธ์ : ช่ือนกั ศึกษา , คะแนนรวม , คะแนนเฉล่ีย 3. ขอ้ มูลนาเขา้ : ชื่อนกั ศึกษา คะแนนภาษาไทย คณิตศาสตร์ ภาษาองั กฤษ 4. ตวั แปรท่ีใช้ : NAME = ชื่อนกั ศึกษา THAI = คะแนนภาษาไทย MATH = คะแนนคณิตศาสตร์ ENG = คะแนนภาษาองั กฤษ SUM = คะแนนรวม AVER = คะแนนเฉล่ีย จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

6 หน่วยที่1 หลกั การเขียนโปรแกรม 5. วิธีการประมวลผล : 1. เริ่มตน้ 2. รบั คา่ NAME , THAI , MATH ,ENG 3. คานวณคะแนนรวม SUM = THAI + MATH + ENG 4. คานวณคะแนนเฉลี่ย AVER = SUM / 3 5. พมิ พ์ NAME , SUM , AVER 6. จบการทางาน ตวั อยา่ งที่ 3 จงคานวณรายไดส้ ุทธิของพนกั งาน หาไดจ้ ากเงนิ เดือนและเงินล่วงเวลาจากอตั รา ปกตชิ ว่ั โมงละ 80 บาท ถา้ ทาล่วงเวลาเกิน 30 ชว่ั โมงๆ ละ 100 บาท 1. ส่ิงทตี่ อ้ งการ : เงนิ ล่วงเวลา , รายไดส้ ุทธิ 2. รูปแบบผลลพั ธ์ : ชื่อพนกั งาน , เงินเดือน , เงนิ ล่วงเวลา , รายไดส้ ุทธิ 3. ขอ้ มูลนาเขา้ : ช่ือพนกั งาน เงนิ เดือน 4. ตวั แปรทใี่ ช้ : ชว่ั โมงทางานล่วงเวลา NAME = ช่ือพนกั งาน SALARY = เงนิ เดือน HOUR = ชว่ั โมงทางานล่วงเวลา OT = เงนิ ล่วงเวลา NET = รายไดส้ ุทธิ 5. วธิ ีการประมวลผล : 1. เริ่มตน้ 2. รับค่า NAME , SALARY , HOUR 3. ตรวจสอบชว่ั โมงทางานล่วงเวลา เพอื่ คานวณเงนิ ล่วงเวลา ถา้ HOUR <= 30 ให้ OT = HOUR * 80 แลว้ ไปทาขอ้ 4. ถา้ HOUR > 30 ให้ OT = HOUR * 100 แลว้ ไปทาขอ้ 4. 4. คานวณรายไดส้ ุทธิ NET = SALARY + OT 5. พมิ พ์ NAME , SALARY , OT , NET 6. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่1 หลกั การเขียนโปรแกรม 7 2. ข้นั วางแผนแก้ไขปัญหา(Algorithm Design) การวางแผนแกไ้ ขปัญหาเป็ นการจดั ลาดบั การทางานของโปรแกรมตามข้นั ตอนการ ประมวลผล และสอดคลอ้ งกบั วธิ ีการทางานของคอมพวิ เตอร์ ข้นั ตอนน้ีมกั เรียกวา่ การออกแบบ อลั กอริทึม ซ่ึงเป็นแนวทางทีช่ ่วยให้โปรแกรมเมอร์เขียนโปรแกรมไดง้ ่ายข้ึน ข้นั ตอนการวางแผน แกป้ ัญหาทางคอมพวิ เตอร์มีหลายวธิ ี เช่น ใชว้ ิธีการเขยี นอลั กอริทึม(Algorithm) การเขียนคาสงั่ เทียม (Pseudo Code) การเขยี นผงั งาน (Flowchart) เป็ นตน้ ท้งั น้ีแตล่ ะวธิ ีมีจดุ ประสงคเ์ พอื่ แสดงลาดบั ข้นั ตอนกระบวนการแกป้ ัญหางาน เพอื่ ใหไ้ ดผ้ ลลพั ธต์ ามตอ้ งการ ก่อนไปสู่ข้นั ตอนการ เขียนคาสง่ั งาน 1. การเขียนอลั กอริทมึ เป็นการนาเอาลาดบั ข้นั ตอนการทางานทอี่ อกแบบไว้ มา เขียนอยใู่ นรูปภาษาเขียน หรืออาจเขียนอยใู่ นรูปภาษาองั กฤษทีจ่ ดั เป็ นโครงสร้างไว้ เช่นเดียวกบั การเขียนคาสงั่ เทียม แต่ตา่ งกนั ตรงที่การเขยี นอลั กอริทึมจะเนน้ ลาดบั ข้นั ตอนการทางานเป็ นหลกั จึงมีการตดั ทอนรายละเอียดปลีกยอ่ ยออก 2. การเขยี นผงั งาน เป็ นการนาเอาข้นั ตอนการทางานมาเขียนเป็ นแผนภาพหรือ สญั ลกั ษณ์ โดยเปลี่ยนจากคาพดู หรือขอ้ ความในการวเิ คราะหง์ าน มาเป็ นรูปภาพก่อนแลว้ ใช้ คาอธิบายขอ้ ความน้นั ๆ เขยี นเพมิ่ เติมในรูปสญั ลกั ษณ์ทเี่ ป็นมาตรฐานสากล โดยสญั ลกั ษณ์แต่ละ รูปจะสื่อความหมายแทนการกระทาแต่ละอยา่ ง ที่จะตอ้ งศกึ ษาทาความเขา้ ใจ 3. การเขียนคาส่ังเทียม เป็ นเครื่องมือท่นี ิยมใชก้ นั มากในการออกแบบโปรแกรม ช่วยใหโ้ ปรแกรมเมอร์สามารถเขยี นโปรแกรมไดง้ า่ ยข้ึน ภาษาหรือคาทใ่ี ชเ้ ขียนคาสงั่ เทยี ม เป็ นการ ผสมผสานระหวา่ งคาในภาษาองั กฤษทว่ั ไปกบั ภาษาคอมพวิ เตอร์ โครงสร้างของคาสง่ั เทยี มจึงมี ส่วนทีค่ ลา้ ยกบั การเขียนโปรแกรมมาก 3. ข้นั ดาเนินการเขียนโปรแกรม(Program Coding) การเขยี นโปรแกรมทางคอมพวิ เตอร์ ตอ้ งใชค้ าส่ังของภาษาคอมพวิ เตอร์ภาใดภาษา หน่ึง โดยเลือกใชภ้ าษาทเ่ี หมาะสมกบั ลกั ษณะและประเภทของงาน โดยใชห้ ลกั พจิ ารณาถึงความรู้ ความสามารถและถนดั ของผเู้ ขียนโปรแกรมวา่ สามารถใชโ้ ปรแกรมใดไดบ้ า้ ง จากน้นั จงึ พจิ ารณา ประสิทธิภาพการทางานของคาสง่ั ในภาษาเป็นลาดบั ถดั มา แลว้ จึงนามาเป็ นเป็ นชุดคาสง่ั ตามลาดบั ข้นั ตอนทีไ่ ดว้ างแผนแกป้ ัญหาไว้ การเขียนโปรแกรมภาษาคอมพวิ เตอร์ตอ้ งเขยี นใหถ้ ูกตอ้ งตาม หลกั ไวยากรณ์ของภาษาทเี่ ลือก ตวั อยา่ งของโปรแกรมภาษาคอมพวิ เตอร์ เช่น ภาษาปาสคาล , ภาษาซี หรือภาษาเบสิก เป็นตน้ จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

8 หน่วยท่ี1 หลกั การเขียนโปรแกรม ตวั อย่างของโปรแกรมภาสาหรับส่วนของการคานวณหาคะแนนเฉลี่ยและการแสดงผล ภาษาคอมพิวเตอร์ คาสั่งคานวณ คาสั่งแสดงผล ภาษาปาสคาล Average := Sum / Number; Write (Average); ภาษาซี Average = Sum / Number; print (“%f” , Average); ภาษาเบสิก Let A = S / N Print A จากตวั อยา่ งโปรแกรมภาษาคอมพวิ เตอร์สาหรับการทางานต่าง ๆ โดยเขยี นใน ลกั ษณะของโปรแกรมภาษาคอมพวิ เตอร์ทแ่ี ตกต่างกนั ออกไป จะเห็นไดว้ า่ มีวธิ ีการเขียนที่ต่างกนั ออกไป แตล่ กั ษณะการทางานของแตล่ ะโปรแกรมภาษาคอมพวิ เตอร์จะมีการทางานที่เหมือนกนั 4. ข้นั ทดสอบและแก้ไขโปรแกรม(Program Testing & Debugging) การทดสอบการทางานของโปรแกรม นิยมดาเนินการใน 2 ช่วง คือ “ช่วงแรก ทดสอบโดยผพู้ ฒั นาระบบงานเอง” กอ่ นนาไปใชง้ านจริง โดยใชข้ อ้ มูลสมมติบนั ทกึ เขา้ ระบบ ประมวลผลเพอ่ื พจิ ารณาผลลพั ธว์ า่ เป็นไปตามทไ่ี ดว้ เิ คราะห์หรือไม่ หากยงั มีขอ้ ผดิ พลาด ตอ้ ง ดาเนินการแกไ้ ขปรบั ปรุงโปรแกรมใหถ้ ูกตอ้ ง จากน้นั เม่ือทดสอบการทางานจนไดผ้ ลถูกตอ้ งแลว้ จงึ นาไปทดสอบในอีกช่วง คอื “ทดสอบโดยผใู้ ชร้ ะบบจริง” หากยงั มีขอ้ แกไ้ ขปรับปรุงอีก ผพู้ ฒั นาระบบงานตอ้ งดาเนินการใหแ้ ลว้ เสร็จ ใหเ้ ป็นไปตามวตั ถุประสงคข์ องระบบงานและผใู้ ช้ ระบบ การทดสอบการทางานของโปรแกรมดว้ ยชุดขอ้ มูลจริง 1, 10 หรือ 100 ชุดขอ้ มูล แลว้ โปรแกรมคอมพวิ เตอร์สามารถทางานไดอ้ ยา่ งถูกตอ้ ง จะแน่ใจไดอ้ ยา่ งไรวา่ โปรแกรม คอมพวิ เตอร์ท่ีทาการเขียนข้นึ มาน้นั สามารถทางานไดถ้ กู ตอ้ งกบั ทุกขอ้ มูลจริงท่ใี ชง้ าน วธิ ีการ พ้นื ฐานทใ่ี ชส้ าหรับทดสอบการทางานของโปรแกรมคอมพวิ เตอร์ท่ีทาการเขียนข้ึนมา มีดว้ ยกนั 2 วธิ ีคือ ทดสอบดว้ ยขอ้ มูลจานวนมาก (Empirical testing) และการทดสอบอยา่ งมีแบบแผน (Formal Verification) 1. การทดสอบด้วยข้อมลู จานวนมาก เป็นการทดสอบโดยทดลองป้ อนชุดขอ้ มูลที่ เหมือนกบั ขอ้ มูลท่ีใชง้ านจริง จานวนมากเขา้ ไปในโปรแกรมแลว้ ทดลองใหโ้ ปรแกรมทางาน จากน้นั สงั เกตผลลพั ธท์ ไ่ี ดจ้ ากการทางานของโปรแกรม วา่ สามารถทางานไดอ้ ยา่ งถูกตอ้ งหรือไม่ กบั ทกุ ชุดขอ้ มลู จริงที่ทาการป้ อนเขา้ ไป โปรแกรมคอมพวิ เตอร์ตอ้ งทางานไดอ้ ยา่ งถูกตอ้ งกบั ชุด ขอ้ มูลท่ที าการป้ อนเขา้ ไป จานวนของชุดขอ้ มูลทีใ่ ชใ้ นการทดสอบข้ึนอยกู่ บั จานวนขอ้ มูลจริงที่ใช้ งาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี1 หลักการเขียนโปรแกรม 9 2. การทดสอบอย่างมีแบบแผน เป็นการทดสอบโดยใชห้ ลกั เกณฑท์ างคณิตศาสตร์ หรือทางตรรกศาสตร์มาสนบั สนุนความถูกตอ้ งของการทางานของโปรแกรม โดยใชช้ ุดขอ้ มูลทมี่ ี ความซบั ซอ้ น มาทาการทดสอบการทางานของโปรแกรม หรือทาการทดสอบการทางานของ โปรแกรมทุกกรณีทช่ี ุดขอ้ มูลสามารถเป็ นได้ เพอ่ื สนบั สนุนวา่ โปรแกรมคอมพวิ เตอร์ทท่ี าการสรา้ ง ข้ึนมาน้ีสามารถทางานไดอ้ ยา่ งถูกตอ้ ง การตรวจสอบจุดผดิ พลาดของโปรแกรม (Bugs) ที่เขียนข้ึน และดาเนินการแกไ้ ข ขอ้ ผดิ พลาดน้นั เรียกวา่ การ Debugs โปรแกรมท่ีทางานไม่ไดต้ ามวตั ถุประสงค์ เรียกวา่ โปรแกรม มี Error มกั เกิดจาก 2 สาเหตุหลกั คอื 1 .ข้อผิดพลาดทางไวยากรณ์ของภาษา (Syntax Error) คอื ขอ้ ผดิ พลาดทีเ่ กิดจาก การเขยี นโคด้ คาสงั่ (Source Code) ทีไ่ ม่ตรงกบั ไวยากรณ์ (Syntax) ของภาษาโปรแกรมน้นั ๆ ขอ้ ผดิ พลาดน้ีเป็นขอ้ ผดิ พลาดทีง่ า่ ยตอ่ การตรวจหาและแกไ้ ข เน่ืองจากจะพบในระหวา่ งทม่ี ีการ แปลภาษาโปรแกรม ถา้ มีขอ้ ผดิ พลาดประเภทน้ีอยตู่ วั แปลภาคอมพวิ เตอร์จะแจง้ ใหท้ ราบทนั ที และตอ้ งแกไ้ ขจนถูกตอ้ งจงึ จะทางานตอ่ ไปได้ 2. ข้อผิดพลาดที่เกิดจากการตีความหมายของปัญหาผิดไป(Logical Error) เป็น ขอ้ ผดิ พลาดทเี่ กิดจากการออกแบบอลั กอริทึมใหท้ างานผดิ จากวตั ถุประสงคห์ รือความตอ้ งการ การ แกไ้ ขขอ้ ผดิ พลาดประเภทน้ีจะตอ้ งทาโดยการตรวจไล่โปรแกรมทลี ะคาสง่ั เพอ่ื หาขอ้ ผดิ พลาดน้นั ใหพ้ บ การตรวจสอบโปรแกรมเพอื่ หาขอ้ ผดิ พลาด อาจจะทาเป็นข้นั ตอน ดงั น้ี 1. การตรวจสอบก่อนนาโปรแกรมเขา้ เคร่ืองคอมพวิ เตอร์ เรียกข้นั ตอนน้ีวา่ “Desk Checking” วธิ ีการน้ีจะตรวจสอบวา่ โปแรกรมสามารถใหผ้ ลลพั ธต์ ามตอ้ งหารหรือไม่ เป็ นการ ตรวจสอบขอ้ ผดิ พลาดทางตรรกะ โดยกาหนดขอ้ มูลชุดหน่ึงข้ึนมาแลว้ แทนค่าตามข้นั ตอนตา่ ง ๆ ท่ี เขียนโปแรกรมไวต้ ้งั แตต่ น้ จนจบ โดยสมมตวิ า่ เป็ นการปฏบิ ตั งิ านของเคร่ืองคอมพวิ เตอร์ วธิ ีการน้ี จะช่วยลดขอ้ ผดิ พลาดทางตรรกะไดม้ าก 2. การตรวจสอบโดยเครื่องคอมพวิ เตอร์ โดยส่งโปรแกรมเขา้ เครื่องพร้อมขอ้ มูล สมมติทท่ี ราบคาตอบ ข้นั แรกเครื่องคอมพวิ เตอร์จะทาการตรวจ Syntax error หรือขอ้ ผดิ พลาด ทางไวยากรณ์ ถา้ พบจะพมิ พข์ า่ วสารขอ้ ผดิ พลาดน้นั ออกมา ถา้ ไดค้ าตอบตรงตามตอ้ งการ ก็ คอ่ นขา้ งมน่ั ใจวา่ โปรแกรมน่าจะถูกตอ้ ง เม่ือทดสอบโปรแกรมแลว้ สามารานาโปรแกรมพร้อม ขอ้ มูลจริงเขา้ เครื่องคอมพวิ เตอร์ เพอ่ื ทาการประมวลผลต่อไป จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

10 หน่วยที่1 หลกั การเขียนโปรแกรม 5. การทาเอกสารรายงานประกอบโปรแกรม (Documentation) เม่ือทาทกุ อยา่ งเรียบร้อยแลว้ ถา้ จะให้สมบรู ณ์ทสี่ ุด ผเู้ ขยี นโปรแกรมควรจะทาคู่มือ การใชโ้ ปรแกรมหรือทาเอกสารรายงานประกอบการใชง้ าน ซ่ึงเป็ นข้นั ตอนทีน่ าเอาโปรแกรมและ ผลลพั ธข์ องโปรแกรมทไี่ ดม้ าจดั ทาเป็นเอกสารรายงานประกอบโปรแกรม ในคู่มือหรือเอกสาร ประกอบการใชง้ านควรจะบอกวธิ ีการแกป้ ัญหาต่าง ๆ เบ้ืองตน้ ท่ีอาจเกิดข้นึ ระหวา่ งการใชง้ าน โปรแกรมน้นั ข้นั ตอนการทางานของโปรแกรม และแนะนาวธิ ีการใชง้ านทถี่ ูกตอ้ ง เอกสารดงั กลา่ ว จะช่วยใหผ้ ูใ้ ชโ้ ปรแกรมเขา้ ใจวตั ถุประสงคแ์ ละสามารถใชง้ านไดส้ ะดวกยงิ่ ข้นึ ตลอดจนการ ปรบั ปรุงเปลี่ยนแปลงแกไ้ ขโปรแกรมก็สามารถดูไดจ้ ากเอกสารรายงานประกอบโปรแกรม เอกสารรายงานประกอบโปรแกรมควรมีลักษณะดังน้ี 1. วตั ถุประสงค์ 2. คุณสมบตั ิของเคร่ืองคอมพวิ เตอร์ และอุปกรณ์ทใ่ี ชใ้ นการเขียนโปรแกรม 3. ภาษาทใ่ี ชใ้ นการเขยี นโปรแกรม 4. ข้นั ตอนการใชโ้ ปรแกรม 5. สาระสาคญั เก่ียวกบั การออกแบบโปรแกรม 6. รายละเอียดของโปรแกรม 7. ตวั อยา่ งขอ้ มูลท่ใี ชท้ ดสอบโปรแกรม 8. ผลลพั ธข์ องการทดสอบโปรแกรม จากน้นั นาเอาเอกสารท้งั หมดทีไ่ ดม้ าทาการรวมใหเ้ ป็นเอกสารประกอบทีส่ มบรู ณ์ เพอ่ื ใหส้ ะดวกกบั การใชง้ านและใชส้ าหรับผทู้ ่ที าการเขียนโปรแกรมคนตอ่ ๆ ไป ทจ่ี ะมาศึกษาการ ทางานของโปรแกรมและพฒั นาการทางานของโปรแกรมในภายหลงั เอกสารประกอบการทางานของโปรแกรม สามารถแบง่ ได้ 2 ประเภท คือ 1. คูม่ ือระบบ (System Manual) คือ เอกสารทเ่ี ป็นรายละเอียดความตอ้ งการของ ผใู้ ชง้ านโปรแกรม วธิ ีการออกแบบส่วนของมอดูลตา่ ง ๆ ท่มี ีใชง้ านในโปรแกรม ข้นั ตอนวธิ ีที่ใช้ สาหรบั นามาเขยี นโปรแกรม ลกั ษณะโครงสรา้ งขอ้ มูลทมี่ ีการใชง้ าน หรือใชเ้ ป็นกรณีศึกษาสาหรบั พฒั นาโปรแกรมในดา้ นอื่นตอ่ ไป จะมีประโยชน์ตอ่ การปรับปรุงแกไ้ ขโปรแกรมในอนาคต 2. คูม่ ือการใชง้ าน (User Manual) คอื เอกสารทบี่ อกถึงวธิ ีการใชง้ านโปรแกรมที่ ไดท้ าการเขยี นข้ึน เช่น โปรแกรมน้ีทาอะไร วธิ ีเปิ ดโปรแกรม วธิ ีการป้ อนขอ้ มูล วธิ ีการพมิ พ์ เอกสารออกทางเครื่องพมิ พ์ ตวั อยา่ งขอ้ มูลทใ่ี ชง้ านในโปรแกรมลกั ษณะของหนา้ จอของโปรแกรม ที่ใชส้ าหรบั ตดิ ตอ่ ระหวา่ งโปรแกรมคอมพวิ เตอร์กบั ผใู้ ชง้ านโปรแกรม คู่มือการใชง้ านโปรแกรม จะมีประโยชนส์ าหรับผใู้ ชง้ านโปรแกรม ศกึ ษาเพอื่ สามารถนาโปรแกรมทีเ่ ขียนข้นึ มาใชง้ านได้ อยา่ งถูกตอ้ ง จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี1 หลกั การเขียนโปรแกรม 11 6. การบารุงรักษาโปรแกรม (Program Maintenance) หลงั จากทโ่ี ปรแกรมทีเ่ ขยี นข้นึ ไดถ้ ูกใชง้ านไประยะเวลาหน่ึง ผใู้ ชโ้ ปรแกรมอาจจะ มีวามตอ้ งการเพม่ิ เตมิ จากโปรแกรมเดิมท่เี ป็ นอยู่ ซ่ึงจะตอ้ งทากรปรับปรุงใหต้ รงกบั ความตอ้ งการ น้นั ๆ การบารุงรกั ษาโปรแกรม คือการนาโปรแกรมมาเปลี่ยนแปลงบางส่วนหรือแกไ้ ขเพยี ง เล็กนอ้ ย ท้งั น้ีถา้ มีการเปลี่ยนแปลงท้งั หมดจะทาใหส้ ิ้นเปลืองกาลงั คนและคา่ ใชจ้ ่าย โปรแกรมที่ ไดร้ ับการบารุงรักษาแลว้ ควรเป็นโปรแกรมท่อี ่านแลว้ เขา้ ใจงา่ ย และสามารถแกไ้ ขไดง้ ่าย ฉะน้นั เอกสารประกอบระบบตา่ ง ๆ ทีท่ าไวจ้ ึงมีความสาคญั ยงิ่ ในการปรบั ปรุงแกไ้ ขโปรแกรม โดยทว่ั ไป แลว้ การปรับปรุงแกไ้ ขโปรแกรมสามารถกระทาใน 2 ลกั ษณะ คอื 1. การบารุงรกั ษาระบบ (Maintenance) 2. การเปล่ียนแปลงระบบท้งั หมด (Redevelopment) การบารุงรักษาระบบ หรือการเปลี่ยนแปลงแกไ้ ขเพยี งเลก็ นอ้ ย จะไม่ กระทบกระเทอื นต่อผใู้ ช้ และไม่ตอ้ งสิ้นเปลอื งกาลงั คนและค่าใชจ้ ่ายมากนกั ในขณะทก่ี าร เปล่ียนแปลงระบบท้งั หมดจะทาใหส้ ้ินเปลืองท้งั กาลงั คน และคา่ ใชจ้ ่ายทาใหเ้ กิดความเสียหายเป็ น อยา่ งมาก เพราะเทา่ กบั เป็ นการเร่ิมตน้ ใหม่อีกคร้งั บางองคก์ รจะใหม้ ีคณะกรรมการปรบั ปรุงแกไ้ ข เพอ่ื ตดั สินใจในกรณีท่ีจะตอ้ งมีการแกไ้ ขเล็กนอ้ ย การตดั สินใจอาจจะพจิ ารณาแกไ้ ขในกรณีที่ เลวร้ายที่สุดก่อน หรือบางองคก์ รอาจจะพจิ ารณาที่อตั ราผลได้ ผลเสียและคา่ ใชจ้ ่ายเป็นหลกั จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

12 หน่วยที่1 หลกั การเขียนโปรแกรม คุณลกั ษณะของโปรแกรมทดี่ ี (The Characteristic of a good Program) โปรแกรมเกิดจากการนาเอาคาสง่ั (Instruction) มาเรียงลาดบั หรือเป็นการนาเอา คาสงั่ ต่าง ๆ มาประกอบกนั ข้นึ เป็ นโปรแกรม เพอื่ ประมวลผลงานอยา่ งใดอยา่ งหน่ึงตามความ ตอ้ งการของผใู้ ช้ การทจ่ี ะมีลกั ษณะของโปรแกรมท่ีดีจะตอ้ งมีคุณสมบตั ดิ งั ตอ่ ไปน้ี 1. มีความถูกตอ้ ง (Correctness) โปรแกรมทด่ี ีจะตอ้ งมีความถกู ตอ้ ง ใหผ้ ลลพั ธถ์ ูกตอ้ ง แม่นยาตรงกบั ความตอ้ งการของผใู้ ชเ้ ป็นสาคญั 2. มีความแม่นยาและเช่ือถอื ได้ (Reliability) การทางานของโปรแกรมน้นั จะตอ้ งไม่มี ขอ้ ผดิ พลาดเกิดข้นึ ในการทางานของโปรแกรม เช่น เมื่อโปรแกรมรันงานเดิมเป็ นจานวน หลาย ๆ คร้งั จะตอ้ งใหผ้ ลลพั ธท์ ไี่ ดใ้ นลกั ษณะเดิมทุกคร้ัง โดยไม่มีขอ้ ผดิ พลาดใด ๆ เกิดข้ึน เป็ นตน้ 3. มีความเขา้ กนั ได้ (Portability) จะตอ้ งมีความเขา้ กนั ไดก้ บั Hardware ไม่ติดอยกู่ บั Hardware ตวั ใดตวั หน่ึง โดยจะตอ้ งสามารถที่จะนาโปรแกรมไปรนั งานท่เี คร่ืองใดๆกไ็ ด้ 4. บารุงรักษาโปรแกรมไดง้ ่าย (Maintainability) ตอ้ งมีการบารุงรกั ษาโปรแกรมไดอ้ ยา่ ง สะดวก นนั่ คือ หากมกี ารปรบั ปรุงเปล่ียนแปลงโปรแกรมก็จะตอ้ งสามารถแกไ้ ขไดง้ ่าย เป็นตน้ 5. ตอ้ งอ่านง่าย (Readability) ผเู้ ขียนโปรแกรมจะตอ้ งเขียนโปรแกรมใหอ้ ่านงา่ ย เช่นการ Coding Program จะตอ้ งเป็นระบบระเบียบ มียอ่ หนา้ เวน้ วรรค มีการหมายเหตุในโปรแกรม กาหนดตวั แปรต่าง ๆ จะตอ้ งส่ือความหมายได้ เพอ่ื ผเู้ ขียนโปรแกรมคนอื่น ๆ หรือเจา้ ของโปรแกรม เองจะสามารถเขา้ ไปปรับปรุงแกไ้ ขไดด้ ว้ ยความสะดวก หากมีการปรบั เปลี่ยนเกิดข้ึนในอนาคต 6. มีความเป็นมิตรตอ่ ผใู้ ช้ (User-friendliness) ปัจจุบนั มีผใู้ ชโ้ ปรแกรมในการทางานมาก ข้ึน มีผใู้ ชท้ ่เี ป็ นผทู้ ่ีเร่ิมตน้ และไม่มีพ้นื ฐานทางดา้ นคอมพวิ เตอร์เลย และมีแนวโนม้ มากข้ึนการ สร้างโปรแกรมใหใ้ ชง้ านง่าย ใชเ้ วลาในการเรียนรู้โปรแกรมในระยะเวลาอนั ส้นั จึงเป็นส่ิงทสี่ าคญั 7. สามารถนากลบั มาใชใ้ หม่ (Reusability) โปรแกรมที่มีความสามารถมาก มกั มี โครงสร้างขนาดใหญ่และซบั ซอ้ น จึงควรมีการออกแบบเป็ นโมดูลยอ่ ย ๆ ท่ีมีอิสระตอ่ กนั และเรียบ งา่ ย เพอื่ ใหผ้ พู้ ฒั นาโปรแกรมคนอ่ืนสามารถเขา้ ใจและนาไปพฒั นาตอ่ กบั ยคุ สมยั ได้ หรือเพอื่ ใช้ งานร่วมกบั สภาวะแวดลอ้ มใหม่ไดอ้ ีก โดยการพฒั นาโปรแกรมดว้ ยภาษาเชิงวตั ถุ 8. มีความปลอดภยั (Security) มีความสามารถในการป้ องกนั การเขา้ ถึงขอ้ มลู หรือ แฟ้ มขอ้ มูลเพอื่ ป้ องกนั การทาลายขอ้ มูลจากผทู้ ไี่ ม่มีสิทธิในการใชง้ านโปรแกรม 9. ค่าใชจ้ ่ายต่า (Low Cost) ก่อนการพฒั นาตอ้ งวางแผนและประเมินค่าใชจ้ ่าย เม่ือพฒั นา ก็ตอ้ งควบคุมค่าใชจ้ า่ ยใหเ้ ป็นตามแผน ท้งั ส่วนของผใู้ ชแ้ ละผพู้ ฒั นาโปรแกรม 10. ใชเ้ วลาในการพฒั นานอ้ ย เทคโนโลยเี ปลี่ยนแปลงอยา่ งรวดเร็ว การพฒั นาโปรแกรม ตอ้ งเร็วเพอ่ื ใหท้ นั ส่งมอบงานและการนาไปใชข้ องผใู้ ช้ จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี1 หลกั การเขียนโปรแกรม 13 เครื่องมอื ในการออกแบบโปรแกรม (Program Design Tools) เครื่องมือในการออกแบบโปรแกรมจดั วา่ เป็ น Graphic Model Diagram ท่จี ะเป็น แผนภาพบอกลาดบั และข้นั ตอนการทางานของโปรแกรม เครื่องมือในการออกแบบโปรแกรมน้ีมี อยหู่ ลายรูปแบบ เช่น ผังงาน (Flowchart) ผงั งาน (Flowchart) จดั วา่ เป็นเคร่ืองมือที่เก่าแก่และเป็นท่ีรู้จกั กนั มากท่ีสุด นกั โปรแกรมส่วนใหญจ่ ะตอ้ งรู้จกั ใชผ้ งั งานในการออกแบบโปรแกรม หรือใชใ้ นการเขียนโปรแกรม เป็นอยา่ งดี โดยเฉพาะในช่วงท่ีเร่ิมฝึกหดั เขียนโปรแกรมใหม่ ๆ แตพ่ อมีความชานาญมากข้นึ ก็ อาจจะเลิกใชแ้ ละลงมือเขยี นคาสงั่ โปรแกรมเลย แตอ่ ยา่ งไรก็ตามการศึกษาเคร่ืองมือชนิดน้ีก็ยงั จดั วา่ มีความสาคญั เป็นอยา่ งมาก สาหรบั ผฝู้ ึกหดั เขยี นโปรแกรมเร่ิมตน้ ท่ีจะตอ้ งมีความเขา้ ใจ เน่ืองจาก จะช่วยใหผ้ ูเ้ ขยี นโปรแกรมสามารถกาหนดข้นั ตอนการทางานก่อนหลงั ของโปรแกรมไดง้ ่าย หากมี การปรับปรุงโปรแกรมที่จะเกิดข้ึนในอนาคตได้ ในการเขยี นผงั งานน้นั สามารถจาแนกแบบของผงั งานออกเป็น 2 แบบใหญ่ คือ 1. ผังงานระบบ (System Flowchart) ผงั งานระบบอาจเรียกอีกอยา่ งหน่ึง วา่ ผงั งานในระดบั กวา้ ง ซ่ึงจะเป็นการแสดงข้นั ตอนการทางานของระบบท้งั หมด ผงั งานระบบ มกั จะมีลกั ษณะยน่ ยอ่ รวบรดั และแสดงแต่ตวั งานที่จะตอ้ งทาในระบบเทา่ น้นั ไมไ่ ดแ้ สดงวา่ งาน น้นั จะทาอยา่ งไร ความสาคญั ของผงั งานระบบอยทู่ ่ีการแสดงความสมั พนั ธร์ ะหวา่ งงาน หรือ ข้นั ตอนต่าง ๆ ในระบบวา่ เก่ียวขอ้ งกนั อยา่ งไร 2. ผงั งานโปรแกรม (Program Flowchart) ผงั งานโปรแกรมอาจเรียกอีก อยา่ งหน่ึงวา่ ผงั งานระดบั ละเอียด คอื ในแตล่ ะข้นั ตอนจะแสดงการทางานในแตล่ ะคาสง่ั โดย ละเอียดสาหรับโปรแกรมน้นั ๆ ที่ผเู้ ขียนโปรแกรมกาลงั ทางานอยู่ ไม่ไดแ้ สดงความสมั พนั ธ์ ระหวา่ งโปรแกรมน้นั กบั โปรแกรมอ่ืน ๆ ในความเป็นจริงแลว้ การใชผ้ งั งานในการออกแบบโปรแกรม โดยเร่ิมจากผงั งาน ระบบ (System Flowchart) ลงมายงั ผงั งานโปรแกรมอยา่ งคร่าว ๆ และเป็นผงั งานโปรแกรมอยา่ ง ละเอียดน้นั เป็ นเทคนิคการออกแบบชนิดจากบนลงล่าง (Top-Down-Design) แต่เหตุผลทีน่ กั โปรแกรมไม่ค่อยจะใชผ้ งั งานกนั มากนกั เป็นเพราะเวลาเขียนและทดสอบโปรแกรมน้นั จาเป็ น จะตอ้ งเขยี นและทดสอบโปรแกรมบอ่ ยคร้ัง และถา้ ใชผ้ งั งานก็จาเป็ นจะตอ้ งคอยแกไ้ ขผงั งานให้ สอดคลอ้ งกบั โปรแกรมอยเู่ สมอ ซ่ึงทาใหก้ ารแกไ้ ขโปรแกรมตอ้ งล่าชา้ ตามไปดว้ ย จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

14 หน่วยที่1 หลกั การเขียนโปรแกรม ผังงานแบบ Nassi - Shneiderman (N-S chart) ผงั งานแบบแนสซี-ชไนเดอร์แมน หรือเรียกยอ่ ๆ วา่ ผงั งาน N-S Chart ไดต้ ้งั ช่ือ ข้นึ ตามผคู้ ดิ คือ I.Nassi และ B. Shneiderman ซ่ึงเป็ นผเู้ ขยี นวธิ ีการน้ี ในบทความเร่ือง Flowchart Techniques for Structured Programming การเขยี นผงั งานแบบ N – S Chart น้ีเหมาะกบั แนวทางการเขียนโปรแกรมแบบมี โครงสรา้ งมาก เน่ืองจากไม่มีการใชล้ ูกศรสาหรับระบแุ นวทางการไหลของขอ้ มูล (Flow Line) เหมือนผงั งานโปรแกรม ดงั น้นั จงึ ไม่อาจใชค้ าสง่ั GOTO ในโปรแกรมได้ ขอ้ แตกตา่ งอีกอยา่ งหน่ึง คอื สญั ลกั ษณ์ท่ีใชใ้ นผงั งาน N – S Chart จะนอ้ ยกวา่ สญั ลกั ษณ์ของผงั งานแบบธรรมดา คือจะให้ สญั ลกั ษณ์ดงั น้ี 1. เสน้ ขดี แบ่งงานออกเป็นส่วน ๆ เพอื่ แสดงข้นั ตอนท่จี ะตอ้ งทาตามลาดบั คาสง่ั ท่ี 1 คาสงั่ ท่ี 2 คาสงั่ ที่ 3 ...... คาสง่ั ที่ N 2. ใชร้ ูปสามเหล่ียมแสดงทางเลือกเพอ่ื การตดั สินใจ คือถาเงอ่ื นไขเป็นจริง ทาคาสง่ั ที่ 1 และถา้ เง่ือนไขเป็นเทจ็ ใหท้ าคาสง่ั ท่ี 2 T เง่ือนไข F คาสงั่ ที่ 1 คาสงั่ ท่ี 2 3. ในรูปตวั อกั ษร L (แอล) แสดงการทางานซ้า หรือการวนรอบ (Loop) ดงั น้ี Do While เงอื่ นไข For I=J to K by L คาสง่ั ท่ี 1 คาสงั่ ท่ี 1 คาสง่ั ที่ 1 คาสง่ั ท่ี 2 คาสง่ั ที่ 2 คาสงั่ ที่ 2 ..... ...... ...... คาสงั่ ที่ N คาสง่ั ท่ี N คาสง่ั ที่ N Until เงอ่ื นไข จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่1 หลักการเขียนโปรแกรม 15 ตวั อย่างการเขียนผังงานแบบ Nassi-Shneiderman และผงั งานโปรแกรมแบบธรรมดา Start Read N1,N2,N3 Yes (N1 > N2) and (N1 . N3) No Yes N2 > N3 No Print N1 Print N2 Print N3 Stop ภาพแสดงผังงานแบบ Nassi-Shneiderman START Y N1 N1,N2,N3 Y N1>N2 and N1>N3 N2 N N2>N3 N N3 STOP ภาพแสดงผังงานแบบ Program Flowchart จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

16 หน่วยที่1 หลกั การเขียนโปรแกรม ผังงานโครงสร้ าง เคร่ืองมือในการออกแบบโปรแกรมอีกรูปแบบหน่ึงก็คือ การเขยี นผงั งานใน ลกั ษณะ Structure Chart จะมีลกั ษณะคลา้ ยกบั Organization Chart ทแ่ี บ่งออกเป็นลาดบั ข้นั เพอ่ื ท่ีจะบอกฟังกช์ น่ั การทางานของโปรแกรมท้งั หมด แต่ไม่ไดแ้ สดงรายละเอียดการทางานของ โปรแกรมเอาไว้ แนวทางการออกแบบในลกั ษณะน้ีจะคลา้ ยกบั การออกแบบจากบนลงลา่ ง คือ เร่ิมตน้ กาหนดหนา้ ทข่ี องระบบท้งั ระบบเอาไวเ้ ป็นระดบั บนสุด แลว้ ยอ่ ยระดบั บนลงเป็ นระดบั ที่ 2 และท่ี 3 ต่อไปเร่ือย ๆ โดยแต่ละระดบั พยายามใหแ้ ตกโมดูล (Module) ยอ่ ยออกเป็น 3 โมดูล คอื โมดูลรบั ขอ้ มูลเขา้ โมดูลสาหรบั การประมวลผล และโมดูลสาหรับการแสดงผลลพั ธ์ ระหวา่ งโมดูล ยอ่ ยกบั โมดูลหลกั จะแสดงการแลกเปล่ียนขอ้ มลู ระหวา่ งกนั การเรียงลาดบั จะเรียงจากซา้ ยไปขวา ตัวอย่าง กาหนดใหม้ ีตวั เลขหน่ึงชุด ตอ้ งการทราบวา่ จะมีตวั เลขอยกู่ ี่ตวั จากชุดของ ตวั เลขดงั กล่าว เช่น 25 14 0 36 4 58 2 15 และ 81 พบวา่ มีตวั เลขท้งั หมดอยู่ 9 ตวั หาก ตอ้ งการหาคาตอบสาหรับปัญหาน้ี โดยกระบวนการผงั งานโครงสรา้ ง สามารถเขยี นไดด้ งั น้ี รายงานการนาตวั เลข การกาหนดค่าเริ่มตน้ ประมวลผลตวั เลข พมิ พต์ วั เลข อ่านตวั เลข นบั สะสม ภาพแสดงผงั งานแบบโครงสร้างของปัญหาการนับจานวนตวั เลข จะเห็นวา่ ผงั งานแบบโครงสรา้ งจะแสดงงานทท่ี า และความสมั พนั ธร์ ะหวา่ งโมดูล เท่าน้นั ไม่มีการแสดงลาดบั การประมวลผล จงึ ไม่สามารถนาผงั งานโครงสร้างมาทดแทนผงั งาน โปรแกรมได้ ในการออกแบบโปรแกรมโดยใชเ้ ทคนิคแบบบนลงล่าง จะเนน้ การมองภาพ โครงสร้างท้งั หมดของโปรแกรม ส่วนรายละเอียดของโมดูลตา่ ง ๆ จะกระทาภายหลงั ตรงกนั ขา้ ม กบั การเขียนผงั งานโปรแกรม (Program Flowchart) ซ่ึงจะวางแผนในข้นั รายละเอียดทนั ที ถา้ หาก มีการปรบั ตอ้ งกระทบท้งั หมด แต่ถา้ การวางแผนเริ่มทาทผ่ี งั โครงสร้าง จะไม่กาหนดรายละเอียด ของการประมวลผลจนกวา่ ผงั งานโครงสร้างจะเสร็จสมบูรณ์แลว้ จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่1 หลักการเขียนโปรแกรม 17 คาส่ังเทียม (Pseudo Code) คาสง่ั เทียม (Pseudo Code) เป็ นคาสง่ั ท่ไี ม่ใช่คาสง่ั ในภาษาคอมพวิ เตอร์ ใด ๆ อยา่ งแทจ้ ริง แตเ่ ป็ นคาสงั่ ที่เขยี นเลียนแบบคาสงั่ จริงอยา่ งยอ่ ๆ และใชเ้ ป็ นแนวทางของคาสงั่ ควบคุมในภาษาน้นั ๆ เพอ่ื ใหเ้ ห็นแนวทางของการทางานในโปรแกรม เช่น ในโปรแกรมเราอาจต้งั ค่าตวั แปรตา่ ง ๆ ของโปรแกรมใหม้ ีค่าเป็ นศูนย์ เพอื่ ใหโ้ ปรแกรมทางานไดอ้ ยา่ งถูกตอ้ ง ซ่ึง กระบวนการน้ีหากเขยี นเป็นผงั งานโปรแกรม จะตอ้ งกาหนดค่าตวั แปรท่ีใชใ้ นโปรแกรมท้งั หมดให้ เป็นศูนย์ ถา้ มีตวั แปร 10 ตวั กจ็ ะตอ้ งเขยี นชื่อตวั แปรท้งั 10 ตงั พร้อมกบั การกาหนดคา่ เริ่มตน้ ใหม้ ี ค่าเป็ น 0 แต่หากเขียนดว้ ยคาสง่ั เทียม สามารถเขยี นยอ่ ๆ วา่ “การกาหนดค่าเริ่มต้น” (Initial Program) ได้ ประโยชน์ของคาส่ังเทียม มีดงั ตอ่ ไปน้ี 1. คาสง่ั เทยี มมีประโยชน์มากสาหรบั การร่างเคา้ โครงโปรแกรมทจี่ ะเขียน ใชส้ าหรบั ทบทวนความถูกตอ้ งของการออกแบบ อาจจะทบทวนไดด้ ว้ ยตนเอง หรือประชุมทบทวนตาม หลกั การ Walkthrough คอื ใหท้ ีมงานออกแบบและเขยี นโปรแกรมไดม้ ีส่วนศึกษา พจิ ารณาและ แสดงความเห็นได้ 2. ใชส้ าหรับกาหนดงานเขยี นโปรแกรม โดยให้นกั เขยี นโปรแกรมนาคาสง่ั เทียมไป เพมิ่ เติมรายละเอียดที่จาเป็น 3. ใชเ้ ป็นเอกสารกากบั โปรแกรม สาหรบั ใชใ้ นการบารุงรกั ษาโปรแกรมในอนาคต 4. ใชเ้ ป็นเคร่ืองมือประกอบในวธิ ีการออกแบบอ่ืน ๆ เช่น การออกแบบผงั งาน โครงสร้าง เป็นตน้ ตัวอย่าง กาหนดใหม้ ีตวั เลขหน่ึงชุด ตอ้ งการทราบวา่ จะมีตวั เลขอยกู่ ่ีตวั จากชุดของตวั เลขดงั กล่าว เช่น 25 14 0 36 4 58 2 15 และ 81 พบวา่ มีตวั เลขท้งั หมดอยู่ 9 ตวั หากตอ้ งการหาคาตอบ สาหรบั ปัญหาน้ี โดยกระบวนการคาสง่ั เทียม สามารถเขียนไดด้ งั น้ี Start เริ่มตน้ Initial for Accumulation Value N กาหนดขอ้ มลู เร่ิมตน้ เพอ่ื สะสมค่าเท่ากบั 0 คือ N=0 Read Number อ่านขอ้ มูลชุดตวั เลขตวั ท่ี 1 Do While not end of Number อ่านจนกวา่ จะหมดชุดขอ้ มูล Compute N = N + 1 นบั จานวนชุดตวั เลข N = N + 1 Read Next Number อ่านขอ้ มูลตวั เลขตวั ต่อไป End Do ส้ินสุดรอบการทางาน Print result พมิ พผ์ ลลพั ธจ์ ากการสะสมค่า (N) Stop จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

18 หน่วยที่1 หลกั การเขียนโปรแกรม แบบประเมินผลการเรียนรู้หน่วยท่ี 1 1. จงเขียนวงจรการวางแผนและพฒั นาโปรแกรม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 2. จงบอกคุณลกั ษณะของโปรแกรมทดี่ ี ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 3. จงอธิบายวธิ ีการลงรหสั ของโปรแกรม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 4. จงอธิบายวธิ ีการทดสอบและแกไ้ ขโปรแกรม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 5. จงยกตวั อยา่ งเคร่ืองมือที่นกั คอมพวิ เตอร์ใชใ้ นการออกแบบโปรแกรม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 6. จงอธิบายลกั ษณะขอ้ ผดิ พลาดท่ีเกิดข้นึ ในโปรแกรม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี1 หลกั การเขียนโปรแกรม 19 7. เอกสารรายงานประกอบโปรแกรม ประกอบดว้ ยอะไรบา้ ง ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 8. จงบอกหวั ขอ้ ในการวเิ คราะหร์ ะบบ ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 9. จงบอกความหมายและประโยชน์ของคาสง่ั เทียม ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... 10. จงบอกความหมายของผงั งานโครงสร้าง ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ****************** จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

20 หน่วยที่1 หลกั การเขียนโปรแกรม เอกสารอ้างอิง ณัชติพงศ์ อูทอง. หนงั สือเรียน หลกั การเขยี นโปรแกรม. กรุงเทพฯ : บริษทั สานกั พมิ พ์ เอมพนั ธ์ จากดั , 2548. รุ่งทวิ า เสาร์สิงห์. การเขียนโปรแกรมคอมพวิ เตอร์เบ้อื งตน้ . กรุงเทพฯ: บริษทั ซีเอ็ดยเู คชนั่ จากดั (มหาชน) , 2548. วราภรณ์ อุม้ องั วะ. หลกั การเขยี นโปรแกรม. พมิ พค์ ร้ังที่ 1. กรุงเทพฯ:สานกั พมิ พศ์ ูนยส์ ่งเสริม อาชีวะ , 2547. เอกพนั ธุ์ คาปัญโญ. หนงั สือเรียน หลกั การออกแบบและพฒั นาโปรแกรม. กรุงเทพฯ : บริษทั ซคั เซสมีเดีย จากดั , 2549. แหล่งค้นคว้าเพม่ิ เติม เวบ็ ไซต์ http://www.account.payap.ac.th เวบ็ ไซต์ http://www.bcoms.net/system-analysis เวบ็ ไซต์ http://www.course.eau.ac.th เวบ็ ไซต์ http://www.cs.udru.ac.th/maliwan เวบ็ ไซต์ http://www.cs.psu.ac.th เวบ็ ไซต์ http://www.e-book.ram.edu/e-book/ct211 เวบ็ ไซต์ http://www.lib.ru.ac.th/khowledge/pcweb/slidepdf เวบ็ ไซต์ http://www.narinukul.ac.th เวบ็ ไซต์ http://www.rmult.ac.th/jk/program เวบ็ ไซต์ http://www.sot.swu.ac.th/cp101/PPT จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook