หน่วยที่ 4

ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
 
          การเขียนโปรแกรมภาษาซี เริ่มต้นผู้ศึกษาจะต้องศึกษารูปแบบของการประกาศตัวแปร ชนิดข้อมูล ตัวดำเนินการ การกำหนดนิพจน์ และค่าคงที่ เพื่อให้เข้าใจถึงวิธีการเขียนและสามารถประยุกต์ใช้งานในเรื่องอื่นๆ ได้ต่อไป
 
  1. ตัวแปร (Variable)
  2. ชนิดข้อมูล (Data Type)
  3. ตัวดำเนินการ (Operator)
  4. นิพจน์ (Expression)
  5. ค่าคงที่ (Constant)
  6. บทสรุป
1. ตัวแปร (Variable)
          การเขียนโปรแกรมคอมพิวเตอร์ในทุกภาษา จำเป็นจะต้องมรการเก็บข้อมูลและส่งค่าข้อมูลเพื่อช่วยในการคำนวณและประมวลผล ซึ่งอาจจะกล่าวได้ว่า ตัวแปร ทำหน้าที่เป็นแหล่งพักข้อมูลจากการรับค่าที่ได้จากการอินพุตผ่านอุปกรณ์อินพุต ทำหน้าที่เป็นแหล่งพักข้อมูลผลลัพธ์ที่ได้จากการกำหนดวิธีการประมวลผล หรืออาจจะได้เป็นทั้งแหล่งเก็บข้อมูลเพื่อการแสดงผลดังนั้นอาจสรุปได้ว่า

          ตัวแปร คือ ชื่อที่กำหนดขึ้นมาเพื่อใช้สำหรับเก็บข้อมูลระหว่างการประมวลผล หรือแทนค่าของข้อมูลในโปรแกรม
 
ข้อคำนึงถึงเกี่ยวกับหลักการตั้งชื่อตัวแปร
          •  ตัวแปรจะต้องประกอบด้วยตัวอักษร A ถึง Z รวมถึงตำเลข 0 ถึง 9 เท่านั้น
          •  ความยาวของตัวแปรจะต้องไม่เกิน 32 ตัวอักษร
          •  ชื่อตัวแประจะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น ห้ามขึ้นต้นด้วยตัวเลข เช่น ถ้าใช้ 1address ถือว่าผิดกฎ
          •  ห้ามเว้นวรรคระหว่างชื่อตัวแปร เว้นแต่การใช้ _ (Underscore) เพื่อเชื่อมตัวแปรสามารถทำได้ เช่น Last name ถือว่าผิดกฎ แต่ถ้าจะเขียนให้ถูกต้องเขียนว่า last_name
          •  ตัวอักษรพิมพ์เล็กพิมพ์ใหญ่มีผลไม่เหมือนกัน (Case Sensitive) เช่น vat กับ Vat โปรแกรมจะมองมองเห็นว่าเป็นคนละตัวแปรกัน
          •  ควรตั้งชื่อตัวแปรที่สื่อกับข้อมูลที่ต้องการจัดเก็บ เช่น เงินเดือน = salary , รายได้ = income หรือภาษี = tax เป็นต้น
          •  ห้ามตั้งชื่อตัวแปรหรือฟังก์ชันตรงกับคำสงวน (Reserved Word) ดังต่อไปนี้
 
 2. ชนิดข้อมูล (Data Type)
          ชนิดข้อมูลเป็นสิ่งจำเป็นพื้นฐานที่จะต้องกำหนดให้ถูกต้องหรือเหมาะสมกับความต้องการใช้งานเพื่อให้การทำงานมีประสิทธิภาพ ซึ่งภาษาซีมีชนิดข้อมูลให้เลือกหลายข้อมูลหลายรูปแบบโดยผู้เขียนโปรแกรมจะต้องพิจารณาจากความจำเป็น และวัตถุประสงค์ของการใช้งาน
ตาราง แสดงชนิดข้อมูล ( Data Type ) ขนาดการจัดเก็บ และขอบเขตข้อมูล (Range)
 
 
ซึ่งจากตารางชนิดข้อมูลที่กล่าวมา สามารถแบ่งประเภทของชนิดข้อมูลได้ 3 ประเภท คือ
          •  ชนิดข้อมูลแบบจำนวนเต็ม (Integer Type)
          •  ชนิดข้อมูลแบบทศนิยม (Floating Point Type)
          •  ชนิดข้อมูลแบบตัวอักษร (Character Type)
