หน้าแรก
คำชี้แจงก่อนเรียน
รายละเอียดรายวิชา

 แบบทดสอบก่อนเรียน
 หน่วยที่ 1 ภาษาคอมพิวเตอร์เบื้องต้น
 หน่วยที่ 2 เริ่มต้นกับภาษาซี
 หน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ
แบบทดสอบก่อนเรียนประจำหน่วย
3.1 ชนิดของข้อมูล
3.2 ตัวแปร
3.3 ชนิดของตัวแปร
3.4 ค่าคงตัวและค่าคงที่
3.5 ตัวดำเนินการ
3.6 นิพจน์
แบบฝึกหัดที่ 3.1
แบบทดสอบหลังเรียนประจำหน่วย
 หน่วยที่ 4 คำสั่งพื้นฐานในภาษาซี
 หน่วยที่ 5 คำสั่งควบคุมแบบทางเลือก
 หน่วยที่ 6 คำสั่งควบคุมแบบวนซ้ำ
 แบบทดสอบหลังเรียน
 บรรณานุกรม

แจ้งข่าว
 แหล่งเรียนรู้เพิ่มเติม
 ติดต่อครูผู้สอน
 ผู้พัฒนาบทเรียน
 

 
 
มีความรู้ความเข้าใจชนิดข้อมูล ตัวแปร ค่าคงที่ ตัวดำเนินการและนิพจน์
 
 
1. บอกชนิดของข้อมูลพื้นฐานของภาษาซีได้
2. บอกขั้นตอนการใช้ตัวแปรและประกาศตัวแปรได้
3. บอกวิธีการใช้ค่าคงตัวและค่าคงที่ได้
4. อธิบายการใช้ตัวดำเนินการและนิพจน์ในการเขียนโปรแกรมได้
5. บอกลำดับการคำนวณของตัวดำเนินการในนิพจน์ได้
 
 
3.1 ชนิดของข้อมูล
3.2 ตัวแปร
3.3 ชนิดของตัวแปร
3.4 ค่าคงตัวและค่าคงที่
3.5 ตัวดำเนินการ
3.6 นิพจน์
 

ชนิดของข้อมูลพื้นฐาน (Basic Types) ในภาษาซี มีอยู่ 5 แบบ ดังนี้

3.1.1 ข้อมูลแบบบูลีน (Boolean)

เรียกว่าแบบ bool หมายถึง ข้อมูลที่มีค่าเป็น 0 ถือว่าเป็นเท็จ (False) หรือมีค่าเป็น 1
ถือว่าเป็นจริง (True)

3.1.2 ข้อมูลแบบตัวอักษร (Character)

เรียกว่าแบบ char หมายถึง ข้อมูลที่มีค่าเป็นตัวอักษรหนึ่งตัว อยู่ในเครื่องหมายสัญประกาศ (Apostrophe) เช่น 'A'

3.1.3 ข้อมูลแบบตัวเลขจำนวนเต็ม (Integer)

เรียกว่าแบบ int หมายถึง ข้อมูลที่มีค่าเป็นตัวเลขจำนวนเต็ม แบ่งได้เป็น

แบบเก็บค่าได้ทั้งเป็นบวกและลบ
(Signed Integer Types)
แบบเก็บค่าได้เฉพาะบวก
(Unsigned Integer Types)
signed char   unsigned char
short int หรือ signed short int unsigned short int
int หรือ signed int unsigned int
long int หรือ signed long int unsigned long int
long long int หรือ signed long long int unsigned long long int

3.1.4 ข้อมูลแบบเลขจำนวนจริง (Real Floating Types)

เรียกว่าแบบ float หมายถึง ข้อมูลที่เป็นตัวเลขจำนวนจริง แบ่งได้เป็น

- float หมายถึง ตัวเลขแบบ Single precision (ทศนิยมถูกต้อง 6 ตำแหน่ง)

- double หมายถึง ตัวเลขแบบ Double precision (ค่าทศนิยมถูกต้อง 15 ตำแหน่ง)

- long double หมายถึง ตัวเลขที่มีค่าได้มากกว่าแบบ double และค่าทศนิยมถูกต้อง
18 ตำแหน่ง

3.1.5 ข้อมูลแบบไม่มีค่า (Empty)

