Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

ในบทนี้จะแนะนาเกี่ยวกับเครื่องมือที่ใช้ในการออกแบบอัลกอริทึม คือการออกแบบกระบวนการแก้ไข

ปัญหาที่อธิบายในรูปแบบขั้นตอนการทางานที่ชัดเจน เครื่องมือที่ใช้ในการออกแบบอัลกอริทึมที่นิยมใช้คือ
ผังงาน หรือ โฟลชาร์ต (Flowchart) และโค้ดรหัสเทียม หรือ ซูโดโค้ด (Pseudo Code)

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

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

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

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

การออกแบบอัลกอริทึม 2 การเขียนโปรแกรมคอมพิวเตอร์
สัญลักษณ์ที่ใช้ในการออกแบบผังงาน
สัญลักษณ์มาตรฐานที่ใช้ในการออกแบบผังงานมีดังแสดงในตารางที่ 2-1
ตารางที่ 2-1 สัญลักษณ์ที่ใช้ในการออกแบบผังงาน
สัญลักษณ์ ความหมายในการใช้งาน
ใช้สาหรับแสดงจุดเริ่มต้น หรือจุดสิ้นสุดการทางานของผังงาน เช่น
จุดเริ่มต้น / สิ้นสุด Start End เริ่ม จบ

เส้นเชื่อมโยงสัญลักษณ์ต้องมีลูกศรกากับทุกเส้น เชื่อมโยงเพื่อใช้สาหรับ
เส้นเชื่อมโยง บอกทิศทางการไหลของข้อมูล

ใช้สาหรับกาหนดการประมวลผล หรือกาหนดค่าให้กับตัวแปร เช่น

ประมวลผล RESULT = A+B A = 9, B = 10


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

ในกรณีที่มีหลายเส้นเชื่อมโยงที่ต้องมารวมกันในจุดเดียวกัน ต้องใช้
สัญลักษณ์นี้ทาหน้าทีเ่ ป็นตัวรวมเส้นเชื่อมโยง เช่น
จุดเชื่อมต่อในหน้าเดียวกัน

ในกรณีที่วาดผังงานมากกว่า 1 หน้า แล้วต้องมีเส้นเชื่อมโยงไปยังหน้า


อื่นให้ใช้สัญลักษณ์นี้ในการเชื่อมเส้นความสัมพันธ์ระหว่างหน้า แล้ว
กากับตัวเลขหรือตัวอักษรในสัญลักษณ์เพื่อบอกลาดับการเชื่อมโยง เช่น
จุดเชื่อมต่อต่างหน้า 1 A

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

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

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

รูปแบบการเขียนโค้ดรหัสเทียม
คาสั่งที่ใช้เขียนโค้ดรหัสเทียมแบ่งออกเป็นกลุ่มได้ดังนี้
การอ่านข้อมูล
การอ่านข้อมูลในการเขียนโค้ดรหัสเทียมใช้คาสั่งดังนี้ READ, INPUT หรือ GET ดังแสดงโครงสร้าง
การใช้งานในตัวอย่างที่ 2-1
ตัวอย่างที่ 2-1 โครงสร้างการใช้คาสั่งอ่านข้อมูลในโค้ดรหัสเทียม
READ variable1, variable2
INPUT variable3, variable4
GET variable5, variable6

การออกแบบอัลกอริทึม 4 การเขียนโปรแกรมคอมพิวเตอร์
คาอธิบาย
 READ ใช้สาหรับการอ่านค่าที่มีอยู่แล้วมาเก็บไว้ในตัวแปร
 INPUT และ GET ใช้สาหรับการรับค่าข้อมูลผ่านทางแป้นพิมพ์
 variablexxx ตัวแปรที่ใช้สาหรับเก็บข้อมูลรับเข้ามา สามารถประกาศพร้อมกันหลายตัวแปรก็ได้