ชนิดข้อมูลแบบจำนวนเต็ม (Integer Type)
          ข้อมูลชนิดเลขจำนวนเต็ม คือ ข้อมูลที่เป็นตัวเลขจำนวนเต็มแบบไม่มีทศนิยม โดยในภาษาซียังแบ่งชนิดข้อมูลแบบเลขจำนวนเต็มออกเป็นข้อมูลชนิดเลขจำนวนเต็มแบบสั้น (int) และข้อมูลชนิดเลขจำนวนเต็มแบบยาว (long integer)
          •  ข้อมูลชนิดเลขจำนวนเต็มแบบสั้น (int/short int)
             ตัวแปรที่ได้กำหนดในรูปแบบ int จะใช้พื้นที่หน่วยความจำขนาด 2 ไบต์หรือ 16 บิต เพื่อจัดเก็บชุดตัวเลขทั้งค่าบวกและค่าลบ มีค่าอยู่ระหว่าง -32 ,768 ถึง 32 ,676 โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
 
รูปแบบการประกาศตัวแปรแบบ int

          •  ข้อมูลชนิดเลขจำนวนเต็มแบบยาว (long integer)
             ข้อมูลชนิดเลขจำนวนเต็มแบบยาว หรือ long int จะใช้พื้นที่หน่วยจำมากกว่าข้อมูลชนิด int โดยจะใช้ขนาด 4 ไบต์ หรือ 32 บิต เพื่อให้สามารถจัดเก็บชุดตัวเลขที่มีช่วงตัวเลข (Data Rang) ที่กว้างหรือยาวกว่าเป็นสองเท่า ซึ่งสามารถจัดเก็บค่าตัวเลขระหว่าง -2 ,147,483,648 ถึง 2 ,147,483,647 โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้


รูปแบบการประกาศตัวแปรแบบ (long int)

          •  ข้อมูลเลขจำนวนเต็มเฉพาะค่าบวก (Unsigned int)
             ข้อมูลเลขจำนวนเต็มเฉพาะค่าบวก หรือ Unsigned int คือการกำหนดให้ค่าของ Integer มีค่าเฉพาะที่เป็นบวก ดังนั้นตัวแปรที่ถูกกำหนดให้มีชนิดแบบนี้จะมีค่าเพิ่มขึ้นจากเดิมเป็น 2 เท่า ดังนั้นตัวแปรที่กำหนดให้มีชีวิตแบบนี้จะมีค่าเพิ่มขึ้นจากเดิมเป็น 2 เท่า ดังนั้น usigned int จะมีค่าระหว่าง 0 ถึง 65,353
รูปแบบการประกาศตัวแปรแบบ (Unsigned int)

          •  ชนิดข้อมูลแบบทศนิยม (Floating Point Type)
             ชนิดข้อมูลแบบทศนิยม เป็นค่าตัวเลขจำนวนจริงหรือค่าตัวเลขที่มีจุดทศนิยม โดยชนิดข้อมูลแบบทศนิยมนี้สามารถกำหนดเพื่อใช้งานตามชนิดต่างๆ ได้ตามความเหมาะสม ซึ่งขึ้นอยู่กับความต้องการของปริมาณข้อมูลที่จะนำไปใช้งาน เช่น float, double หรือ long double
          •  ชนิดข้อมูลเลขทศนิยมแบบ float (Single precision floating point)
             ชนิดข้อมูลเลขทศนิยมแบบ float นี้ มีขนาดจำนวนบิตเท่ากับ 32 บิต จัดเก็บช่วงข้อมูลระหว่าง 3.4 * 10 -38 และสามารถจัดเก็บตำแหน่งทศนิยมได้ 7 ตำแหน่ง ( 3.4E +/ -38 ) โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
 
รูปแบบการประกาศตัวแปรแบบ float
 
  • ชนิดข้อมูลเลขทศนิยมแบบ double (Double precision floating point)
          ชนิดข้อมูลเลขทศนิยมแบบ double มีขนาดจำนวนบิตเท่ากับ 64 บิต จัดเก็บช่วงข้อมูลระหว่าง 3.4 * 10 -308 ถึง 1.7 * 10 308 และสามารถจัดเก็บตำแหน่งทศนิยมได้ 15 ตำแหน่ง (1.7E+/-308) โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
 
