HomeUncategorizedBasic algorithm | Natural Language และ Pseudocode

Basic algorithm | Natural Language และ Pseudocode

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

Natural Language หรือ ภาษาธรรมชาติ

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

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

ตัวอย่าง | ให้นักเรียนเขียนวิธีการทำ “ไข่เจียว” โดยเขียนขั้นตอนด้วย Natural Language

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

การเขียนแบบที่ 2 | เขียนเป็นข้อ
1. เริ่มต้น
2. หยิบชามมา 1 ใบ
3. ตอกไข่ไก่ใส่ลงในชาม
4. ปรุงรสด้วยน้ำปลา (หรือซอสแม็กกี้ตามความชอบ)
5. ใช้ส้อมตีไข่และเครื่องปรุงให้เข้ากัน
6. ตั้งกระทะบนเตา แล้วเปิดแก๊ส
7. เทน้ำมันใส่กระทะ แล้วรอจนน้ำมันร้อน
8. เทไข่ที่เตรียมไว้ลงไปในกระทะ
9. ทอดจนไข่ด้านล่างสุกเหลือง แล้วพลิกกลับด้าน
10. รอจนสุกทั้งสองด้าน แล้วตักใส่จาน
11. จบการทำงาน

ตัวอย่าง | ให้นักเรียนเขียนวิธีการ “บวกเลข 2 จำนวน” โดยเขียนขั้นตอนด้วย Natural Language

การเขียนแบบที่ 1 | เขียนยาว
เริ่มต้น รับค่าตัวเลขจำนวนที่ 1 รับค่าตัวเลขจำนวนที่ 2 จากนั้นนำตัวเลข A และตัวเลข B มาบวกด้วยกัน จากนั้นแสดงค่าผลรวม สิ้นสุด

การเขียนแบบที่ 2 | เขียนเป็นข้อ
1. เริ่มต้น
2. รับค่าตัวเลขจำนวนที่ 1
3. รับค่าตัวเลขจำนวนที่ 2
4. นำตัวเลขจากจำนวนที่ 1 และ จำนวนที่ 2 มาบวกเข้าด้วยกัน
5. แสดงค่าผลรวม
6. จบการทำงาน

Pseudocode หรือ รหัสลำลอง

เมื่อเราเขียนขั้นตอนด้วยภาษาธรรมชาติแบบเป็นข้อๆ ได้แล้ว สเต็ปต่อไปก่อนที่จะไปเขียนโค้ดจริงๆ ก็คือการแปลงให้เป็น “รหัสลำลอง” หรือ Pseudocode (ซู-โด-โค้ด) ครับ

Pseudocode คือการเขียนขั้นตอนการทำงานที่ “กึ่งภาษาคน กึ่งภาษาคอมพิวเตอร์” โดยจะเปลี่ยนจากการใช้ประโยคภาษาไทยยาวๆ มาเป็นการใช้คำศัพท์ภาษาอังกฤษสั้นๆ (Keywords) เข้ามาช่วยจัดโครงสร้างให้เป็นระเบียบและกระชับมากขึ้น ถึงแม้คอมพิวเตอร์จะยังเอา Pseudocode ไปรันตรง ๆ ไม่ได้ แต่มันเป็นตัวช่วยชั้นดีให้เราเห็นโครงสร้างก่อนเขียนโปรแกรมจริง
ข้อดี มีความกระชับ ชัดเจน ไม่กำกวม เป็นสากล และสามารถนำไปแปลงเป็นภาษาโปรแกรมจริงๆ (เช่น Python, C++) ต่อได้ง่ายมากๆ เพราะหน้าตาและโครงสร้างมันคล้ายกับโค้ดจริงสุดๆ!

ตารางคำศัพท์ (Keywords) ที่เจอบ่อยใน Pseudocode

📌 คำศัพท์ (Keyword) 💡 ความหมาย / หน้าที่ในการทำงาน 📝 ตัวอย่างการใช้งาน
BEGIN หรือ START จุด เริ่มต้น ของโปรแกรม BEGIN หรือ START
END หรือ STOP จุด สิ้นสุด ของโปรแกรม END หรือ STOP
READ หรือ INPUT รับค่า ข้อมูลเข้ามาเก็บไว้ (เช่น พิมพ์ผ่านคีย์บอร์ด) READ score (รับค่าคะแนนมาเก็บในกล่อง score)
PRINT หรือ OUTPUT แสดงผลลัพธ์ ออกมาให้เห็น (เช่น โชว์บนหน้าจอ) PRINT “Pass” (โชว์ข้อความว่า Pass)
COMPUTE หรือ CALCULATE สั่งให้ คำนวณ ทางคณิตศาสตร์ COMPUTE sum = A + B (เอา A บวก B ไปเก็บไว้ใน sum)
IF … THEN การตั้ง เงื่อนไข (ถ้าเงื่อนไขเป็นจริง… แล้วให้ทำคำสั่งอะไร) IF score >= 50 THEN (ถ้าคะแนนมากกว่าหรือเท่ากับ 50…)
ELSE เงื่อนไขสำรอง (มิฉะนั้นแล้ว… ให้ทำคำสั่งอะไรแทน) ELSE (มักจะใช้คู่กับ IF ไว้จัดการกรณีที่ไม่ตรงเงื่อนไข)
END IF จุด สิ้นสุดเงื่อนไข END IF (ใช้เพื่อบอกว่าจบการเช็กเงื่อนไขของรอบนี้แล้ว)