แต่ต้องคันด้วย “,” ระหว่างตัวแปรที่ต้องการเก็บข้อมูล
การแสดงข้อมูล
การแสดงข้อมูลในการเขียนโค้ดรหัสเทียมใช้คาสั่งดังนี้ DISPLAY, PRINT, PROMPT หรือ WRITE ดัง
แสดงโครงสร้างการใช้งานในตัวอย่างที่ 2-2
ตัวอย่างที่ 2-2 โครงสร้างการใช้คาสั่งแสดงข้อมูลในโค้ดรหัสเทียม
DISPLAY variable1, variable2
WRITE variable3, variable4
PRINT variable5, variable6
PROMPT variable7, variable8
คาอธิบาย
 DISPLAY ใช้สาหรับการแสดงผลที่หน้าจอคอมพิวเตอร์
 PRINT และ PROMPT ใช้สาหรับการพิมพ์ข้อความไปยังเครื่องพิมพ์
 WRITE ใช้สาหรับบันทึกข้อมูลลงในไฟล์เอกสาร

การคานวณทางคณิตศาสตร์
การคานวณทางคณิตศาสตร์ในโค้ดรหัสเทียมใช้เครื่องหมาย +, -, *, /, % ในการแสดงรูปแบบการ
ประมวลผลได้เหมือนกับการใช้งานทั่วไป

การเปรียบเทียบค่า
การเปรียบเทียบค่าสองค่าเพื่อใช้สาหรับตรวจสอบเงื่อนไขในการทางานในโค้ดรหัสเทียมใช้สัญลักษณ์
ในการเปรียบเทียบดังแสดงในตารางที่ 2-2
ตารางที่ 2-2 แสดงสัญลักษณ์ในการเปรียบเทียบค่าในโค้ดรหัสเทียม
สัญลักษณ์ คาอธิบาย
== ตรวจสอบสองข้อมูลเท่ากันหรือไม่ เช่น
 IF A == B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขถูกต้อง
 IF A == B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขไม่ถูกต้อง
!= ตรวจสอบสองข้อมูลไม่เท่ากันหรือไม่ เช่น
 IF A != B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขไม่ถูกต้อง
 IF A != B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขถูกต้อง
การเขียนโปรแกรมคอมพิวเตอร์ 5 การออกแบบอัลกอริทึม
สัญลักษณ์ คาอธิบาย
< ตรวจสอบข้อมูลแรกน้อยกว่าข้อมูลที่สองหรือไม่ เช่น
 IF A < B THEN ถ้า A = 9 และ B = 10 แสดงว่าเงื่อนไขถูกต้อง
 IF A < B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขไม่ถูกต้อง
 IF A < B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขไม่ถูกต้อง
<= ตรวจสอบข้อมูลแรกน้อยกว่าหรือเท่ากับข้อมูลที่สองหรือไม่ เช่น
 IF A <= B THEN ถ้า A = 9 และ B = 10 แสดงว่าเงื่อนไขถูกต้อง
 IF A <= B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขถูกต้อง
 IF A <= B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขไม่ถูกต้อง
> ตรวจสอบข้อมูลแรกมากกว่าข้อมูลที่สองหรือไม่ เช่น
 IF A > B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขถูกต้อง
 IF A > B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขไม่ถูกต้อง
 IF A > B THEN ถ้า A = 9 และ B = 10 แสดงว่าเงื่อนไขถูกต้อง
>= ตรวจสอบข้อมูลแรกมากกว่าหรือเท่ากับข้อมูลที่สองหรือไม่ เช่น
 IF A >= B THEN ถ้า A = 9 และ B = 8 แสดงว่าเงื่อนไขถูกต้อง
 IF A >= B THEN ถ้า A = 9 และ B = 9 แสดงว่าเงื่อนไขถูกต้อง
 IF A >= B THEN ถ้า A = 9 และ B = 10 แสดงว่าเงื่อนไขไม่ถูกต้อง

