
|
|
ตัวแปร (variable) คือชื่อที่ผู้เขียนโปรแกรมตั้งขึ้น เพื่อใช้เก็บค่าที่ต้องการนำมาใช้งานในการเขียนโปรแกรม เพื่อทำการประมวลผลข้อมูล โดยมีกฏในการตั้งชื่อตัวแปรดังนี้
1.
| ต้องขึ้นต้นด้วยตัวอักษร ตัวต่อไปอาจจะเป็นตัวอักษรหรือตัวเลขก็ได้ |
2.
| ห้ามใช้สัญลักษณ์อื่นใด ยกเว้นเครื่องหมายสตริงก์ ($) และขีดล่าง (Underscore) |
3.
| ตัวแปรอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มีความหมายแตกต่างกัน |
4.
| ห้ามเว้นวรรคระหว่างตัวแปร |
5.
| ห้ามตั้งชื่อซ้ำกับคำสงวนในภาษาซ |
ก่อนที่จะนำตัวแปรไปใช้งาน ในภาษาซีจะต้องมีการประกาศค่าตัวแปรให้สอดคล้องกับข้อมูลที่จะนำไปใช้โดยมีรูปแบบดังนี้
รูปแบบ
| Type varible name |
type
| ชนิดของตัวแปร ซึ่งอาจจะป็น char, int, float, double หรือตัวแปรชนิดอื่นๆ เป็นต้น |
variable name
|
ชื่อของตัวแปร ถ้ามีมากกว่า 1 ตัวให้ใช้เครื่องหมายคอมม่าคั่น
|
ตัวอย่างการประกาศตัวแปร
| char n; | ประกาศค่าตัวแปรชื่อ n เป็นข้อมูลชนิด character |
| float a,b,c; | ประกาศค่าตัวแปรชื่อ a,b,c เป็นข้อมูลชนิด float |
| int number=1; | ประกาศค่าตัวแปรชื่อ number เป็นข้อมูลชนิด integer และกำหนดให้ตัวแปร count มีค่าเท่ากับ 1 |
| char name[15]; | ประกาศตัวแปรชื่อ name เป็นลักษณะตัวแปรชุดเก็บชื่อยาวไม่เกิน 15 ตัวอักษร |
|
|
|