รูปแบบการประกาศตัวแปรแบบ double

      •  ชนิดข้อมูลเลขทศนิยมแบบ long double (Long double precision floating point)
          ชนิดข้อมูลแบบ long double มีจำนวนบิตเท่ากับ 801 บิต หรือมากกว่านั้นจัดเก็บช่วงข้อมูลระหว่าง 3.4 * 10 -4932 ถึง 1.1 * 10 4932 และสามารถเก็บตำแหน่งทศนิยมได้ 19 ตำแหน่ง ( 1.2E+ / -4932 ) โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
 
รูปแบบการประกาศตัวแปรแบบ long double

       •  ชนิดข้อมูลแบบตัวอักษร (Character Type)
          ชนิดข้อมูลแบบตัวอักษร หรือ char จัดเก็บข้อมูลในรูปแบบตัวอักษรหรืออักขระอื่นๆ ซึ่งสามารถเก็บข้อความเพียงหนึ่งอักขระเท่านั้น ซึ่งการจัดเก็บตัวอักษรแบบหลายๆ ตัวจะเรียกว่าสตริง (String) ซึ่งประกอบด้วยกลุ่มของข้อความต่างๆ ตามขนาดที่กำหนด
 รูปแบบการประกาศตัวแปรแบบ char
 รูปแบบการประกาศตัวแปรแบบสตริง

โดย n ในที่นี้คือขนาด หรือจำนวนข้อความที่ต้องการ
 
3. ตัวดำเนินการ (Operator)
การกำหนดตัวดำเนินการในภาษาซีนั้นมีหลายประเภทด้วยกัน ซึ่งแต่ละประเภทจะทำหน้าที่แตกต่างกันออกไป ดังต่อไปนี้
          1.ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator)
          2. ตัวดำเนินการเปรียบเทียบ (Comparative Operator)
          3. ตัวดำเนินการทางตรรกะ (Logical Operator)
          4. ตัวดำเนินการกำหนดค่า (Assignment Operator)
ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator) 
          ตัวดำเนินการทางคณิตศาสตร์ใช้เป็นตัวเชื่อมในการเขียนโปรแกรม เพื่อหาผลลัพธ์จากการคำนวนซึ่งสามารถกระทำกับข้อมูลได้หลายรูปแบบ
ตาราง แสดงตัวดำเนินการทางคณิตศาสตร์
 
ผลการทำงานของโปรแกรม
          โอเปอเรเตอร์ increment และ decrement เป็นโอเปอเรเตอร์ที่ทำให้ค่าของตัวแปรเพิ่มขึ้นหนึ่งค่าตามลำดับ เช่น
                    ++ x; ให้ผลลัพธ์เหมือนกับ x = x + 1;
                    --x; ให้ผลลัพธ์เหมือนกับ x = x – 1;
                    และ
                    ++ x; สามารถเขียนได้อีกแบบหนึ่งเป็น x++;
                    --x; สามารถเขียนได้อีกแบบหนึ่งเป็น x--;
          อย่างไรก็ตาม ++ x ให้ผลลัพธ์ที่ได้ไม่เหมือนกับ x++ ดังนั้น การใช้โอเปอเรเตอร์ increment หรือ ++ และโอเปอเรเตอร์ decrement หรือ – รวมกับโอเปอเรเตอร์อื่นๆ ต้องระมัดระวังเรื่องการวางตำแหน่งของโอเปอเรเตอร์ด้วย
ผลการทำงานของโปรแกรม
          จากตัวอย่างถ้าผู้ศึกษาสังเกตผลการใช้โอเปอเรเตอร์แบบ a++ และ ++a จะได้ผลที่แตกต่างกัน เหมือนกับการใช้ b - - และ - - b ที่ให้ผลแตกต่างกัน