การเปรียบเทียบในรูปแบบตรรกะ
การเปรี ย บเที ย บในรู ป แบบตรรกะเป็ น การตรวจสอบผลของเงื่ อ นไขว่ า มี ค่ า ตรงกั บ รู ปแบบการ
ตรวจสอบตรรกะที่กาหนดหรือไม่ ในโค้ดรหัสเทียมใช้สัญลักษณ์ในการเปรียบเทียบในรูปแบบตรรกะดังแสดง
ในตารางที่ 2-3
ตารางที่ 2-3 แสดงสัญลักษณ์ในการเปรียบเทียบเงื่อนไขแบบตรรกะในโค้ดรหัสเทียม
สัญลักษณ์ คาอธิบาย
AND ต้องการตรวจสอบทั้งสองเงื่อนไขถูกต้องหรือไม่
 IF (A == B) AND (B == C) THEN ถ้า A = 9, B = 9 และ C = 9
ดังนั้น (A == B) เงื่อนไขถูกต้อง และ (B == C) เงื่อนไขถูกต้อง แสดงว่าทาใน
ขั้นตอนถัดไปได้ เนื่องจากทุกเงื่อนไขถูกต้อง
 IF (A == B) AND (B == C) THEN ถ้า A = 9, B = 9 และ C = 8
ดังนั้น (A == B) เงื่อนไขถูกต้อง แต่ (B == C) เงื่อนไขไม่ถูกต้อง แสดงว่าไม่ทา
ในขั้นตอนถัดไป เนื่องจากมีเงื่อนไขใดเงื่อนไขหนึ่งไม่ถูกต้อง

การออกแบบอัลกอริทึม 6 การเขียนโปรแกรมคอมพิวเตอร์
สัญลักษณ์ คาอธิบาย
OR ต้องการตรวจสอบว่าเงื่อนไขใดเงื่อนไขหนึ่งถูกต้องหรือไม่
 IF (A == B) OR (B == C) THEN ถ้า A = 9, B = 9 และ C = 9
ดังนั้น (A == B) เงื่อนไขถูกต้อง และ (B == C) เงื่อนไขถูกต้อง แสดงว่าทาใน
ขั้นตอนถัดไปได้ เนื่องจากทั้งสองเงื่อนไขถูกต้อง
 IF (A == B) OR (B == C) THEN ถ้า A = 9, B = 9 และ C = 8
ดังนั้น (A == B) เงื่อนไขถูกต้อง แต่ (B == C) เงื่อนไขไม่ถูกต้อง แสดงว่าทาใน
ขั้นตอนถัดไปได้ เนื่องจากมีเงื่อนไขใดเงื่อนไงหนึ่งถูกต้อง
 IF (A == B) OR (B == C) THEN ถ้า A = 8, B = 9 และ C = 8
ดังนั้น (A == B) เงื่อนไขไม่ถูกต้อง และ (B == C) เงื่อนไขไม่ถูกต้อง แสดงว่าไม่
ทาในขั้นตอนถัดไป เนื่องจากไม่มีเงื่อนไขใดเงื่อนไขหนึ่งถูกต้อง
NOT เปลี่ยนการตรวจสอบเงื่อนไข
 IF NOT(A == B) THEN มีความหมายคือ ถ้า A ไม่เท่ากับ B เงื่อนไขถูกต้อง
 IF NOT(A != B) THEN มีความหมายคือ ถ้า A เท่ากับ B เงื่อนไขถูกต้อง

