ด้วยศักยภาพและเทคโนโลยีของคอมพิวเตอร์ที่แพรหลาย จึงทำให้มีผู้คิดค้นพัฒนาโปรแกรมคอมพิวเตอร์ภาษาซีขึ้น คือ นายเดนนิส ริทชี่ (Dennis Ritchie) ที่ศูนย์วิจัยเบล (Bell Laboratories) ประเทศสหรัฐอเมริกาเมื่อปี ค.ศ.1972 และเป็นภาษาคอมพิวเตอร์ที่ใช้เขียนระบบปฏิบัติการยูนิกส์ ซึ่งใช้กันแพร่หลายในระบบเครือข่ายคอมพิวเตอร์ในปัจจุบัน ภาษาซีเป็นภาษาที่มีความใกล้เคียงกับภาษาระดับต่ำ (Low-Level Language) จึงทำให้นักพัฒนาโปรแกรมสามารถ ที่จะกำหนดรายละเอียดของโปรแกรมให้เข้าถึงการทำงานในส่วนต่าง ๆ ของคอมพิวเตอร์ให้มากที่สุดเพื่อให้เกิดความเร็ว ในการทำงานสูงสุด และในขณะเดียวกันภาษาซีก็ยังมีความเป็นภาษาระดับสูง (High-Level Language) ทำให้ผู้พัฒนา สามารถที่จะพัฒนาโปรแกรมได้ โดยเน้นไปที่การแก้ปัญหาที่ต้องการได้อย่างอิสระโดยไม่ต้องคำนึงถึงฮาร์ดแวร์ใด ๆ ภาษาซีเป็นภาษาโปรแกรมคอมพิวเตอร์ที่ได้รับความนิยมและมีการพัฒนาอย่างต่อเนื่อง นาย Bjarne Stroustrup นักวิจัยและพัฒนาของศูนย์วิจัยเบล (Bell Laboratiories) ได้พัฒนาภาษา C++ (ซีพลัสพลัส) ขึ้นมา โดยที่ภาษา C++ มีความสามารถในการทำงานได้ทุกอย่างเหมือนกับภาษาซี ซึ่งมีรูปแบบและโครงสร้างของภาษาใกล้เคียงกัน แต่ภาษา C++ ใช้หลักการออกแบบโปแกรมเชิงวัตถุ (Object Oriented Design) ในขณะที่ภาษาซีใช้หลักการออกแบบโปรแกรม แบบโมดูลาร์ (Modular Design) |
เกี่ยวกับองค์ประกอบของโปรแกรม
โปรแกรมภาษาซีมีองค์ประกอบที่สำคัญ 2 ส่วนคือไฟล์ส่วนหัวโปรแกรม
และไฟล์โปรแกรม ไฟล์ส่วนหัวโปรแกรมเป็นไฟล์ที่ใช้เก็บไลบราลีเพื่อใช้รวม (include)
ในการคอมไพล์โปรแกรมซึ่งจะมีส่วนขยายเป็น *.h มีชื่อเรียกว่า Compiler Directive ไฟล์โปรแกรมจะเริ่มต้นด้วยฟังก์ชัน
main() และตามด้วยเครื่องหมายปีกกาเปิด
เพื่อเริ่มต้นเขียนโปรแกรม
การเขียนโปรแกรมจะต้องเขียนด้วยอักษาภาษาอังกฤษตัวพิมพ์เล็กเสอม
และเมื่อจบประโยคคำสั่ง จะใช้เครื่องหมายเซมิโคล่อน ( ; ) ในการคั่นแต่ละคำสั่ง
ภายในโปรแกรมจะประกอบด้วยฟังก์ขันและส่วนของคำอธิบาย
เมื่อเขียนคำสั่งเสร็จจะปิดท้ายโปรแกรมด้วยเครื่องหมายปีกกาปิดเสมอ
รูปภาพ
แสดงโครงสร้างของโปรแกรมภาษาซี
|
||||||||||||||||||||||||||||||||||
ตัวแปร
ตัวแปร (variable) คือชื่อที่ผู้เขียนโปรแกรมตั้งขึ้น
เพื่อใช้เก็บค่าที่ต้องการนำมาใช้งานในการเขียนโปรแกรม เพื่อทำการประมวลผลข้อมูล
โดยมีกฏในการตั้งชื่อตัวแปรดังนี้
ก่อนที่จะนำตัวแปรไปใช้งาน ในภาษาซีจะต้องมีการประกาศค่าตัวแปรให้สอดคล้องกับข้อมูลที่จะนำไปใช้โดยมีรูปแบบดังนี้
ตัวอย่างการประกาศตัวแปร
|
||||||||||||||||||||||||
ตัวแปรชื่อเฉพาะ
|
|||||||||||||||||||||||||||||||||||
ฟังก์ชัน
ฟังก์ชัน 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)
|
ความหมาย กำหนดสีพื้นเป็นสีเหลือง
|
ข้อมูลในภาษาซี
1
|
ข้อมูลชนิดตัวอักษร
(Character)
|
คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็ม
ได้แก่ ตัวอักษร ตัวเลขและกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต ์
|
2
|
ข้อมูลชนิดจำนวนเต็ม
(Integer)
|
คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่
จำนวนเต็มบวก จำนวนเต็มลบ และศูนย์ ข้อมูลชนิดจำนวนเต็มใช้พื้นที่ในการเก็บข้อมูล
ขนาด 2 ไบต์
|
3
|
ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2
เท่า (Long
Integer)
|
คือข้อมูลที่เป็นเลขจำนวนเต็ม
ใช้พื้นที่ในการเก็บเป็น 2 เท่าของ
Integer คือมีขนาด
4 ไบต
์
|
4
|
ข้อมูลชนิดเลขทศนิยม (Float)
|
คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4
ไบต์
|
5
|
ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double)
|
คือข้อมูลที่เป็นเลขทศนิยม
ใช้พื้นที่ในการเก็บข้อมูลเป็น 2 เท่าของ
float คือมีขนาด
8 ไบต์
|
สัญลักษณ์ย่อ
ค่าคงที่ตัวอักษร
|
รหัสควบคุม
|
Bell(Alert)
|
\a
|
Backspace
|
\b
|
Horizontal tab
|
\t
|
Newline(Line Feed)
|
\n
|
Vertical tab
|
\v
|
Form feed
|
\f
|
Carriage return
|
\r
|
Quotation mark(“)
|
\”
|
Apostrophe(‘)
|
\'
|
Null
|
\0
|
เกี่ยวกับตัวดำเนินงานและนิพจน์
&&
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง
แต่ถ้าเงื่อนไขใดเป็นเท็จ หรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
|
||
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง
หรือเป็นจริงทั้งสองเงื่อนไข แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
|
!
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขหลัง
not เป็นเท็จ แต่ถ้าเงื่อนไขหลัง not เป็นจริงจะทำให้ผลลัพธ์เป็นเท็จ ตัวดำเนินการ ความหมาย ตัวอย่าง
&& และ (and) Mark>=80&&mark<=100 |
|| หรือ (or)
|
Score<0||score>100
|
!
|
ไม่ (not) !x&&!y
|
c = a * b
|
(10 + 5 ) * 10 % 9 = 15
|
(8 * a + 2 * b)/c
|
5 + (5 – 1 ) * 4 = 21
|
ลำดับการประมวลผลของนิพจน์
ลำดับการประมวลผลของนิพจน์คณิตศาสตร์จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผล
เดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา
ลำดับการประมวลผลของนิพจน์คณิตศาสตร์จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผล
เดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา
เครื่องหมาย
|
ลำดับการประมวลผล
|
( )
|
1
|
++,--
|
2
|
* / %
|
3
|
+ -
|
4
|
เกี่ยวกับการตรวจสอบเงื่อนไข
ฟังก์ชันทางเลือกเดียว
ฟังก์ชันสองเลือก
ฟังก์ชันหลายทางเลือก
ฟังก์ชันswitch
เกี่ยวกับการวนรอบการทำงาน
ฟังก์ชันwhille
ฟังก์ชัน continue จะทำงานโดยข้ามบางคำสั่งซึ่งอยู่ภายในลูปเพื่อเริ่มต้นการทำงานในรอบถัดไป
เมื่อทำงานร่วมกับฟังก์ชัน while และ do_while จะทำให้คอมพิวเตอร์ไปตรวจสอบเงื่อนไข ส่วนฟังก์ชัน
for จะทำการเพิ่มหรือลดค่าของตัวแปรแล้วค่อยไปทดสอบเงื่อนไข
เมื่อทำงานร่วมกับฟังก์ชัน while และ do_while จะทำให้คอมพิวเตอร์ไปตรวจสอบเงื่อนไข ส่วนฟังก์ชัน
for จะทำการเพิ่มหรือลดค่าของตัวแปรแล้วค่อยไปทดสอบเงื่อนไข
ไม่มีความคิดเห็น:
แสดงความคิดเห็น