ตัวดำเนินการเปรียบเทียบ (Comparative Operator)
          ตัวดำเนินการเปรียบเทียบ คือ เครื่องหมายที่ใช้ในการเปรียบเทียบหรือตรวจสอบในทางคณิตศาสตร์ ซึ่งผลลัพธ์ที่จะได้จะมี 2 กรณีคือ ถ้าถูกต้องหรือเป็นจริงจะมีค่าเป็น 1 ถ้าผิดหรือเป็นเท็จจะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบ มีชื่อเรียกอีกอย่างหนึ่งว่า ค่าคงที่บูลีน (Boolean Constant) ดังนี้
                    8 > 4 ผลลัพธ์เป็นจริง ค่าคงที่บุลีนเป็น 1
                    6 < = 2 ผลลัพธ์เป็นเท็จ ค่าคงที่บูลีนเป็น 0
                    -2 > -6 ผลลัพธ์เป็นจริง ค่าคงที่บูลีนเป็น 1
                    A > a ผลลัพธ์เป็นจริง ค่าคงที่บูลีนเป็น 1 (เปรียบเทียบค่าตามรหัสแอสกี)
ตาราง แสดงตัวดำเนินการเปรียบเทียบ
 

 
ตัวดำเนินการทางตรรกะ (Logical Operator)
          ตัวดำเนินการทางตรรกะ คือ เครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น
ตาราง แสดงตัวดำเนินการทางตรรกะ
 
 
ตัวดำเนินการ && จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง แต่ถ้าเงื่อนไขใดเป็นเท็จหรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
         ตัวดำเนินการ ll จะใช้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง หรือเป็นจริงทั้งสองเงื่อนไข แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
         ตัวดำเนินการ ! จะให้ผลลัพธ์เป็นจริงเมื่อไขสันหลัง not เป็นเท็จ แต่ถ้าเงื่อนไขหลัง not เป็นจริงจะทำให้ผลลัพธ์เป็นเท็จ
ตัวดำเนินการกำหนดค่า (Assignment Operator)
         ตัวเนินการกำหนดค่าใช้ในการกำหนดค่าให้กับตัวแปรที่มีการคำนวณ และนำค่าที่ได้ไปเก็บไว้ยังตัวแปรอื่น เช่น c=a+b เป็นต้น
ตาราง แสดงตัวดำเนินการกำหนดค่า
 
4. นิพจน์ (Expression)
          นิพจน์ หมายถึง การนำเอาค่าคงที่ ตัวแปร หรือฟังก์ชัน มากระทำอย่างใดอย่างหนึ่ง โดยมีการใช้ตัวดำเนินการ (Operator) ทำหน้าที่ กำหนดค่า เปรียบเทียบ และบ่งชี้การกระทำนั้น เช่น
                    Salary = 5000
                    A = a + c
                    10 +2 > 7+1
                    Show= “Business” + “Computer”
ลำดับการประมวลผลนิพจน์
          การกำหนดนิพจน์และใช้โอเปอเรเตอร์หรือตัวดำเนินการหลายๆ ตัว พร้อมๆ กัน ภายในนิพจน์เดียวกัน ถ้าผู้เขียนไม่จัดลำดับการทำงานก่อนหลังของโอเปอเรเตอร์ให้ถูกต้องก่อน จะทำให้ได้ผลลัพธ์ที่คาดเคลื่อนจากความเป็นจริง โดยการประเมินค่าตามลำดับของโอเปอเรเตอร์ของค่าคงที่จำนวนมากกว่าสองตัวสามารถทำได้โดยใช้กฎ precedence ซึ่งข้อกำหนดสำหรับลำดับการประมวลผลนิพจน์เป็นดังนี้
ตาราง แสดงลำดับการทำงานของตัวดำเนินการ

 

5. ค่าคงที่ (Constant)
          ค่าคงที่ หมายถึง ตัวแปรที่เก็บค่าคงที่โดยที่ผู้เขียนเป็นผู้กำหนดให้ตั้งแต่เริ่มต้นการทำงานของโปรแกรม โดยการกำหนดค่าคงที่จะกำหนดไว้ในส่วนหัวของโปรแกรม (Head File) ซึ่งปกติที่กำหนดนั้นจะไม่มีการเปลี่ยนแปลงใดๆ เช่นค่าคงที่ของอัตราภาษี ค่าคงที่ของอัตราดอกเบี้ย ค่าคงที่ของข้อความที่ต้องการ เป็นต้น

รูปแบบการกำหนดค่าคงที่ เช่น
                    #defind rate 0.5
                    #defind position 5000
                    #defind show “Hello Constant”

