HomeUncategorizedBasic algorithm | Flowchart

Basic algorithm | Flowchart

หลังจากที่เราจัดลำดับความคิดเป็นข้อๆ ด้วย Natural Language และแปลงเป็นรหัสลำลองแบบ Pseudocode แล้ว สเต็ปสุดท้ายที่ขาดไม่ได้เลยในวิชาวิทยาการคำนวณ ม.1 ก็คือการวาด Flowchart (ผังงาน) ซึ่งครูต้น Seriously Makkkkkk ! ! !

“ภาพหนึ่งภาพ แทนคำพูดได้นับพันคำ”
ในการเขียนโปรแกรมก็เหมือนกัน! บางครั้งการอ่านข้อความยาวๆ หรือโค้ดหลายบรรทัดอาจจะทำให้เรางงและหลงทางได้ โปรแกรมเมอร์จึงมีเครื่องมือสุดเจ๋งที่เรียกว่า Flowchart (ผังงาน) เข้ามาช่วย

Flowchart คืออะไร?

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

ข้อดีของการใช้ Flowchart

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

สัญลักษณ์พื้นฐานของ Flowchart ที่ ม.1 ต้องรู้!

สัญลักษณ์ ชื่อเรียก (Shape) ความหมาย / หน้าที่ในการทำงาน
Start/End
วงรี (Terminal) จุด เริ่มต้น (Start) และ สิ้นสุด (Stop) ของโปรแกรม (ต้องมีเสมอ!)
Input/Output
สี่เหลี่ยมด้านขนาน (Input/Output) การ รับข้อมูลเข้า (Read) และ แสดงผลลัพธ์ (Print) แบบไม่ระบุอุปกรณ์
Process
สี่เหลี่ยมผืนผ้า (Process) การ ประมวลผล หรือ คำนวณ ทางคณิตศาสตร์ (เช่น การบวก ลบ คูณ หาร)
Decision
สี่เหลี่ยมขนมเปียกปูน (Decision) การ ตัดสินใจหรือเงื่อนไข (IF/ELSE) จะมีลูกศรแยกออก 2 ทางเสมอ คือ “จริง (Yes)” และ “เท็จ (No)”
⬇️ ➡️
ลูกศร (Flowline) บอก ทิศทางการทำงาน ของโปรแกรม ว่าให้ไหลจากจุดไหนไปจุดไหน

ลองเปลี่ยนข้อความให้กลายเป็นรูปภาพ

จำตัวอย่าง ระบบตรวจคะแนนสอบ ที่เราเขียน Pseudocode กันไปได้ไหมครับ? ลองมาดูว่าถ้าเราเอามาวาดเป็น Flowchart หน้าตามันจะออกมาเป็นยังไง

เทียบกันช็อตต่อช็อต (Pseudocode VS Flowchart):

  1. START 👉 วาดรูป วงรี ใส่คำว่า เริ่มต้น
  2. READ score 👉 วาดรูป สี่เหลี่ยมด้านขนาน ใส่คำว่า รับค่าคะแนน
  3. IF score >= 50 THEN 👉 วาดรูป สี่เหลี่ยมขนมเปียกปูน ใส่เงื่อนไข “คะแนน >= 50” ลงไป
    • ถ้าเงื่อนไขเป็น จริง (Yes) 👉 ลูกศรชี้ไปที่กล่องสี่เหลี่ยมด้านขนาน พิมพ์คำว่า “Pass”
    • ถ้าเงื่อนไขเป็น เท็จ (No) 👉 ลูกศรชี้ไปที่กล่องสี่เหลี่ยมด้านขนาน พิมพ์คำว่า “Fail”
  4. ทิศทางของลูกศรทั้งสองเส้น จะไหลกลับมารวมกันที่จุดเดียว
  5. STOP 👉 วาดรูป วงรี ใส่คำว่า จบการทำงาน

🚀 สรุป 3 โครงสร้างพื้นฐานของ Algorithm ที่โปรแกรมเมอร์ทุกคนต้องรู้!

ในการเขียนโปรแกรม ไม่ว่าระบบจะซับซ้อนแค่ไหน หรือใช้ภาษาอะไร (C++, Python, JavaScript) ทุกอย่างล้วนถูกสร้างขึ้นมาจาก 3 โครงสร้างพื้นฐาน นี้ทั้งนั้นครับ เปรียบเหมือนแม่สี 3 สีที่นำมาผสมกันจนเกิดเป็นภาพวาดที่สวยงาม เรามาเจาะลึกกันทีละตัวเลย!

1. Linear Structure (โครงสร้างแบบลำดับ)

โครงสร้างที่เบสิกที่สุด ตรงไปตรงมาที่สุด คอมพิวเตอร์จะทำงานเรียงจากบนลงล่าง ทีละบรรทัด ทีละขั้นตอน โดยไม่มีการข้ามขั้นตอน และไม่มีการย้อนกลับมาทำซ้ำ ทำงานม้วนเดียวจบเหมือนเส้นตรง

