The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by krusasiraphak, 2019-06-04 00:35:07

หน่วยที่ 1 หลักการเขียนโปรแกรมและวิเคราะห์งาน

subject1

บทที่ 1
ความร้เู บอ้ื งตน้ เกีย่ วกบั การเขยี นโปรแกรม

ข้ันตอนการพัฒนาโปรแกรม
การเขียนโปรแกรมคอมพวิ เตอร์ใหท้ างานได้ตามทเี่ ราต้องการน้ัน ผู้เขยี นโปรแกรมจะตอ้ งรู้วา่ จะใหโ้ ปรแกรม
ทาอะไร มขี อ้ มลู อะไรท่ีตอ้ งใหโ้ ปรแกรมทาบา้ ง และตอ้ งการอะไรจากโปรแกรมรวมทั้งรปู แบบการแสดงผล
ดว้ ย โดยท่ัวไปแล้วขนั้ ตอนการพฒั นาโปรแกรมแบง่ ข้นั ตอนการเขยี นโปรแกรมออกไดเ้ ปน็ 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)
หลังจากวิเคราะห์ปัญหาแล้ว ขั้นตอนถัดไปคือ การออกแบบโปรแกรม โดยใช้เครื่องมือมาช่วยในการ
ออกแบบ ในขั้นตอนนี้ยังไม่ได้เป็นการเขียนโปรแกรมจริง ๆ แต่จะช่วยให้การเขียนโปรแกรมทาได้ง่ายขึ้น โดย
สามารถเขียนตามข้ันตอนที่ได้ออกแบบไว้ในข้ันตอนนี้ และช่วยให้การเขียนโปรแกรมมีข้อผิดพลาดน้อยลง
ช่วยตรวจสอบการทางานของโปรแกรม ทาให้ทราบข้ันตอนการทางานของโปรแกรมได้อย่างรวดเร็ว โดยไม่
ต้องไปไล่ดูจากตัวโปรแกรมจริง ๆ ซ่ึงถ้าเปรียบเทียบการเขียนโปรแกรมเหมือนกับการสร้างบ้านแล้ว ใน
ข้ันตอนการออกแบบโปรแกรมนี้ ก็เปรียบเหมือนการสร้างแปลนบ้านลงในกระดาษไว้ ซ่ึงในการสร้างบ้านจริง
ก็จะอาศยั แปลนบา้ นนี้เป็นต้นแบบในการสรา้ งนน่ั เอง

2

ในขั้นตอนการออกแบบโปรแกรมนี้ เป็นการออกแบบการทางานของโปรแกรม หรือข้ันตอนในการ
แก้ปัญหา ซ่ึงผู้ออกแบบสามารถเลือกใช้เคร่ืองมือมาช่วยในการออกแบบได้ โดยเครื่องมือที่ใช้ในการออกแบบ
โปรแกรมมอี ยู่หลายอย่าง ซ่งึ วธิ ีการซึ่งเปน็ ที่นยิ มสาหรบั ใช้ในการออกแบบโปรแกรม เชน่

• อลั กอรทิ มึ (Algorithm)
• ผังงาน (Flowchart)
• รหสั จาลอง (Pseudo-code)
• แผนภมู โิ ครงสร้าง (Structure Chart)

อัลกอริทึมเป็นเคร่ืองมือที่ช่วยในการออกแบบโปรแกรม โดยใช้ข้อความที่เป็นภาษาพูดในการอธิบายการ
ทางานของโปรแกรมที่เป็นลาดับขั้น ตอน จะข้ามไปข้ามมาไม่ได้ นอกจากจะต้องเขียนส่ังไว้ต่างหาก ตัวอย่าง
อลั กอริทึมง่าย ๆ ที่พบเหน็ ในชีวิตประจาวนั ได้แก่ อัลกอรทิ มึ การแปรงฟนั

เริ่มจากการบ้วนปากด้วยน้าเปล่า 1 ครั้ง หยิบแปรงสีฟันและยาสีฟัน บีบยาสีฟันลงไปบนแปรงสี
ฟนั น้าแปรงสีฟันมาแปรงทีฟ่ ันจนท่วั และสะอาด บว้ นฟองยาสีฟันออก ใชน้ ้าลา้ งปากจนฟองยาสฟี ันหมด
ไป จากนนั้ ลา้ งแปรงสฟี นั ให้สะอาดและเกบ็ ไวท้ เี่ ดิม