บทสรุป
          การเขียนโปรแกรมภาษาซี เริ่มต้นผู้ศึกษาจะต้องศึกษารูปแบบของการประกาศตัวแปรชนิดข้อมูลตัวดำเนินการ การกำหนดนิพจน์ และค่าคงที่ เพื่อให้เข้าใจถึงวิธีการเขียนและสามารถประยุกต์ใช้งานในเรื่องอื่นๆ ได้ต่อไป
          ตัวแปร คือ ชื่อที่กำหนดขึ้นมาเพื่อใช้สำหรับเก็บข้อมูลระหว่างการประมวลผล หรือแทนค่าของข้อมูลในโปรแกรม ข้อคำนึงถึงเกี่ยวกับหลักการตั้งชื่อตัวแปร
          1. ตัวแปรจะต้องประกอยด้วยตัวอักษร A ถึง Z รวมถึงตัวเลข 0 ถึง 9 เท่านั้น
          2. ความของตัวแปรจะต้องไม่เกิน 32 ตัวอักษร
          3. ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น ห้ามขึ้นต้นด้วยตัวเลข
          4. ห้ามเว้นวรรคระหว่างชื่อตัวแปร เว้นแต่การใช้ _(Underscore) เพื่อเชื่อมตัวแปรสามารถทำได้
          5. ตัวอักษรพิมพ์เล็กพิมพ์ใหญ่มีผลไม่เหมือนกัน (Case Sensitive)
          6. ควรตั้งชื่อตัวแปรที่สื่อกับข้อมูลที่ต้องการจัดเก็บ
          7. ห้ามตั้งชื่อตัวแปรหรือฟังก์ชันตรงกับคำสงวน (Reserved Word)
          ชนิดข้อมูลเป็นสิ่งจำเป็นพื้นฐานที่จะต้องกำหนดให้ถูกต้องหรือเหมาะสมกับความต้องการใช้งานเพื่อให้การทำงานมีประสิทธิภาพ ซึ่งภาษาซีมีชนิดข้อมูลให้เลือกหลากหลายรูปแบบ โดยผู้เขียนโปรแรกมจะต้องพิจารณาจากความจำเป็นและวัตถุประสงค์ของการใช้งาน สามารถแบ่งประเภทของชนิดข้อมูลได้ 3 ประเภท คือ
          1.ชนิดข้อมูลแบบจำนวนเต็ม (Integer Type)
          2. ชนิดข้อมูลแบบทศนิยม (Floating Point Type)
          3. ชนิดข้อมูลแบบตัวอักษร (Character Type)
          ตัวดำเนินการในภาษาซีนั้นมีหลายประเภทด้วยกัน ซึ่งแต่ละประเภทจะทำหน้าที่แตกต่างกันออกไป ดังต่อไปนี้
          1.ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator)
          2. ตัวดำเนินการเปรียบเทียบ (Comparative Operator)
          3. ตัวดำเนินการทางตรรกะ (Logical Operator)
          4. ตัวดำเนินการกำหนดค่า (Assignment Operator)
          นิพจน์ หมายถึง การนำเอาค่าคงที่ ตัวแปร หรือฟังก์ชัน มากระทำอย่างใดอย่างหนึ่ง โดยมีการใช้ตัวดำเนินการ (Operator) ทำหน้าที่ กำหนดค่า เปรียบเทียบ และบ่งชี้การกระทำนั้น การกำหนดนิพจน์และใช้โอเปอเรเตอร์หรือตัวดำเนินการหลายๆ ตัว พร้อมๆ กัน ภายในนิพจน์เดียวกัน ถ้าผู้เขียนไม่จัดลำดับการทำงานก่อนหลังของโอเปอเรเตอร์ให้ถูกต้องก่อน จะทำให้ได้ผลลัพธ์ที่คาดเคลื่อนจากความเป็นจริง
          ค่าคงที่ หมายถึง ตัวแปรที่เก็บค่าคงที่โดยที่ผู้เขียนเป็นผู้กำหนดให้ตั้งแต่เริ่มต้นการทำงานของโปรแกรม โดยการกำหนดค่าคงที่จะกำหนดไว้ในส่วนหัวของโปรแกรม (Head File) ซึ่งปกติที่กำหนดนั้นจะไม่มีการเปลี่ยนแปลงใดๆ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น