ตัวแปร (Variable) 

         การเขียนโปรแกรมคอมพิวเตอร์ในทุกภาษา จำเป็นจะต้องมรการเก็บข้อมูลและส่งค่าข้อมูลเพื่อช่วยในการคำนวณและประมวลผล ซึ่งอาจจะกล่าวได้ว่า ตัวแปร ทำหน้าที่เป็นแหล่งพักข้อมูลจากการรับค่าที่ได้จากการอินพุตผ่านอุปกรณ์อินพุต ทำหน้าที่เป็นแหล่งพักข้อมูลผลลัพธ์ที่ได้จากการกำหนดวิธีการประมวลผล หรืออาจจะได้เป็นทั้งแหล่งเก็บข้อมูลเพื่อการแสดงผลดังนั้นอาจสรุปได้ว่า
         ตัวแปร คือ ชื่อที่กำหนดขึ้นมาเพื่อใช้สำหรับเก็บข้อมูลระหว่างการประมวลผล หรือแทนค่าของข้อมูลในโปรแกรม

ชนิดของข้อมูล (Data Type) ชื่อตัวแปร (Variable Name)

ข้อคำนึงถึงเกี่ยวกับหลักการตั้งชื่อตัวแปร
        •  ตัวแปรจะต้องประกอบด้วยตัวอักษร A ถึง Z รวมถึงตำเลข 0 ถึง 9 เท่านั้น
        •  ความยาวของตัวแปรจะต้องไม่เกิน 32 ตัวอักษร
        •  ชื่อตัวแประจะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น ห้ามขึ้นต้นด้วยตัวเลข เช่น ถ้าใช้ 1address ถือว่าผิดกฎ
        •  ห้ามเว้นวรรคระหว่างชื่อตัวแปร เว้นแต่การใช้ _ (Underscore) เพื่อเชื่อมตัวแปรสามารถทำได้ เช่น Last name ถือว่าผิดกฎ แต่ถ้าจะเขียนให้ถูกต้องเขียนว่า last_name
        •  ตัวอักษรพิมพ์เล็กพิมพ์ใหญ่มีผลไม่เหมือนกัน (Case Sensitive) เช่น vat กับ Vat โปรแกรมจะมองมองเห็นว่าเป็นคนละตัวแปรกัน
        •  ควรตั้งชื่อตัวแปรที่สื่อกับข้อมูลที่ต้องการจัดเก็บ เช่น เงินเดือน = salary , รายได้ = income หรือภาษี = tax เป็นต้น
        •  ห้ามตั้งชื่อตัวแปรหรือฟังก์ชันตรงกับคำสงวน (Reserved Word) ดังต่อไปนี้

Auto
Double
Int
Struct
Break
Else
Long
Switch
Case
Enum
Register
Typedf
Char
Extern
Return
Union
Const
Float
Short
Unsigned
Continue
For
Signed
Void
default
Goto
Sizeof
Volatile
do
if
static
while

2. ชนิดข้อมูล (Data Type) 
          ชนิดข้อมูลเป็นสิ่งจำเป็นพื้นฐานที่จะต้องกำหนดให้ถูกต้องหรือเหมาะสมกับความต้องการใช้งานเพื่อให้การทำงานมีประสิทธิภาพ ซึ่งภาษาซีมีชนิดข้อมูลให้เลือกหลายข้อมูลหลายรูปแบบโดยผู้เขียนโปรแกรมจะต้องพิจารณาจากความจำเป็น และวัตถุประสงค์ของการใช้งาน
ตาราง แสดงชนิดข้อมูล ( Data Type ) ขนาดการจัดเก็บ และขอบเขตข้อมูล (Range)
ชนิดข้อมูล
ขนาดการจัดเก็บ Bytes
ขอบเขตข้อมูล (Range)
Char
1
-128 to 127
Int
2
-32 , 768 to 32,767
Short
2
-32,768 to 32,767
Long
4
-2,147,483.648 to 2,147,483.647
Float
4
-3,4e-38 to 3,4e+38
Double
8
1,7e-308 to 1,7e+308
Unsigned char
1
0 to 255
Unsigned int
2
0 to 65,535
Unsigned short
2
0 to 65,535
Unsigned long
4
0 to 4,294,967,295
enum
2
0 to 65,535
       
 ซึ่งจากตารางชนิดข้อมูลที่กล่าวมา สามารถแบ่งประเภทของชนิดข้อมูลได้ 3 ประเภท คือ