ในการเขียนอัลกอริทึมน้ี แม้จะมีความชัดเจนอยู่ในตัวแล้ว แต่ก็มีจุดอ่อนอยู่ที่ ข้อความอธิบาย
ค่อนข้างเยิ่นเยอ้ และถ้าผ้เู ขียนใช้สานวนที่อา่ นยาก กอ็ าจทาให้ผอู้ ่านไม่เขา้ ใจขั้นตอนการทางานของโปรแกรม
ได้ ดังนัน้ จึงมกี ารคิดค้นเครือ่ งมืออนื่ ทชี่ ่วยในการออกแบบโปรแกรมแทนอลั กอริทมึ ไดแ้ ก่ ผังงาน รหัสจาลอง
แผนภมู ิโครงสรา้ ง

ผงั งานเปน็ เครอ่ื งมอื ท่ชี ว่ ยในการออกแบบโปรแกรม โดยใชส้ ัญลักษณ์รูปภาพ แสดง ข้นั ตอนการเขยี น
โปรแกรม หรือข้ันตอนในการแก้ปัญหาทีละขั้น และมีเส้นท่ีแสดงทิศทางการไหลของข้อมูล ตั้งแต่จุดเร่ิมต้น
จนกระทั่งได้ผลลัพธ์ตามที่ต้องการ ซ่ึงจะทาให้ผู้อ่านสามารถอ่านและทาความเข้าใจได้โดยง่าย
รหัสจาลองจะมีการใชข้ ้อความท่ีเป็นภาษาอังกฤษหรือภาษาไทยก็ได้ ในการแสดงขั้นตอนการแก้ปญั หา แต่จะ
มีการใช้คาเฉพาะ (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

4. ข้อมูลท่ีเป็นตัวเลขและตัวอักษร เป็น การตรวจสอบว่า ถ้าโปรแกรมให้ผู้ใช้ป้อนข้อมูลในฟิลด์ท่ี
ต้องรับข้อมูลที่เป็นตัวเลข อย่างเช่น ฟิลด์ท่ีเป็นจานวนเงิน ก็ควรจะยอมให้ผู้ใช้ป้อนข้อมูลได้เฉพาะตัวเลข
เท่านั้น ไม่อนุญาตให้ใส่ตัวอักษรในฟิลด์นั้นได้ หรือถ้าเป็นฟิลด์ท่ีรับข้อมูลท่ีเป็นตัวอักษร เช่น ฟิลด์ชื่อ-
นามสกุล กจ็ ะป้อนข้อมูลไดเ้ ฉพาะตวั อักษรเท่าน้นั จะป้อนตัวเลขไม่ได้

5. ข้อมลู เป็นไปตามข้อกา้ หนด ข้อมูล ท่ีป้อนในฟิลด์ ต้องเปน็ ไปตามท่ีกาหนดไว้แน่นอนแล้วเท่านั้น
เช่น กาหนดให้ฟิลด์น้ีป้อนข้อมูลได้เฉพาะตัวเลขที่อยู่ในกลุ่ม 1,2,5,7 ได้เท่าน้ัน จะป้อนเป็นตัวเลขอื่นที่ไม่อยู่
ในกลุ่มนี้ ไม่ได้

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

2. เอกสารประกอบโปรแกรมส้าหรับผู้เขียนโปรแกรม (Technical Documentation) จะได้ออก
ได้เปน็ 2 สว่ น

· ส่วนที่เป็นคาอธิบายหรือหมายเหตุในโปรแกรม หรือเรียกอีกอย่างหนึ่งว่า คอมเมนท์ (Comment)
ซ่งึ ส่วนใหญ่มักจะเขียนแทรกอยูใ่ นโปรแกรม อธิบายการทางานของโปรแกรมเป็นสว่ น ๆ

· ส่วนอธิบายด้านเทคนิค ซึ่งส่วนน้ีมักจะทาเป็นเอกสารแยกต่างหากจากโปรแกรม จะอธิบายใน
รายละเอียดที่มากข้ึน เช่น ช่ือโปรแกรมย่อยต่าง ๆ มีอะไรบ้าง แต่ละโปรแกรมย่อยทาหน้าที่อะไร และ
คาอธิบายยอ่ ๆ เกีย่ วกบั วัตถปุ ระสงค์ของโปรแกรม

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

อัลกอรทิ ึม (Algorithm)
อัลกอริทึม ( Algorithm ) หมายถงึ ขัน้ ตอนหรอื ลาดับการประมวลผลในการแก้ปัญหาใดปญั หาหนง่ึ

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

อัลกอริทึม (Algorithm) คือ กระบวนการแก้ปัญหาท่ีสามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน

เม่ือนาเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร กระบวนการนี้ประกอบด้วยจะประกอบด้วย วิธีการ เป็นขั้นๆ
และมีส่วนท่ีต้องทาแบบวนซาอีก จนกระทั่งเสร็จส้ินการทางาน Algorithm ไม่ใชค่ าตอบแต่ เป็นชดุ คาส่ังท่ีทา
ใหไ้ ด้คาตอบ วธิ กี ารในการอธบิ าย Algorithm ได้แก่

1. Natural Language อธบิ ายแบบใชภ้ าษาที่เราสอื่ สารกนั ทวั่ ไป
2. Pseudocode อธิบายด้วยรหสั จาลองหรอื รหสั เทยี ม
3. Flowchart อธิบายดว้ ยแผนผงั

การนาข้ันตอนวิธีไปใช้แก้ปัญหา ไม่จากัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับ
ปัญหาอ่นื ๆ ไดเ้ ชน่ เดยี วกนั
หลักการเขยี นอลั กอริทึม

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

6

ตวั อยางที่ 1 การหาผลรวมของตวั เลข N จา้ นวน
Program : Sum
รบั คาจานวนตัวเลขทง้ั หมดเกบ็ ไวทตี่ วั แปร N
กาหนดใหตวั แปรเก็บตวั นบั เริ่มตน I = 1 , เก็บผลรวมเริม่ ต้น Sum = 0

Repeat
รบั คาขอมลู เก็บไวที่ X
นาคาขอมูลทอี่ า่ นไดบวกสะสมไวที่ตัวแปรเก็บผลรวม Sum
เพิ่มคาตวั นับ I ข้นึ อีก
1

Until เปนเลขตวั สดุ ทายจริง ( I > N )
แสดงตัวแปรทเ่ี กบ็ ผลรวมสะสม Sum

End Program

ตวั อยางที่ 2 หาคาสงู สดุ และ ตา่้ สดุ จากตวั เลขทง้ั หมด N จา้ นวน
Program : Max_Min
รับคาจานวนตัวเลขทง้ั หมดเก็บไวที่ตัวแปร N
กาหนดใหตัวแปรเกบ็ ตัวนบั เร่มิ ตน I = 1

อานเลขตัวแรกเกบ็ ไวทตี่ ัวแปร X
กาหนดใหตวั แปร X เปนทั้งคามากทสี่ ดุ และนอยที่สุด
เก็บไวทตี่ วั แปร Max และ Min

Repeat
อานเลขตวั ถัดไป เก็บไวที่ X และเพ่ิมคาตัวนับ I อีก 1

If X>Max Then
เปล่ยี นคาใน Max ใหเก็บค่า X แทน

Else

If X < Min Then
เปล่ียนคาใน Min ใหเกบ็ คา แทน X
End if

End if
ใหคา , xaM = xaMคา xiM = xiM
Until I > n
แสดง ตวั เลขในตัวแปร Max และ Min
End Program

ตวั อย่างเช่น ในการวางแผนการใชท้ รพั ยากรทางธรุ กจิ ขององคก์ ร หรือ Enterprise Resource Planning
( ERP ) เพอ่ื ให้เกดิ การใช้ทรัพยากรอย่างมีประโยชน์สูงสดุ ซึง่ จาเปน็ ตอ้ งวางแผน อยา่ งเปน็ ระบบ เป็นขั้นตอน

จึงจาเปน็ ต้องอาศัย Algorithm ด้วย เพ่ือใหท้ ราบถงึ ขนั้ ตอนตา่ งๆ และสามารถตัดทอนข้นั ตอนทเี่ กินความ
จาเปน็ อีกทัง้ ยงั สามารถปรับปรุง และเพิ่มเตมิ ขนั้ ตอนใหม่ เขา้ ไปได้ ชว่ ยลดความสบั สนขณะทางานด้วย

อ้างองิ
www.kruworawat.com/unit2.pdf
http://th.wikipedia.org/wiki

รหสั เทียม (Psuedocode)
การเขียนข้ันตอนวิธีโดยการใช้ภาษาธรรมชาติอาจมีความกากวมหรือยืดยาวเกินไป ทาให้เกิด การ

ผิดพลาดได้ง่าย ส่วนการใช้โปรแกรมภาษาอาจมีความเฉพาะจนเกินไป ผู้ท่ีไม่เข้าใจโปรแกรมภาษา ท่ีใช้เขียน
อาจไม่สามารถเข้าใจได้ รหัสเทียมเป็นส่วนผสมของการใช้ภาษาธรรมชาติและโปรแกรมภาษา เพื่อใช้ในการ
สือ่ สารระหวา่ งผูใ้ ช้หลายกลมุ่ ที่มคี วามตอ้ งการใชข้ ั้นตอนวิธตี ่างกันออกไป

รหัสเทียมไมม่ ีกฎในการเขียนตายตวั โดยมากขนึ้ อยู่กับความถนัดของผใู้ ช้ แตม่ ีข้อตกลง บางอย่าง
ร่วมกัน เป็นสากลส่วนประกอบที่สาคัญของรหัสเทียม ได้แก่ ช่ือ คาส่ังกาหนดงาน คาสั่งควบคุม กลุ่มของ
คาสัง่ และขอ้ บันทกึ หรอื คาอธิบาย

ความแตกต่างของ Algorithm และ Pseudo Code
คือ การแสดงความคิดท่ีได้จาก การจินตนาการถึงข้ันตอน ซึ่งขั้นตอนที่อยู่ในความคิดก็คือ

Algorithm ที่ผ่านการแยก และจัดลาดับแล้ว เมื่อนาเสนอก็อาจใช้ภาษางา่ ย ๆ แต่หากนาเสนอด้วยการเขียน
เป็นภาษาที่สื่อให้ทุกคนเข้าใจตรงกัน ได้ง่ายก็คือ Pseudo Code นั้นเอง สาหรับหนังสือหลายเล่มแสดง
Algorithm ดว้ ย Pseudo Code กย็ งั เรยี กวา่ Algorithm ไดเ้ ช่นกนั

หลักการเขยี นซูโดโค้ด
1. ถอ้ ยคาทใ่ี ช้เขยี น ใช้ภาษาอังกฤษทเ่ี ขา้ ใจง่าย
2. ในหน่ึงบรรทดั ใหม้ ีเพียงหน่ึงประโยคคาส่งั
3. ใช้ยอ่ หน้าให้เป็นประโยชน์ ในการแสดงการควบคมุ อยา่ งเป็นสดั ส่วน
4. แตล่ ะประโยคคาสัง่ ใหเ้ ขยี นจากบนลงล่าง และมที างออกทางเดยี ว
5. กลุม่ ของประโยคคาสง่ั อาจรวมเป็นหมวดหมู่แลว้ เรียกใชเ้ ป็นโมดูล

โปรแกรมสว่ นใหญ่ประกอบดว้ ยกจิ กรรม 3 สว่ น
1. การนาเขา้ ขอ้ มูล (input)
2. การประมวลผล (process)
3. การแสดงผลลัพธ์ (output)
เช่น โปรแกรมหาผลรวม หาค่าเฉลย่ี หาคา่ สงู สุด ตา่ สดุ

8

การเขียนรหสั เทียม (Pseudo code)

การปฏิบตั กิ ารของคอมพิวเตอรแ์ บ่งออกเป็น 6 แบบดังนี้

1. การกาหนดค่าให้กับตวั เกบ็ ข้อมลู

1.1 กาหนดคา่ เร่มิ ตน้ คาที่ใช้ Initialize หรอื Set เชน่ Set AA = 500

1.2 กาหนดค่าทเ่ี กิดจากการประมวลผลไว้ทต่ี ัวเกบ็ จะใชเ้ ครือ่ งหมาย =
เชน่ AA = 500 + 1 หรอื BB = 100 หรอื CC = AA
2. การรบั ข้อมูล คาที่ใช้ Read หรอื Get เช่น Read AA
3. การแสดงข้อมูลออก คาท่ใี ช้ Print ,Write , Put , Display , Output เชน่ Print “Hello Owen” หรอื
Print AA
4. การปฏิบตั ิการทางคณติ ศาสตร์ + , - , * , ( ) เชน่ C = (F-32) * 5/9
5. การเปรียบเทยี บและทาการเลอื ก คาทใ่ี ช้ IF, THEN, ELSE เชน่

IF TebbyBear = “My friend” THEN IF TebbyBear = “My friend” THEN
print “Yes My Friend is TebbyBear” print “Yes My Friend is TebbyBear”

END IF ELSE
Print “I’m TebbyBear”
IF Money = 100 THEN
Money = 100 - 30 END IF
print “Result is”
print Money

END IF

6. คอมพิวเตอร์สามารถปฏบิ ตั กิ ารซา้ คาทใี่ ชค้ ือDO WHILE และ END DO เชน่

DOWHILE price < 80 DOWHILE price < 80
print “Please input price” print price
Read price price = price + 1

END DO END DO

ตวั อยา่ งการเขยี นรหสั เทยี ม (Pseudo code)
ตวั อยา่ ง 1 จงเขียนรหสั เทียมเพอื่ เปรียบเทียบคา่ ขอ้ มลู ที่เกบ็ ในตวั แปร xโดยมเี งื่อนไขดังน้ี

 ถ้า x >0 ให้แสดงคาวา่ “Positive Number”
 ถ้า x <0 ใหแ้ สดงคาว่า “Negative Number”
 ถ้า x =0 ใหแ้ สดงคาว่า “Zero Number”

วธิ ที ่ี 1 วธิ ที ่ี 2
เรม่ิ ต้น START

อา่ นคา่ X Read X
IF X>0 THEN IF X>0 THEN

พมิ พ์ “Positive Number” Print “Positive Number”
ELSE ELSE

IF X<0 THEN IF X<0 THEN
พมิ พ์ “Negative Number” Print “Negative Number”

ELSE ELSE
พมิ พ์ “Zero Number” Print “Zero Number”

END IF END IF
END IF END IF

จบงาน STOP

ตวั อยา่ ง 2 จงเขยี นรหสั เทยี มแสดงการเพ่มิ ของข้อมูล ตวั เลขท่เี ก็บอยใู่ นหนว่ ยความจาท่ีแอดเดรส J โดยมคี ่า
เรมิ่ ตน้ จาก 0 ให้ทาการเพมิ่ คา่ ขึน้ ไปเรอ่ื ยๆ ทลี ะ 1 จนกระทั่ง J มีคา่ ขอ้ มูลมากกว่า 100 จงึ จะหยดุ การทางาน

วิธีการแบบ DO WHILE วิธีการแบบ DO UNTIL
START START

Set Y to 0 Set Y to 0
DO WHILE Y<=100 DO

Add 1 to Y Add 1 to Y
END DO UNTIL Y>100
STOP STOP

10

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

เปรยี บเทยี บหาค่าสงู สุด และแสดงค่าสงู สุดทางจอภาพ
8. เขยี นอัลกอรทิ ึม และรหสั เทยี มเพอื่ รับข้อมูลเลขจานวนเตม็ (ตวั แปร X) 1 จานวน พร้อมกบั

ตรวจสอบค่าของตวั แปร X วา่ มคี า่ เปน็ เลขค่หู รอื เลขคี่ ถ้ามคี า่ เปน็ เลขคูจ่ ะพิมพข์ ้อความ “Even” แต่ถา้ เปน็
เลขคีจ่ ะพิมพข์ อ้ ความ “Odd”

ตัวอยา่ งท่ี 1 ทา้ ไข่เจยี ว คา้ ถาม : ตม้ มามา่
ต.ย. อัลกอรทิ มึ ที่ 1 - มีขนั้ ตอนใดสลับกนั ได้
- ถ้าเปลย่ี นขอ้ ความ จะเปลี่ยนอย่างไร
1. หาไขม่ า 2 ฟอง - ถา้ ท้าหลายจานจะทา้ อย่างไร
2. ต้ังกระทะ - ถา้ เพิม่ ใสผ่ ักด้วยจะต้องทา้ ในขนั้ ตอนไหน
3. เปิดไฟเตา
4. ตอกไขใ่ ส่ถว้ ย
5. ตไี ขใ่ หเ้ ขา้ กัน
6. ปรุงรสชาติตามตอ้ งการ
7. เทไข่ลงกระทะ
8. ทอดไข่จนสกุ
9. ตักไขใ่ สจ่ าน

ตัวอยา่ งที่ 2 หาคา่ เฉล่ยี ภาษาจาวา
ต.ย. อลั กอรทิ มึ ท่ี 2 :
byte x;
1. set variable int i = 0;
2. loop int total = 0;
while (i < 10) {
1. read number into x = System.in.read();
variable total = total + x; i++;
}
2. add number to total double avg = total/i;
3. increase counter System.out.println(avg);
3. end loop

4. set average = total / counter
5. print average

ค้าถาม : หาค่าเฉลย่ี 1. เขยี นเป็นภาษาไทยอย่างไร 2. แตล่ ะบรรทัดในจาวาคืออะไร
3. สลับบรรทัดใดในจาวาได้บ้าง

ตวั อย่างท่ี 3 ตม้ มามา่ 20 ถ้วย ค้าถาม
ต.ย. อัลกอรทิ มึ ท่ี : 3
1. เรียกเพอ่ื นท้ัง 20 คน แล้วเปดิ ฝา
1. ซ้อื มาม่าเกาหลี 20 ซอง รบั ประทานพรอ้ มกนั
2. ต้มนา้ 7.5 ลติ รจนเดอื ด
3. ทาซ้า 20 คร้ัง 2. เปดิ ฝาถ้วยทั้ง 20 ฝา แล้วเรยี กเพื่อนมา
3.1 เตรียมถว้ ยและฝาปดิ ถ้วย รับประทานพรอ้ มกัน
3.2 ฉกี ซองมาม่า แลว้ เทลงถว้ ยเปล่า
3.3 ฉกี เครื่องปรงุ แล้วเทลงถ้วยเดมิ
3.4 เทน้าร้อนลงถว้ ยแล้วปดิ ฝา

12

ตวั อย่างที่ 4 รบั ค่า 3 ครง้ั แลว้ หาผลรวม
ต.ย. อัลกอรทิ มึ ท่ี : 4

1. set sum
2. input value1
3. input value2
4. input value3
5. calculate sum = value1 + value2 + value3
6. write sum

ตัวอยา่ งท่ี 5 ใช้เครือ่ งคิดเลขหาผลรวม
ต.ย. อัลกอรทิ มึ ท่ี :5

1. turn on calculator
2. clear calculator
3. repeat the following instructions

3.1 key in baht amount
3.2 key in decimal point(.)
3.3 key in satang amount
4. until all prices have been entered
5. write down total price
6. turn off calculator

ตวั อยา่ งที่ 6 เปรยี บเทียบอายนุ าย ก กับนาย ข แล้วพมิ พ์อายคุ นที่มากกวา่
ต.ย. อลั กอรทิ ึมท่ี :6
1. รบั อายุนาย ก
2. รบั อายนุ าย ข
3. เปรียบเทยี บ อายุนาย ก มากกวา่ อายุนาย ข หรือไม่
3.1 ถา้ มากกว่า
- ให้พิมพอ์ ายุนาย ก
3.2 ถ้าไม่มากกว่า
- ใหพ้ ิมพ์อายุนาย ข

ตวั อยา่ งที่ 7 เปรยี บเทียบอายนุ าย ก กับนาย ข กับนาย ค แลว้ พมิ พอ์ ายุคนที่มากกว่า
ต.ย. อลั กอรทิ มึ ท่ี : 7
1. รบั อายุนาย ก
2. รบั อายนุ าย ข
3. รบั อายุนาย ค
4. เปรยี บเทยี บ อายุนาย ก มากกว่า อายุนาย ข และมากกว่า อายนุ าย ค หรอื ไม่

ถ้ามากกว่า ให้พิมพ์อายนุ าย ก
5. เปรียบเทยี บ อายนุ าย ข มากกว่า อายุนาย ก และมากกวา่ อายุนาย ค หรอื ไม่

ถ้ามากกว่า ใหพ้ มิ พ์อายนุ าย ข
6. เปรยี บเทยี บ อายุนาย ค มากกว่า อายุนาย ก และมากกวา่ อายุนาย ข หรือไม่

ถ้ามากกวา่ ใหพ้ มิ พอ์ ายุนาย ค

ตัวอย่างที่ 8 เปรียบเทียบอายุนาย ก กับนาย ข กบั นาย ค แล้วพมิ พ์อายุคนที่มากกวา่
ต.ย. อลั กอริทมึ ที่ : 8
1. รับอายุนาย ก
2. รับอายุนาย ข
3. รบั อายนุ าย ค
4. เก็บอายนุ าย ก ไวใ้ นใจ
5. เปรยี บเทียบ อายุนาย ข มากกว่าทเ่ี กบ็ ในใจ หรือไม่
ถ้ามากกวา่ ให้เก็บอายนุ าย ข ไวใ้ นใจ
6. เปรียบเทยี บ อายนุ าย ค มากกว่าที่เก็บในใจ หรือไม่
ถา้ มากกว่า ใหเ้ กบ็ อายุนาย ค ไว้ในใจ
7. พมิ พ์คา่ ท่เี กบ็ ไว้ในใจ

Homework

จงเขยี นรหัสเทียม (Pseudo code) ของตวั อย่างที่ 6-8


Click to View FlipBook Version