💡 เปรียบเทียบในชีวิตจริง: เหมือน “การต้มบะหมี่กึ่งสำเร็จรูป” เริ่มจากต้มน้ำ -> ใส่เส้น -> ใส่เครื่องปรุง -> เทใส่ชาม ทุกอย่างต้องทำตามลำดับ ไม่สามารถข้ามไปเทใส่ชามก่อนต้มน้ำได้

  • จุดเด่น: เข้าใจง่ายที่สุด เขียนโค้ดจากบนลงล่างตรงๆ
  • บล็อกของ Flowchart: จะเป็นกล่องสี่เหลี่ยมผืนผ้า (Process) ต่อเรียงกันลงมาเป็นแนวดิ่ง

2. Selection Structure (โครงสร้างแบบมีเงื่อนไข)

เมื่อโปรแกรมของเราต้องเริ่ม “คิด” และ “ตัดสินใจ” โครงสร้างนี้จะเข้ามาช่วยครับ คอมพิวเตอร์จะทำการตรวจสอบเงื่อนไข (Condition) ว่าสิ่งที่เกิดขึ้นนั้นเป็น “จริง (True)” หรือ “เท็จ (False)” แล้วเลือกเดินไปในทางที่กำหนดไว้ ทางใดทางหนึ่งเท่านั้น (เหมือนทางแยก IF-ELSE)

💡 เปรียบเทียบในชีวิตจริง: เหมือน “การตรวจคะแนนข้อสอบ” ถ้าคะแนนตั้งแต่ 50 ขึ้นไป (เงื่อนไขเป็นจริง) -> เดินไปทางขวาเพื่อพิมพ์คำว่า “สอบผ่าน” แต่ถ้าคะแนนน้อยกว่า 50 (เงื่อนไขเป็นเท็จ) -> เดินไปทางซ้ายเพื่อพิมพ์คำว่า “สอบตก”

  • จุดเด่น: ช่วยให้โปรแกรมฉลาดขึ้น รองรับสถานการณ์ที่หลากหลายได้
  • บล็อกของ Flowchart: จะใช้กล่องสี่เหลี่ยมข้าวหลามตัด (Decision) เพื่อแยกสายการทำงานออกเป็น 2 ทาง (Yes / No)

3. Repetition Structure (โครงสร้างแบบทำซ้ำ)

หรือที่เรามักเรียกกันติดปากว่า “ลูป (Loop)” เป็นโครงสร้างที่สั่งให้คอมพิวเตอร์ทำงานก้อนเดิมซ้ำๆ จนกว่าเงื่อนไขที่ตั้งไว้จะเปลี่ยนไป โครงสร้างนี้คือหัวใจสำคัญที่ทำให้คอมพิวเตอร์ทรงพลัง เพราะมันสามารถทำงานที่น่าเบื่อหรืองานจำนวนมหาศาลแทนมนุษย์ได้โดยไม่รู้จักเหน็ดเหนื่อย

💡 เปรียบเทียบในชีวิตจริง: เหมือน “การวิ่งรอบสนามฟุตบอล 3 รอบ” ก่อนวิ่งเราจะตั้งตัวนับไว้ที่รอบที่ 1 พอวิ่งเสร็จรอบแรก ก็บวกเพิ่มทีละ 1 แล้วเช็คว่าครบ 3 รอบหรือยัง? ถ้ายังไม่ครบ (เงื่อนไขเป็นจริง) ก็ให้วิ่งต่อไปเรื่อยๆ พอตัวนับกลายเป็น 4 (เงื่อนไขเป็นเท็จ) เราถึงจะหยุดวิ่ง

  • จุดเด่น: ลดความซ้ำซ้อนของโค้ด เหมาะกับงานที่ต้องทำซ้ำ เช่น การดึงข้อมูลนักเรียน 1,000 คน
  • บล็อกของ Flowchart: จะมีความพิเศษตรงที่มี “เส้นลูกศรวิ่งย้อนกลับขึ้นไปด้านบน” เพื่อวนกลับไปเช็คเงื่อนไขเดิมอีกครั้ง

📝 สรุปส่งท้ายสำหรับบล็อกนี้

  • อยากได้งานจบเป็นเรื่องๆ ไม่ซับซ้อน ➡️ เลือก Linear
  • อยากให้โปรแกรมเลือกทำตามสถานการณ์ ➡️ เลือก Selection
  • อยากให้โปรแกรมทำงานซ้ำๆ แทนเรา ➡️ เลือก Repetition

ถ้าเราเข้าใจการไหลของข้อมูล (Data Flow) ใน 3 รูปแบบนี้ การแกะโค้ดหรือการเขียน Logic ในอนาคตก็จะไม่ใช่เรื่องยากอีกต่อไปครับ!

Share: 

No comments yet! You be the first to comment.

ใส่ความเห็น

หมวดหมู่