•  ชนิดข้อมูลแบบจำนวนเต็ม (Integer Type)
•  ชนิดข้อมูลแบบทศนิยม (Floating Point Type)
•  ชนิดข้อมูลแบบตัวอักษร (Character Type)

ชนิดข้อมูลแบบจำนวนเต็ม (Integer Type)
        ข้อมูลชนิดเลขจำนวนเต็ม คือ ข้อมูลที่เป็นตัวเลขจำนวนเต็มแบบไม่มีทศนิยม โดยในภาษาซียังแบ่งชนิดข้อมูลแบบเลขจำนวนเต็มออกเป็นข้อมูลชนิดเลขจำนวนเต็มแบบสั้น (int) และข้อมูลชนิดเลขจำนวนเต็มแบบยาว (long integer)
•  ข้อมูลชนิดเลขจำนวนเต็มแบบสั้น (int/short int)
         ตัวแปรที่ได้กำหนดในรูปแบบ int จะใช้พื้นที่หน่วยความจำขนาด 2 ไบต์หรือ 16 บิต เพื่อจัดเก็บชุดตัวเลขทั้งค่าบวกและค่าลบ มีค่าอยู่ระหว่าง -32 ,768 ถึง 32 ,676 โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
Int variable_name;
รูปแบบการประกาศตัวแปรแบบ int
•  ข้อมูลชนิดเลขจำนวนเต็มแบบยาว (long integer)
         ข้อมูลชนิดเลขจำนวนเต็มแบบยาว หรือ long int จะใช้พื้นที่หน่วยจำมากกว่าข้อมูลชนิด int โดยจะใช้ขนาด 4 ไบต์ หรือ 32 บิต เพื่อให้สามารถจัดเก็บชุดตัวเลขที่มีช่วงตัวเลข (Data Rang) ที่กว้างหรือยาวกว่าเป็นสองเท่า ซึ่งสามารถจัดเก็บค่าตัวเลขระหว่าง -2 ,147,483,648 ถึง 2 ,147,483,647 โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
Long Int variable_name;
รูปแบบการประกาศตัวแปรแบบ (long int)
•  ข้อมูลเลขจำนวนเต็มเฉพาะค่าบวก (Unsigned int)
          ข้อมูลเลขจำนวนเต็มเฉพาะค่าบวก หรือ Unsigned int คือการกำหนดให้ค่าของ Integer มีค่าเฉพาะที่เป็นบวก ดังนั้นตัวแปรที่ถูกกำหนดให้มีชนิดแบบนี้จะมีค่าเพิ่มขึ้นจากเดิมเป็น 2 เท่า ดังนั้นตัวแปรที่กำหนดให้มีชีวิตแบบนี้จะมีค่าเพิ่มขึ้นจากเดิมเป็น 2 เท่า ดังนั้น usigned int จะมีค่าระหว่าง 0 ถึง 65,353