ตัวอย่าง | ให้นักเรียนเขียนวิธีการ “บวกเลข 2 จำนวน” โดยเปลี่ยนจาก Natural Language เป็น Pseudocode

มาดูก่อนครับว่าโจทย์นี้หากเขียนเป็น ภาษาธรรมชาติ หรือ Natural Language จะเป็นยังไง

  1. เริ่มต้น

2. รับค่าตัวเลขจำนวนที่ 1

3. รับค่าตัวเลขจำนวนที่ 2

4. นำตัวเลขมาบวกเข้าด้วยกัน

5. แสดงค่าผลรวม

6. จบการทำงาน

จากนั้นเราลองแปลงจากภาษาที่เราดูแล้วเข้าใจ แปลงออกมากึ่ง ๆ โค้ดกันครับ

  1. เริ่มต้น 👉 BEGIN

2. รับค่าตัวเลขจำนวนที่ 1 👉 READ A

3. รับค่าตัวเลขจำนวนที่ 2 👉 READ B

4. นำตัวเลขมาบวกเข้าด้วยกัน 👉 COMPUTE sum = A + B

5. แสดงค่าผลรวม 👉 PRINT sum

6. จบการทำงาน 👉 END

จากนั้นเรามาลองเขียนแบบ Pseudocode แบบสมบูรณ์

calculator.txt
BEGIN
   INPUT A
   INPUT B
   COMPUTE sum = A + B
   OUTPUT sum
END

💡 อธิบายการทำงานทีละบรรทัด

  • 1
    INPUT A และ INPUT B: โปรแกรมจะรอรับค่าตัวเลขที่เราป้อนเข้าไป (เช่น พิมพ์ผ่านคีย์บอร์ด) ตัวเลขแรกจะถูกเก็บไว้ในตัวแปรชื่อ A และตัวเลขที่สองจะเก็บใน B
  • 2
    COMPUTE: สั่งให้คอมพิวเตอร์ทำการ “คำนวณ” โดยเอาค่า A มาบวกกับ B แล้วนำผลลัพธ์ที่ได้ไปใส่ไว้ในกล่องที่ชื่อว่า sum
  • 3
    OUTPUT: ทำการ “แสดงผลลัพธ์” ที่ถูกเก็บอยู่ในกล่อง sum ออกมาให้เราเห็นบนหน้าจอครับ

สังเกตไหมครับว่าพอเปลี่ยนมาเป็น Pseudocode เราจะมีการนำตัวอักษรภาษาอังกฤษมาใช้แทนค่าตัวเลข เช่น A, B หรือ sum สิ่งนี้ในทางการเขียนโปรแกรมเราเรียกว่า “ตัวแปร” (Variable) ซึ่งเปรียบเสมือน “กล่อง” ที่เราสร้างขึ้นมาเพื่อเก็บข้อมูลเอาไว้ชั่วคราวนั่นเองครับ

ตัวอย่าง | ให้นักเรียนเขียนวิธีการ “ตรวจคะแนนสอบ ผ่าน / ไม่ผ่าน โดยคนที่ผ่านคะแนนจะต้องได้มากกว่า 50” ด้วย Pseudocode

check_score.txt
START
   READ score
   
   IF score >= 50 THEN
      PRINT "Pass"
   ELSE
      PRINT "Fail"
   END IF
   
STOP

💡 อธิบายโค้ดทีละบรรทัด

  • 1 READ score: รับค่าคะแนนที่นักเรียนพิมพ์เข้ามา แล้วเก็บไว้ในกล่องความจำที่ชื่อว่า score
  • 2 IF … THEN: เช็กเงื่อนไขว่าคะแนนในกล่อง >= 50 หรือไม่ ถ้า “ใช่” ให้ข้ามไปทำบรรทัด PRINT “Pass”
  • 3 ELSE: แต่ถ้าเช็กแล้วคะแนนน้อยกว่า 50 (เงื่อนไขเป็นเท็จ) ให้มาทำคำสั่งนี้แทน คือ PRINT “Fail”

Share: 

No comments yet! You be the first to comment.

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

หมวดหมู่