เรียกว่าแบบ void หมายถึง ข้อมูลที่ไม่ต้องการกำหนดค่า

 
ตารางแสดงค่าที่ใช้ได้ของข้อมูลแบบต่าง ๆ ตามมาตรฐาน C99
 
แบบข้อมูล ค่าข้อมูลต่ำสุด ค่าข้อมูลสูงสุด
bool 0 1
char 1 ตัวอักษร 1 ตัวอักษร
signed char -127 127
unsigned char 0 255
short int -32,767 32,767
int -32,767 32,767
unsigned short int 0 65,535
unsigned int 0 65,535
long int -2,147,483,647 2,147,483,647
unsigned long int 0 4,294,967,295
long long int -9,223,372,036,854,775,807 9,223,372,036,854,775,807
unsigned long long int 0 18,446,744,073,709,551,615
float 1.175494E-38 3.402823E+38
double 2.225074E-308 1.797693E+308
long double 3.3621E-4932 (32 bits) 1.189731E+4932 (32 bits)
หมายเหตุ :
- ตัวแปลภาษาซี หลายตัวยังไม่รองรับมาตรฐาน C99 ค่าที่ใช้ได้อาจต่างไปจากตารางนี้
- เลขแบบวิทยาศาสตร์ (Scientific Notation) "E" หมายถึง คูณด้วย 10 ยกกำลัง
 
 
 

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

การตั้งชื่อตัวแปร จะต้องเป็นไปตามหลักการตั้งชื่อของภาษาซี และชื่อที่เหมาะสม ควรเป็นชื่อที่สื่อความหมาย ซึ่งกฎในการตั้งชื่อ มีดังนี้

1. ต้องประกอบขึ้นจากตัวอักษร ตัวเลข และเครื่องหมายขีดเส้นใต้ (underscore) เท่านั้น

2. อักขระตัวแรกจะต้องเป็นตัวอักษร หรือเครื่องหมายขีดเส้นใต้ (underscore) เท่านั้น

3. อักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ถือเป็นตัวอักษรคนละตัวกัน เช่น A และ a เป็นชื่อที่แตกต่างกัน เป็นต้น

4. ชื่อตัวแปรตามมาตฐาน ANSI C จะมีความยาวไม่จำกัด แต่คอมไพเลอร์ตามมาตรฐาน ANSI C
จะต้องสามารถจำแนกชื่อที่แตกต่างกันได้อย่างมาก 31 อักขระแรก

5. ชื่อตัวแปรต้องไม่ซ้ำกับคำสงวน

 
คำสงวน (Reserved Words) หมายถึง คำที่สงวนไว้สำหรับเรียกใช้ตามวัตถุประสงค์ที่กำหนดไว้เฉพาะ เช่น คำที่ใช้ในคำสั่งควบคุมและชนิดของข้อมูล เป็นต้น คำสงวนในภาษา C มีดังนี้
 
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
 
 
 
ตัวแปรที่ใช้ในภาษาซี จะต้องมีการประกาศชนิดของตัวแปรให้สอดคล้องกับข้อมูลที่จะเก็บในตัวแปรนั้น และจะต้องประกาศชนิดของตัวแปรไว้ก่อน จึงจะเรียกใช้ตัวแปรนั้น ๆ ได้ ชนิดของตัวแปรมีดังนี้
 
ชื่อชนิดของตัวแปร ความหมายชนิดของตัวแปร
int ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนเต็ม
float ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนจริง
short ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนเต็ม
ที่มีค่าน้อยกว่าค่าของตัวแปรที่ประกาศเป็นชนิด int
long ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนเต็มหรือ
จำนวนจริง ที่มีจำนวนบิตมากเป็น 2 เท่า
double ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนจริง
ที่มีจำนวนบิตมากเป็น 2 เท่าของ float
unsigned ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นเลขจำนวนเต็มบวกเท่านั้น
char ใช้ประกาศตัวแปร ให้เก็บค่าที่เป็นตัวอักขระ
 
ในภาษาซี สามารถประกาศตัวแปร ได้ตามรูปแบบคำสั่งดังนี้
 

