การคำนวณของคอมพิวเตอร์
คอมพิวเตอร์ทำการคำนวณโดยการอ้างอิงเครื่องหมาย ไม่ได้ทำจากซ้ายไปขวาตามปกติเหมือนมนุษย์ ลองดูตัวเลขง่ายๆ 2+3*5 ถ้ามนุษย์คำนวณนั้นจะได้คำตอบว่า 25 เนื่องจากมนุษย์จะทำการคำนวณจากซ้ายไปขวา โดยไม่สนใจเครื่องหมาย แต่สำหรับคอมพิวเตอร์จะได้คำตอบออกมาเป็น 27 ซึ่งแตกต่างกันไปเลย :) ไม่ทราบว่าหลาย ๆ คนที่ทำงานกับ Excel เคยใส่ใจเรื่องนี้กันหรือเปล่านะ :Pลำดับการคำนวณของคอมพิวเตอร์
** ควรจำ การเขียนโปรแกรม หรือคำสั่ง sql ต้องยึดหลักนี้1. ให้ความสำคัญกับวงเล็บก่อน หากมีวงเล็บหลายระดับ จะทำระัดับในสุดก่อนเสมอ และหากมีวงเล็บระดัีบเดียวกัน หลายครั้ง จะทำวงเล็บซ้ายก่อน
2. ให้ความสำคัญกับฟังก์ชั่นต่างๆ เช่น Sqrt , Sqr, Tan, Sin, Round, Abs โดยหากมีฟังก์ชั่้นซ้ำซ้อนกันหลายระัดับ จะทำระดับในสุดก่อน แล้วมาทำที่ระดับนอก และัหากมีฟังก์ชั่นในระดับเดียวกันหลายครั้ง จะทำฟังก์ชั่นที่อยู่ด้านขวาก่อน
3. หาค่าตามกฎของการคูณก่อน ( เครื่องหมายคูณ และ หาร) โดยหากมีเครื่องหมาย ระดับเดียวกันหลายที่ จะไปทำที่เครื่องหมายที่อยู่ซ้ายสุดก่อน
4. หาค่าตามกฎของการบวกเป็นลำดับสุดท้าย ( เครื่องหมาย บวก และลบ) โดยหากมีเครื่องหมายระดับเดียวกันหลายที่ จะไปทำเครื่องหมายที่อยู่ซ้ายสุดก่อนเสมอ
ตัวอย่าง
หาค่าของ 5 + 3 * 2 + 4 / 2
คอมพิวเตอร์จะคำนวณดังนี้
ทำตามกฎของการคูณก่อน
ทำคู่ 3*2 ก่อน ได้ึ่ค่าเป็น 5+6+4/2
ทำคุ่ 4/2 ก่อน ได้ค่าเป็น 5+6+2
ไมีมีกฎของการคูณแล้ว ทำจากซ้ายไปขวาตามปกติ ได้ค่าเป็น 13
ถ้าเราคำนวณเองจะได้ค่า 8*3+4/2 -> 24+4/2 ->28/2 = 14
หาค่าของ 7 + 6 /( 4 – 1)*9
ทำคู่ของ 4-1 ก่อน เนื่องจากอยู่ในวงเล็บ ได้เป็น 7+6/3*9
มีกฎของการคูณสองคู่ แต่ทำ 6/3 ก่อน เนื่องจากอยู่ซ้ายกว่า ได้เป็น 7+2*9
ทำกฎของการคูณคู่ที่เหลือ ได้เป็น 7+18
ได้คำตอบเป็น 25
หาค่าของ 7+2*(sqrt(8/2)+3)-2
ทำวงเล็บในสุด คือ 8/2 ก่อน ได้เป็น 7+2*(sqrt(4)+3)-2
ทำฟังก์ชั้่น คือ sqrt ก่อน ได้เป็น 7+2*(2+3)-2
ทำในวงเล็บ 2+3 ก่อน ได้เป็น 7+2*5-2
ทำกฎของการคูณก่อน ได้เป็น 7+10-2
ได้คำตอบเป็น 15
การดุลค่าให้คอมพิวเตอร์คำนวณได้ตรงกับมนุษย์
ไล่หาจากขวาไปซ้าย โดยเปรียบเทียบคู่คำนวนทีละสองคู่เป็นหนึ่งส่วน
เมื่อพบส่วนใดที่ คู่ซ้ายเป็นกฎของการบวก คู่ขวาเป็นกฎของการคูณให้ทำการใส่วงเล็บปิดเข้าไปที่หน้าเครื่องหมายกฎของการคูณ และใส่งวงเล็บเปิดที่ซ้ายสุด
ตัวอย่าง
ให้ดุลค่าของ 6+4/2+3*2/4
ส่วนแรกที่พิจารณาคือ 3*2/4 เป็นกฎของการคูณด้วยกันจึงไม่ทำอะไีีร
ส่วนที่สองคือ 2+3*2 พบว่าคู่หน้าเป็นกฎของการบวก คู่หลังเป็นกฎของการคูณ จึงใส่เครื่องหมายวงเล็บ ได้เป็น (6+4/2+3)*2/4
ค้นหาหน่วยต่อไป 4/2+3 ด้านหน้าเป็นกฎของการคูณ จึงไม่สนใจ
ค้นหาหน่วยต่อไป 6+4/2 คู่หน้าเป็นกฎของการบวก จึงใส่วงเล็บ ได้เป็น ((6+4)/2+3)*2/4
ตรวจสอบความถูกต้อง
การคำนวณแบบมนุษย์ 6+4/2+3*2/4
= 10/2+3*2/4
= 5+3*2/4
= 8*2/4
= 16/4
= 4
การคำนวนแบบคอมพิวเตอร์ตามสมการใหม่ ((6+4)/2+3)*2/4
= (10/2+3)*2/4
= (5+3)*2/4
= 8*2/4
= 16/4
= 4
แสดงว่าการดุลสมการถูกต้อง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น