การกาหนดเงื่อนไขในการตัดสินใจ
การกาหนดการตรวจสอบเงื่ อนไขเพื่ อ ใช้ ในการตั ดสิ น ใจในการทางานในโค้ด รหั ส เที ยมใช้ ค าสั่ ง
IF … THEN … ELSE IF ….. ELSE … ENDIF ดังแสดงโครงสร้างการใช้งานในตัวอย่างที่ 2-3
ตัวอย่างที่ 2-3 โครงสร้างการใช้คาสั่งตรวจสอบเงื่อนไขในโค้ดรหัสเทียม
IF <เงื่อนไขตรวจสอบที่ 1> THEN
สิ่งที่ทาเมื่อเงื่อนไขที่ 1 ถูกต้อง
ELSE IF <เงื่อนไขตรวจสอบที่ 2> THEN
สิ่งที่ทาเมื่อเงื่อนไขที่ 2 ถูกต้อง
ELSE
สิ่งที่ทาเมื่อเงื่อนไขที่ 1 และ 2 ไม่ถูกต้อง
ENDIF
คาอธิบาย
 IF … THEN กาหนดการตรวจสอบเงื่อนไข และถ้าการตรวจสอบเงื่อนไขถูกต้องจะทาในส่วนที่
อยู่หลัง THEN
 <เงื่อนไขตรวจสอบ> เงื่อนไขที่ใช้สาหรับการตัดสินในการทางาน
 ELSE IF … THEN กาหนดการตรวจสอบเงื่อนไขในลาดับถัดมา ถ้าเงื่อนไขก่อนหน้าไม่ถูกต้อง

การเขียนโปรแกรมคอมพิวเตอร์ 7 การออกแบบอัลกอริทึม
 ELSE กาหนดให้ทางานในกรณีการตรวจสอบเงื่อนไขก่อนหน้าทุกเงื่อนไขไม่ถูกต้อง จะทา
คาสั่งในส่วนนี้
 ENDIF กาหนดให้เป็นจุดสิ้นสุดการตรวจสอบเงื่อนไข
ตัวอย่างการใช้ IF … THEN …. ELSE IF … ELSE … ENDIF ในการตรวจสอบแสดงผลเกรดจากคะแนน
ที่ป้อนเข้ามา ดังแสดงการออกแบบโค้ดรหัสเทียมในตัวอย่างที่ 2-4
ตัวอย่างที่ 2-4 การใช้งาน IF … THEN …. ELSE IF … ELSE … ENDIF ในรูปแบบโค้ดรหัสเทียม
1 INPUT SCORE
2 IF (SCORE >= 80)
3 DISPLAY “A”
4 ELSE IF (SCORE >= 75)
5 DISPLAY “B+”
6 ELSE IF (SCORE >= 70)
7 DISPLAY “B”
8 ELSE IF (SCORE >= 65)
9 DISPLAY “C+”
10 ELSE IF (SCORE >= 60)
11 DISPLAY “C”
12 ELSE IF (SCORE >= 55)
13 DISPLAY “D+”
14 ELSE IF (SCORE >= 50)
15 DISPLAY “D”
16 ELSE DISPLAY “F”
17 ENDIF
การทางานแบบวนซาแบบตรวจสอบเงื่อนไขหลังจากทางานภายในลูปคาสั่งแล้ว
การกาหนดให้มีการทางานแบบวนซ้าแล้ว ตรวจสอบเงื่อนไขภายหลังการทางานในโค้ดรหัสเทียมใช้
คาสั่ง REPEAT … UNTIL ในการทางานแบบวนซ้าและตรวจสอบเงื่อนไขภายหลัง ดังแสดงโครงสร้างการใช้
งานในตัวอย่างที่ 2-5
ตัวอย่างที่ 2-5 โครงสร้างการใช้คาสั่งแบบวนซ้าตรวจสอบเงื่อนไขภายหลังในรูปแบบโค้ดรหัสเทียม
REPEAT
สิ่งที่ทาในการวนซ้า
UNTIL <เงื่อนไขตรวจสอบ>

การออกแบบอัลกอริทึม 8 การเขียนโปรแกรมคอมพิวเตอร์
คาอธิบาย
 REPEAT กาหนดขอบเขตเริ่มต้นในการทางานแบบวนซ้า
 UNITL <เงื่อนไขตรวจสอบ> กาหนดจุดสิ้น สุดในการวนซ้าพร้อมทั้งตรวจสอบเงื่อนไขว่ายังถูกต้ อง
