เวลาที่เราเขียนโปรแกรมหรือสร้างแอปพลิเคชันขึ้นมาสักตัว คอมพิวเตอร์มันรู้ได้ยังไงว่าต้องทำอะไรบ้าง? คอมพิวเตอร์ไม่ได้ฉลาดพอที่จะเข้าใจภาษาที่เราพูดกันในชีวิตประจำวันได้ทันที ดังนั้นก่อนที่เราจะไปเขียนโค้ดภาษาโปรแกรมจริงๆ (อย่างเช่น 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 จะเป็นยังไง
- เริ่มต้น
2. รับค่าตัวเลขจำนวนที่ 1
3. รับค่าตัวเลขจำนวนที่ 2
4. นำตัวเลขมาบวกเข้าด้วยกัน
5. แสดงค่าผลรวม
6. จบการทำงาน
จากนั้นเราลองแปลงจากภาษาที่เราดูแล้วเข้าใจ แปลงออกมากึ่ง ๆ โค้ดกันครับ
- เริ่มต้น 👉
BEGIN
2. รับค่าตัวเลขจำนวนที่ 1 👉 READ A
3. รับค่าตัวเลขจำนวนที่ 2 👉 READ B
4. นำตัวเลขมาบวกเข้าด้วยกัน 👉 COMPUTE sum = A + B
5. แสดงค่าผลรวม 👉 PRINT sum
6. จบการทำงาน 👉 END
จากนั้นเรามาลองเขียนแบบ Pseudocode แบบสมบูรณ์
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
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”