หนว่ ยที่ 1 หลกั การเขยี นโปรแกรมขนั้ ตน้ คอมพิวเตอร์ เป็นอุปกรณท์ างอเิ ลก็ ทรอนกิ ส์อย่างหนึ่ง ซึ่งไม่สามารถทางานด้วยตนเองได้ แต่จะ สามารถทางานไดต้ ามชดุ คาสั่งในโปรแกรมที่ป้อนเขา้ ส่เู ครอ่ื ง ซง่ึ จะทางานตามคาสั่งทลี ะคาสัง่ (Step by Step) โดยคาส่ังทเี่ ครือ่ งคอมพิวเตอร์สามารถเขา้ ใจได้ จะตอ้ งอย่ใู นรปู แบบของ ภาษาเคร่ือง (Machine Language) แต่ถา้ มีการเขียนดว้ ยภาษาอืน่ ท่ไี มใ่ ช่ภาษาเคร่ือง หรือที่ เรยี กวา่ ภาษาชนั้ สูง (High-level Language) กจ็ ะตอ้ งมีตัวแปลภาษา เชน่ คอมไพเลอร์ (Compiler) หรอื อินเตอร์พรีเตอร์ (Interpreter) ทาการแปลภาษาชนั้ สงู นัน้ ให้เป็น ภาษาเคร่อื งอกี ทหี นง่ึ ในการเขยี นโปรแกรมหรือภาษาคอมพิวเตอรน์ ี้ โดยทัว่ ไปแลว้ แต่ละภาษาจะมีหลักเกณฑใ์ นการ เขยี นและการออกแบบโปรแกรมเหมือนกัน ซงึ่ สามารถที่จะแบ่งข้ันตอนการเขยี นโปรแกรมออก ได้เปน็ 7 ข้นั ตอน ดังน้ี 1. ขนั้ ตอนการวิเคราะหป์ ัญหา (Analysis the Problem) 2. ขั้นตอนการออกแบบโปรแกรม (Design a Program) 3. ขน้ั ตอนการเขยี นโปรแกรม (Coding) 4. ขนั้ ตอนการตรวจสอบข้อผดิ พลาดของโปรแกรม (Testing and Debugging) 5. ขั้นตอนการทดสอบความถูกตอ้ งของโปรแกรม (Testing and Validating) 6. ขน้ั ตอนการทาเอกสารประกอบโปรแกรม (Documentation) 7. ขน้ั ตอนการบารุงรักษาโปรแกรม (Program Maintenance) ขน้ั ตอนท่ี 1 ขนั้ ตอนการวเิ คราะหป์ ญั หา (Analysis the problem) ขัน้ ตอนน้ีเปน็ ข้นั ตอนแรกสุดท่ีนักเขียนโปรแกรมจะตอ้ งทากอ่ นที่จะลงมอื เขยี นโปรแกรมจรงิ ๆ เพอื่ ทาความเขา้ ใจกบั ปัญหาท่ีเกดิ ขนึ้ และคน้ หาจุดมุ่งหมายหรือส่ิงที่ตอ้ งการ ในข้นั ตอนนจ้ี ะมี องค์ประกอบอยู่ 3 องค์ประกอบท่จี ะช่วยในการวิเคราะหป์ ญั หา ได้แก่ 1. การระบขุ ้อมูลเขา้ (Input) ต้องร้วู า่ มีข้อมูลอะไรบา้ งทจ่ี ะต้องป้อนเข้าสคู่ อมพวิ เตอรพ์ รอ้ ม กบั โปรแกรม เพ่ือใหโ้ ปรแกรมทาการประมวลผลและออกผลลัพธ์ 2. การระบุข้อมูลออก (Output) จะพิจารณาวา่ งานทที่ ามีเปา้ หมายหรอื วัตถปุ ระสงค์อะไร ตอ้ งการผลลพั ธท์ ม่ี ีรปู ร่างหน้าตาเปน็ อยา่ งไร โดยจะต้องคานึงถงึ ผใู้ ชเ้ ป็นหลักในการออกแบบ ผลลัพธ์ 3. กาหนดวิธกี ารประมวลผล (Process) ต้องรวู้ ธิ กี ารประมวลผลเพื่อให้ไดผ้ ลลัพธ์ตามที่ ต้องการ 2. ขนั้ ตอนการออกแบบโปรแกรม (Design a Program) หลงั จากวิเคราะห์ปัญหาแลว้ ขน้ั ตอนถดั ไปคือ การออกแบบโปรแกรม โดยใช้เครื่องมือมาชว่ ย ในการออกแบบ ในขัน้ ตอนน้ยี งั ไม่ได้เป็นการเขยี นโปรแกรมจริง ๆ แตจ่ ะช่วยให้การเขียน โปรแกรมทาไดง้ า่ ยขึน้ โดยสามารถเขยี นตามขั้นตอนทไ่ี ด้ออกแบบไวใ้ นขน้ั ตอนน้ี และชว่ ยให้ การเขียนโปรแกรมมีขอ้ ผดิ พลาดน้อยลง ช่วยตรวจสอบการทางานของโปรแกรม ทาใหท้ ราบ ขน้ั ตอนการทางานของโปรแกรมได้อยา่ งรวดเร็ว โดยไมต่ อ้ งไปไลด่ จู ากตัวโปรแกรมจริง ๆ ซึ่ง ถา้ เปรยี บเทียบการเขยี นโปรแกรมเหมอื นกบั การสรา้ งบา้ นแลว้ ในขนั้ ตอนการออกแบบ
โปรแกรมนี้ กเ็ ปรยี บเหมือนการสรา้ งแปลนบา้ นลงในกระดาษไว้ ซึ่งในการสรา้ งบ้านจริง กจ็ ะ อาศยั แปลนบา้ นนีเ้ ปน็ ต้นแบบในการสรา้ งนนั่ เอง ในข้ันตอนการออกแบบโปรแกรมนี้ เปน็ การออกแบบการทางานของโปรแกรม หรอื ขัน้ ตอนใน การแก้ปญั หา ซ่ึงผูอ้ อกแบบสามารถเลือกใชเ้ ครอื่ งมอื มาชว่ ยในการออกแบบได้ โดยเครอื่ งมือที่ ใชใ้ นการออกแบบโปรแกรมมอี ยู่หลายอยา่ ง ซง่ึ วธิ กี ารซึ่งเปน็ ทีน่ ิยมสาหรับใช้ในการออกแบบ โปรแกรม เช่น • อัลกอรทิ ึม (Algorithm) • ผังงาน (Flowchart) • รหสั จาลอง (Pseudo-code) • แผนภูมโิ ครงสรา้ ง (Structure Chart) อัลกอรทิ ึมเป็นเครอ่ื งมอื ทช่ี ว่ ยในการออกแบบโปรแกรม โดยใชข้ อ้ ความทเ่ี ปน็ ภาษาพดู ในการ อธิบายการทางานของโปรแกรมทเ่ี ป็นลาดบั ขนั้ ตอน จะขา้ มไปขา้ มมาไมไ่ ด้ นอกจากจะตอ้ ง เขียนสง่ั ไว้ตา่ งหาก ตวั อยา่ งอลั กอรทิ มึ งา่ ย ๆ ที่พบเหน็ ในชีวติ ประจาวัน ได้แก่ อลั กอริทมึ การ สระผม เร่ิมจากการทาผมใหเ้ ปยี กโดยการราดนา้ เมอื่ ผมเปยี กแลว้ จงึ ใสแ่ ชมพูสระผมลงบนศรี ษะ แลว้ ขยใี้ หม้ ฟี องเกดิ ขนึ้ หลงั จากนน้ั กล็ า้ งออกดว้ ยนา้ แลว้ เรมิ่ ทาใหมอ่ กี ครงั้ ในการเขยี นอลั กอรทิ ึมนี้ แมจ้ ะมคี วามชดั เจนอยูใ่ นตัวแล้ว แต่กม็ ีจุดออ่ นอย่ทู ี่ ข้อความอธิบาย ค่อนข้างเยน่ิ เยอ้ และถ้าผเู้ ขยี นใชส้ านวนที่อา่ นยาก กอ็ าจทาให้ผู้อา่ นไม่เขา้ ใจขน้ั ตอนการ ทางานของโปรแกรมได้ ดังนั้น จึงมีการคดิ คน้ เครอ่ื งมืออน่ื ท่ีชว่ ยในการออกแบบโปรแกรมแทน อลั กอรทิ ึม ไดแ้ ก่ ผังงาน รหสั จาลอง แผนภมู โิ ครงสรา้ ง ผงั งานเปน็ เคร่อื งมือท่ชี ่วยในการออกแบบโปรแกรม โดยใชส้ ญั ลกั ษณร์ ปู ภาพ แสดง ขน้ั ตอน การเขียนโปรแกรม หรอื ขน้ั ตอนในการแกป้ ญั หาทีละขั้น และมีเส้นทแี่ สดงทิศทางการไหลของ ขอ้ มลู ตงั้ แต่จดุ เร่มิ ต้นจนกระทง่ั ไดผ้ ลลัพธ์ตามทตี่ อ้ งการ ซึง่ จะทาใหผ้ ู้อ่านสามารถอา่ นและทา ความเข้าใจไดโ้ ดยง่าย รหสั จาลองจะมกี ารใชข้ อ้ ความทเ่ี ป็นภาษาองั กฤษหรือภาษาไทยกไ็ ด้ ในการแสดงขั้นตอนการ แก้ปัญหา แตจ่ ะมกี ารใชค้ าเฉพาะ (Reserve words) ที่มีอยใู่ นภาษาโปรแกรม มาชว่ ยใน การเขียน โครงสร้างของรหสั จาลองจงึ มสี ่วนทคี่ ลา้ ยกับการเขียนโปรแกรมมาก ดงั นนั้ รหสั จาลองจงึ เปน็ เครอ่ื งมืออกี แบบที่เป็นทนี่ ิยมใชก้ ันมากในการออกแบบโปรแกรม แผนภูมิโครงสรา้ งการใช้แผนภมู ิโครงสรา้ ง จะเปน็ การแบง่ งานใหญ่ออกเปน็ โมดูลย่อย ๆ ซ่งึ เรยี กว่า การออกแบบจากบนลงล่าง (Top-Down Design) แต่ละโมดูลย่อยก็ยงั สามารถแตก ออกไดอ้ กี จนถงึ ระดบั ลา่ งสุดทีส่ ามารถเขยี นโปรแกรมไดอ้ ย่างงา่ ย 3. ขั้นตอนการเขยี นโปรแกรม (Coding) ในข้นั ตอนนี้ จะเปน็ การนาเครื่องมอื ทถี่ กู สรา้ งขนึ้ จากขัน้ ตอนการออกแบบมาแปลใหเ้ ป็น โปรแกรมคอมพิวเตอร์ ซง่ึ ในการสร้างโปรแกรมคอมพิวเตอรน์ ัน้ เราสามารถเลือกใชภ้ าษาได้ หลายภาษา ตง้ั แตภ่ าษาระดบั ต่า เชน่ ภาษาแอสเซมบลี จนถึงภาษาระดับสูง เช่น ภาษาเบสกิ ภาษาโคบอล ภาษาปาสคาล ภาษาซี ซ่งึ แตล่ ะภาษาจะมรี ูปแบบ โครงสร้าง หรือไวยากรณ์ของ ภาษาทีแ่ ตกตา่ งกนั ออกไปดงั นน้ั การเขียนโปรแกรมท่ีดนี นั้ ควรจะต้องทาตามข้ันตอนคือ เรม่ิ ต้ังแต่วิเคราะห์ปญั หาให้ได้กอ่ น แลว้ ทาการออกแบบโปรแกรมจึงจะเร่ิมเขียนโปรแกรม ซ่งึ ใน การเขยี นโปรแกรมนัน้ สาหรับผู้ทย่ี ังไมม่ ีประสบการณ์การเขยี นโปรแกรมเพียงพอ กค็ วรจะ
ทดลองเขยี นลงในกระดาษกอ่ น แล้วตรวจสอบจนแน่ใจวา่ สามารถทางานไดแ้ ลว้ จงึ ทาการ ป้อนเข้าสู่เครื่องคอมพิวเตอร์ เพ่ือเปน็ การประหยัดเวลาและทาใหส้ ามารถทางานไดเ้ ร็วข้นึ 4. ขั้นตอนการตรวจสอบขอ้ ผดิ พลาดของโปรแกรม (Testing and Debugging) หลงั จากที่ทาการเขยี นโปรแกรมเสร็จส้ินแล้ว โปรแกรมนนั้ จะตอ้ งไดร้ ับการตรวจสอบก่อนวา่ มี ข้อผดิ พลาด (error) ในโปรแกรมหรอื ไม่ ซ่ึงอาจเกิดจากการเขียนโปรแกรมทผี่ ดิ หลัก ไวยากรณข์ องภาษาเปน็ ตน้ โดยทั่วไปจะมีวธิ ีท่ีจะตรวจสอบข้อผิดพลาดของโปรแกรม 2 ขนั้ ตอน ดังนี้ 1. ตรวจสอบดว้ ยตนเอง (Self Checking) เป็นการทดลองเขียนโปรแกรมลงบนกระดาษ แลว้ ใส่ตรวจสอบการทางานของโปรแกรมทีละขัน้ ด้วยตนเอง ว่าโปรแกรมมกี ารทางานทถี่ กู ตอ้ ง ไดผ้ ลลัพธ์ตรงตามความเปน็ จรงิ หรือไม่ 2. ตรวจสอบดว้ ยการแปลภาษา (Translating) หลงั จากทีเ่ ขยี นโปรแกรมเสรข็ และมกี าร ตรวจสอบด้วยตนเองเรียบรอ้ ยแล้ว กจ็ ะป้อนโปรแกรมเขา้ ส่เู ครื่องคอมพิวเตอรเ์ พ่ือทาการแปล โปรแกรม โดยจะต้องเรียกใช้ตวั แปลภาษาโปรแกรม ทีเ่ รยี กว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรเี ตอร์ (Interpreter) อยา่ งใดอย่างหน่ึง ทาการแปลภาษาโปรแกรมใหเ้ ป็น ภาษาเครอื่ ง การแปลน้จี ะเป็นการตรวจสอบความผดิ พลาดของโปรแกรมด้วย ซ่งึ ถา้ มี ขอ้ ผดิ พลาดใด ๆ เครอื่ งคอมพิวเตอร์จะแจง้ ใหท้ ราบทางหน้าจอ หลงั จากท่ีทาการเขียนโปรแกรมเสร็จแล้ว เวลา 50-70% ของเวลาในการพฒั นาโปรแกรม จะ ถกู ใชไ้ ปในการหาข้อผดิ พลาดของโปรแกรมและการ แกไ้ ขขอ้ ผดิ พลาดนนั้ 5. ขั้นตอนการทดสอบความถกู ตอ้ งของโปรแกรม (Testing and Validating) ในบางครง้ั โปรแกรมอาจผ่านการแปล โดยไม่มีขอ้ ผดิ พลาดใด ๆ แจ้งออกมา แตเ่ มอ่ื นา โปรแกรมนัน้ ไปใชง้ าน ปรากฏวา่ ได้ผลลพั ธท์ ่ีไมเ่ ปน็ จรงิ เนือ่ งจากอาจเกิดขอ้ ผดิ พลาดข้นึ ได้ ดงั น้นั จึงควรจะตอ้ งมขี ้นั ตอนการทดสอบความถกู ต้องของโปรแกรมอีกทดี ว้ ยในการทดสอบ ความถกู ต้องของขอ้ มูล จะมอี ยู่หลายวิธี ดงั ตอ่ ไปน้ี 1. การใสข่ อ้ มลู ทถ่ี กู ตอ้ ง (Valid Case) เป็นการทดสอบโปรแกรมเมอ่ื มีการรันโปรแกรม ให้ ทาการใสข่ อ้ มูลท่ถี กู ต้องลงไปในโปรแกรม และดวู า่ ผลลัพธท์ ่ีได้จากโปรแกรม ถูกต้องตามความ เปน็ จรงิ หรือตรงตามที่ต้องการหรอื ไม่ 2. การใชข้ อบเขตและความถกู ตอ้ งของขอ้ มลู เปน็ การทดสอบ โดยตรวจสอบขอบเขตของ ข้อมูลที่ปอ้ นเข้าสูโ่ ปรแกรม เชน่ ถา้ โปรแกรมให้มกี ารปอ้ นวนั ที่ กจ็ ะต้องตรวจสอบว่า วันทีท่ ี่ ป้อนจะต้องไมเ่ กนิ วนั ที่ 31 ถ้าผใู้ ชป้ อ้ นวันทีท่ เี่ ป็นเลข 32 โปรแกรมจะตอ้ งไม่ยอมให้ปอ้ นวนั ท่ี นไ้ี ด้ 3. การใชค้ วามสมเหตสุ มผล ตวั อย่างเช่น ถา้ โปรแกรมมีการออกแบบใหผ้ ใู้ ช้ป้อนขอ้ มลู ลงไป ในฟอรม์ ทีม่ ีขอ้ มลู ท่เี ป็นเพศ (หญิง หรอื ชาย) และรายละเอียดส่วนตัวของคน ๆ นั้น เชน่ เพศ วัน ลาคลอดชาย ตอ้ งไมม่ ี (ห้ามใส่)หญงิ อาจมหี รอื ไมม่ กี ไ็ ด้ 4. ขอ้ มลู ทเ่ี ปน็ ตวั เลขและตัวอกั ษร เป็นการตรวจสอบวา่ ถา้ โปรแกรมใหผ้ ู้ใชป้ อ้ นขอ้ มลู ในฟิลด์ ทต่ี ้องรับขอ้ มลู ท่เี ป็นตวั เลข อย่างเชน่ ฟลิ ด์ท่เี ป็นจานวนเงนิ กค็ วรจะยอมใหผ้ ้ใู ชป้ ้อนขอ้ มลู ได้ เฉพาะตัวเลขเทา่ นน้ั ไม่อนุญาตให้ใสต่ วั อักษรในฟิลด์น้นั ได้ หรือถา้ เปน็ ฟิลดท์ ่รี ับขอ้ มลู ทเี่ ปน็ ตวั อกั ษร เชน่ ฟลิ ดช์ ื่อ-นามสกลุ กจ็ ะปอ้ นข้อมูลได้เฉพาะตวั อกั ษรเทา่ นนั้ จะปอ้ นตัวเลขไมไ่ ด้ 5. ขอ้ มลู เปน็ ไปตามขอ้ กาหนด ข้อมลู ท่ปี อ้ นในฟิลด์ ต้องเปน็ ไปตามที่กาหนดไว้แนน่ อนแลว้ เท่านน้ั เช่น กาหนดให้ฟิลดน์ ้ปี อ้ นข้อมลู ได้เฉพาะตวั เลขที่อย่ใู นกลุ่ม 1,2,5,7 ไดเ้ ทา่ นนั้ จะ ป้อนเปน็ ตวั เลขอื่นท่ีไมอ่ ยใู่ นกล่มุ นี้ ไมไ่ ด้
6. ขนั้ ตอนการทาเอกสารประกอบโปรแกรม (Documentation) การทาเอกสารประกอบโปรแกรม คอื การอธิบายรายละเอยี ดของโปรแกรมวา่ จุดประสงค์ของ โปรแกรมคืออะไร สามารถทางานอะไรไดบ้ า้ ง และมีขน้ั ตอนการทางานของโปรแกรมเป็น อยา่ งไร เครอ่ื งมอื ท่ีชว่ ยในการออกแบบโปรแกรมเช่น ผังงาน หรอื รหสั จาลอง ก็สามารถนามา ประกอบกันเป็นเอกสารประกอบโปรแกรมได้โปรแกรมเมอร์ท่ีดี ควรมกี ารทาเอกสารประกอบ โปรแกรม ทุกข้ันตอนของการพัฒนาโปรแกรม ไมว่ า่ จะเปน็ ข้ันตอนการออกแบบ การเขยี น โปรแกรม หรอื ขัน้ ตอนการทดสอบโปรแกรม ซ่งึ การทาเอกสารน้ีจะมปี ระโยชนอ์ ยา่ งมากต่อ หนว่ ยงาน เน่ืองจากบางคร้งั อาจต้องการเปลย่ี นแปลงแกไ้ ขโปรแกรมทไ่ี ดม้ กี ารทาเสรจ็ ไปนาน แลว้ เพื่อให้ตรงกับความต้องการท่เี ปล่ียนไป จะทาให้เข้าใจโปรแกรมไดง้ ่ายขึ้นและจะเปน็ การ สะดวกตอ่ ผู้ที่ตอ้ งเขา้ มารับชว่ งงานต่อทหี ลงั เอกสารประกอบโปรแกรม โดยทว่ั ไปจะมีอยดู่ ว้ ยกนั 2 แบบคอื 1. เอกสารประกอบโปรแกรมสาหรบั ผใู้ ช้ (User Documentation) จะเหมาะสาหรบั ผู้ใชท้ ไี่ ม่ตอ้ งเก่ยี วข้องกบั การพฒั นาโปรแกรม แตเ่ ปน็ ผูท้ ี่ใชง้ านโปรแกรมอย่าง เดียว จะเนน้ การอธบิ ายเกย่ี วกบั การใช้งานโปรแกรมเปน็ หลกั ตวั อย่างเช่น · โปรแกรมนีท้ าอะไร ใชง้ านในดา้ นไหน · ขอ้ มลู เขา้ มลี กั ษณะอยา่ งไร · ข้อมลู ออกหรือผลลพั ธ์มลี กั ษณะอยา่ งไร · การเรียกใช้โปรแกรม ทาอยา่ งไร · คาส่งั หรอื ขอ้ มูลท่ีจาเป็นใหโ้ ปรแกรมเริ่มทางาน มอี ะไรบา้ ง · อธบิ ายเกย่ี วกบั ประสทิ ธิภาพ และความสามารถของโปรแกรม 2. เอกสารประกอบโปรแกรมสาหรบั ผเู้ ขยี นโปรแกรม (Technical Documentation) จะไดอ้ อกไดเ้ ป็น 2 สว่ น · สว่ นทเ่ี ปน็ คาอธิบายหรอื หมายเหตุในโปรแกรม หรือเรียกอีกอย่างหนึ่งวา่ คอมเมนท์ (Comment) ซ่งึ ส่วนใหญ่มักจะเขียนแทรกอยใู่ นโปรแกรม อธบิ ายการทางานของโปรแกรม เปน็ ส่วน ๆ · สว่ นอธิบายดา้ นเทคนคิ ซึง่ สว่ นน้มี ักจะทาเปน็ เอกสารแยกต่างหากจากโปรแกรม จะอธิบายใน รายละเอียดทีม่ ากข้ึน เชน่ ชอ่ื โปรแกรมย่อยตา่ ง ๆ มีอะไรบ้าง แตล่ ะโปรแกรมย่อยทาหน้าท่ี อะไร และคาอธบิ ายยอ่ ๆ เก่ยี วกบั วตั ถปุ ระสงค์ของโปรแกรม 7. ข้ันตอนการบารงุ รกั ษาโปรแกรม (Program Maintenance) เมอื่ โปรแกรมผ่านการตรวจสอบตามขน้ั ตอนเรยี บรอ้ ยแลว้ และถกู นามาให้ผู้ใช้ไดใ้ ชง้ าน ในชว่ งแรกผู้ใชอ้ าจจะยงั ไมค่ ุ้นเคยกอ็ าจทาใหเ้ กิดปัญหาขน้ึ มาบา้ ง ดังน้ันจงึ ต้องมผี คู้ อย ควบคมุ ดแู ล และตรวจสอบการทางาน การบารุงรักษาโปรแกรมจึงเปน็ ข้นั ตอนทผี่ ู้เขียน โปรแกรมต้องคอยเฝ้าดูแลและหาข้อผดิ พลาดของโปรแกรมในระหวา่ งที่ผู้ใช้ใช้งานโปรแกรม และปรบั ปรงุ แกไ้ ขโปรแกรมเม่ือเกิดขอ้ ผดิ พลาดขนึ้ หรือในการใชง้ านโปรแกรมไปนาน ๆ ผใู้ ช้ อาจตอ้ งการเปลี่ยนแปลงการทางานของระบบเดิมเพอ่ื ใหเ้ หมาะกับเหตกุ ารณ์ เช่น ต้องการ เปลย่ี นแปลงหน้าตาของรายงาน มกี ารเพมิ่ เติมข้อมูลหรือลบข้อมลู เดมิ นกั เขยี นโปรแกรมก็ จะต้องคอยปรบั ปรุง แก้ไขโปรแกรมตามความต้องการของผใู้ ช้ที่เปลยี่ นแปลงไปนัน้ คณุ สมบตั ขิ องนกั เขยี นโปรแกรมทด่ี ี นกั เขยี นโปรแกรมหรือเรยี กอกี อยา่ งหนึง่ ว่า โปรแกรมเมอรน์ นั้ ควรจะมีคณุ สมบัตดิ งั ต่อไปน้ี จึง จะเรียกได้วา่ เป็นโปรแกรมเมอร์ที่ดี
· รกั และชอบในการเขียนโปรแกรม · มีความคดิ ริเร่ิมสร้างสรรค์ และไฝ่ทีจ่ ะเรยี นรู้ · มคี วามอดทนต่อการเขยี นโปรแกรม ซึ่งบางครงั้ อาจต้องใช้เวลานานในการเขยี นโปรแกรม · ต้องรูจ้ ักการทางานเป็นทมี หรือเป็นกลุ่มคณะ ซึ่งการพฒั นาโปรแกรมทใ่ี หญ่ ๆ อาจต้องมกี าร ทางานกนั เป็นทมี ตอ้ งมกี ารแบง่ งานกันทาเป็นส่วน ๆ แลว้ จงึ จะนามารวมกันทีหลัง ผลงานท่ี ออกมาจะตอ้ งเป็นผลงานสว่ นรวมของท้งั ทีม ไม่ใชข่ องคนใดคนหนงึ่ ดังน้ันจงึ ต้องรู้จักการ ถ่ายทอดความรู้ ความคิดเห็นใหแ้ กค่ นในทมี งานเดียวกนั · ต้องหมน่ั ทาเอกสารประกอบโปรแกรมไวต้ ลอด เพอื่ ให้งา่ ยต่อการพัฒนาตอ่ ไปในภายหลัง ลกั ษณะของโปรแกรมทด่ี ี โปรแกรมท่ดี ี จะตอ้ งมีลักษณะ ดงั น้ี · สามารถอา่ นแล้วมีความเขา้ ใจงา่ ย ควรหลกี เลี่ยงการใช้คาส่ัง GOTO เพ่ือสั่งให้โปรแกรม กระโดดไปทางานทีจ่ ุดน้นั จุดนี้ เพราะจะทาให้ ผู้อา่ นโปรแกรมเกดิ ความสบั สนได้ง่าย · ควรจะเปดิ โอกาสใหส้ ามารถเขา้ ไปทาการแกไ้ ข หรอื ขยายโปรแกรมได้โดยงา่ ย น่ันคอื ควรจะ มีการแบง่ การทางานของโปรแกรมนนั้ ทั้งหมดออกเป็นส่วนยอ่ ย ๆ ทีเ่ รยี กว่า โมดลู (Module) โดยแตล่ ะโมดลู กจ็ ะมหี นา้ ท่ีการทางานทอ่ี ิสระจากกนั แตจ่ ะมีการส่งผา่ นขอ้ มลู ใหก้ นั และกันได้ ระหว่างโมดูล ดงั นนั้ ผทู้ ่จี ะเข้าไปทาการแกไ้ ขโปรแกรม ก็สามารถเลอื กไดว้ า่ โมดูลไหนท่ี เก่ยี วขอ้ งกับตน ก็จะแกไ้ ขเฉพาะ โมดลู น้นั โดยไมจ่ าเปน็ ต้องศึกษารายละเอยี ดของโปรแกรม ทัง้ หมด · มคี าอธบิ ายโปรแกรมหรอื คอมเมนท์ สอดแทรกอยใู่ นแตล่ ะโมดลู เพอ่ื ใหง้ า่ ยตอ่ การทาความ เขา้ ใจในการทางานของโมดลู นั้น · ควรทางานไดอ้ ยา่ งถกู ต้อง รวดเรว็ และมีประสิทธิภาพ
หนว่ ยที่ 2 คอมพวิ เตอรก์ บั การแกป้ ญั หา คอมพวิ เตอรก์ ับการแกป้ ญั หา การทางานของเครอื่ งคอมพิวเตอร์ จะทาตามโปรแกรมท่ีเขียนขนึ้ มาทุกประการ ดงั น้นั การนา เครอื่ งคอมพวิ เตอรม์ าช่วยสาหรบั การแกป้ ญั หา จึงตอ้ งมีโปรแกรมสาหรับการแก้ปญั หานัน้ เพื่อ สงั่ การใหเ้ ครอ่ื งคอมพวิ เตอร์ทางานตามตอ้ งการ ผทู้ ่ที าการเขียนโปรแกรมจงึ ต้องทราบถึง วธิ กี ารของการแกป้ ัญหาท่ีต้องการแก้ไขทุกขน้ั ตอน จากนั้นจึงทาการเรียบเรียงลาดบั ข้ันตอน วิธกี ารทางานต้งั แต่ขน้ั ตอนแรกจนถงึ ข้นั ตอนสดุ ท้าย แล้วนาข้ันตอนวิธีที่ไดเ้ รียบเรียงข้นึ มา เขียนเปน็ โปรแกรมคอมพิวเตอรต์ ่อไป การเขียนโปรแกรมคอมพวิ เตอร์ โดยไมไ่ ด้มกี ารเตรียมการไวก้ ่อน โดยทาการเขียนโปรแกรม ตามความคดิ ในขณะนน้ั ไมไ่ ดม้ กี ารวางแผนหรือการจดบันทึกขัน้ ตอนวธิ กี ารทางานของ โปรแกรมท่เี ขียนขน้ึ สาหรบั เปน็ เอกสารอ้างอิง เปน็ วธิ กี ารที่ไมถ่ กู ตอ้ ง จะทาให้เสียเวลาในการ เขยี นโปรแกรมเพม่ิ มากขน้ึ หากตอ้ งการปรับปรุงพฒั นาการทางานของโปรแกรมในภายหลัง จะมคี วามยุง่ ยาก ต้องใช้เวลา สาหรบั การทาความเขา้ ใจกับข้นั ตอนวิธกี ารทางานของโปรแกรม ถา้ โปรแกรมไม่มีความ ซับซ้อนมากนกั เวลาท่ใี ชส้ าหรบั การศกึ ษาถงึ วธิ ขี ้ันตอนวิธกี ารในการแกป้ ัญหาจะใช้เวลาไม่ มาก แต่ถา้ โปรแกรมน้ันมีความสลับซับซอ้ นมากขนึ้ การศกึ ษาถึงขัน้ ตอนวธิ ีการในการทางาน จะยง่ิ ใชเ้ วลาเพม่ิ มากข้นึ การเขียนเอกสารประกอบการทางานของโปรแกรม ทาให้การปรบั ปรงุ พัฒนาการทางานของโปรแกรมในภายหลงั สามารถทาได้สะดวกย่ิงข้ึน ขน้ั ตอนการวเิ คราะห์ปญั หา การเขียนโปรแกรมคอมพวิ เตอร์ เพือ่ ใชส้ าหรบั ชว่ ยในการแกป้ ัญหา ขนั้ ตอนของการวเิ คราะห์ ปัญหาสาหรับเตรยี มการกอ่ นลงมอื เขียนโปรแกรมคอมพิวเตอร์ มขี ั้นตอนดงั นี้ 1. การทาความเขา้ ใจกบั ปญั หา
2. การพิจารณาลักษณะของข้อมลู เข้าและข้อมลู ออก 3. การทดลองแก้ไขปญั หาด้วยตนเอง 4. การเขยี นขั้นตอนวิธกี ารแกป้ ญั หา 5. การทดสอบขัน้ ตอนวิธกี ารแก้ปญั หา 1. การทาความเขา้ ใจกบั ปญั หา ขั้นตอนแรกสาหรบั การนาคอมพวิ เตอรม์ าชว่ ยในการแกป้ ญั หา คอื การทาความเขา้ ใจกบั ปญั หาหรือการวเิ คราะห์ปญั หา ข้นั ตอนนีเ้ ป็นขนั้ ตอนสาหรบั ผูท้ ีท่ าการเขยี นโปรแกรม ทาความ เขา้ ใจกับปญั หา วเิ คราะห์ปัญหาทตี่ อ้ งการนาโปรแกรมคอมพิวเตอร์มาข่วยในการแกป้ ญั หาวา่ ปญั หาทต่ี อ้ งการนาคอมพิวเตอร์มาช่วยในการแกป้ ญั หาคือ ปญั หาลกั ษณะใด ถา้ ผ้ทู ี่ทาการ เขียนโปรแกรมไม่สามารถทาความเข้าใจกบั ปัญหาทีต่ อ้ งการแกไ้ ข การนาคอมพวิ เตอรม์ าใช้ สาหรับชว่ ยในการแก้ปญั หา กไ็ มส่ ามารถทาได้ 2. การพจิ ารณาลกั ษณะของขอ้ มลู เขา้ และขอ้ มลู ออก หลงั จากทาความเขา้ ใจกบั ปญั หาท่ีตอ้ งการนาคอมพิวเตอร์มาช่วยในการแกไ้ ข ข้นั ตอนต่อไป คอื การพิจารณาลักษณะของข้อมลู เข้า ท่ตี อ้ งส่งให้โปรแกรมคอมพวิ เตอร์ เพอื่ ใชส้ าหรบั การ ทางาน และขอ้ มลู ออกที่ตอ้ งการให้โปรแกรมคอมพวิ เตอร์ส่งกลบั หลงั จากทีท่ าการแก้ไขปญั หา เสร็จเรียบร้อยแลว้ ลักษณะของขอ้ มลู เข้าและขอ้ มูลออก เช่น ขอ้ มูลชื่อของนกั ศกึ ษา และรหัส ประจาตัวของนกั ศกึ ษา รวมไปถึงชนดิ ของขอ้ มลู เขา้ และข้อมลู ออก ตัวอยา่ งของชนิดข้อมลู เชน่ ข้อมลู เปน็ ตวั อักษร หรือขอ้ มูลท่เี ป็นตวั เลข ในกรณที ่ีเป็นขอ้ มลู ตัวเลข ตอ้ งพจิ ารณาอีกวา่ เปน็ ตัวเลขที่เป็นจานวนเตม็ หรอื เป็นตัวเลขทมี่ จี ุดทศนยิ ม 3. การทดลองแกไ้ ขปญั หาดว้ ยตนเอง การนาคอมพิวเตอร์มาชว่ ยสาหรบั การแกไ้ ขปัญหา สง่ิ ท่สี าคัญอกี ประการหนงึ่ คอื ผู้ทีท่ าการ เขียนโปรแกรมต้องทราบถึงขน้ั ตอนวธิ ีสาหรับการแกไ้ ขปัญหา หลงั จากการพจิ ารณาลักษณะ ของข้อมลู เข้าและขอ้ มูลออก ขั้นตอนตอ่ ไปคือ ข้ันตอนของการหาวธิ ีสาหรบั การแกป้ ญั หา ข้นั ตอนนี้ เปน็ ข้ันตอนสาหรับผทู้ ท่ี าการเขยี นโปรแกรม ทาการทดลองหาวธิ กี ารสาหรับแกไ้ ข ปญั หา การหาวธิ กี ารแกป้ ญั หาอาจทาการทดลองหาวธิ กี ารแกป้ ัญหาหลายวธิ ี จากนัน้ ทาการ เลือกเอาวธิ ีการท่ีเหมาะสม มาทาการเรยี บเรียงลาดบั ขนั้ ตอนวิธีการทางานเพ่ือนาไปใชส้ าหรับ การเขียนโปรแกรมคอมพวิ เตอรต์ อ่ ไป การทางานของเครือ่ งคอมพิวเตอรจ์ ะทาตามโปรแกรมท่มี นุษยเ์ ขียนขึน้ ทกุ ประการ เครอ่ื ง คอมพวิ เตอรไ์ ม่สามารถคดิ ค้นวิธีการใหมส่ าหรบั การแก้ปัญหาขึ้นมาเองได้ ถา้ ผ้ทู ่ีเขยี น โปรแกรมไม่เขา้ ใจถึงข้ันตอนวิธีสาหรบั การแก้ไขปัญหา โปรแกรมคอมพวิ เตอร์ทีเ่ ขยี นข้นึ มา ย่อมไม่สามารถแก้ไขปัญหาได้อยา่ งถกู ต้อง 4. การเขยี นขน้ั ตอนวธิ กี ารแก้ปญั หา ข้นั ตอนของการพฒั นาลาดบั ขนั้ ตอนวธิ ีการแก้ปญั หา เปน็ ขน้ั ตอนทีส่ าคัญอีกข้ันตอนหน่งึ
เพราะเปน็ ขน้ั ตอนทจี่ ะนาไปใชส้ าหรับพฒั นาให้เปน็ โปรแกรมภาษาคอมพวิ เตอรต์ ่อไป ข้ันตอน น้ีเป็นขนั้ ตอนทน่ี าเอาวธิ กี ารสาหรับการแกป้ ญั หาทไี่ ด้ทาการเลอื กจากข้นั ตอนของการทดลอง การแกไ้ ขปญั หาด้วยตนเอง มาทาการเรียบเรยี งเปน็ ลาดบั ขน้ั ตอนวธิ ีการทางาน โดยเขยี น ขน้ั ตอนวธิ กี ารทางานเป็นขอ้ ต้ังแต่ข้นั ตอนแรกจนถึงขั้นตอนสุดท้าย ขน้ั ตอนวิธี (Algorithm) คอื การเขยี นอธบิ ายถงึ ลาดบั ขน้ั ตอนการทางานของการแกป้ ญั หาใน ลกั ษณะของขอ้ ความตัง้ แต่ขน้ั ตอนแรก จนถงึ ข้นั ตอนสุดท้าย การพัฒนาลาดับขน้ั ตอนวธิ ีการ แกป้ ญั หา มีวิธีการดงั น้ี 1. เขยี นลาดบั ขนั้ ตอนวธิ กี ารทางานทงั้ หมดอยา่ งยอ่ เปน็ การเขียนการทางานแต่ละขน้ั ตอนอยา่ งย่อ ไมล่ ะเอยี ดมากนกั ตงั้ แต่ข้ันตอนแรก จนถงึ ขน้ั ตอนสดุ ท้ายของการทางาน เพ่ือดภู าพรวมของการทางานของขน้ั ตอนวิธกี ารแกป้ ัญหา ทง้ั หมด 2. เขยี นลาดบั ขน้ั ตอนวธิ กี ารทางานอยา่ งละเอยี ด เป็นการเขียนรายละเอยี ดของการทางานของแตล่ ะข้ันตอนที่ไดจ้ ากข้อ 1 เพ่ือใหส้ ามารถทา การเปลีย่ นให้เปน็ รหัสเทยี ม และโปรแกรมภาษาคอมพิวเตอร์ 3. เขยี นลาดบั ขน้ั ตอนวธิ กี ารทางานแตล่ ะขอ้ ใหอ้ ยใู่ นรปู ของรหสั เทยี ม รหัสเทียม (Pseudo Code) คอื ภาษาทใ่ี กลเ้ คยี งกับภาษาคอมพวิ เตอร์ สว่ นใหญน่ ิยมเขยี น เป็นภาษาอังกฤษ เมื่อผูท้ ท่ี าการเขียนโปรแกรมตอ้ งการนาขัน้ ตอนวธิ ีการทางานทีไ่ ด้เรียบเรียง ขน้ึ มาทาการเขยี นเป็นโปรแกรมคอมพิวเตอร์ สามารถทาไดโ้ ดยการเปลี่ยนจากรหสั เทียมให้ เป็นภาษาคอมพวิ เตอร์ตามทตี่ ้องการ ตัวอย่างเช่น ถา้ ผ้ทู ท่ี าการเขยี นโปรแกรมต้องการใช้ภา ปาสคาล สาหรับการเขยี นโปรแกรมสามารถทาไดโ้ ดยเปลี่ยนจากรหัสเทยี มใหเ้ ป็นภาษา ปาสคาล 5. การทดสอบลาดบั ข้นั ตอนวธิ กี ารแกป้ ญั หา หลงั จากการพัฒนาส่วนของลาดับขั้นตอนวิธีการแกป้ ัญหา ขนั้ ตอนสดุ ทา้ ยคอื ขน้ั ตอนสาหรับ การทดสอบส่วนของลาดบั ข้นั ตอนวธิ ีการแก้ปญั หาที่ไดเ้ ขยี นข้ึน การทดสอบลาดบั ขนั้ ตอน วธิ ีการแกป้ ัญหาทาไดโ้ ดยสมมติขอ้ มลู ทีใ่ ชเ้ ปน็ ขอ้ มูลเข้าสาหรบั การแก้ปญั หา แลว้ สมมติให้ ผ้เู ขยี นโปรแกรมเปน็ เครื่องคอมพิวเตอรท์ ี่ทางานตามข้นั ตอนวิธี หรือรหสั เทียมทไ่ี ด้ทาการเขียน ขึ้นแลว้ ทาการพิจารณาการทางานของลาดบั ข้นั ตอนวิธที ไ่ี ด้เขียนข้ึนวา่ สามารถทางานได้ ถูกต้องหรือไม่ หากขน้ั ตอนวิธีท่ีทาการเขยี นข้นึ มีการทางานทีผ่ ิดพลาด ต้องกลับไปแกไ้ ขส่วนของขัน้ ตอนการ พฒั นาลาดับขัน้ ตอนวิธีการแก้ปัญหาใหถ้ กู ต้อง จากนั้นทาการทดสอบดว้ ยขอ้ มูลท่ีทาให้ผลการ ทางานผิดพลาดอกี ครัง้ จนกว่าการทางานของข้นั ตอนวธิ ีสามารถทาได้อยา่ งถกู ต้อง สาหรับการ ทดสอบข้นั ตอนวิธีการทางานควรทาการทดสอบดว้ ยข้อมูลหลายชดุ ขอ้ มลู เพือ่ ใหส้ ามารถทา การทดสอบท่ีครอบคลมุ การทางานท้ังหมดของข้ันตอนวิธี และเป็นการยนื ยนั ว่า ขนั้ ตอนวธิ ี ทางานที่ทาการเขียนขน้ึ น้นั มีความถกู ต้อง ไมไ่ ดห้ มายถึงวา่ ขนั้ ตอนวิธีการแกป้ ญั หาท่ีเขียน ขึ้น มคี วามถกู ตอ้ งสมบรู ณ์
ตัวอยา่ งการหาแนวทางในการแกป้ ญั หาดว้ ยคอมพวิ เตอร์ จงเขียนแนวทางการแก้ปญั หาสาหรับการหาพนื้ ที่ห้องเรยี น รูปสเ่ี หลี่ยมผนื ผา้ โดยรบั ขอ้ มลู ความกวา้ ง และความยาวของหอ้ ง จากนนั้ แสดงค่าของพื้นทีห่ ้องที่คานวณได้ ขน้ั ตอนท่ี 1 ทาความเขา้ ใจกบั ปญั หา ปัญหาท่ตี อ้ งการแกไ้ ข คอื การคานวณหาพืน้ ท่ีของห้องเรียนรูปสเ่ี หลี่ยมผืนผ้า ขน้ั ตอนท่ี 2 พจิ ารณาลกั ษณะขอ้ มลู เขา้ และขอ้ มลู ออก ขอ้ มลู เขา้ คอื ความกวา้ งของห้อง และ ความยาวของหอ้ ง ชนิดของขอ้ มลู ทั้งความกวา้ ง และความยาว เปน็ ขอ้ มูลชนิดตัวเลข สามารถเปน็ ได้ทง้ั ตัวเลขจานวนเต็มและตัวเลข ทศนิยม ขึน้ อยู่กับความตอ้ งการของผู้ทท่ี าการเขยี นโปรแกรม ขอ้ มลู ออก คือ คา่ ของพืน้ ทห่ี ้อง ชนดิ ของขอ้ มูลเปน็ ตวั เลข สามารถเป็นได้ทงั้ ตวั เลข จานวนเต็มและตวั เลขทศนิยม ขึ้นอยู่กบั วธิ กี ารหาคาตอบ ขนั้ ตอนที่ 3 ทดลองแกไ้ ขปญั หาดว้ ยตนเอง การคานวณหาพ้นื ทหี่ ้องสี่เหล่ยี ม หาได้จากสูตร พืน้ ทห่ี ้องสเี่ หลย่ี มผืนผา้ = กวา้ ง x ยาว ถ้าใหค้ วามกว้างของหอ้ ง = 8 เมตร ถา้ ใหค้ วามยาวของหอ้ ง = 6 เมตร พนื้ ทห่ี ้อง = 8 x 6 = 48 ตารางเมตร ขนั้ ตอนที่ 4 การพฒั นาลาดบั ขน้ั ตอนวธิ กี ารแกป้ ญั หา ในทีน่ ้ีจะเขียนอธบิ ายข้นั ตอนวธิ กี ารทางานอย่างยอ่ ดังนี้ 1. เรมิ่ ต้น 2. รบั ค่าความกวา้ งและความยาวของห้อง 3. คานวณคา่ พื้นทีห่ ้อง = กว้าง x ยาว 4. แสดงคา่ ของพน้ื ท่ีหอ้ ง 5. จบการทางาน รหสั เทยี ม Begin Read Wide , Long Area Wide * Long Write Area End. ขนั้ ตอนที่ 5 การทดสอบขนั้ ตอนวธิ กี ารแกป้ ญั หา 1. Begin เปน็ สว่ นของการบอกการเรม่ิ ตน้ ของขั้นตอน 2. Read Wide , Long ขัน้ ตอนน้ี เครอ่ื งคอมพิวเตอรจ์ ะรอรบั ขอ้ มลู 2 คา่ คอื คา่ ความกวา้ งและคา่ ความยาวของ
หอ้ ง สมมติใหค้ วามกวา้ ง = 10 และความยาว = 12 3. Area Wide * Long ค่าพ้ืนท่ี = กว้าง x ยาว = 10 x 12 = 120 ตารางหนว่ ย 4. Write Area แสดงคา่ ของพื้นทห่ี ้องรูปส่ีเหล่ียมทค่ี านวณได้คือ 120 ตารางหนว่ ย 5. End. เปน็ ตัวบอกการสิ้นสุดการทางานของขน้ั ตอนทง้ั หมด
หนว่ ยที่ 3 ผงั งาน ความหมายของผงั งาน (Flowchart) • ผงั งาน คือ การเขยี นอธบิ ายขัน้ ตอนวิธีการทางานในลักษณะของ รูปภาพ • ผงั งาน คือ แผนภาพท่ีมกี ารใช้สัญลักษณร์ ูปภาพและลกู ศรทีแ่ สดงถึงขั้นตอนการทางานของ โปรแกรมหรอื ระบบทลี ะขนั้ ตอน รวมไปถึงการไหลของข้อมลู ต้งั แต่แรก จนได้ผลลพั ธ์ตามท่ี ตอ้ งการ • ผงั งาน เป็นเครือ่ งมอื หนึง่ ของการออกแบบโปรแกรมที่เปน็ ทน่ี ิยมใช้ เน่อื งจากมกี ารใช้ สัญลกั ษณใ์ นลักษณะของรปู ภาพ ทาใหส้ ามารถเหน็ ลาดบั ขั้นตอนวิธีการทางานไดช้ ัดเจนกว่า การอธบิ ายขนั้ ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความ ประโยชนข์ องการเขยี นผงั งาน · ช่วยลาดบั ขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขยี นโปรแกรมได้โดยไมส่ บั สน · ช่วยในการตรวสอบ และแกไ้ ขโปรแกรมได้อย่างงา่ ย เม่อื เกดิ ขอ้ ผิดพลาด · ช่วยใหก้ ารดดั แปลง แกไ้ ข ทาได้อย่างสะดวกและรวดเร็ว · ชว่ ยใหผ้ ู้อ่ืนสามารถศกึ ษาการทางานของโปรแกรมได้อยา่ งงา่ ยและรวดเรว็ มากข้นึ ประเภทของผงั งาน 1. ผังงานระบบ (System Flowchart) เป็นผังงานแสดงข้นั ตอนการทางานทั้งหมด ในผังงานประเภทนี้จะเห็นระบบงานภายในของ ระบบหน่งึ ๆ ทีเ่ กย่ี วขอ้ งกบั งานทัง้ หมด ท้งั วัสดุ เครอื่ งจักร โปรแกรม และบุคลากร จดุ มงุ่ หมายของการใช้ผังงานระบบ เพอ่ื ใหท้ ราบถึงความสัมพันธข์ องระบบทง้ั หมด หรือ ภาพรวมของระบบท้ังหมดต้งั แต่เริ่มต้นจนสุดทา้ ยว่ามี ขนั้ ตอนอะไรบา้ ง แต่ละข้ันตอนทา อย่างไร ใชว้ ธิ กี ารอะไรบา้ ง ผังงานระบบนเ้ี หมาะสาหรับผบู้ รหิ าร ผ้วู เิ คราะหร์ ะบบและผู้เขียน โปรแกรม แตผ่ งั งานระบบนยี้ งั ไม่สามารถนาไปใช้ในการเขยี นโปรแกรมได้ ลกั ษณะของผงั งานระบบ • แสดงขอบเขตของระบบท้ังหมด • แสดงขอ้ มลู เขา้ ถกู เก็บอยทู่ ีใ่ ดบ้าง ใชส้ อื่ บันทึกขอ้ มลู แบบใด • ประมวลผลและแสดงผลลัพธท์ ใี่ ด 2. ผงั งานโปรแกรม (Program Flowchart) หรือที่นิยมเรียกกนั ส้ัน ๆ วา่ Flowchart ผังงานประเภทนี้เปน็ ผังงานซึง่ แสดงลาดบั ขน้ั ตอน การทางานอยา่ งละเอียดของโปรแกรม โดยจะแสดงรายละเอยี ดของขน้ั ตอนการทางานอยา่ ง ชัดเจน ไม่วา่ จะเป็นขัน้ ตอนของการรบั ขอ้ มูลเข้า การคานวณ การประมวลผล และการแสดงผล ลพั ธ์
วธิ กี ารเขยี นผงั งานทดี่ ี • ทกุ ผังงานต้องมจี ุดเริ่มต้นและจุดส้นิ สดุ เพียงอยา่ งละหนง่ึ แหง่ เทา่ น้นั • ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเขา้ ออก • ใช้สัญลกั ษณ์ตามทีก่ าหนดไว้ • สัญลกั ษณจ์ ดุ เรม่ิ ตน้ มีเฉพาะลกู ศรชีท้ ศิ ทางออก • สัญลักษณ์จุดส้นิ สุดมเี ฉพาะลูกศรชที้ ศิ ทางเข้า • สัญลักษณก์ ารตัดสินใจมีลกู ศรชเี้ ข้า 1 ทศิ ทาง และชี้ออก 2 ทิศทาง คอื กรณที ่ีผลทไ่ี ด้จาก การตัดสนิ ใจเป็นจริง หรอื เปน็ เท็จ • ใช้ลกู ศรแสดงทศิ ทางการไหลของขอ้ มลู จากบนลงล่างหรอื ซา้ ยไปขวา • คาอธบิ ายในภาพควรส้นั กระทัดรดั และเขา้ ใจไดง้ า่ ย • ไม่ควรโยงเสน้ เชอ่ื มผงั งานทอี่ ยูไ่ กลมาก ๆ ควรใช้สัญลกั ษณ์จดุ เชือ่ มต่อแทน • เสน้ ของลกู ศรที่ใชบ้ อกทิศทางของลาดบั ขนั้ ตอนวิธกี ารทางาน ไม่ควรเขียนตัดกนั หรอื ทบั กัน • ผงั งานควรมกี ารทดสอบความถกู ตอ้ งของการทางานก่อนนาไปเขยี นโปรแกรม สญั ลกั ษณส์ าหรบั การเขยี นผงั งาน สญั ลักษณท์ ่ใี ช้ในการเขยี นผงั งานเพ่อื สอื่ ความหมาย เพ่ือใหเ้ ข้าใจ ตรงกนั จากสถาบันแห่งชาติ อเมริกัน (The American National Standard Institute : ANSI ) ไดก้ าหนด สญั ลักษณไ์ ว้เปน็ มาตรฐาน ซงึ่ มีรปู แบบสัญลกั ษณแ์ ละความหมายท่ีจาเป็นตอ้ งใช้ ดงั น้ี จดุ เรม่ิ ตน้ และสน้ิ สดุ ของผงั งาน ใช้รปู ส่เี หล่ยี มมุมมน ภายในสญั ลกั ษณ์มคี าอธบิ าย โดยใช้คาวา่ START หรือ BEGIN สาหรับจดุ เริม่ ต้น และคาว่า STOP หรือ END สาหรบั จดุ สิ้นสดุ ของผังงาน • สญั ลักษณ์จุดเร่มิ ต้น สามารถมีได้เพียงสัญลกั ษณล์ ะ 1 แหง่ เทา่ นั้นในแตล่ ะผงั งาน แต่ สญั ลักษณ์ส้นิ สุดของผงั งาน อาจมไี ดม้ ากกวา่ 1 แห่ง • สัญลักษณ์จุดเรมิ่ ตน้ ของผังงานจะมเี พยี งทิศทางออก ไม่มีทศิ ทางเขา้ • สัญลักษณ์จดุ สน้ิ สดุ ของผงั งาน จะมเี พียงทศิ ทางเข้า ไมม่ ที ิศทางออก
การกาหนดคา่ การคานวณและการประมวลผล ใชส้ ัญลักษณ์รูปสี่เหล่ยี มผืนผา้ โดยมคี าอธิบายลกั ษณะการทางานอยู่ภายในรูป สีเ่ หลยี่ มผืนผา้ สัญลกั ษณ์น้มี ีท้งั ทิศทางเข้าและทิศทางออก โดยมเี พียง 1 ทิศทางเทา่ นน้ั • การเขียนผังงานนิยมใช้เครอ่ื งหมายลกู ศร ( <-- ) แทนเครื่องหมาย เท่ากบั ( = ) • สาหรับเครอ่ื งหมายเท่ากับ ใช้สาหรับการเปรียบเทียบความเทา่ กันระหวา่ งค่า 2 ค่า การรบั ขอ้ มลู เขา้ และการนาขอ้ มลู ออก การรับข้อมูลเขา้ และการนาข้อมูลออก กรณีไมก่ าหนดอปุ กรณส์ าหรบั การนาขอ้ มูลเข้า และออก สญั ลกั ษณ์ทใ่ี ช้คอื สเ่ี หล่ียมด้านขนาน ภายในสญั ลักษณใ์ ช้คาอธิบาย Read Input หรอื รบั คา่ สาหรับการรบั ข้อมลู เขา้ และใช้คาอธบิ าย Write Output หรือ แสดงคา่ สาหรับการนาขอ้ มลู ออก สญั ลักษณน์ ี้มที ศิ ทางเขา้ และออก อยา่ งละ 1 ทิศทาง การรบั ขอ้ มลู เขา้ ทางแปน้ พิมพ์ สญั ลกั ษณ์ของผงั งานทใี่ ช้สาหรับการรับข้อมูลเขา้ ทางแป้นพมิ พ์ ภายในสญั ลกั ษณค์ อื ตวั แปรท่ใี ชส้ าหรับรบั ค่าข้อมูลทรี่ ับเข้ามาทางแป้นพิมพ์
สัญลกั ษณส์ าหรบั การรบั ขอ้ มูลเขา้ จากแปน้ พมิ พ์ มที ิศทางเข้าและทศิ ทางออก อยา่ งละ 1 ทิศทาง การแสดงผลขอ้ มลู ออกทางจอภาพ สญั ลกั ษณ์สาหรับการแสดงผลขอ้ มูลออกทางจอภาพของผังงาน โดยขอ้ มูลทตี่ อ้ งการให้ แสดงผลออกทางจอภาพ จะอยู่ภายในสัญลักษณ์น้ี • สัญลักษณ์สาหรับการแสดงผลข้อมลู ออกทางจอภาพ มีทิศทางเขา้ และทศิ ทางออก อยา่ งละ 1 ทศิ ทาง
การแสดงผลขอ้ มลู ออกทางเครอื่ งพมิ พ์ สัญลกั ษณส์ าหรับการแสดงผลขอ้ มลู ออกทางเครอื่ งพิมพข์ อง ผังงาน โดยขอ้ มลู ท่ี ตอ้ งการให้แสดงผลออกทางเครอ่ื งพิมพ์ จะอยู่ภายในสัญลกั ษณน์ ี้ • สัญลักษณส์ าหรับการแสดงผลข้อมูลออกทางเครอ่ื งพมิ พ์ มที ิศทางเขา้ และทศิ ทางออก อย่างละ 1 ทศิ ทาง การตดั สนิ ใจ สัญลักษณก์ ารตดั สินใจ ใช้สาหรบั การตรวจสอบเงอื่ นไข เพอื่ ตัดสินใจเลือกกระทา ข้นั ตอนการทางานท่ีต้องทาเปน็ ลาดับถัดไป สญั ลกั ษณข์ องผังงานที่ใชส้ าหรับการ ตดั สนิ ใจใชร้ ปู ส่ีเหลยี่ มขนมเปยี กปูน โดยมเี งื่อนไขอยูภ่ ายในสัญลักษณ์ สญั ลกั ษณ์การ ตัดสินใจมกี ารใชง้ านในผังงานท่ีมกี ารทางานแบบเลอื กทา และการทางานแบบทาซา้ สัญลักษณท์ ใี่ ชส้ าหรับการตัดสนิ ใจ มที ศิ ทางเข้า 1 ทิศทาง ผลท่ไี ด้จากการตรวจสอบ เงื่อนไขท่อี ยใู่ นสญั ลักษณ์การตัดสนิ ใจจะมอี ยู่ 2 กรณี คือ กรณที ่ีผลการตรวจสอบ เง่ือนไขเป็นจริง และกรณที ่ีผลการตรวจสอบเงือ่ นไขเปน็ เทจ็ ดงั น้นั ทิศทางท่ีออกจาก สัญลกั ษณก์ ารตัดสนิ ใจจะมี 2 ทิศทาง โดยใช้คาอธิบาย Yes , Y หรือ True กากบั ทศิ ทางในกรณีทีผ่ ลการตรวจสอบเง่ือนไขเป็นจริง ใชค้ าอธิบาย No , N หรือ False กากบั ทิศทางในกรณที ี่ผลการตรวจสอบเงื่อนไขเปน็ เทจ็
การแสดงทศิ ทางการทางานของผงั งาน การแสดงทิศทางของข้ันตอนการทางานของผังงาน ใช้ลกู ศรสาหรับการบอกทศิ ทาง ของขน้ั ตอนการทางาน การใช้ลูกศรแสดงทิศทางของข้นั ตอนการทางานนิยมเขยี นจาก ด้านบนลงด้านล่าง หรือจากด้านซา้ ยไปด้านขวา การเขยี นเสน้ ของลกู ศรแสดงทศิ ทางการไหลของผงั งาน ไม่นิยมเขียนเส้นตัดกัน ถา้ มี ขน้ั ตอนการทางานทต่ี ้องเขยี นเส้นตัดกัน ตอ้ งพยายามเลยี่ งโดยการปรับรูปของ โครงสร้างผังงานใหม่ หรือใช้เครื่องหมายจดุ ตอ่ ช่วยในการเขยี นผงั งาน จดุ ตอ่ ภายในหนา้ เดยี วกนั สัญลักษณ์จุดตอ่ ภายในหน้าเดียวกัน ใชส้ าหรับการเชอื่ มการทางานของผงั งานที่อยใู่ น หนา้ เดยี วกัน สญั ลักษณจ์ ดุ ตอ่ ภายในหน้าเดยี วกนั ใช้สัญลักษณของวงกลม ภายใน วงกลมระบหุ มายเลขของจดุ ทตี่ ้องการต่อเชอื่ มถึงกนั
การใชส้ ญั ลกั ษณจ์ ดุ ต่อภายในหนา้ เดยี วกัน ใช้ในกรณีทเี่ สน้ สาหรบั แสดงทิศทางการ ทางานของผงั งานมีความยาวมาก หรอื มีจุดตดั ของเสน้ ทใ่ี ชแ้ สดงทศิ ทางการทางาน เกดิ ข้นึ เพอื่ ลดความซับซอ้ นของเสน้ ท่ใี ช้แสดงขั้นตอนการทางานของผงั งาน ทาให้ สามารถเหน็ ลาดบั ขัน้ ตอนการทางานได้อยา่ งไม่สบั สน จดุ ตอ่ ระหวา่ งหนา้ สญั ลักษณ์จดุ ตอ่ ระหวา่ งหนา้ ของผังงานใช้สัญลกั ษณ์รปู ห้าเหล่ียม สัญลักษณ์จดุ ตอ่ ระหวา่ งหนา้ ใชส้ าหรับเชื่อมการทางานของผงั งานทอ่ี ยตู่ า่ งหนา้ กนั ภายในสญั ลักษณ์ ระบหุ มายเลขของจดุ ท่ีตอ้ งการตอ่ เชอื่ มถงึ กัน จดุ ตอ่ แต่ละจุดต้องมีคทู่ ่ตี ้องการเชอื่ มถึง กนั เสมอ การใชง้ านของสัญลักษณจ์ ดุ ต่อระหวา่ งหนา้ มีการใช้งานเหมอื นกบั จดุ ตอ่ ภายในหนา้ เดียวกัน ตา่ งกนั เพียงใชส้ าหรบั เช่ือมจดุ ที่อยตู่ า่ งหน้ากนั ตวั อย่างผงั งาน ตัวอย่างผงั งานในการโทรศพั ท์ตู้หยอดเหรียญ
ตวั อยา่ งผังงานในการสง่ จดหมายทางไปรษณยี ์
หนว่ ยที่ 4 ลกั ษณะโครงสรา้ งผงั งาน ลกั ษณะโครงสรา้ งผงั งาน การเขียนผังงานใชส้ าหรบั ชว่ ยในการเขยี นลาดบั ของขัน้ ตอนวิธกี ารแกป้ ัญหา หลงั จาก ทที่ าการเขียนผงั งานทใ่ี ช้สาหรบั แก้ปญั หาเรยี บรอ้ ยแลว้ ข้นั ตอนตอ่ ไปคอื การเขยี น ขนั้ ตอนวิธกี ารแกป้ ญั หาจากผงั งานท่ีได้ทาการเขียนข้นึ จากนนั้ จึงทาการเขยี นเป็นรหสั เทียมและโปรแกรมคอมพวิ เตอร์ ตามลาดับ ลักษณะโครงสรา้ งผังงาน ทสี่ ามารถนาไปเขยี นเปน็ ข้ันตอนวิธกี ารทางาน และรหสั เทยี ม สามารถแยกเปน็ ลกั ษณะโครงสร้างผังงานได้ 3 ลักษณะ ดงั น้ี 1. โครงสรา้ งผงั งานการทางานแบบลาดบั 2. โครงสรา้ งผงั งานการทางานแบบเลอื กทา หรอื มเี งอ่ื นไข 3. โครงสรา้ งผงั งานการทางานแบบทาซา้ ลกั ษณะของผังงานทีเ่ ขยี นขึน้ ตอ้ งเขียนใหอ้ ยใู่ นรปู แบบของโครงสร้างหลัก 3 โครงสรา้ งน้ี ถ้าผังงานท่เี ขยี นข้ึนมีโครงสรา้ งทผี่ ิดไปจากโครงสรา้ งหลัก การเขียนลาดบั ขั้นตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความจะทาได้ยาก เมอื่ ทาการเขียนผงั งานขึน้ มาแล้ว ไม่อยใู่ นโครงสร้างหลักทัง้ 3 โครงสร้าง ต้องพยายามปรับโครงสรา้ งผงั งานให้ เปน็ ไปตามโครงสร้างหลักท้ัง 3 โครงสรา้ ง ผังงานหนง่ึ ผังงาน สามารถประกอบไปด้วยหลายโครงสร้างผังงาน โดยมีโครงสรา้ งผัง งานการทางานแบบลาดบั เป็นโครงสรา้ งพน้ื ฐาน โครงสรา้ งผงั งานลักษณะอื่น เช่น การ เลอื กทา หรอื การทาซา้ เปน็ โครงสรา้ งท่ีประกอบอยภู่ ายใน หรอื อาจประกอบดว้ ย โครงสรา้ งผังงานการทางานแบบลาดับเพยี งโครงสรา้ งเดียวกไ็ ด้ 1. โครงสรา้ งผงั งานการทางานแบบลาดบั
โครงสรา้ งการทางานแบบลาดบั (Sequence) เป็นลักษณะโครงสร้างพืน้ ฐานของผงั งานทกุ ผังงาน ลกั ษณะการทางานของโครงสรา้ งผงั งานแบบลาดับจะทางานทลี ะขนั้ ตอน ตัง้ แต่ขัน้ ตอนแรกจนถงึ ขน้ั ตอนสดุ ทา้ ย ลาดบั การทางานของผังงานจะทางานตาม ทิศทางของลกู ศร โครงสรา้ งของผงั งานแบบลาดับ มลี ักษณะโครงสร้างดังน้ี จากโครงสร้างผังงานตามรูป การทางานจะเริ่มตน้ ทางานในกระบวนการที่ 1 (Process 1) เม่อื ทางานในกระบวนการท่ี 1 เสร็จ ขนั้ ตอนตอ่ ไป คอื ทางานในกระบวนการที่ 2 เมื่อทางานในกระบวนการที่ 2 เสรจ็ จึงทางานในกระบวนการที่ 3 เป็นขัน้ ตอนต่อไป ตามลาดับ การทางานจะทางานทีละ 1 กระบวนการ การทางานจะไม่ทางานหลาย กระบวนการพร้อมกัน กระบวนการในการทางานที่ 1 , 2 และ 3 อาจเปน็ การรับข้อมูลเขา้ การแสดงผลข้อมูล หรอื การคานวณ กไ็ ด้ ตัวอยา่ งโครงสร้างผังงานการทางานแบบลาดบั
จากโครงสรา้ งผังงานแบบลาดบั ตามรปู สามารถอธิบายข้นั ตอนการทางานไดด้ งั นี้ 1. เรมิ่ ตน้ การทางาน 2. รบั คา่ ข้อมูลเขา้ มาเกบ็ ไว้ในตัวแปร a และตัวแปร b 3. คานวณค่า a2 + b2 แล้วไปเก็บไว้ในตัวแปร x 4. แสดงคา่ ในตวั แปร x 5. ส้นิ สุดการทางาน 2. โครงสรา้ งผงั งานการทางานแบบเลอื กทา หรอื มเี งอื่ นไข โครงสรา้ งผังงานการทางานแบบเลือกทา ใช้สาหรบั กรณีท่ีต้องการตดั สินใจเพอื่ เลือก ข้ันตอนการทางานท่เี หมาะสมกับขอ้ มลู ทีท่ าการประมวลผลในขณะนนั้ โครงสรา้ งผัง งานการเลอื กทาประกอบดว้ ยสญั ลกั ษณข์ องการตดั สินใจ 1 สัญลักษณ์ เพอื่ ใช้สาหรับ การตัดสินใจสาหรับเลอื กการทางานทต่ี ้องทาเปน็ ลาดับถัดไป การทางานหลงั จากการตรวจสอบเงื่อนไข จะมกี ารทางานอยู่ 2 กรณีคือ 1. กรณีทม่ี ีการทางานเพียงขั้นตอนเดียว ในกรณที ่ีผลการตรวจสอบเง่อื นไขเป็นจรงิ หรอื เปน็ เทจ็ เพียงอย่างใดอยา่ งหนงึ่ เท่าน้ัน ตัวอย่างเช่น
จากรปู โครงสรา้ งผงั งานข้างต้น มขี ั้นตอนการทางานเพียงขน้ั ตอนเดียว ถ้าการ ตรวจสอบเง่อื นไขเปน็ จรงิ ในกรณนี ้ี หากเง่อื นไขเป็นเทจ็ โปรแกรมจะขา้ มไปทางาน ในลาดับถดั ไปเลย จากรปู โครงสรา้ งผังงานขา้ งตน้ มขี น้ั ตอนการทางานเพียงขน้ั ตอนเดยี ว ถ้าการ ตรวจสอบเงือ่ นไขเปน็ เทจ็ ในกรณีน้ี หากเง่ือนไขเป็นจริง โปรแกรมจะขา้ มไปทางาน ในลาดบั ถดั ไปเลย 2. กรณีที่มกี ารทางาน 2 ขัน้ ตอน คือมขี น้ั ตอนการทางานให้ ไม่วา่ ผลการตรวจสอบ เง่อื นไขจะเป็นจริงหรอื เปน็ เท็จ ตัวอย่างเชน่ จากโครงสร้างผงั งานการเลอื กทา ข้นั ตอนแรกของการทางานคอื การพิจารณาเงอื่ นไข (Condition) ทีใ่ ชส้ าหรับตัดสินใจเลือกขนั้ ตอนการทางานท่ีตอ้ งทาเป็นลาดับถัดไป ถา้ ผลทไี่ ด้จากการตรวจสอบเงอ่ื นไขเป็นจรงิ ข้นั ตอนการทางานท่ีต้องทาเปน็ ลาดบั ถดั ไป
คือ การทางานของกระบวนการที่ 1 ถา้ ผลทไ่ี ด้จากการตรวจสอบเงอ่ื นไขเปน็ เทจ็ ขน้ั ตอนการทางานท่ตี อ้ งทาเปน็ ลาดับถดั ไปคอื สว่ นของกระบวนการที่ 2 โดยเลอื ก ทางานเพียงกระบวนการเดียว ไม่ทางานทง้ั 2 กระบวนการพรอ้ มกัน การทางานของแต่ละกระบวนการ หมายถงึ การทางานในแต่ละลักษณะ สามารถเปน็ ได้ ท้งั การรบั ข้อมลู การแสดงผลข้อมูล หรอื การคานวณ และยังสามารถนาเอาโครงสร้างผัง งานลกั ษณะอื่นมาเป็นกระบวนการทางานในแต่ละขนั้ ตอนได้ ตัวอยา่ งโครงสรา้ งผงั งานแบบเลอื กทาหรอื มเี งอ่ื นไข จากตัวอยา่ ง ประกอบด้วยโครงสร้างผงั งาน 2 โครงสรา้ ง คือ การทางานแบบลาดบั และ การเลือกทา การทางานของผังงานสามารถอธิบายลาดบั ข้ันตอนการทางานไดด้ ังนี้ 1. เรม่ิ ต้นการทางาน 2. รับคา่ ข้อมูล จานวน 2 ค่า มาเก็บไวใ้ นตวั แปร X และ Y 3. ตรวจสอบเง่ือนไข ถา้ X นอ้ ยกวา่ Y แลว้ ทา 3.1 คานวณคา่ SUM = X2*Y2 มิฉะนัน้ แล้ว 3.2 คานวณคา่ SUM = X * Y 4. แสดงค่า SUM 5. จบการทางาน 3. โครงสรา้ งผงั งานการทางานแบบทาซา้
ลกั ษณะโครงสรา้ งผังงานการทางานแบบทาซ้า ใชป้ ระโยชน์ในกรณที ่ตี อ้ งการทางาน อย่างใดอยา่ งหนง่ึ ซ้ากนั หลายครัง้ โครงสรา้ งผงั งานแบบทาซา้ จะประกอบไปด้วย สัญลักษณ์การตัดสินใจ ใชส้ าหรับตรวจสอบเงอ่ื นไขเพอ่ื ตัดสินใจวา่ จะเข้าสขู่ ั้นตอน การทาซา้ หรอื ไม่ ลักษณะการทาซ้า สามารถแบง่ ไดเ้ ปน็ 2 ลกั ษณะคอื 1. ทาในขณะที่ 2. ทาจนกระทง่ั 1. การทาซา้ ลกั ษณะทาในขณะที่ การทางานของโครงสรา้ งผงั งานการทาซ้าลกั ษณะทาในขณะท่ี (Do - While) ขนั้ ตอนแรกของการทางาน คือ การตรวจสอบเง่อื นไขการทาซ้า ถ้าผลทไี่ ดจ้ ากการ ตรวจสอบเงอ่ื นไขเป็นจริง จงึ เขา้ สขู่ ัน้ ตอนของการทางานในสว่ นของการทาซ้า ลักษณะของการทางานในโครงสรา้ งผงั งานแบบทาซ้าในลกั ษณะทาในขณะที่ จากรปู เม่ือทางานในกระบวนการ ที่ 1 แล้ว การทางานของผงั งานจะกลับไปตรวจสอบ เง่อื นไขท่ใี ช้สาหรับการทาซ้าอกี คร้งั ถา้ ผลท่ีได้จากการตรวจสอบเงอ่ื นไขยงั คงเป็นจรงิ การทางานจะเข้าสู่ขั้นตอนการ ทางานทตี่ ้องทาซา้ อกี ครั้งหน่งึ ทาซา้ เชน่ นี้จนกว่าผลทีไ่ ดจ้ ากการตรวจสอบเงื่อนไขเปน็ เทจ็ จึงออกจากขั้นตอนการทาซ้า เพอ่ื ทางานในขนั้ ตอนอื่นต่อไป ตัวอยา่ งโครงสรา้ งผงั งานการทาซา้ ในลกั ษณะทาในขณะที่
ลาดบั ข้ันตอนการทางานของผังงานน้ี คอื 1. เริม่ ต้นการทางาน 2. กาหนดค่าให้ a = 1 3. ในขณะที่ a <> 3.1 คา นวณคา่ a = a + 1 3.2 แสดงคา่ a 4. จบการทางาน 2. การทาซา้ ในลกั ษณะทาจนกระทง่ั ลักษณะของโครงสร้างผงั งานการทาซา้ ลักษณะ ทาจนกระท่งั (Do - Until) ขั้นตอนแรกของการทางาน คอื ทาข้นั ตอนการทางานท่ี ต้องการทาซา้ กอ่ นอยา่ งนอ้ ยหนึ่งครัง้ หลังจากนนั้ จงึ ทาการตรวจสอบเงอ่ื นไขสาหรับ พจิ ารณาวา่ จะกลบั ไปทากระบวนการทางานทต่ี อ้ งทาซา้ หรือไม่
จากรูป จะทาขั้นตอนที่ต้องการทาซา้ ก่อนอย่างน้อย 1 ครง้ั หลงั จากนนั้ จึงทาการ ตรวจสอบเงอ่ื นไขสาหรับพจิ ารณาวา่ จะกลบั ไปทางานกระบวนการทางานทตี่ ้องทาซ้า หรอื ไม่ ถ้าผลทไ่ี ดจ้ ากการตรวจสอบเงื่อนไขเปน็ เท็จ การทางานของผงั งานจะทาการ ย้อนกลับไปทาขั้นตอนการทางานทตี่ อ้ งการทาซา้ อกี คร้ัง แล้วมาตรวจสอบเงอื่ นไข ถ้า ผลท่ไี ด้จากการตรวจสอบยังคงเป็นเทจ็ จะกลบั ไปทากระบวนการที่ต้องทาซ้าอีก จนกวา่ ผลทไี่ ดจ้ ากการตรวจสอบเงื่อนไขออกมาเป็นจรงิ จงึ ออกจากขนั้ ตอนการทาซ้า เพื่อ ทางานในขน้ั ตอนอน่ื ต่อไป ตวั อยา่ งโครงสรา้ งผงั งานการทาซา้ ในลกั ษณะทาจนกระทง่ั
จากรูป ประกอบด้วยลกั ษณะโครงสร้างผังงาน 2 ลกั ษณะ คือ โครงสร้างผังงานการทางานแบบลาดับ และการทาซา้ ลกั ษณะทาจนกระท่ัง มีข้ันตอน ดงั นี้ 1. เร่ิมตน้ การทางาน 2. กาหนดให้ a = 1 3. ทาซา้ จนกระทง่ั a <> 3.1 แสดงคา่ a 3.2 คานวณคา่ a เท่ากับ a+1 4. จบการทางาน ขอ้ แตกตา่ งระหวา่ งการทาซา้ ลกั ษณะทาในขณะท่ี กบั ทาจนกระทง่ั โครงสรา้ งผงั งานการทาซา้ มีอยู่ 2 ลักษณะ คือ ทาในขณะท่ี และ ทาจนกระทงั่ ลักษณะ การทางานของโครงสร้างผังงานทาซ้าทง้ั 2 ลกั ษณะ มกี ารทางานทแ่ี ตกต่างกนั สามารถสรปุ ความแตกตา่ งของลักษณะการทางานของโครงสรา้ งผงั งานการทาซ้าทัง้ 2 ลกั ษณะ ได้ดังน้ี
หนว่ ยที่ 5 โครงสรา้ งผงั งานการทางานแบบลาดบั โครงสรา้ งผงั งานการทางานแบบลาดบั ข้นั ตอนการทางานแบบลาดบั เปน็ ข้ันตอนวิธีการทางานพนื้ ฐาน ข้ันตอนวธิ ีการทางานแบบ ลาดับได้รับการพัฒนามาจากโครงสรา้ งผงั งานการทางานแบบลาดบั การเขยี นอธบิ ายการ ทางานของวธิ กี ารแกป้ ญั หาโดยใช้ผังงาน ทาให้สามารถเหน็ ลาดบั ขน้ั ตอนวธิ กี ารทางานของ การแกป้ ัญหาได้ชดั เจนกว่าการอธบิ ายขนั้ ตอนวิธกี ารทางานในลกั ษณะของข้อความโดยตรง แตก่ ารนาผังงานมาพฒั นาใหเ้ ปน็ ภาษาคอมพวิ เตอร์โดยตรง สาหรับผู้ที่เริ่มต้นฝึกหดั การเขียน โปรแกรม อาจจะไม่สะดวก จึงตอ้ งมีการเปลย่ี นจากผงั งานให้เป็นการอธิบายขนั้ ตอนวธิ ีการ ทางานในลกั ษณะของขอ้ ความก่อน จากนัน้ จงึ ทาการเปลย่ี นจากการอธิบายขัน้ ตอนวิธกี าร ทางานในลักษณะของขอ้ ความให้เปน็ รหัสเทียม และโปรแกรมภาษาคอมพิวเตอรต์ ามลาดบั การเขยี นอธิบายขั้นตอนวธิ ีการทางานในลักษณะของขอ้ ความจากผงั งาน สิ่งทต่ี อ้ งทาเปน็ ลาดบั แรกคอื การแยกจานวนของกระบวนการทางานทั้งหมดของผังงาน การพิจารณาว่า ผังงานนั้น มกี ระบวนการทางานท้งั หมดจานวนก่ีกระบวนการ สามารถทาการพิจารณาไดจ้ ากการทางาน ของกระบวนการหนงึ่ กระบวนการน้นั จะมีทศิ ทางเขา้ และทศิ ทางออกจากกระบวนการ มีเพยี ง อยา่ งละหน่งึ ทิศทางเท่านั้น โดยทาการเขยี นอธิบายข้นั ตอนวิธีการทางานในลักษณะของ ขอ้ ความจานวนหนึง่ ข้อความ ต่อกระบวนการหนึ่งกระบวนการ ผงั งานกบั การทางานแบบลาดบั หลังจากที่ทาการหากระบวนการทางานทั้งหมดของผงั งาน ขนั้ ตอนตอ่ ไปคอื การเขียนขอ้ ความ ทีใ่ ช้สาหรับอธบิ ายการทางานท่เี หมาะสมกับกระบวนการทางาน ขอ้ ความทีใ่ ชส้ าหรบั อธิบาย การทางานของแต่ละสญั ลกั ษณ์ของผังงาน สามารถเขียนไดด้ งั นี้
ตวั อยา่ งการเปลย่ี นจากผงั งานเป็นการอธบิ ายขนั้ ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความ จากรูป มีกระบวนการทางานท้ังหมด 5 กระบวนการ สามารถเขยี นการอธิบายขนั้ ตอน วิธีการทางานในลกั ษณะข้อความ ไดด้ ังน้ี 1. เร่ิมตน้ การทางาน 2. รบั คา่ Base และ High 3. คานวณค่าของ Answer เท่ากับ 0.5*Base*High 4. แสดงคา่ ของ Answer 5. จบการทางาน
ตวั อยา่ ง การเปลย่ี นจากผงั งานเป็นการอธบิ ายขน้ั ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความ จากรปู มกี ระบวนการทางานทัง้ หมด 5 กระบวนการ สามารถเขยี นการอธบิ ายข้ันตอนวธิ กี าร ทางานในลกั ษณะข้อความ ได้ดงั นี้ 1. เร่มิ ต้นการทางาน 2. รับคา่ Radian 3. คานวณคา่ ของ Answer เทา่ กับ 2*3.14*Radian 4. แสดงค่าของ Answer 5. จบการทางาน รหสั เทยี มกบั การทางานแบบลาดบั หลงั จากท่ีทาการเขียนอธบิ ายข้นั ตอนวิธีการทางานในลกั ษณะของข้อความจากผังงานเสรจ็ เรียบรอ้ ยแลว้ ขัน้ ตอนตอ่ ไปคือ การเปลยี่ นจากการอธิบายขนั้ ตอนวิธีการทางานในลกั ษณะของ
ขอ้ ความเปน็ รหัสเทยี ม โดยทาการเปลย่ี นจากขน้ั ตอนวธิ กี ารทางานหนึ่งการทางานให้เป็นรหัส เทยี มจานวนหนง่ึ รหัสเทียม การเขียนรหสั เทยี มสาหรบั การอธบิ ายข้ันตอนวิธกี ารทางานใน ลักษณะของขอ้ ความ มีดังน้ี ตัวอยา่ ง การเปลยี่ นจากการอธบิ ายขน้ั ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความเปน็ รหสั เทยี ม จากการอธบิ ายขั้นตอนวธิ กี ารทางานในลักษณะขอ้ ความขา้ งต้น สามารถเขยี นเปน็ รหสั เทียม ได้ดังนี้ การอธบิ ายขนั้ ตอน................................................................. รหสั เทยี ม 1. เร่มิ ต้นการทางาน ...................................................................................Begin 2. รบั ค่า Base และ High ............................................................................Read Base , High 3. คานวณค่าของ Answer เทา่ กบั 0.5*Base*High .................................Answer <- 0.5*Base*High 4. แสดงคา่ ของ Answer ..........................................................................Write Answer 5. จบการทางาน ........................................................................................End
ตัวอยา่ ง การเปลยี่ นจากการอธบิ ายขนั้ ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความเปน็ รหสั เทยี ม จากการอธบิ ายข้ันตอนวธิ กี ารทางานในลกั ษณะขอ้ ความข้างต้น สามารถเขียนเปน็ รหสั เทยี ม ไดด้ ังนี้ การอธบิ ายขน้ั ตอน ....................................................................รหสั เทยี ม 1. เริม่ ตน้ การทางาน .......................................................................................Begin 2. รับค่า Radian ............................................................................................Read Radian 3. คานวณคา่ ของ Answer เท่ากบั 2*3.14*Radian .....................................Answer <- 2*3.14*Radian 4. แสดงค่าของ Answer ................................................................................Write Answer 5. จบการทางาน ............................................................................................End
ตวั อยา่ ง การเปลยี่ นจากการอธิบายขน้ั ตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความเปน็ รหสั เทยี ม จากผังงาน มกี ระบวนการทางานทั้งหมด 8 ข้ันตอนการทางาน สามารถเขียนการอธิบาย ข้ันตอนวธิ ีการทางานในลักษณะข้อความ และ รหสั เทยี ม ได้ดงั นี้ การอธบิ ายขน้ั ตอน ...................................................................รหสั เทยี ม 1. เรมิ่ ต้นการ ทางาน ......................................................................................Begin 2. รบั คา่ A , B ...............................................................................................Read A,B 3. แสดงคา่ ของ A , B ...................................................................................Write A , B 4. กาหนดให้ Temp มีคา่ เท่ากบั A ...............................................................Temp <-A 5. กาหนดให้ A มคี า่ เท่ากับ B........................................................................ A <- B
6. กาหนดให้ B มคี ่าเทา่ กบั Temp............................................................... B <- Temp 7. แสดงคา่ ของ A , B ..................................................................................Write A , B 8. จบการทางาน........................................................................................... End
หนว่ ยท่ี 6 โครงสรา้ งผงั งานการทางานแบบเลอื กทา โครงสรา้ งผงั งานการทางานแบบเลอื กทา หรือ แบบมเี งอื่ นไข การทางานแบบเลอื กทา ลักษณะการทางานของขน้ั ตอนวธิ กี ารแกป้ ญั หา นอกจากขน้ั ตอนวิธีการทางานแบบ ลาดับแลว้ ยงั มีขัน้ ตอนวิธกี ารทางานแบบเลอื กทา การเขียนขัน้ ตอนวธิ ีการทางานแบบ เลอื กทาใชส้ าหรับกรณที ตี่ ้องการเลือกวธิ กี ารทางานสาหรบั การแก้ไขปัญหา ที่เหมาะสม กบั ลกั ษณะขอ้ มลู ในขณะนั้น การเขยี นข้ันตอนวิธกี ารทางานแบบเลอื กทาไดร้ บั การ พัฒนามาจากโครงสรา้ งผงั งานการเลอื กทา เม่อื ไดท้ าการอธิบายขั้นตอนวิธกี ารทางาน ในลกั ษณะของข้อความแล้ว จากน้นั จงึ ทาการเปลี่ยนให้เป็นรหัสเทยี ม และโปรแกรม ภาษาคอมพวิ เตอร์ ต่อไป การเขยี นขนั้ ตอนวธิ สี าหรบั การทางานแบบเลอื กทา การเขียนอธิบายขั้นตอนวธิ กี ารทางานสาหรับการทางานแบบเลอื กทา โดยใชค้ าอธิบาย คือ คาว่า “ถา้ ” “แลว้ ทา” และ “มฉิ ะนน้ั แลว้ ” การเขียนอธบิ ายขั้นตอนวธิ ีการทางาน เร่ิมต้นดว้ ยคาอธิบาย “ถา้ ” ตามด้วยเง่อื นไขท่ี ใชส้ าหรบั การตดั สินใจทอี่ ยู่ภายในสญั ลักษณ์ผังงานการตัดสินใจ ถดั จากนั้นเป็น คาอธิบาย “แล้วทา” จากนัน้ เป็นการอธิบายข้นั ตอนวธิ กี ารทางานทุกข้ันตอนการทางาน ที่ต้องทา สาหรบั กรณีทีผ่ ลการตรวจสอบเงื่อนไขเปน็ จรงิ จากนนั้ ใช้คาอธิบายวา่ “มฉิ ะนน้ั แลว้ ” ตามด้วยขนั้ ตอนวิธีการทางานทุกขนั้ ตอนการทางานท่ีต้องการสาหรบั กรณที เ่ี งอ่ื นไขเปน็ เท็จ จากผังงานในรูป สามารถเขยี นอธบิ ายขัน้ ตอนวธิ กี ารทางานไดด้ ังนี้ 1. ถา้ Condition แลว้ ทา 1.1 Process 1 มฉิ ะนนั้ แลว้ 1.2 Process 2 ตวั อยา่ งท่ี 1 การเปล่ียนจากผงั งานเป็นการอธบิ ายขั้นตอนวธิ ีการทางานในลกั ษณะของ ขอ้ ความ การเขียนอธบิ ายข้ันตอนวธิ ีการทางานจากผงั งาน สงิ่ ทีต่ อ้ งทาเปน็ ลาดบั แรกคอื การแยก กระบวนการการทางานทง้ั หมดของผงั งาน วิธีการแยกกระบวนการหรือข้ันตอนการ
ทางานแต่ละกระบวนการสามารถทาได้ดงั นี้ คือ พจิ ารณาที่ทิศทางเข้าและทศิ ทางออก ของขน้ั ตอนการทางาน โดยทาทีละข้ันตอนหรือกระบวนการทางานท่มี ที ศิ ทางเข้าและ ทศิ ทางออกเพียงอยา่ งละหนึ่งทิศทางเทา่ น้ัน เชน่ เดยี วกับการทางานแบบลาดบั จากผังงานในรูป การทางานสาหรบั กรณีที่ผลการตรวจสอบเงือ่ นไขเปน็ จริง มีขั้นตอน การทางานหรอื กระบวนการทางานทตี่ ้องทาจานวน 2 กระบวนการทางาน คอื รับคา่ ของตัวแปร A และ B อีกกระบวนการทางานหน่ึงคือ การคานวณคา่ ของ X เทา่ กบั A + B สาหรับกรณีทผี่ ลการตรวจสอบเงอ่ื นไขเป็นเท็จ มขี ้ันตอนการทางานหรอื กระบวนการ ทางานทีต่ อ้ งทาจานวน 2 กระบวนการทางานเช่นกัน คอื การคานวณคา่ ของ X เทา่ กบั X + 10 และแสดงคา่ ของตัวแปร X จากส่วนของผังงานท่ีมีโครงสรา้ งการทางานแบบเลอื กทา สามารถทาการเขยี นเปน็ การ อธบิ ายขัน้ ตอนวธิ ีการทางานในลกั ษณะของข้อความ ได้ดังนี้ 1. ถา้ X > 5 แลว้ ทา 1.1 รบั คา่ A , B 1.2 คานวณคา่ ของ X เทา่ กบั A + B มฉิ ะนน้ั แลว้ 1.3 คานวณคา่ ของ X เทา่ กบั X +10 1.4 แสดงคา่ ของ X การเขียนผังงานทม่ี โี ครงสร้างผังงานแบบเลือกทา ไมจ่ าเปน็ ตอ้ งมีขน้ั ตอนการทางาน ครบทงั้ 2 กรณคี ือ กรณที เี่ งือ่ นไขเป็นจรงิ หรอื เปน็ เทจ็ บางครง้ั อาจเขยี นผงั งานออกมา ในลกั ษณะท่ีมีข้นั ตอนการทางานที่ตอ้ งทาเพยี งกรณเี ดียว คือ กรณที ่ผี ลการตรวจสอบ เงือ่ นไขเป็นจริง สว่ นกรณีท่ีผลการตรวจสอบเงือ่ นไขเป็นเทจ็ ไมม่ ีขน้ั ตอนการทางานที่ ต้องทา การเขียนอธบิ ายขนั้ ตอนวธิ กี ารทางานสาหรบั ผงั งานทม่ี ลี ักษณะการทางานดงั กล่าว จะ ทาการตัดสว่ นของคาอธบิ าย “มิฉะนน้ั แล้ว” ท้ิงไป วิธีการเขยี นอธบิ ายขั้นตอนวธิ กี าร ทางาน สามารถทาไดด้ ังนี้ คอื ขึ้นต้นดว้ ยคาอธิบาย “ถา้ ” ตามดว้ ยเงื่อนไขท่ีใช้ พจิ ารณาการตดั สนิ ใจ จากนัน้ เขียนคาอธิบายวา่ “แลว้ ทา” ถดั จากนน้ั เปน็ ลาดับขั้นคอน การทางานทตี่ ้องทากรณที ผ่ี ลการตรวจสอบเง่ือนไขเปน็ จรงิ ถา้ จบการอธิบายข้นั ตอน วธิ ีการทางานสาหรับการทางานแบบเลอื กทาในส่วนน้ัน ตัวอยา่ งที่ 2 การเปลี่ยนจากสว่ นของผงั งานใหเ้ ป็นการอธิบายขัน้ ตอนวิธีการทางานในลักษณะ ของ ข้อความ
จากส่วนของผงั งานในตัวอย่างท่ี 2 การทางานหลงั จากการพิจารณาเง่อื นไขทใี่ ช้ สาหรบั การตัดสนิ ใจ กรณที ่ผี ลการตรวจสอบเงื่อนไขเปน็ จรงิ มขี ้นั ตอนการทางานหรอื กระบวนการทางานท่ีตอ้ งทา จานวน 2 การทางาน คือ รบั คา่ ของ A และ B ส่วนอกี การ ทางานหน่ึงคือ การคานวณคา่ โดยให้ค่าของ X มคี า่ เท่ากบั A2 + B2 สว่ นกรณีทผ่ี ล การตรวจสอบเงอ่ื นไขเปน็ เทจ็ ไมม่ ขี นั้ ตอนการทางานใดที่ต้องทา สามารถทาการเขยี น อธิบายขั้นตอนวิธกี ารทางานไดด้ งั น้ี 1. ถา้ N > 0 แลว้ ทา 1.1 รบั คา่ ของ A และ B 1.2 คานวณคา่ ของ X เทา่ กบั A2 + B2 ตวั อยา่ งท่ี 3 การเปล่ยี นจากส่วนของผังงานให้เปน็ การอธบิ ายขนั้ ตอนวิธีการทางานในลักษณะ ของขอ้ ความ
จากผงั งานในตัวอย่างที่ 3 เมอื่ พจิ ารณาจานวนกระบวนการทางานหรือข้ันตอนการ ทางานหลักของผงั งาน มกี ระบวนการทางานท้งั หมด 5 การทางาน โดยในขน้ั ตอนการ ทางานท่ี 3 เปน็ ลักษณะของโครงสร้างผังงานแบบเลือกทา สามารถเขียนเป็นการอธบิ าย ขน้ั ตอนวิธีการทางานในลักษณะของขอ้ ความไดด้ งั นี้ 1. เรม่ิ ตน้ การทางาน 2. รบั คา่ ของ A และ B 3. ถา้ A มากกวา่ B แลว้ ทา 3.1 คานวณคา่ ของ Num เทา่ กบั A – B มฉิ ะนนั้ แลว้ 3.2 คานวณคา่ ของ Num เทา่ กบั B – A 4. แสดงคา่ ของ Num 5. จบการทางาน ตวั อยา่ งที่ 4 จากผังงานการหาข้อมลู ทีม่ ากทส่ี ดุ ระหวา่ งขอ้ มูล จานวน 3 ข้อมลู ทีร่ บั เข้ามา จากนั้นทาการแสดงคา่ ทม่ี ากที่สุด
จากผังงานในตัวอยา่ งท่ี 4 สามารถแยกกระบวนการทางานหรือขัน้ ตอนการทางานหลัก ได้ 5 ขนั้ ตอนการทางาน โดยขั้นตอนการทางานท่ี 3 เปน็ โครงสร้างผงั งานแบบเลอื กทา และมีโครงสร้างผังงานการเลือกทาซ้อนยอ่ ยอย่ภู ายใน สามารถเขยี นเปน็ การอธิบาย ข้ันตอนวธิ กี ารทางานในลกั ษณะของขอ้ ความ ไดด้ งั นี้ 1. เรมิ่ ตน้ 2. รบั คา่ A , B , C 3. ถา้ A มากกวา่ B แลว้ ทา 3.1 ถา้ A มากกวา่ C แลว้ ทา 3.1.1 กาหนดคา่ ของ Max เทา่ กบั A มฉิ ะนนั้ แลว้ 3.1.2 กาหนดคา่ ของ Max เทา่ กบั C มฉิ ะนนั้ แลว้ 3.2 ถา้ B มากกวา่ C แลว้ ทา 3.2.1 กาหนดคา่ ของ Max เทา่ กบั B
มฉิ ะนนั้ แลว้ 3.2.2 กาหนดคา่ ของ Max เทา่ กบั C 4. แสดงคา่ ของ Max 5. จบการทางาน ตวั อยา่ งท่ี 5 การเขยี นอธบิ ายขั้นตอนวิธกี ารทางานในลักษณะของข้อความจากผงั งาน จากผังงานสามารถแยกกระบวนการทางานหรือขัน้ ตอนการทางานหลักออกไดท้ ัง้ หมด 5 การทางาน ขนั้ ตอนการทางานที่ 3 เปน็ ลักษณะโครงสร้างผังงานการเลอื กทา โดย การทางานกรณที ผ่ี ลการตรวจสอบเงอ่ื นไขเป็นจรงิ เปน็ การทางานแบบเลือกทาซ้อน ย่อยอยู่ภายใน สว่ นกรณที ่ีผลการตรวจสอบเง่ือนไขเป็นเท็จ เปน็ การทางานแบบลาดับ
ซอ้ นอยูภ่ ายใน สามารถเขียนเป็นการอธบิ ายข้ันตอนวธิ กี ารทางานในลกั ษณะของ ข้อความ ได้ดงั น้ี 1. เรมิ่ ตน้ การทางาน 2. รบั คา่ A , B 3. ถา้ A มากกวา่ B แลว้ ทา 3.1 ถา้ B มากกวา่ 20 แลว้ ทา 3.1.1 รบั คา่ A 3.1.2 คานวณคา่ ของ B เทา่ กบั B + 15 มฉิ ะนนั้ แลว้ 3.1.3 รบั คา่ B 3.1.4 คานวณคา่ ของ A เทา่ กบั A + 10 3.2 คานวณคา่ ของ A เทา่ กบั A – B มฉิ ะนน้ั แลว้ 3.3 คานวณคา่ ของ Num เทา่ กบั A + B 3.4 แสดงคา่ ของ Num 3.5 คานวณคา่ ของ A เทา่ กบั A + 10 4. แสดงคา่ ของ A , B 5. จบการทางาน รหัสเทยี มกบั การทางานแบบเลอื กทา รหัสเทียมสาหรับขัน้ ตอนวิธีการทางานแบบเลือกทา คือ รหสั เทยี ม “IF-THEN- ELSE” โดยใชค้ ารหสั เทียมแทนขอ้ ความอธบิ าย ดงั นี้ รหสั เทียม “IF” แทนขอ้ ความอธบิ ายวา่ “ถา้ ” รหสั เทยี ม “THEN” แทนข้อความอธิบายวา่ “แลว้ ทา” รหัสเทียม “ELSE” แทนขอ้ ความอธบิ ายวา่ “มฉิ ะนน้ั แลว้ ” รหัสเทียมสาหรบั สว่ นของขน้ั ตอนวิธกี ารทางานที่ต้องทา หลงั จากการตรวจสอบเงื่อนไข ใช้รหัสเทยี มตามลกั ษณะการทางานของขน้ั ตอนวิธกี ารทางานนั้น คอื ถา้ เปน็ การทางาน แบบลาดับ รหัสเทียมทใ่ี ชค้ ือ รหัสเทียมสาหรบั การทางานแบบลาดบั ถา้ เปน็ การทางาน แบบเลือกทา รหัสเทยี มท่ใี ชค้ ือ รหสั เทียมสาหรับการทางานแบบเลอื กทา
การเขยี นรหัสเทยี มที่เปน็ รหสั เทียมของการทางานย่อย ภายในการทางานแบบเลอื กทา จะใชย้ ่อหน้าชว่ ยเพื่อให้เห็นชดั เจนว่า เปน็ รหสั เทียมทเ่ี ป็นการทางานยอ่ ยของรหัสเทียม ใด กรณที ่เี ขียนอธบิ ายขน้ั ตอนวิธกี ารทางานไมม่ สี ว่ นของคาอธิบาย “มิฉะนั้นแล้ว” การ เขยี นรหสั เทยี มสาหรับการทางานในกรณีน้ี จะไมม่ สี ่วนของรหัสเทยี ม “ELSE” จากการ อธบิ ายขั้นตอนวิธกี ารทางาน ในลกั ษณะของขอ้ ความต่อไปนี้
ตวั อยา่ งท่ี 6 การเขยี นรหัสเทียมจากการอธิบายขั้นตอนวิธกี ารทางานในลกั ษณะของข้อความ ตวั อยา่ งท่ี 7 การเขียนรหัสเทียมจากการอธบิ ายขนั้ ตอนวิธกี ารทางานในลกั ษณะของข้อความ
ตวั อยา่ งที่ 8 การเขยี นรหสั เทยี มจากการอธบิ ายขั้นตอนวิธกี ารทางานในลกั ษณะของขอ้ ความ
ตัวอยา่ งที่ 9 ร้านจาหน่ายเครอ่ื งใชไ้ ฟฟา้ แห่งหน่ึง มีวธิ ีการให้ลกู คา้ เลือกชาระเงนิ ค่าสนิ คา้ อยู่ 2 วิธคี ือ 1. ซอื้ สนิ ค้าด้วยเงินสด ทางรา้ นคา้ จะมสี ว่ นลดให้ 3% จากราคาสนิ ค้า 2. ซ้ือแบบผอ่ นชาระ โดยทางร้านค้าจะคิดดอกเบย้ี อัตรา 1.5% ตอ่ เดือน โดยใหล้ กู คา้ เลือก จานวนเดอื นที่ตอ้ งการจะผอ่ นชาระ ข้อมูลเข้า คอื ราคาสินค้า และวิธีการทีล่ ูกคา้ ตอ้ งการเลอื กซอื้ สินคา้ ถา้ ลกู ค้าตอ้ งการซอื้ ดว้ ยวิธี ท่ี 1 ขอ้ มูลออกคอื ราคาสินคา้ ที่คดิ สว่ นลดเรยี บร้อยแลว้ ถ้าเลอื กวิธที ่ี 2 ขอ้ มลู ออกคือ จานวนเงินที่ ลกู ค้าตอ้ งผอ่ นชาระเป็นรายเดือน เมื่อ ราคาสินคา้ คอื Price วธิ ีการผอ่ นชาระคอื Choice จานวนเดอื นคอื Month จานวนเงนิ ที่ ตอ้ งจา่ ยคือ Payment
สามารถเขียนเปน็ การอธบิ ายขั้นตอนวธิ ีการทางานในลกั ษณะของขอ้ ความไดด้ งั น้ี
หนว่ ยท่ี 7 โครงสรา้ งผงั งานการทางานแบบทาซา้ โครงสรา้ งผงั งานการทางานแบบทาซา้ การทางานแบบทาซา้ ลักษณะของขั้นตอนวิธกี ารทางาน นอกจากขั้นตอนวิธีการทางานแบบลาดับแลละขน้ั ตอนวิธี แบบเลือกทาแล้ว ยงั มลี ักษณะการทางานของขน้ั ตอนวธิ ีอีกลกั ษณะหน่ึง คอื ขน้ั ตอนวิธกี าร ทางานแบบทาซา้ ขน้ั ตอนวิธกี ารทางานแบบทาซา้ ใชส้ าหรับกรณที ีต่ อ้ งการทากระบวนการตา่ ง ๆ ซา้ กนั หลายครงั้ โดยมกี ารตรวจสอบเงอื่ นไขสาหรับการตดั สนิ ใจ เพ่ือเขา้ สขู่ ัน้ ตอนของการ ทาซ้า หรือออกจากข้ันตอนของการทาซา้ การเขียนขนั้ ตอนวธิ ีสาหรับการทางานแบบทาซา้ ไดร้ บั การพฒั นามาจากโครงสรา้ งผงั งานการทาซา้ วิธกี ารเขยี นอธิบายขั้นตอนวิธกี ารทางานและรหัสเทยี มสาหรบั โครงสรา้ งผังงานแบบทาซา้ มี วิธกี ารเขียนตา่ งไปจากการทางานแบบลาดบั และแบบเลือกทา แตบ่ างครง้ั การทางานของ ข้ันตอนวธิ ีการแก้ปัญหาทม่ี ีข้นั ตอนวิธกี ารทางานแบบทาซา้ อาจประกอบด้วยขั้นตอนวธิ กี าร ทางานแบบลาดบั หรอื ข้ันตอนวิธีการทางานแบบเลอื กทารว่ มอย่ใู นข้ันตอนวธิ กี ารทางาน ดังนั้น การเขียนอธิบายขัน้ ตอนวธิ กี ารทางานแบบทาซา้ จะใชก้ ารเขียนอธบิ ายข้ันตอน สาหรับ ขั้นตอนวิธกี ารทางานในลักษณะนัน้ การเขยี นขนั้ ตอนวธิ ีสาหรบั การทางานแบบทาซา้ ลกั ษณะของการทางานแบบทาซ้า มลี กั ษณะการทางานอยู่ 2 ลักษณะคือ 1. ทาการตรวจสอบเง่ือนไขกอ่ นการทาซ้าหรือ ทาในขณะท่ี ( Do – While ) 2. ทาการตรวจสอบเงื่อนไขหลงั จากการทาซา้ หรือทาจนกระทง่ั ( Do – Until ) โครงสร้างผงั งานการทาซา้ มอี ยู่ 2 ลักษณะคอื ทาซา้ ในขณะที่ และ ทาซา้ จนกระทัง่ ลักษณะ การทางานของโครงสร้างผังงานการทาซา้ ท้งั 2 มีการทางานที่แตกต่างกนั ดงั นนั้ วิธีการเขียน อธบิ ายข้ันตอนวิธีการทางานและรหัสเทยี มสาหรับการทาซ้าในแตล่ ะลกั ษณะ จงึ มคี วามแตกต่าง
กนั การเขยี นขนั้ ตอนวธิ ีสาหรบั การทางานแบบทาซา้ ลกั ษณะทาในขณะท่ี การเขียนขนั้ ตอนวธิ กี ารทางานสาหรบั การทาซา้ ลกั ษณะทาในขณะที่ ใช้ขอ้ ความสาหรบั การ อธบิ าย คือ “ในขณะท”่ี หรอื “ตราบใดท”่ี จากน้นั ตามดว้ ยเงอ่ื นไขทใ่ี ชส้ าหรบั การตดั สนิ ใจ เพื่อเขา้ ส่ขู ั้นตอนการทาซ้า ตามด้วยคาอธบิ าย “ทา” หลงั จากนนั้ คอื ข้นั ตอนวิธีการทางาน ท้งั หมดท่ตี อ้ งการทาซ้า ถา้ ผลจากการตรวจสอบเงอื่ นไขเปน็ จรงิ จากส่วนของผงั งานทมี่ ีโครงสรา้ งผังงานการทาซ้า ลักษณะทาในขณะที่ สามารถทาการเขียนเป็นการอธิบายข้นั ตอนวิธกี ารทางานในลกั ษณะของขอ้ ความได้ดงั นี้ 1. ในขณะท่ี เงื่อนไข ทา 1.1 Process 1 การเขยี นอธบิ ายขนั้ ตอนวธิ กี ารทางานยอ่ ยท่อี ย่ภู ายใตก้ ารทาซ้า ขนึ้ อยกู่ บั ลกั ษณะการทางาน ของกระบวนการทางานยอ่ ยท่อี ยภู่ ายใต้การทาซ้า ถ้าเปน็ ลกั ษณะการทางานแบบลาดบั ก็ใช้ การเขียนอธิบายข้ันตอนวธิ กี ารทางานสาหรบั การทางานแบบลาดบั ถา้ เปน็ ลกั ษณะการทางาน แบบเลอื กทา กใ็ ชก้ ารเขยี นอธบิ ายการทางานแบบเลอื กทา
Search