หรือไม่ ถ้ายังถูกต้องให้วนกลับไปทางานในส่วน REPEAT ซ้าอีกครั้ง แต่
ถ้าเงื่อนไขไม่ถูกจะทาการจบการทางานแบบวนซ้า
ตัวอย่างในการทาวนซ้าการทางานจาก 0 ถึง 10 ด้วย REPERT .. UNITL ดังแสดงในรูปที่ 2-6
ตัวอย่างที่ 2-6 การใช้งาน REPEAT … UNITL ในรูปแบบโค้ดรหัสเทียม
1 count = 0
2 REPEAT
3 DISPLAY count
4 count = count + 1
5 UNITL (count != 10)
การทางานแบบวนซาแบบตรวจสอบเงื่อนไขก่อนทางานภายในลูปคาสั่ง
การทางานแบบวนซ้าแบบตรวจสอบเงื่อนไขก่อนทางานภายในลูปคาสั่ง ในโค้ดรหัสเทียมใช้ คาสั่ ง
WHILE … ENDWHILE ดังแสดงโครงสร้างการใช้งานในตัวอย่างที่ 2-7
ตั วอย่า งที่ 2-7 โครงสร้ างการทางานแบบวนซ้าแบบตรวจสอบเงื่ อนไขก่อนทางานภายในลู ป ในรู ป แบบ
โค้ดรหัสเทียม
WHILE <เงื่อนไขตรวจสอบ>
สิ่งที่ทาในการวนซ้า
ENDWHILE
คาอธิบาย
 WHILE <เงื่อนไขตรวจสอบ> กาหนดขอบเขตเริ่มต้นในการทางานแบบวนซ้า และตรวจสอบเงื่อนไขว่า
ถูกต้องหรือไม่ ถ้าเงื่อนไขถูกต้องให้ทาคาสั่งภายในลูป WHILE
 ENDWHILE กาหนดขอบเขตสิ้นสุดในการทางานแบบวนซ้าในรูปแบบ WHILE เมื่อถึง
คาสั่ งนี้ แล้ ว จะกลั บไปทางานในคาสั่ง WHILE อีกครั้งเพื่อตรวจสอบว่า
เงื่อนไขยังถูกต้องอยู่หรือไม่ ถ้าถูกต้องจะทาในลูป WHILE ต่อ