Unsigned Int variable_name;
รูปแบบการประกาศตัวแปรแบบ (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 variable_name;
รูปแบบการประกาศตัวแปรแบบ float
- ชนิดข้อมูลเลขทศนิยมแบบ double (Double precision floating point)
ชนิดข้อมูลเลขทศนิยมแบบ double มีขนาดจำนวนบิตเท่ากับ 64 บิต จัดเก็บช่วงข้อมูลระหว่าง 3.4 * 10 -308 ถึง 1.7 * 10 308 และสามารถจัดเก็บตำแหน่งทศนิยมได้ 15 ตำแหน่ง (1.7E+/-308) โดยมีรูปแบบการประกาศตัวแปรดังต่อไปนี้
double variable_name;
รูปแบบการประกาศตัวแปรแบบ 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 variable_name;
รูปแบบการประกาศตัวแปรแบบ long double
  • ชนิดข้อมูลแบบตัวอักษร (Character Type)
         ชนิดข้อมูลแบบตัวอักษร หรือ char จัดเก็บข้อมูลในรูปแบบตัวอักษรหรืออักขระอื่นๆ ซึ่งสามารถเก็บข้อความเพียงหนึ่งอักขระเท่านั้น ซึ่งการจัดเก็บตัวอักษรแบบหลายๆ ตัวจะเรียกว่าสตริง (String) ซึ่งประกอบด้วยกลุ่มของข้อความต่างๆ ตามขนาดที่กำหนด
Char variable_name;
รูปแบบการประกาศตัวแปรแบบ char
Char variable_name [n];
รูปแบบการประกาศตัวแปรแบบสตริง
         โดย n ในที่นี้คือขนาด หรือจำนวนข้อความที่ต้องการ

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

ตาราง แสดงตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการ
ความหมาย
ตัวอย่าง
+
บวก (Addition)
A + b
-
ลบ (Subtraction)
A – b
*
คูณ (Multiplication)
A * b
/
หาร (Division)
A / b
%
หารเอาผลลัพธ์เฉพาะเศษ (Modulus)
A % b
++
เพิ่มค่าขึ้น 1 ค่า (Increment)
A++
- -
ลดค่าลง 1 ค่า (Decrement)
a- -

ผลการทำงานของโปรแกรม
            โอเปอเรเตอร์ 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 (เปรียบเทียบค่าตามรหัสแอสกี)

ตาราง แสดงตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการ
ความหมาย
ตัวอย่าง
>  
มากกว่า (Greater Than)
a > b
<  
น้อยกว่า (Less Than)
a < b
> =
มากกว่าหรือเท่ากับ (Greater Than or Equal)
a > = b
< =
น้อยกว่าหรือเท่ากับ (Less Than or Equal)
a < = b
= =
เท่ากับ (Equal)
a = = b
! =
ไม่เท่ากับ (Not Equal) a ! = b

ตัวดำเนินการทางตรรกะ (Logical Operator)
         ตัวดำเนินการทางตรรกะ คือ เครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น

ตาราง แสดงตัวดำเนินการทางตรรกะ
ตัวดำเนินการ
ความหมาย
ตัวอย่าง
& &
และ (and)
Income>=5000&&income<=10000
ll
หรือ (or)
Hour<Ollhour>24
!
ไม่ใช่ (not)
! a &&! b

         ตัวดำเนินการ && จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง แต่ถ้าเงื่อนไขใดเป็นเท็จหรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
         ตัวดำเนินการ ll จะใช้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง หรือเป็นจริงทั้งสองเงื่อนไข แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
         ตัวดำเนินการ ! จะให้ผลลัพธ์เป็นจริงเมื่อไขสันหลัง not เป็นเท็จ แต่ถ้าเงื่อนไขหลัง not เป็นจริงจะทำให้ผลลัพธ์เป็นเท็จ
ตัวดำเนินการกำหนดค่า (Assignment Operator)
         ตัวเนินการกำหนดค่าใช้ในการกำหนดค่าให้กับตัวแปรที่มีการคำนวณ และนำค่าที่ได้ไปเก็บไว้ยังตัวแปรอื่น เช่น c=a+b เป็นต้น

ตาราง แสดงตัวดำเนินการกำหนดค่า
ตัวดำเนินการ
ความหมาย
ตัวอย่าง
=
การกำหนดค่าให้เท่ากับ (Assignment)
a = b
+ =
การเพิ่มค่า (Addition)
A += b มาจาก a = a + b
- =
การลบค่า (Subtraction)
A -= b มาจาก a = a – b
* =
การคูณ (Multiply)
A *= b มาจาก a = a * b
/ =
การหารได้ผลลัพธ์จำนวนเต็ม (Devide)
A /= b มาจาก a = a / b
% =
การหารได้ผลลัพธ์เศษ (Devide)
A %= b มาจาก a = a % b
& =
ดำเนินการ bitwise and
A &= b มาจาก a = a & b
l =
ดำเนินการ inclusive or
A l= b มาจาก a = a l b
^ =
ดำเนินการ exclusive or
A ^= b มาจาก a = a ^ b
<< =
การเลื่อนบิตไปทางซ้าย (Left Shift)
A <<= b มาจาก a = a << b
>> =
การเลื่อนบิตไปทาขวา (Right Shift)
A >>= b มาจาก a = a >> b


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

ตาราง แสดงลำดับการทำงานของตัวดำเนินการ
ลำดับที่
ตัวดำเนินการ
ทิศทางการประมวลผล
1
( )
ซ้ายไปขวา
2
++, - -
ขวาไปซ้าย
3
*, / , %
ซ้ายไปขวา
4
+, -
ซ้ายไปขวา
5
=
ขวาไปซ้าย


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

#defind ตัวแปร ค่าคงที่


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




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

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