คอมพิวเตอร์ถูกนำมาใช้เพื่ออำนวยความสะดวก และแก้ปัญหาต่าง ๆ ได้อย่างมีประสิทธิภาพ ผ่านการสั่งงานในรูปของอัลกอริทึม ซึ่งมีการอธิบายการทำงานแตกต่างกันไปตามชนิดของเครื่องมือที่เลือกใช้อาทิ
- ภาษาธรรมชาติ หรือภาษาที่ใช้ในชีวิตประจำวัน(ภาษาอังกฤษ) ทำให้เข้าถึงได้รวดเร็วไม่จำเป็นต้องศึกษาภาษาอื่นเพิ่มเติมแต่อาจมีอุปสรรคเพราะการสั่งงานด้วยภาษาธรรมชาติมักเกิดความคลุมเครือทำให้ไม่ได้ผลลัพธ์ในแบบที่ต้องการ ในขณะที่อัลกอริทึมนั้นไม่ต้องการให้มีความคลุมเครือในการทำงาน
- ภาษาเครื่องจักร หรือ ภาษาโปรแกรมคอมพิวเตอร์ที่มีการทำงานแบบเป็นเหตุเป็นผลที่แน่นอน ปราศจากความสำนึกรู้ นั้นทำให้รายละเอียดเล็ก ๆ น้อย ๆ ต้องถูกตัดทิ้งไปในการใช้ภาษาคอมพิวเตอร์
- การเขียนแผนผังเป็นเครื่องมือที่ช่วยให้เราเข้าใครโครงสร้างของอัลกอริทึมได้ชัดเจน แต่ข้อเสียคือถ้าขั้นตอนการทำงานนั้นมีความซับซ้อนมีความเป็นอิสระในการควบคุม เงื่อนไขที่ซับซ้อน และวงวนเหล่านี้อาจทำให้การเขียนแผนผังเป็นไปได้ยาก และมีความซับซ้อนเกินกว่าจะเข้าใจได้ง่าย
- ซูโดโคด (Pseudo code) เป็นโครงสร้างภาษาที่คล้ายกับภาษาคอมพิวเตอร์ และภาษาธรรมชาติทำให้ง่ายต่อการเปลี่ยนซูโดโคดไปเป็นภาษาธรรมชาติร่วมไปถึงการแปลงไปเป็นภาษาคอมพิวเตอร์อื่นอีกด้วย
ดังที่กล่าวมาข้างต้นจะเห็นว่าซูโดโคดนั้นใช้รูปแบบภาษาที่ผสมผสานระหว่างภาษาธรรมชาติและภาษาคอมพิวเตอร์ที่ยังคงรักษาความแจ่มชัดในการทำงานทำให้สอดคล้องการภาษาทางตรรกศาสตร์ที่มีความรัดกุมแจ่มชัดทำให้การสั่งงานคอมพิวเตอร์อยู่ในรูปของประโยคแบบมีเงื่อนไง (If-Then)
ภาพที่ 1 ปกบทเรียนเรื่องตรรกศาสตร์กับคอมพิวเตอร์
ที่มา วีระ ยุคุณธร ดัดแปลงจาก https://upload.wikimedia.org/wikipedia/commons/3/3a/Russell1907-2.jpg,https://upload.wikimedia.org/wikipedia/commons/8/82/CharlesBabbage.jpg,https://upload.wikimedia.org/wikipedia/commons/a/a1/Alan_Turing_Aged_16.jpg
ประโยคแบบมีเงื่อนไข
ในทางตรรกศาสตร์ข้อความ”ถ้า-แล้ว” เป็นข้อความที่ใช้แสดงความเป็นเหตุเป็นผลเช่นข้อความ ถ้า P แล้ว Q เราจะเรียก P ว่าสมมติฐานและเรียก Q ว่าข้อสรุปหลักการนี้จึงถูกนำมาใช้ในการสั่งงานคอมพิวเตอร์โดยที่ P คือเงื่อนไข และ Q คือคำสั่งเปรียบเทียบภาษาทั้ง 4 แบบจะได้ว่า
ภาษาธรรมชาติ ถ้าเงื่อนไข P เป็นจริงให้ทำตามคำสั่ง Q
ภาษาโปรแกรม excel =If(P,Q)
แผนผัง
ภาพที่ 2 แผนผังอัลกอริทึม If-then
ที่มา วีระ ยุคุณธร ดัดแปลงจาก Skvarcius R. and Robinson W.B., หน้า 12
Psudocode If P then Q
แต่ในทางคอมพิวเตอร์นั้นถ้าจากตรวจสอบแล้วพบว่าไม่เป็นไปตามเงื่อนไขเราสามารถสั่งคำสั่งทางเลือกได้โดยใช้รูปแบบคำสั่ง If-then-else
ภาษาธรรมชาติ ถ้าเงื่อนไข P เป็นจริงให้ทำตามคำสั่ง Q1 แต่ถ้าเงื่อนไข P เป็นเท็จให้ทำตามคำสั่ง Q2
ภาษาโปรแกรม excel =If (P,Q1,Q2)
ภาพที่ 3 แผนผังอัลกอริทึม If-then-else
ที่มา วีระ ยุคุณธร ดัดแปลงจาก Skvarcius R. and Robinson W.B., หน้า 12
Psudocode If P then Q1 else Q2
ตัวอย่างที่ 1 การหาค่าสัมบูรณ์ของจำนวนเต็ม
ภาษาธรรมชาติ จากนิยามค่าสัมบูรณ์ | x | จะพบว่าถ้า x เป็นจำนวนจริงที่ไม่เป็นลบแล้ว | x | = x แต่ถ้า x เป็นจำนวนจริงที่เป็นลบ | x | = -x
ภาษาโปรแกรม excel =If ( x<0 , |x| = -x , |x| = x)
ภาพที่ 4 ผลการทำงานตามอัลกอริทึมหาค่าสัมบูรณ์ด้วยโปรแกรม excel
ที่มา วีระ ยุคุณธร
แผนผัง
ภาพที่ 5 แผนผังอัลกอริทึมการหาค่าสัมบูรณ์
ที่มา วีระ ยุคุณธร
Psudocode If x<0 then |x|=-x else |x|=x
ตัวอย่างที่ 2 การวิเคราะห์ชนิดของค่ารากสมการกำลังสองด้วย discriminant
พิจารณาสมการกำลังสองในรูปของ ax2 + bx + c = 0
ax2 + bx + c = a [ x2 + (b/a)x + (c/a) ]
=a[ {x – (b/2a) }2 – (b/2a)2+(c/a) ]
=a[ {x – (b/2a) }2 – (b/2a)2+(c/a) ]
=a[ {x – (b/2a) }2 – { (b2-4ac) / (2a) } ]
แยกพิจารณาค่า b2-4ac เรียกว่า discriminant ได้ดังนี้
ภาษาธรรมชาติ
กรณีที่ 1 ถ้า b2-4ac < 0 จะได้สมการไม่มีรากเป็นจำนวนจริง
กรณีที่ 2 ถ้า b2-4ac = 0 จะได้สมการมีรากซ้ำ
กรณีที่ 3 ถ้า b2-4ac > 0 จะได้ว่าสมการมีรากเป็นจำนวนจริงที่แตกต่างกัน
ภาษาโปรแกรม
excel ==IF(F3^2-4*E3*G3<0,”สมการไม่มีรากเป็นจำนวนจริง”,IF(F3^2-4*E3*G3=0,”สมการมีรากซ้ำ”,”สมการมีรากเป็นจำนวนจริงที่แตกต่างกัน”))
ภาพที่ 6 ผลการทำงานตามอัลกอริทึมวิเคราะห์ค่ารากสมการกำลังสองด้วยโปรแกรม excel
ที่มา วีระ ยุคุณธร
แผนผัง
ภาพที่ 7 แผนผังอัลกอริทึมการวิเคราะห์ค่ารากสมการกำลังสอง
ที่มา วีระ ยุคุณธร
Psudocode If b2-4ac < 0 then แสดงข้อความ”สมการไม่มีรากเป็นจำนวนจริง”
else, If b2-4ac = 0 then แสดงข้อความ”สมการมีรากซ้ำ”
else แสดงข้อความ”สมการมีรากเป็นจำนวนจริงที่แตกต่างกัน”
แหล่งที่มา
Skvarcius R., Robinson W.B. (1986). Discrete mathematics with computer science applications. The Benjamin/Cummings Publishing Company.