การเขียนโปรแกรมคอมพิวเตอร์ 9 การออกแบบอัลกอริทึม
ตัวอย่างในการทาวนซ้าการทางานจาก 0 ถึง 10 ด้วย WHILE … ENDWHILE ดังแสดงในรูปที่ 2-8
ตัวอย่างที่ 2-8 การใช้งาน WHILE … ENDWHILE ในรูปแบบโค้ดรหัสเทียม
1 count = 0
2 WHILE (count != 10)
3 DISPLAY count
4 count = count + 1
5 ENDWHILE
การท างานแบบวงซาแบบกาหนดการเพิ่ ม หรื อ ลดข้ อมู ล ส าหรั บ ใช้ ใ นการตรวจสอบ และ
ตรวจสอบเงื่อนไขภายในคาสั่งการวนซา
การทางานแบบวนซ้าแบบกาหนดขอบเขตการเพิ่มหรือลดข้อมูล สาหรับใช้ในการตรวจสอบ และ
ตรวจสอบเงื่อนไขภายในคาสั่งวนซ้า ในโค้ดรหัสเทียมใช้คาสั่ง FOR … ENDFOR
การท างานในรู ป แบบนี้ จ ะก าหนดค่ า เริ่ ม ต้ น ก่ อ นเริ่ ม วนลู ป ในการท างาน เช่ น count = 0 คื อ
กาหนดให้ตัวแปร count เป็นตัวแปรทาหน้าที่เก็บค่าในการตรวจสอบในการวนซ้าพร้อมทั้งกาหนดค่าเริ่มต้น
ให้ตัวแปรนี้คือ 0 แล้วต้องกาหนดค่าสุดท้ายในการทางาน เช่น 10 หมายความว่าตัวแปร count จะต้องถูก
เพิ่มขึ้นไปเลื่อยๆ จนถึงค่า 10 แล้วลูปการทางานแบบวนซ้าจะหยุดการทางาน ดังแสดงโครงสร้างการใช้งานใน
ตัวอย่างที่ 2-9
ตัวอย่างที่ 2-9 โครงสร้างการใช้คาสั่งแบบวนซ้า FOR … ENDFOR ในรูปแบบโค้ดรหัสเทียม
FOR <variable> = ค่าเริ่มต้น to ค่าสุดท้าย
สิ่งที่ทาในการวนซ้า
ENDFOR
คาอธิบาย
FOR กาหนดขอบเขตเริ่มต้นในการทางานแบบวนซ้า
<variable> ตัวแปรที่ใช้สาหรับการตรวจสอบในการวนซ้าในการทางาน
ค่าเริ่มต้น ค่าเริ่มต้นในการทางานในวนซ้า
ค่าสุดท้าย ค่าสุดท้ายที่ใช้สาหรับตรวจสอบเพื่อหยุดการวนซ้า
ตัวอย่างในการทาวนซ้าการทางานจาก 0 ถึง 10 ด้วย FOR … ENDFOR ดังแสดงในรูปที่ 2-10
ตัวอย่างที่ 2-10 การใช้งาน FOR … ENDFOR ในรูปแบบโค้ดรหัสเทียม
1 FOR (count = 1 to 10)
2 DISPLAY count
3 ENDFOR

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

การออกแบบอัลกอริทึมในชีวิตประจาวัน
การท างานหลายอย่ า งในชี วิ ต ประจ าวั น จะมี ลั ก ษณะที่ เ ป็ น ล าดั บ ขั้ น ตอน เพื่ อ เป็ น การสร้ า ง
ความคุ้ น เคยกั บ สั ญ ลั ก ษณ์ รู ป ภาพต่ า งๆ ที่ ใ ช้ ส าหรั บ การออกแบบผั ง งาน จึ ง ล าดั บ ขั้ น ตอนในการใช้
ชีวิตประจาวันมาเป็นตัวอย่างในการออกแบบผังงาน ดังแสดงตัวอย่างเกี่ยวกับการส่งจดหมายดังนี้
ตัวอย่างที่ 2-11 ผังงานแสดงขั้นตอนการส่งจดหมาย

รูปที่ 2-1 แสดงผังงานลาดับขั้นตอนการการส่งจดหมาย

การเขียนโปรแกรมคอมพิวเตอร์ 11 การออกแบบอัลกอริทึม
ตัวอย่างที่ 2-12 ผังงานและโค้ดรหัสเทียมตรวจสอบเงื่อนไขเกี่ยวกับแสดงปริมาณการรับประทานยาตามอายุ
มีข้อกาหนดังนี้
 อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา
 อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา
 อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา
 แรกเกิดถึง 1 ปี ห้ามรับประทาน
เริ่มต้น

อายุ > 10 ปี ใช่ รับประทานครั้งละ 2 ช้อนชา


ไม่ใช่
ใช่
อายุ > 3 ปี รับประทานครั้งละ 1 ช้อนชา
ไม่ใช่
ใช่
อายุ > 1 ปี รับประทานครั้งละ ½ ช้อนชา
ไม่ใช่
ห้ามรับประทาน