|
|
ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาด เนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันนั้นเอง ทำให้มีความสามารถใน การจัดเก็บข้อมูลแต่ละประเภทแตกต่างกันไป ดังนั้นในการเลือกงานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นใน การใช้งานด้วย สำหรับประเภทของข้อมูลมีดังนี้คือ
1
| ข้อมูลชนิดตัวอักษร (Character) |
คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็ม ได้แก่ ตัวอักษร ตัวเลขและกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต ์
|
2
| ข้อมูลชนิดจำนวนเต็ม (Integer) | คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ และศูนย์ ข้อมูลชนิดจำนวนเต็มใช้พื้นที่ในการเก็บข้อมูล ขนาด 2 ไบต์ |
3
| ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) | คือข้อมูลที่เป็นเลขจำนวนเต็ม ใช้พื้นที่ในการเก็บเป็น 2 เท่าของ Integer คือมีขนาด 4 ไบต ์ |
4
| ข้อมูลชนิดเลขทศนิยม (Float) | คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์ |
5
| ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) | คือข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บข้อมูลเป็น 2 เท่าของ float คือมีขนาด 8 ไบต์ |
|
|
|
|
คำสงวนคือคำที่กำหนดขึ้นในภาษาซีเพื่อให้มีความหมายอย่างใดอย่างหนึ่ง และนำไปใช้งานแตกต่างกัน การประกาศค่าตัวแปรจะต้องไม่ให้ซ้ำกับคำสงวน
Auto
|
Break
|
Case
|
Char
|
Const
|
Default
|
Do
|
Double
|
Else
|
Enum
|
Short
|
Signed
|
Sizeof
|
Extern
|
Float
|
For
|
Goto
|
If
|
Int
|
Long
|
Return
|
Register
|
Continue
|
While
|
Static
|
Struct
|
Switch
|
Typedef
|
Unon
|
Unsigned
|
Void
|
volatile
|
|
|
|
|
|
|
|
|
|
| ฟังก์ชัน clrscr(); เป็นฟังก์ชันที่ใช้ในการลบจอภาพ |
| ฟังก์ชัน printf(); เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลที่อยู่ในตัวแปร ค่าคงที่ และนิพจน์ออกจอภาพ |
| ตัวอย่างที่ 1 | printf(“Lampang”); ความหมาย แสดงข้อความ Lampang ออกทางจอภาพ |
| ตัวอย่างที่ 2 | printf(“%d”,num); ความหมาย แสดงค่าตัวแปร num ในรูปเลขจำนวนเต็ม |
| ตัวอย่างที่ 3 | printf(“5.2f”,area); ความหมาย แสดงค่าที่เก็บอยู่ในตัวแปร area โดยจองพื้นที่ไว้ 5 ช่อง ทศนิยม 2 ตำแหน่ง |
| ฟังก์ชัน scanf(); เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปร |
| ตัวอย่าง | scanf(“%d”,&num); ความหมาย รับค่าตัวเลขจำนวนเต็มแล้วนำมาเก็บไว้ในตัวแปร num |
ฟังก์ชัน getch(); เป็นฟังก์ชันที่ใช้ในการรอรับการกดแป้นพิมพ์หนึ่งครั้ง โดยไม่ต้องกดปุ่ม Enter
และตัวอักษรที่ป้อนเข้ามาจะไม่ปรากฏบนจอภาพ |
ฟังก์ชัน getchar(); เป็นฟังก์ชันที่ใช้ในการรับข้อมูลเข้ามาทางแป้นพิมพ์ทีละ 1 ตัวอักษร แล้วกด Enter 1 ครั้ง
ข้อมูลที่ป้อนจะแสดงบนจอภาพ |
ฟังก์ชัน gets(); เป็นฟังก์ชันที่ใช้ในการรับข้อมูลที่เป็นข้อความจากแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปรแบบอาเรย์
การใช้ฟังก์ชัน gets(); จะต้องมีการประกาศตัวแปรแบบอาเรย์ และกำหนดจำนวนตัวอักษรที่ต้องการป้อน
โดยคอมพิวเตอร์จะจองพื้นที่ไว้ตามจำนวนตัวอักษร แต่จะป้อนได้น้อยกว่าที่จองไว้ 1 ตัว เพื่อให้ตัวแปรเก็บ 0
อีก 1 ตัว |
ฟังก์ชัน textcolor(); เป็นฟังก์ชันที่ใช้ในการกำหนดสีตัวอักษร โดยจะต้องใช้ร่วมกับฟังก์ชัน cprintf ซึ่งมีสีต่างๆ ให้เลือก
ตัวเลขค่าสีอาจจะพิมพ์เป็นตัวเลขหรือชื่อสีเป็นภาษาอังกฤษตัวพิมพ์ใหญ่ก็ได้ |
| ตัวอย่างที่ 1 | textcolor(4); cprintf(“Lampang”); | ความหมาย แสดงข้อความ Lampang เป็นสีแดง |
| ตัวอย่างที่ 2 | textcolor(MAGENTA); cprintf(“BANGKOK”); | ความหมาย แสดงข้อความ BANGKOK เป็นสีม่วง |
ตัวเลขค่าสี
|
สีที่ปรากฏ
|
0
|
(BLACK) ดำ
|
1
|
(BLUE) น้ำเงิน
|
2
|
(GREEN) เขียว
|
3
|
(CYAN) ฟ้า
|
4
|
(RED) แดง
|
5
|
(MAGENTA) ม่วง
|
6
|
(BROWN) น้ำตาล
|
7
|
(LIGHTGRAY) เทาสว่าง
|
8
|
(DARKGRAY) เทาดำ
|
9
|
(LIGHTBLUE) น้ำเงินสว่าง
|
10
|
(LIGHTGREEN) เขียวสว่าง
|
11
|
(LIGHTCYAN) ฟ้าสว่าง
|
12
|
(LIGHTRED) แดงสว่าง
|
13
|
(LIGHTMAGENTA) ม่วงสว่าง
|
14
|
(YELLOW) เหลือง
|
15
|
(WHITE) ขาว
|
| ฟังก์ชัน cprintf(); เป็นฟังก์ชันที่ใช้ในการพิมพ์ข้อความเหมือนฟังก์ชัน printf แต่จะแสดงเป็นสีต่างๆ ตามที่กำหนดไว้ในฟังก์ชัน textcolor การใช้ฟังก์ชัน cprintf ต้องกำหนดสีของตัวอักษรใน ฟังก์ชัน textcolor ก่อน |
ตัวอย่างที่ 1
| textcolor(5);
printf(“Lampang”); ความหมาย แสดงข้อความ Lampang ออกทางจอภาพ |
| ตัวอย่างที่ 2 | textcolor(15); printf(“%d”,num); ความหมาย แสดงค่าตัวแปร num ในรูปเลขจำนวนเต็ม |
| ตัวอย่างที่ 3 | textcolor(7); printf(“5.2f”,area); ความหมาย แสดงค่าที่เก็บอยู่ในตัวแปร area โดยจองพื้นที่ไว้ 5 ช่อง ทศนิยม 2 ตำแหน่ง |
| ้ฟังก์ชัน textbackground(); เป็นฟังก์ชันที่ใช้ในการกำหนดสีพื้นให้กับตัวอักษร |
| ตัวอย่าง | textbackground(14) | ความหมาย กำหนดสีพื้นเป็นสีเหลือง |
|