รูปแบบ ชนิดของตัวแปร ตัวแปร ; หรือชนิดของตัวแปร ตัวแปร = ค่าคงตัว;
   
  หมายเหตุ สามารถประกาศตัวแปร มากกว่า 1 ตัว พร้อมกันได้ โดยพิมพ์ตัวแปรแยกกันด้วยเครื่องหมายคอมม่า ( , )
   
ตัวอย่าง int i ;
  float x , y ;
  int j = 5 , k = 0;
มีความหมายดังนี้
  int i; ประกาศตัวแปรชื่อ i ไว้สำหรับเก็บข้อมูลจำนวนเต็ม int
   
  float x , y; ประกาศตัวแปรชื่อ x และ y ไว้สำหรับเก็บข้อมูล
จำนวนจริง float
   
  int j = 5 , k = 0; ประกาศตัวแปรพร้อมกำหนดค่าเริ่มต้น ดังนี้
- ประกาศตัวแปร j เป็นจำนวนเต็ม int มีค่าเริ่มต้น 5 และ
- ประกาศตัวแปร k เป็นจำนวนเต็ม int มีค่าเริ่มต้น 0

 
 
 
ค่าคงตัว (literal constant) หมายถึง ข้อมูลที่ระบุเป็นอย่างใดอย่างหนึ่งในโปรแกรม และมีชนิดของข้อมูล ตามค่าของข้อมูลนั้น ๆ เช่น
   
10 เป็นค่าคงตัวชนิดจำนวนเต็ม
15.85 เป็นค่าคงตัวชนิดจำนวนจริง
10.00 เป็นค่าคงตัวชนิดจำนวนจริง
'A' เป็นค่าคงตัวชนิดอักขระ
"ABC" เป็นค่าคงตัวชนิดสายอักขระ
 
นอกจากการใช้ค่าคงตัวแล้ว ยังสามารถกำหนดชื่อตัวแปร เพื่อใช้แทนค่าคงตัวในโปรแกรมได้ด้วย
ซึ่งจะเรียกชื่อตัวแปรนี้ว่า ค่าคงที่ (constant) โดยใช้คำสั่งตัวประมวลผลก่อนซี #define
 

รูปแบบ #define ตัวแปร ค่าคงตัว
   
ตัวอย่าง #define GRAVITY 9.81
มีความหมายดังนี้
  ประกาศตัวแปรค่าคงที่ ชื่อ GRAVITY ไว้สำหรับเก็บข้อมูล 9.81
เป็นจำนวนจริง

 
 
 
ตัวดำเนินการ ในโปรแกรมภาษาซี มีการใช้ตัวดำเนินการอยู่ 3 ชนิดใหญ่ ๆ ดังนี้
 
3.5.1 ตัวดำเนินการคำนวณ (Arithmetic Operators) คือ เครื่องหมายที่ใช้ในการคำนวณบวก
ลบ คูณ หาร ค่าต่าง ๆ เครื่องหมายที่ใช้มีดังนี้
 
ตัวดำเนินการ ความหมาย ตัวอย่าง
+ การบวก A + B
- การลบ A - B
* การคูณ A * B
/ การหาร

A / B

% การหารเอาแต่เศษไว้ (Modulus) 7 % 5 = 1 เศษ 2
จะเก็บเฉพาะเศษ 2 เอาไว้
-- การลดค่าลง ครั้งละ 1 เสมอ A-- จะมีความหมายเหมือนกับ
A = A - 1
++ การเพิ่มค่าขึ้น ครั้งละ 1 เสมอ A++ จะมีความหมายเหมือนกับ
A = A + 1
 
3.5.2 ตัวดำเนินการเปรียบเทียบ (Relational and Logical Operators) หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ ซึ่งผลที่ได้จากการดำเนินการ จะได้ 2 กรณี คือ จริง จะให้ค่าเป็น 1 และ เท็จ จะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังนี้
 
ตัวดำเนินการ ความหมาย ตัวอย่าง
> มากกว่า A > B (A มากกว่า B)
>= มากกว่าหรือเท่ากับ A >= B (A มากกว่าหรือเท่ากับ B)
< น้อยกว่า A < B (A น้อยกว่า B)
<= น้อยกว่าหรือเท่ากับ

A <= B (A น้อยกว่าหรือเท่ากับ B)