จบ
รูปที่ 2-2 แสดงผังงานแสดงปริมาณการับประทานยาตามอายุ
1 INPUT Age
2 IF (Age > 10) THEN
3 DISPLAY “รับประทานครั้งละ 2 ซ้อนชา”
4 ELSE IF (Age > 3) THEN
5 DISPLAY “รับประทานครั้งละ 1 ซ้อนขา”
6 ELSE IF (Age > 1) THEN
7 DISPLAY “รับประทานครั้งละ 1/2 ซ้อนชา”
8 ELSE DISPLAY “ห้ามรับประทาน”
9 ENDIF
รูปที่ 2-3 แสดงโค้ดรหัสเทียมแสดงปริมาณการรับประทายยาตามอายุ

การออกแบบอัลกอริทึม 12 การเขียนโปรแกรมคอมพิวเตอร์
ตั ว อย่ า งที่ 2-14 ผั ง งานและโค้ ด รหั ส เที ย มอ่ า นค่ า ข้ อ มู ล เข้ า มาเก็ บ ไว้ ใ นตั ว แปร A และ B แล้ ว ท าการ
เปรียบเทียบข้อมูลในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้
 ถ้าข้อมูลใน A มากกว่า B ให้คานวณหาค่า result = A - B
 ถ้าข้อมูลใน B มากกว่าหรือเท่ากับ A ให้คานวณหาค่า result = A + B

รูปที่ 2-5 แสดงผังงานตรวจสอบเงื่อนไขและทางานตามรูปแบบที่กาหนด


1 INPUT A, B
2 IF (A > B) THEN
3 result = A+B
4 ELSE result = A-B
5 ENDIF
6 DISPLAY result
รูปที่ 2-6 แสดงโค้ดรหัสเทียมตรวจสองเงื่อนไขและทางานตามรูปแบบที่กาหนด

การเขียนโปรแกรมคอมพิวเตอร์ 13 การออกแบบอัลกอริทึม
ตัวอย่าง 2-15 ผังงานและโค้ดรหัสเทียมการทางานาแบบวนซ้าในการบวกเลขตั้งแต่ 0 ถึง 99 จึงหยุดการบวก

รูปที่ 2-7 แสดงผังงานการทางานแบบวนซ้าในการบวกเลขตั้งแต่ 0 ถึง 99

1 count = 0, result = 0
2 WHILE (count < 100)
3 result = result + 1
4 DISPLAY result
5 count = count + 1
6 ENDWHILE
รูปที่ 2-8 แสดงโค้ดรหัสเทียมวนซ้าในการบวกเลขตั้งแต่ 0 ถึง 99

การออกแบบอัลกอริทึม 14 การเขียนโปรแกรมคอมพิวเตอร์
ตัวอย่าง 2-16 ผังงานและโค้ดรหัสเทียมตรวจสอบอุณหภูมิในโรงเรือนแล้วปิดพัดลม มีเงื่อนไขดังนี้
 อุณหภูมิน้อยกว่า 32 องศาเซลเซียส (°C) ให้พัดลมหยุดการทางาน
 อุณหภูมิอยู่ในช่วง 32 – 35 องศาเซลเซียสให้พัดลมเปิด 5 นาที แล้วปิด 5 นาทีสลับไปเลยๆ
 อุณหภูมิเกินกว่า 35 องศาเซลเซียสให้เปิดพัดลมตลอดเวลา

รูปที่ 2-9 แสดงผังงานควบคุมการทางานพัฒนาตามค่าอุณหภูมิ

การเขียนโปรแกรมคอมพิวเตอร์ 15 การออกแบบอัลกอริทึม
1 INPUT Temp
2 IF Temp < 32 THEN
3 Fan = OFF
4 ELSE IF (Temp >= 32) AND (Temp <= 35) THEN
5 IF (Time == 5) THEN
6 IF (Fan == ON) THEN
7 Fan = OFF
8 ELSE Fan = ON
9 Time = 0
10 ENDIF
11 ELSE Time = Time + 1
12 ENDIF
13 ELSE Fan = ON
14 ENDIF
15 DISPLAY Fan
รูปที่ 2-10 แสดงโค้ดรหัสเทียมควบคุมการทางานพัฒนาตามค่าอุณหภูมิ

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

