บทที่ 6 ข้อมูลทางตรรกะในภาษา C (Logicak Data)
ในภาษา C นั้นจะไม่มีตัวแปรชนิดข้อมูลแบบตรรกะ
แต่ภาษา C จะใช้ชนิดข้อมูลอื่นแทน โดยจะใช้ชนิดข้อมูล int และ Char แทน
ถ้าข้อมูลเป็น 0 แสดงว่าเป็นเท็จ ถ้าข้อมูลไม่เป็น 0 แสดงว่าเป็นจริง
ตัวดำเนินการทางตรรกะ
not ตัวดำเนินการ not มีลำดับความในระดับ 15
จะใช้นำหน้าตัวแปรที่ต้องการ ความหมาย คือ
จะเปลี่ยนจากคำที่เป็นจริงให้เป็นเท็จ หรือกลับกัน หรือเปลี่ยนจาก 0 เป็น 1
ซึ่งตารางความจริงของ not ซึ่งแสดงในรูปที่ 6 – 2 Not !
And &&
Or ||
ทางตรรกะในภาษา c
กิจกรรมนับคาบเรียน คำสั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรม 6-1 โดยหาผลลัพธ์และส่งโปรแกรมที่เขียนมา พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน ตัวดำเนินการทางการเปรียบเทียบ ในภาษา C มีตัวดำเนินการทางการเปรียบเทียบทั้งหมด 6 ตัว ทั้งหมดจะเป็นตัวดำเนินการที่จะทำการเปรียบเทียบระหว่างค่า 2 ค่า และจะให้ผลลัพธ์ออกมาเป็นจริง (1) หรือเท็จ (0) เท่านั้น ซึ่งตัวดำเนินการทางการเปรียบเทียบแสดงในตารางที่ 6-2 ตารางที่ 6-2 แสดงผลของตัวดำเนินการทางการเปรียบเทียบ
โปรแกรม 6-2 แสดงผลของตัวดำเนินการทางการเปรียบเทียบ กิจกรรมนับคาบเรียน คำสั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรม 6-2 โดยหาผลลัพธ์และส่งโปรแกรมที่เขียนมา พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน คำสั่ง 2 ทางเลือก คำสั่ง 2 ทางเลือกเป็นพื้นฐานของคำสั่งเงื่อนไขในภาษาคอมพิวเตอร์นั้น คำสั่งประเภทนี้จะต้องมีเงื่อนไขการตัดสินใจ เพื่อใช้หาคำตอบว่าจะไปทางไหน ถ้าเงื่อนไขเป็นจริงก็จะไปทำคำสั่งทางหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จก็จะไปทำคำสั่งอีกทางหนึ่ง ผังการทำงานของคำสั่ง 2 ทางเลือก
If…else คำสั่ง if…else นี้ จะต้องใช้เงื่อนไขเพื่อใช้เลือกว่าจะทำคำสั่งไหน ตามรูปที่ 6-4 แสดง ผังการทำงานของคำสั่ง if…else ถ้าเงื่อนไขเป็นจริงก็จะไปทำคำสั่งที่ 1 แต่เงื่อนไขเป็นเท็จก็จะไปทำคำสั่งที่ 2 ซึ่งไม่มีโอกาสที่จะทำทั้งสองคำสั่งได้เลย
รูปที่ 6-4 แสดงผังการทำงานของคำสั่ง 2 ทางเลือก มีรูปแบบบางอย่างที่ผู้ใช้จะต้องจำให้ได้ สำหรับคำสั่ง if…else ซึ่งมีดังนี้
ทั้งคำสั่งที่ 1 และคำสั่งที่ 2 สามารถมีได้เพียง 1 คำสั่งเท่านั้น แต่ถ้าผู้ใช้ต้องการให้มีหลายคำสั่ง จะต้องใส่เข้าไปในวงเล็บ หรือแบบ Compound Statement ดังแสดงในรูปที่ 6-5
รูปที่ 6-6 แสดงการใช้วงเล็บเข้ามาช่วยในคำสั่ง if…else If คำสั่ง if ก็คือ คำสั่ง if…else แต่ที่ไม่มี else เพราะคำสั่งทางเป็นเท็จไม่มี หรือจากรูปที่ 6-4 ไม่มีคำสั่งที่ 2 นั่งเอง ซึ่งก็คือจะต้องเป็นจริงเท่านั้นจึงจะทำคำสั่งได้ จากรูปที่ 6-7แสดงให้ เห็นการเปลี่ยนจากคำสั่ง if…else เป็นคำสั่ง if
![]()
รูปที่ 6-7 แสดงการเปลี่ยนจากคำสั่ง if…else เป็นคำสั่ง if
กิจกรรมนับคาบเรียน คำสั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรมด้านบน โดยหาผลลัพธ์และส่งโปรแกรมที่เขียนมา พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน Nested if เป็นคำสั่ง if…else มีคำสั่ง if…else
หรือคำสั่ง if ซ้อนอยู่ด้านในอีกทีหนึ่งผังการทำงานของ Nested if
และชุดคำสั่งได้แสดงในรูปที่ 6-8 ซึ่งการซ้อนนั้นสามารถมีได้ไม่จำกัด
แต่ถ้ามีมากกว่า 3 ชั้น จะทำให้การทำความเข้าใจในโปรแกรมนั้นยาก
ก.
ผังการทำ
งาน
ข.ชุดคำสั่ง โปรแกรม 6-4 คำสั่ง Nedsted if
กิจกรรมนับคาบเรียน คำสั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรม 6-4 โดยหาผลลัพธ์และส่งโปรแกรมที่เขียนมา พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน ปัญหาของคำสั่ง else
ก ชุดคำสั่ง ข. ผังการทำงาน รูปที่ 6-9 แสดงการจับคู่ที่ไม่ตรงตามความต้องการของผู้ใช้ ก.
ชุดคำ
สั่ง
ข. ผังการทำงาน
คำสั่งหลายทางเลือก Switch รูปที่ 6-11 แสดงผังการทำงานของคำสั่ง switch
Switch(ตัวแปร) จากรูปที่ 6-12 จะเห็นว่ามี case default ซึ่ง case นี้มีไว้สำหรับในกรณีที่ไม่ตรงกับ case ไหนเลย ก็ให้มาทำคำสั่งที่ case default คำสั่ง case default นี้ไม่จำเป็นต้องมีก็ได้ โปรแกรม 6-5 คำสั่ง switch ในโปรแกรมที่ 6-5 จะมีทั้ง 3 case ใน case แรกจะทำก็ต่อแปร PrintFlag เป็น 1 ใน case ที่ 2จะทำก็ต่อเมื่อตัวแปร printFlag เป็น 2 และใน case Default จะทำก็ต่อเมื่อตัวแปร printFlag ไม่เป็นทั้ง 1 และ 2 ผลของโปรแกรม 6-5 ได้แสดงในรูปที่ 6-13 จากรูปที่ 6-13 เมื่อ printFlag มีค่าเป็น 1 จะแสดง ทั้ง 3
คำสั่งเลย ถ้า printFlag มีค่าเป็น 2 จะข้ามคำสั่งของ case แรก ไป
และทำคำสั่งที่เหลืออีก 2 คำสั่ง และถ้า printFlag มีค่าที่ เป็นทั้ง 1
และ 2 จะข้ามคำสั่งของ Case แรกและ Case ที่สองไป และทำคำสั่งใน Case
Defaultg เพียง 1 คำสั่งเท่านั้น โปรแกรม 6-6 คำสั่ง Switch โดยมรคำสั่ง Break เข้ามาช่วย
เมื่อ printFlag เป็น 1 เมื่อ printFlag เป็น 2 เมื่อ printFlag ไม่เป็น ในโปรแกรมที่ 6-7 เป็นโปรแกรมการตัดเกรด โดยมีขอบเขตดังนี้ มากกว่า 79 ได้ A โปรแกรม 6-7 โปรแกรมตัดเกรด
กิจกรรมนับคาบเรียน คำสั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรม 6-7 โดยหาผลลัพธ์ เมื่อป้อนคะแนน 101 เข้าไป และส่งโปรแกรมที่เขียนมา พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน
else –if ตัวแปรที่ใช้ในคำสั่ง Switch
นั้นจะต้องเป็นชนิดข้อมูลที่เป็นจำนวนเต็มเท่านั้น
แต่ถ้าเมื่อไรที่ต้องใช้ตัวแปรที่เป็นชนิดข้อมูลทศนิยม
ก็จะไม่สามารถใช้คำสั่ง Switch ได้ แต่ภาษา C
ก็ได้มีคำสั่งอีกคำสั่งหนึ่งที่เป็นคำสั่งหลายทางเลือกและสามารถใช้ได้กับ
ชนิดข้อมูลทุก ประเภท คำสั่งนั้นก็คือ Else – if
ซึ่งชุดคำสั่งเหมือนกับคำสั่ง if – else แต่ต่างกันตรงที่ในคำสั่งelse
ใช้ต่อด้วยคำสั่ง if ได้เลย ดังเช่นตัวอย่างด้านล่าง if(score>=80) ![]()
รูปที่ 6-8 แสดงผังการทำงานของโปรแกรมที่ 6-8
กิจกรรมนับคาบเรียน คำ
สั่ง ให้นักเรียนเขียนโปรแกรมตามตัวอย่างโปรแกรม 6-8 โดยหาผลลัพธ์
เมื่อป้อนคะแนน 101 เข้าไป และส่งโปรแกรมที่เขียนมา
พร้อมอธิบายแต่ละบันทัด กดคลิกเื่พื่อส่งผลลัพธ์ที่ได้จากโปรแกรม รายละเอียดการติดตามการเรียน |