== เท่ากับ A == B (A เท่ากับ B)
!= ไม่เท่ากับ A != B (A ไม่เท่ากับ B)
 
3.5.3 ตัวดำเนินการตรรกะ (Logical Operators) หมายถึง ตัวดำเนินการที่ใช้ในการเปรียบเทียบและตัดสินใจ โดยนำเงื่อนไขตั้งแต่ 2 เงื่อนไข มาเปรียบเทียบกัน ผลที่ได้จากการดำเนินการ จะได้ผลเป็น 2 กรณี คือ จริง จะให้ค่าเป็น 1 และเท็จ จะให้ค่าเป็น 0 เช่นเดี่ยวกับตัวดำเนินการเปรียบเปรียบเทียบ ตัวดำเนินการที่ใช้มีดังนี้
 
ตัวดำเนินการ ความหมาย ผลของการดำเนินการ
&&
AND หมายถึง การนำเงื่อนไข 2 เงื่อนไข มาดำเนินการกัน แล้วจะได้ผลของการดำเนินการ ดังแสดงในตาราง >>>
P Q P && Q
0 0 0
0 1 0
1 0 0
1 1 1
||
OR หมายถึง การนำเงื่อนไข 2 เงื่อนไข มาดำเนินการกัน แล้วจะได้ผลของการดำเนินการ ดังแสดงในตาราง >>>
P Q P || Q
0 0 0
0 1 1
1 0 1
1 1 1
!
NOT หมายถึง การนำเงื่อนไขมาดำเนินการกัน แล้วได้ผลของการดำเนินการ ดังแสดงในตาราง >>>
P !P
0 1
1 0
 
 
 
นิพจน์ (Expression) หมายถึง การนำตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้ตัวดำเนินการอย่างหนึ่งอย่างใดเป็นตัวเชื่อม
 
3.6.1 นิพจน์ แบ่งออกได้เป็น
 
1. นิพจน์ทางคณิตศาสตร์ (Arithmetic Expression)
 
นิพจน์ทางคณิตศาสตร์ หมายถึง การนำตัวแปร ค่าคงที่ มาสัมพันธ์โดยใช้ตัวดำเนินการทางคณิตศาสตร์ เป็นตัวเชื่อม ผลลัพธ์ที่ได้ จะเป็นตัวเลข
 
นิพจน์คณิตศาสตร์ นิพจน์ภาษาซี
5z 5*z
3x + 5y 3*x + 5*y
x2 - y2 x*x - y*y
(a + b) c (a + b) / c
3x - 8xy + 15y2 3*x - 8*x*y + 15*y*y
 
2. นิพจน์ทางตรรกะ (Logical Expression)
 
นิพจน์ทางตรรกะ หมายถึง การนำตัวแปร ค่าคงที่ หรือนิพจน์ มาสัมพันธ์กัน โดยใช้ตัวดำเนินการเปรียบเทียบและตัวดำเนินการตรรก เป็นตัวเชื่อม ผลที่ได้จะเป็น จริง หรือ เท็จ คือ จะให้ค่าเป็น 1 หรือ 0 ออกมาเป็นผลลัพธ์ สามารถนำผลไปคำนวณต่อได้
 
ถ้า x มีค่าเป็น 4 , y มีค่าเป็น 7 , z มีค่าเป็น 4 หากนำมาเขียนเป็นนิพจน์จะได้ผลดังตาราง
 
นิพจน์ ความหมาย
x == y ผลลัพธ์ที่ได้ คือ ไม่จริง จะให้ค่าเป็น 0
x == z ผลลัพธ์ที่ได้ คือ จริง จะให้ค่าเป็น 1
x > y*2 ผลลัพธ์ที่ได้ คือ ไม่จริง จะให้ค่าเป็น 0
x == z && x > y*2 ผลลัพธ์ที่ได้ คือ ไม่จริง จะให้ค่าเป็น 0
 
3.6.2 กฏเกณฑ์ในการเขียนนิพจน์
 

