การเขียนโปรแกรมคอมพิวเตอร์ในทุกภาษา จำเป็นจะต้องมรการเก็บข้อมูลและส่งค่าข้อมูลเพื่อช่วยในการคำนวณและประมวลผล ซึ่งอาจจะกล่าวได้ว่า ตัวแปร ทำหน้าที่เป็นแหล่งพักข้อมูลจากการรับค่าที่ได้จากการอินพุตผ่านอุปกรณ์อินพุต ทำหน้าที่เป็นแหล่งพักข้อมูลผลลัพธ์ที่ได้จากการกำหนดวิธีการประมวลผล หรืออาจจะได้เป็นทั้งแหล่งเก็บข้อมูลเพื่อการแสดงผลดังนั้นอาจสรุปได้ว่า
ตัวแปร คือ ชื่อที่กำหนดขึ้นมาเพื่อใช้สำหรับเก็บข้อมูลระหว่างการประมวลผล หรือแทนค่าของข้อมูลในโปรแกรม
ชนิดของข้อมูล (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
|
ชนิดข้อมูลเป็นสิ่งจำเป็นพื้นฐานที่จะต้องกำหนดให้ถูกต้องหรือเหมาะสมกับความต้องการใช้งานเพื่อให้การทำงานมีประสิทธิภาพ ซึ่งภาษาซีมีชนิดข้อมูลให้เลือกหลายข้อมูลหลายรูปแบบโดยผู้เขียนโปรแกรมจะต้องพิจารณาจากความจำเป็น และวัตถุประสงค์ของการใช้งาน
ตาราง แสดงชนิดข้อมูล ( 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 ในที่นี้คือขนาด หรือจำนวนข้อความที่ต้องการ
การกำหนดตัวดำเนินการในภาษาซีนั้นมีหลายประเภทด้วยกัน ซึ่งแต่ละประเภทจะทำหน้าที่แตกต่างกันออกไป
ดังต่อไปนี้
ดังต่อไปนี้
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
|
นิพจน์ หมายถึง การนำเอาค่าคงที่ ตัวแปร หรือฟังก์ชัน มากระทำอย่างใดอย่างหนึ่ง โดยมีการใช้ตัวดำเนินการ (Operator) ทำหน้าที่ กำหนดค่า เปรียบเทียบ และบ่งชี้การกระทำนั้น เช่น
Salary = 5000A = a + c10 +2 > 7+1Show= “Business” + “Computer”
ลำดับการประมวลผลนิพจน์
การกำหนดนิพจน์และใช้โอเปอเรเตอร์หรือตัวดำเนินการหลายๆ ตัว พร้อมๆ กัน ภายในนิพจน์เดียวกัน ถ้าผู้เขียนไม่จัดลำดับการทำงานก่อนหลังของโอเปอเรเตอร์ให้ถูกต้องก่อน จะทำให้ได้ผลลัพธ์ที่คาดเคลื่อนจากความเป็นจริง โดยการประเมินค่าตามลำดับของโอเปอเรเตอร์ของค่าคงที่จำนวนมากกว่าสองตัวสามารถทำได้โดยใช้กฎ precedence ซึ่งข้อกำหนดสำหรับลำดับการประมวลผลนิพจน์เป็นดังนี้
ตาราง แสดงลำดับการทำงานของตัวดำเนินการ
ลำดับที่
|
ตัวดำเนินการ
|
ทิศทางการประมวลผล
|
1
|
( )
|
ซ้ายไปขวา
|
2
|
++, - -
|
ขวาไปซ้าย
|
3
|
*, / , %
|
ซ้ายไปขวา
|
4
|
+, -
|
ซ้ายไปขวา
|
5
|
=
|
ขวาไปซ้าย
|
ค่าคงที่ หมายถึง ตัวแปรที่เก็บค่าคงที่โดยที่ผู้เขียนเป็นผู้กำหนดให้ตั้งแต่เริ่มต้นการทำงานของโปรแกรม โดยการกำหนดค่าคงที่จะกำหนดไว้ในส่วนหัวของโปรแกรม (Head File) ซึ่งปกติที่กำหนดนั้นจะไม่มีการเปลี่ยนแปลงใดๆ เช่นค่าคงที่ของอัตราภาษี ค่าคงที่ของอัตราดอกเบี้ย ค่าคงที่ของข้อความที่ต้องการ เป็นต้น
#defind ตัวแปร ค่าคงที่
|
รูปแบบการกำหนดค่าคงที่
เช่น#defind rate 0.5#defind position 5000#defind show “Hello Constant”
ไม่มีความคิดเห็น:
แสดงความคิดเห็น