|
|
ในส่วนของฟังก์ชัน switch จะทำการตรวจสอบตัวแปรว่ามีค่าเท่ากับ case ใด ถ้าตรงกับ case ใดก็จะทำงาน ตามประโยคคำสั่งของ case นั้น การเปรียบเทียบของฟังก์ชัน switch ไม่สามารถเปรียบเทียบค่ามากกว่า น้อยกว่า เหมือนฟังก์ชัน if ได้ และที่สำคัญตัวแปรที่นำมาใช้กับฟังก์ชัน switch จะต้องเป็นข้อมูลชนิดเลขจำนวนเต็ม หรือตัวอักษรเท่านั้น ดังนั้น a1, a2 และ a3 อาจจะเป็นค่าคงที่ ตัวอักษร หรือตัวแปรก็ได้ โดยทั่วไปฟังก์ชัน switch นิยมใช้ในการตรวจสอบเงื่อนไข จำนวนหลาย ๆ เงื่อนไขเพราะถ้าใช้ฟังก์ชัน if จะทำให้เกิดความยุ่งยากได้ รูปแบบ switch(ตัวแปร) { case a1; ประโยคคำสั่ง 1; break; case a2; ประโยคคำสั่ง 2; break; case a3; ประโยคคำสั่ง 3; break; default; ประโยคคำสั่ง ; }
ฟังก์ชัน switch จะทำการตรวจสอบเงื่อนไข case a1 ว่าถูกต้องตรงกับเงื่อนไขหรือไม่ ถ้าตรงตามเงื่อนไขจะทำงาน ตามประโยคคำสั่งชุดที่ 1 ในกรณีที่ไม่ตรงกับ case a1 ก็จะทำการตรวจสอบเงื่อนไขไปจนถึง case สุดท้าย ถ้าไม่ตรงกับ case ใดเลย โปรแกรมจะไปทำงานตามประโยคคำสั่งชุดที่4 ซึ่งเป็นประโยคคำสั่งที่อยู่หลัง default :
|
|
เงื่อนไขแบบทางเลือกเดียว (ฟังก์ชัน if ทางเลือกเดียว) จะทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำงานตามประโยคคำสั่งภายในวงเล็บปีกกา แต่ถ้าเป็นเท็จจะข้ามไปทำชุดคำสั่งถัดไป ซึ่งประโยคคำสั่งภายในวงเล็บปีกกาอาจจะมีเพียงประโยคคำสั่งเดียว หรือหลายประโยคคำสั่งก็ได้ ถ้ามีเพียงประโยคคำสั่งเดียวจะไม่ใส่เครื่องหมาย ปีกกาเปิดและปิด
รูปแบบ
|
if (เงื่อนไข)
{
ประโยคคำสั่ง 1;
ประโยคคำสั่ง 2;
ประโยคคำสั่ง n;
}
|
|
|
|
|

|
|
เงื่อนไขแบบสองทางเลือก (ฟังก์ชัน if สองทางเลือก) จะทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำงานตามประโยคคำสั่งชุดที่ 1 ถ้าเป็นเท็จจะทำงานตามประโยคคำสั่งชุดที่ 2 ที่อยู่หลัง Else
รูปแบบ if (เงื่อนไข)
{
ประโยคคำสั่งชุดที่ 1;
}
else
{
ประโยคคำสั่งชุดที่ 2;
}

|
|
นิพจน์คณิตศาสตร์ในโปรแกรมภาษาซี คือการนำค่าคงที่หรือตัวแปรมาเชื่อมต่อกัน ด้วยเครื่องหมายทางคณิตศาสตร์ นิพจน์คณิตศาสตร์จะมีลักษณะคล้ายกับสมการทางคณิตศาสตร์ ดังนี้
c = a * b
|
(10 + 5 ) * 10 % 9 = 15
|
(8 * a + 2 * b)/c
|
5 + (5 – 1 ) * 4 = 21
|
ลำดับการประมวลผลของนิพจน์
ลำดับการประมวลผลของนิพจน์คณิตศาสตร์จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผล
เดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา
เครื่องหมาย
|
ลำดับการประมวลผล
|
( )
|
1
|
++,--
|
2
|
* / %
|
3
|
+ -
|
4
|
| ตัวอย่าง 1 (10 -34) * 5 = 35 | ลำดับการประมวลผล 10 - 3 = 7 แล้วคูณกับ 5 ได้ผลลัพธ์ 35 |
| ตัวอย่าง 2 5 + 10 *2 = 25 | ลำดับการประมวลผล 10 * 2 = 20 แล้วบวกดับ 5 ได้ผลลัพธ์ 25 |
ตัวอย่าง 3 (2 + 7) * 4 % 10 = 6
|
ลำดับการประมวลผล2 + 7 = 9 แล้วคูณกับ 4 ได้ 36 หารแบบเอาเศษด้วย 10 ได้ 6
|
| ตัวอย่าง 4 2 + 7 * 4 % 10 = 10 | ลำดับการประมวลผล 7 * 4 = 28 แล้วหารแบบเอาเศษด้วย 10 ได้ 8 บวกกับ 2 เป็น 10 |
| ตัวอย่าง 5 10 + 2 * 8 / 4 * 3 – 5 = 17 | ลำดับการประมวลผล 1. 2 * 8 = 16 2. 16 / 4 = 4 3. 4 * 3 = 12 4. 12 + 10 = 22 5. 22 – 5 = 17 |
|
|
|
|
|
|
|
|
|
|