คณิตศาสตร์สำหรับการเขียนโปรแกรม ตอนที่ 3

ในบทความนี้จะพูดถึงเรื่องของลำดับในการทำงานของ operator ความหมายของ operator คือ การทำงานทางคณิตศาสตร์ เช่น +, -, *,/, %, and, or และอื่นๆ เมื่อตัวดำเนินการต่างๆมาทำงานร่วมกันหลายๆตัว ก็จำเป็นจะต้องจัดลำดับความสำคัญว่าใครทำก่อน ใครทำหลัง

ซึ่งในการทำงานหรือการทำข้อสอบจะเป็นเรื่องปวดหัวมากถ้าเจอกับโจทย์แบบนี้ เรามีวิธีการง่ายๆในการช่วยให้จำได้ง่ายขึ้นมากๆ

ในการจัดลำดับ operator ต่างๆ ให้ใช้หลักการของ BODMAS ซึ่งย่อมาจาก

  • B   – Bucket First (ทำในวงเล็บก่อนเสมอ)
  • O   – Orders (มีการทำงาน 2 อย่างคือ ยกกำลัง หรือ square root)
  • DM – Division and Multiplication (การหารและการคูณ ที่ต้องเอาไว้คู่กันเพราะทั้งการหารและการคูณมีลำดับความสำคัญเท่ากัน)
  • AS – Addition and Subtraction (การบวกและการลบ เหมือนกับการคูณและการหาร ทั้ง 2 ตัวนี้มีลำดับความสำคัญเท่ากัน)

สุดท้ายถ้าจำลำดับความสำคัญได้แล้วก็ให้จำว่า ถ้าความสำคัญเท่ากันจะเรียงจากซ้ายไปขวาเสมอ เหมือนกับเราอ่านหนังสือ

ตัวอย่าง

  1.  สิ่งที่ต้องทำก่อนคือ 6 *3 เนื่องจากอันดับการทำงานสูงกว่า + และ – (ที่เลือก 6 * 3 ก่อนเพราะคูณกับหารมีความสำคัญเท่ากันเลยเลือกที่จะทำจากซ้ายไปขวา)
  2. หลังจากนั้นให้เอาผลลัพธ์จาก 6*3 คือ 18 มาหารด้วย 2
  3. สุดท้ายเราจะนำผลลัพธ์ที่ได้จาก 18 /2 ซึ่งก็คือ 9 มาบวกกับ 12

ผลลัพธ์สุดท้ายเราจะได้  21

ดังนั้นถ้าเราจำคำว่า BODMAS ได้ เราก็มาแยกหาลำดับการทำงานของ Operator ได้ เมื่อเราเจอโจทย์ที่ต้องทำการจัดลำดับของ Operator ก็จะไม่มีปัญหาอีกต่อไป

หมายเหตุ ในตัวอย่างที่ให้มาไม่มี วงเล็บ และ การยกกำลังหรือ ถอด square roots ดังนั้น * และ / จึงมีลำดับสูงสุด

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

คณิตศาสตร์สำหรับการเขียนโปรแกรม ตอนที่ 1

ในการเขียนโปรแกรมจำเป็นต้องมีพื้นฐานทางคณิตศาสตร์ที่ดี โดยเฉพาะอย่างยิ่งเรื่องของ Logic ในบทความนี้จะเน้นเรื่อง Logic เพราะเป็นพื้นฐานที่ใช้กันบ่อย พบเห็นได้ในชีวิตประจำวัน ลองมาดูกันว่าคิดเรื่อง Logic ยังไงให้ง่าย

เริ่มจาก ทบทวนเรื่องของ Logic กันก่อน

Logical Conjunction
p q pq
T T T
T F F
F T F
F F F

การใช้ And ถ้าตัวใดตัวนึงเป็น False ผลลัพธ์ที่ได้จะเป็น False ทันที

Logical Disjunction
p q pq
T T T
T F T
F T T
F F F

การใช้ OR ถ้าตัวใดตัวนึงเป็น True ผลลัพธ์ที่ได้จะเป็น True ทันที

Logical Negation
p ¬p
T F
F T

การใช้ NOT ผลลัพธ์จะเป็นค่าตรงข้าม

Exclusive Disjunction
p q pq
T T F
T F T
F T T
F F F

การใช้ Exclusive OR หรือ XOR ถ้า ค่าตรงข้ามกันเป็น TRUE เหมือนกันเป็น FALSE

อันนี้เป็นพื้นฐาน Logic ที่ต้องมี ตอนต่อไปจะพูดถึงการนำ Logic ไปใช้ใน if statement