1. ห้ามเขียนตัวแปรติดกัน โดยไม่มีตัวดำเนินการเชื่อม เช่น ab ในภาษาซี ต้องเขียน a*b จะเขียนเป็น ab ไม่ได้ เพราะโปรแกรมจะถือว่าเป็นชื่อตัวแปรเดียว (ชื่อ ab ไม่ใช่ a คูณ b)

 
2. ถ้าเขียนนิพจน์ โดยมีชนิดของตัวแปรหรือค่าคงที่ต่างชนิดกัน ในนิพจน์เดียวกัน ภาษาซี จะเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็ก ให้เป็นชนิดข้อมูลที่ใหญ่ขึ้น เช่น
 
ถ้าใช้ จะเปลี่ยนเป็น
char short กับ int int
int กับ float float
float กับ double double
int กับ long long
int กับ double double
int กับ unsigned unsigned
long กับ double double
long กับ double double
อะไร กับ long long
อะไร กับ long double long double
 

ตัวอย่าง

int i;

float f;

double d;

นิพจน์ i*f จะได้ผลลัพธ์เป็น float

นิพจน์ d/f + i*f จะได้ผลลัพธ์เป็น double

 
3. การหาร จะได้ชนิดข้อมูล ดังนี้
Integer Integer = Integer
Float Float = Float
Float Integer = Float
Integer Float = Float
 

ตัวอย่าง

int x = 10;

int y = 4;

float z = 4.0;

นิพจน์ x/y จะได้ผลลัพธ์ 2

นิพจน์ x/z จะได้ผลลัพธ์ 2.500000

 
3.6.3 ขั้นตอนการทำงานของนิพจน์
 
นิพจน์ในภาษาซี จะทำงานตามลำดับของระดับความสำคัญ ของตัวดำเนินการ ตัวดำเนินการที่มีระดับความสำคัญสูงกว่า จะดำเนินการก่อน หากในนิพจน์มีตัวดำเนินการระดับความสำคัญเท่ากัน จะเริ่มทำตัวดำเนินการจากซ้ายไปขวา
ตารางแสดงตัวดำเนินการ โดยเรียงจากบรรทัดบนสุดไปล่างสุด เป็นระดับความสำคัญสูงสุดไประดับความสำคัญต่ำสุด ตัวดำเนินการในบรรทัดเดียวกันจะมีระดับความสำคัญเท่ากัน
 
ตัวดำเนินการ ความหมาย
( ) ทำในวงเล็บก่อน โดยทำเรียงลำดับความสำคัญตามตารางนี้
- ตัวดำเนินการเอกภาคลบ
* , / , % ตัวดำเนินการคำนวณคูณ หาร และมอดูลัส (หารเอาเศษไว้)
+ , - ตัวดำเนินการคำนวณบวก ลบ
< , <= , > , >= ตัวดำเนินการเปรียบเทียบน้อยกว่า น้อยกว่าหรือเท่ากับ
มากกว่า มากกว่าหรือเท่ากับ
== , != ตัวดำเนินการเปรียบเทียบเท่ากับ ไม่เท่ากับ
+= , -= , *= , /= , %= ตัวดำเนินการคำนวณกำหนดค่าเชิงประกอบ
(ชนิดข้อมูล) ตัวดำเนินการแปลงชนิดข้อมูลแบบชั่วคราว
++ , -- ตัวดำเนินการคำนวณเพิ่มค่า ลดค่า
&& ตัวดำเนินการตรรกและ
|| ตัวดำเนินการตรรกหรือ
= ตัวดำเนินการกำหนดค่า
 

ตัวอย่างที่ 1นิพจน์2 + 2 * 2 - 2

วิธีคิด เนื่องจากระดับความสำคัญตัวดำเนินการ์ * มีสูงกว่า + กับ - จึงทำ * ก่อน ส่วน ตัวดำเนินการ +
กับ - มีระดับความสำคัญเท่ากัน จึงทำเรียงจากซ้ายไปขวาตามลำดับ ดังนี้ (คำตอบ 4)


ตัวอย่างที่ 2 นิพจน์ x/y*z

วิธีคิด เนื่องจากระดับความสำคัญตัวดำเนินการ * และ / มีค่าเท่ากัน จึงทำเรียงจากซ้ายไปขวาตามลำดับ ดังนี้

 

ตัวอย่างที่ 3 นิพจน์ i * j + k / m - n

วิธีคิด

ตัวอย่างที่ 4 นิพจน์ a * b >= 8 - c || d - 3 == e / (2 - f) && g < h

วิธีคิด