การออกแบบอัลกอริทึม 16 การเขียนโปรแกรมคอมพิวเตอร์
แบบฝึกหัดบทที่ 2
1. ให้เขียนผังงานและโค้ดรหัสเทียมรับค่าสองค่าแล้วให้ทาการเปรียบเทียบว่าค่าไหนมีค่าน้อยที่สุด แล้วให้
แสดงค่าที่น้อยที่สุดออกมาที่หน้าจอ
2. ให้เขียนผังงานและโค้ดรหัสเทียมเปลี่ยนสีของความต้านทานให้เป็นค่าตัวเลขของค่าความต้านทาน โดยให้
รับเพียง 1 ค่าสีเพื่อทาการเปลี่ยนให้เป็นค่าตัวเลขของค่าความต้านทาน
3. ให้เขียนผังงานและโค้ดรหัสเทียมรับค่าจานวน 10 จานวน แล้วนาข้อมูลมาทาการจัดเรียงจากน้อยไปหา
มาก
4. ให้เขียนผังงานและโค้ดรหัสเทียมเปลี่ยนค่าตัวเลขจานวนเต็มที่รับเข้ามา (หน่วยนาที) ให้เป็นเวลาหน่วย
ชั่วโมง และนาที
5. ให้เขียนผังงานและโค้ดรหัสเทียมคานวณการทอนเงิน ให้รับข้อมูลตัวเลขเข้ามา 2 จานวนคือ ยอดเงินที่
ลูกค้าซื้อ และจานวนเงินที่ลูกค้าจ่าย แล้วให้คานวณว่าต้องถอนแบงก์ 1000, 500, 100, 50, 20 เหรียญ
10, 5, 2, 1, 0.50 และ 0.25 บาท จานวนอย่างละเท่าไร
6. ให้เขียนผังงานและโค้ดรหัสเทียมบังคับรถให้เดินตามเส้นสีดาด้วยการใช้เซ็นเซอร์จะมีตัวรับและตัวส่ง โดย
ถ้าเป็นพื้นที่ขาวตัวรับจะสามารถรับแสงจากตัวส่งได้เสมอเนื่องจากแสงจากตัวส่งสามารถสะท้อนกลับมาได้
แต่ถ้าเป็นพื้นสีดาตัวรับจะไม่ได้รับสัญญาณจากตัวส่ง เนื่องจากแสงไม่สามารถสะท้อนกลับมาได้ ดังนั้นจะ
ใช้เซ็นเซอร์ 2 ตัวติดอยู่ด้านข้างของรถ โดยมีเงื่อนไขดังนี้
 ถ้าเซ็นเซอร์ทั้งสองตัวรับค่าสะท้อนกลับได้ให้มอเตอร์ทั้งซ้ายและขวาทางาน
 ถ้าเซ็นเซอร์ซ้ายได้รับสัญญาณสะท้อนกลับ และเซ็นเซอร์ขวาไม่ได้รับสัญญาณสะท้อนกลับ ให้รถ
หันซ้ายด้วยการให้เฉพาะมอเตอร์ขวาทางาน
 ถ้าเซ็นเซอร์ซ้ายไม่ได้รั บสัญญาณสะท้อนกลับ และเซ็นเซอร์ขวาได้รับสัญญาณสะท้อนกลับให้รถ
หันขวาด้วยการให้เฉพาะมอเตอร์ซ้ายทางาน
 ถ้าเซ็นเซอร์ทั้งสองตัวไม่ได้รับสัญญาณสะท้อนให้รถหยุดเดินด้วยการกาหนดให้มอเตอร์ซ้าย และ
ขวาหยุดทางาน

การเขียนโปรแกรมคอมพิวเตอร์ 17 การออกแบบอัลกอริทึม

You might also like