กำเนิดภาษา C
ด้วยศักยภาพและเทคโนโลยีของคอมพิวเตอร์ที่แพร่หลาย
จึงทำให้มีผู้คิดค้นพัฒนาโปรแกรมคอมพิวเตอร์ภาษาซีขึ้น คือ นายเดนนิส ริทชี่ (Dennis
Ritchie) ที่ศูนย์วิจัยเบล (Bell Laboratories) ประเทศสหรัฐอเมริกาเมื่อปี ค.ศ.1972 และเป็นภาษาคอมพิวเตอร์ที่ใช้เขียนระบบปฏิบัติการยูนิกส์
ซึ่งใช้กันแพร่หลายในระบบเครือข่ายคอมพิวเตอร์ในปัจจุบัน ภาษาซีเป็นภาษาที่มีความใกล้เคียงกับภาษาระดับต่ำ (Low-Level
Language) จึงทำให้นักพัฒนาโปรแกรมสามารถ ที่จะกำหนดรายละเอียดของโปรแกรมให้เข้าถึงการทำงานในส่วนต่าง ๆ
ของคอมพิวเตอร์ให้มากที่สุดเพื่อให้เกิดความเร็ว ในการทำงานสูงสุด
และในขณะเดียวกันภาษาซีก็ยังมีความเป็นภาษาระดับสูง (High-Level Language) ทำให้ผู้พัฒนา
สามารถที่จะพัฒนาโปรแกรมได้ โดยเน้นไปที่การแก้ปัญหาที่ต้องการได้อย่างอิสระโดยไม่ต้องคำนึงถึงฮาร์ดแวร์ใด ๆ ภาษาซีเป็นภาษาโปรแกรมคอมพิวเตอร์ที่ได้รับความนิยมและมีการพัฒนาอย่างต่อเนื่อง นาย Bjarne Stroustrup นักวิจัยและพัฒนาของศูนย์วิจัยเบล (Bell Laboratiories) ได้พัฒนาภาษา C++ (ซีพลัสพลัส) ขึ้นมา โดยที่ภาษา C++ มีความสามารถในการทำงานได้ทุกอย่างเหมือนกับภาษาซี ซึ่งมีรูปแบบและโครงสร้างของภาษาใกล้เคียงกัน แต่ภาษา C++ ใช้หลักการออกแบบโปแกรมเชิงวัตถุ (Object Oriented Design) ในขณะที่ภาษาซีใช้หลักการออกแบบโปรแกรม แบบโมดูลาร์ (Modular Design)
สามารถที่จะพัฒนาโปรแกรมได้ โดยเน้นไปที่การแก้ปัญหาที่ต้องการได้อย่างอิสระโดยไม่ต้องคำนึงถึงฮาร์ดแวร์ใด ๆ ภาษาซีเป็นภาษาโปรแกรมคอมพิวเตอร์ที่ได้รับความนิยมและมีการพัฒนาอย่างต่อเนื่อง นาย Bjarne Stroustrup นักวิจัยและพัฒนาของศูนย์วิจัยเบล (Bell Laboratiories) ได้พัฒนาภาษา C++ (ซีพลัสพลัส) ขึ้นมา โดยที่ภาษา C++ มีความสามารถในการทำงานได้ทุกอย่างเหมือนกับภาษาซี ซึ่งมีรูปแบบและโครงสร้างของภาษาใกล้เคียงกัน แต่ภาษา C++ ใช้หลักการออกแบบโปแกรมเชิงวัตถุ (Object Oriented Design) ในขณะที่ภาษาซีใช้หลักการออกแบบโปรแกรม แบบโมดูลาร์ (Modular Design)
โครงสร้างภาษา C
โปรแกรมภาษาซีมีองค์ประกอบที่สำคัญ 2 ส่วนคือไฟล์ส่วนหัวโปรแกรม
และไฟล์โปรแกรม ไฟล์ส่วนหัวโปรแกรมเป็นไฟล์ที่ใช้เก็บไลบราลีเพื่อใช้รวม (include) ในการคอมไพล์โปรแกรมซึ่งจะมีส่วนขยายเป็น *.h มีชื่อเรียกว่า Compiler
Directive ไฟล์โปรแกรมจะเริ่มต้นด้วยฟังก์ชัน main() และตามด้วยเครื่องหมายปีกกาเปิด เพื่อเริ่มต้นเขียนโปรแกรม
การเขียนโปรแกรมจะต้องเขียนด้วยอักษาภาษาอังกฤษตัวพิมพ์เล็กเสอม
และเมื่อจบประโยคคำสั่ง จะใช้เครื่องหมายเซมิโคล่อน ( ; ) ในการคั่นแต่ละคำสั่ง ภายในโปรแกรมจะประกอบด้วยฟังก์ขันและส่วนของคำอธิบาย
เมื่อเขียนคำสั่งเสร็จจะปิดท้ายโปรแกรมด้วยเครื่องหมายปีกกาปิดเสมอ
แสดงโครงสร้างของโปรแกรมภาษาซี
#include<library>
|
/* ไฟล์ส่วนหัวโปรแกรม*/
|
|
void
main(void)
|
/*ฟังก์ชันหลักของโปรแกรม*/
|
|
{
|
/*เริ่มต้นการเขียนโปรแกรมด้วยเครื่องหมายปีกกาเปิด*/
|
|
variable
declaration;
|
/*การประกาศค่าตัวแปรที่ใช้ในโปรแกรม*/
|
|
program
statement;
|
/*ประโยคคำสั่งในโปรแกรม*/
|
|
}
|
/*จบการเขียนโปรแกรมด้วยเครื่องหมายปีกกาปิด*/
|
#include<library>
|
เป็นส่วนหัวหัว โปรแกรมที่จะต้องเขียนไว้เพื่อให้ใช้งานฟังก์ชันต่างๆ
ในกรณีที่ต้องการทราบว่าฟังก์ชันใดถูกนิยามไว้ที่ใดให้ทำแถบสีที่ฟังก์ชัน
ดังกล่าวและกดปุ่ม Ctrl+f1
|
main
|
เป็นฟังก์ชันหลักของโปรแกรม
|
( )
|
ภายในวงเล็บเป็นค่าพารามิเตอร์ที่จะส่งผ่านไปทำงานยังฟังก์ชันอื่นๆ
ถ้าไม่มีการ
ใส่ค่าแสดงว่าไม่ต้องการมีค่าพารามิเตอร์ |
{
|
ปีกกาเปิดแสดงการเริ่มต้นการเขียนโปรแกรม
|
variable
declarations
|
ประกาศตัวแปร
|
program
statement
|
การเขียนประโยคคำสั่ง
|
}
|
ปีกกาปิดแสดงการจบการเขียนโปรแกรม
|
/*ข้อความ*/
|
คำอธิบายโปรแกรม ใช้ในการอธิบายความหมายของคำสั่งหรือสิ่งที่ต้องการเขียน
ไว้กันลืมจะไม่มีผลใดๆกับโปรแกรม แต่การเขียนจะต้องเริ่มต้นด้วยเครื่องหมาย /* |
ตัวแปร (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 ตัวอักษร
|
คำสงวนในภาษา C
คำสงวนคือคำที่กำหนดขึ้นในภาษาซีเพื่อให้มีความหมายอย่างใด
อย่างหนึ่ง และนำไปใช้งานแตกต่างกัน การประกาศค่าตัวแปรจะต้องไม่ให้ซ้ำกับคำสงวน
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
|
ฟังก์ชั่น (Function)
ฟังก์ชัน 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)
|
ความหมาย กำหนดสีพื้นเป็นสีเหลือง
|
ชนิดข้อมูล (Data type)
ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน
ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาด
เนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันนั้นเอง ทำให้มีความสามารถใน
การจัดเก็บข้อมูลแต่ละประเภทแตกต่างกันไป ดังนั้นในการเลือกงานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นใน
การใช้งานด้วย สำหรับประเภทของข้อมูลมีดังนี้คือ
เนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันนั้นเอง ทำให้มีความสามารถใน
การจัดเก็บข้อมูลแต่ละประเภทแตกต่างกันไป ดังนั้นในการเลือกงานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นใน
การใช้งานด้วย สำหรับประเภทของข้อมูลมีดังนี้คือ
1
|
ข้อมูลชนิดตัวอักษร (Character)
|
คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็ม ได้แก่ ตัวอักษร
ตัวเลขและกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต ์
|
2
|
ข้อมูลชนิดจำนวนเต็ม (Integer)
|
คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ และศูนย์
ข้อมูลชนิดจำนวนเต็มใช้พื้นที่ในการเก็บข้อมูล ขนาด 2 ไบต์
|
3
|
ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer)
|
คือข้อมูลที่เป็นเลขจำนวนเต็ม ใช้พื้นที่ในการเก็บเป็น 2 เท่าของ Integer คือมีขนาด 4 ไบต ์
|
4
|
ข้อมูลชนิดเลขทศนิยม (Float)
|
คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์
|
5
|
ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double)
|
คือข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บข้อมูลเป็น 2 เท่าของ float คือมีขนาด 8 ไบต์
|
ตัวดำเนินการทางคณิตศาสตร์
ในโปรแกรมภาษาซีจะใช้ตัวดำเนินการทางคณิตศาสตร์เป็นตัวเชื่อมในการเขียนโปรแกรม
เพื่อหาผลลัพธ์จากการคำนวณ
ซึ่งสามารถกระทำกับข้อมูลได้หลายรูปแบบ เช่น บวก ลบ คูณ หาร เปอร์เซ็นต์ ดังตัวอย่างในตารางข้างล่างนี้
ซึ่งสามารถกระทำกับข้อมูลได้หลายรูปแบบ เช่น บวก ลบ คูณ หาร เปอร์เซ็นต์ ดังตัวอย่างในตารางข้างล่างนี้
ตัวดำเนินการ
|
ความหมาย
|
ตัวอย่าง
|
+
|
บวก (Addition)
|
X + y
|
–
|
ลบ (Subtraction)
|
X – y
|
*
|
คูณ (Multiplication)
|
X * y
|
/
|
หาร (Division)
|
X / y
|
++
|
เพิ่มค่าครั้งละ 1(Increment)
|
X++
|
—
|
ลดค่าครั้งละ 1(Decrement)
|
X–
|
%
|
หารเอาผลลัพธ์เฉพาะเศษ (Modulus)
|
X % y
|
ตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการเปรียบเทียบในโปรแกรมภาษาซีคือเครื่องหมายที่ใช้ในการเปรียบเทียบในทางคณิตศาสตร์
ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริงจะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จจะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบมีชื่อเรียกอีกอย่างหนึ่งว่าค่าคงที่บูลีน (Boolean Constant) ดังนี้
ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริงจะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จจะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบมีชื่อเรียกอีกอย่างหนึ่งว่าค่าคงที่บูลีน (Boolean Constant) ดังนี้
8 > 5
|
ผลลัพธ์เป็นจริง
|
ค่าคงที่บูลีนเป็น 1
|
0 = 10
|
ผลลัพธ์เป็นเท็จ
|
ค่าคงที่บูลีนเป็น 0
|
X > x
|
ผลลัพธ์เป็นจริง
|
ค่าคงที่บูลีนเป็น 1(เปรียบเทียบค่าตามรหัสแอสกี)
|
A > B
|
ผลลัพธ์เป็นจริง
|
ค่าคงที่บูลีนเป็น 1(เปรียบเทียบค่าตามรหัสแอสกี)
|
ตัวดำเนินการ
|
ความหมาย
|
ตัวอย่าง
|
>
|
มากกว่า (Greather Than)
|
X > y
|
<
|
น้อยกว่า (Less Than)
|
X < y
|
>=
|
มากกว่าหรือเท่ากับ (Greather Than or Equal)
|
X >= y
|
<=
|
น้อยกว่าหรือเท่ากับ (Less Than or Equal)
|
X <= y
|
==
|
เท่ากับ (Equal)
|
X == y
|
!=
|
ไม่เท่ากับ (Not Equal)
|
X != y
|
ตัวดำเนินการทางตรรกะ
ตัวดำเนินการทางตรรกะในโปรแกรมภาษาซี
คือเครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า 2 เงื่อนไข
เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น ใช้สัญลักษณ์แทนในแต่ละเครื่องหมาย ดังตารางข้างล่างนี้
เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น ใช้สัญลักษณ์แทนในแต่ละเครื่องหมาย ดังตารางข้างล่างนี้
&&
|
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง
แต่ถ้าเงื่อนไขใดเป็นเท็จ หรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
|
||
|
จะให้ผลลัพธ์เป็นจริง เมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง
หรือเป็นจริงทั้งสองเงื่อนไข
แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
|
!
|
จะให้ผลลัพธ์เป็นจริง เมื่อเงื่อนไขหลัง 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
|
ตัวอย่าง 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 |
ตัวอย่างการเขียนโปรแกรมด้วยภาษา C
::ภาษาC::…++โปรแกรมคิดเกรด++…
#include <conio.h>
#include <stdio.h>
void main()
{
int score;
char grade;
printf(“Enter score : “);
scanf(“%d”,&score);
clrscr();
if (score > 100)
grade = ‘E';
else if (score >= 80)
grade = ‘A';
else if ((score >= 70) && (score < 80))
grade = ‘B';
else if ((score >= 50) && (score < 70))
grade = ‘C';
else if ((score >= 40) && (score < 50))
grade = ‘D';
else grade = ‘E';
printf(“You got %cn”,grade);
getch();
#include <stdio.h>
void main()
{
int score;
char grade;
printf(“Enter score : “);
scanf(“%d”,&score);
clrscr();
if (score > 100)
grade = ‘E';
else if (score >= 80)
grade = ‘A';
else if ((score >= 70) && (score < 80))
grade = ‘B';
else if ((score >= 50) && (score < 70))
grade = ‘C';
else if ((score >= 40) && (score < 50))
grade = ‘D';
else grade = ‘E';
printf(“You got %cn”,grade);
getch();
โปรแกรมภาษา
Java
1. โครงสร้างของคลาส
โปรแกรมที่สร้างจากภาษาจาวา ต้องสามารถสร้างออปเจ็คหรือคลาสให้ได้อย่างน้อยหนึ่งตัว
โดยมีรูปแบบโครงสร้างดังนี้
class Class_Name
{ Data_Member Mothod_Member } |
class คือคีย์เวิร์ดสำหรับกำหนดคลาส
Class_Name คือชื่อคลาส
Data_Member ดาต้าในคลาส
Method_Member เมธรอดในคลาส
สัญลักษณ์ { } คือของเขตของคลาส
Class_Name คือชื่อคลาส
Data_Member ดาต้าในคลาส
Method_Member เมธรอดในคลาส
สัญลักษณ์ { } คือของเขตของคลาส
2. กฎการตั้งชื่อ(Identify)
ใช้ตั้งชื่อคลาส ชื่อดาต้า ชื่อเมธรอด
และชื่อตัวแปร
- ประกอบด้วยตัวอักษร
และหรือตัวเลข โดยตัวอักษรให้ใช้ตัวอักษรภาษาอังกฤษไม่ว่าตัวเลขหรือตัวใหญ่
รวมถึงสัญลักษณ์พิเศษ _ หรือ $ เช่น age, name2,
int2float, _name, Currency$ เป็นต้น
- ความยาวตัวอักษรไม่ควรเกิน 65535 ตัวอักษร
- ไม่ควรมีตัวเลขเป็นตัวแรก
เช่น 101database,
2name ถือว่าไม่สามารถใช้ตั้งชื่อได้
- ตัวอักษรตัวเล็กและตัวใหญ่มีความแตกต่างกัน
ดังนั้น Count, count และ CoUnT ทั้งสามตัวอ่านเหมือนกัน
แต่ถือว่าเป็นคนละตัวกัน
- ต้องไม่ตรงกับคีย์เวิร์ดใดในภาษาจาวาดังต่อไปนี้
abstract
|
double
|
int
|
strictfp **
|
boolean
|
else
|
interface
|
super
|
break
|
extends
|
long
|
switch
|
byte
|
final
|
native
|
synchronized
|
case
|
finally
|
new
|
this
|
catch
|
float
|
package
|
throw
|
char
|
for
|
private
|
throws
|
class
|
goto *
|
protected
|
transient
|
const *
|
if
|
public
|
try
|
continue
|
implements
|
return
|
void
|
default
|
import
|
short
|
volatile
|
do
|
instanceof
|
static
|
while
|
* แสดงคีย์เวิร์ดที่ไม่มีใช้ใน JDK เวอร์ชัน 1.2 ขึ้นไป
** แสดงคีย์เวิร์ดที่เพิ่มเข้ามาตั้งแต่ JDK เวอร์ชัน 1.2 ขึ้นไป
3. ดาต้า(Data Member)
รูปแบบ
[Access_Level] [final] [static] Data_Type Data_Name
ดาต้าคือส่วนประกอบส่วนหนึ่งของคลาส
ถูกกำหนดเพื่อใช้สำหรับเก็บข้อมูล เช่นคลาส Pen มีดาต้า Color ไว้เก็บข้อมูลสี
- คีย์เวิร์ด public เป็นระดับการเข้าถึงข้อมูลที่ไม่มีข้อจำกัดใดๆ
- คีย์เวิร์ด private เป็นระดับการเข้าถึงข้อมูล สำหรับการใช้งานภายในคลาสเท่านั้น
- คีย์เวิร์ด protected เป็นระดับการเข้าถึงข้อมูลภายในคลาส
และสำหรับคลาสที่สืบทอดมา (Inherit) แต่ต้องอยู่ในเพ็กเกจ
(package) เดียวกัน
- ถ้าไม่ระบุคีย์เวิร์ด
เป็นระดับการเข้าถึงข้อมูลภายในคลาส และอยู่เพ็กเกจเดียวกัน
final เป็นคีย์เวิร์ดตัวหนึ่งซึ่งใช้บอกว่าดาต้าตัวนั้นใช้สำหรับเก็บข้อมูล
โดยที่ข้อมูลจะไม่สามารถทำการเปลี่ยนแปลงได้ไม่ว่าในกรณีใดๆ
ปกติจะใส่คีย์เวิร์ดนี้ไว้เมื่อต้องการให้ดาต้าเก็บข้อมูลที่เป็นข้อมูลที่คงที่ (Constant) ตลอดการทำงานของโปรแกรม
static เป็นคีย์เวิร์ด
สำหรับใช้บอกถึงคุณลักษณะพิเศษในการใช้งาน เมื่อมีการกำหนดให้ดาต้าใดๆนำหน้าด้วยคีย์เวิร์ด static แล้ว ดาต้าตัวนั้นจะมีคุณลักษณะดังนี้
- ดาต้า
จะถูกโหลดลงในหน่วยความจำและพร้อมที่จะถูกใช้งานในทันทีเมื่อมีการอ้างถึง
ตามข้อกำหนดของระดับการเข้าถึง (Access Level)
- ดาต้า
จะอยู่ในหน่วยความจำเพียงตัวเดียว
ไม่ว่าคลาสจะถูกสร้างเพื่อเป็นออปเจ็คกี่ตัวก็ตาม ดังนั้นจึงสามารถใช้ดาต้าเป็นที่เก็บข้อมูลรวมของกลุ่มคลาสเดียวกันได
class SimpleClass
{ int data1; } |
4. เมธรอด(Method Member)
รูปแบบ
[Access_Level] [final] [static] Return_Type Method_Name
( Argument_List )
{
Statement }
- Argument_List คือช่องทางสำหรับการผ่านข้อมูลเพื่อส่งให้กับเมธรอดใช้ในการทำงาน
- Statement คือคำสั่ง คีย์เวิร์ดควบคุมการทำงาน เอ็กเพลสชั่นใดๆ เพื่อกำหนดหลักการและวิธีการประมวลผลภายในเมธรอด
- สัญลักษณ์ { และ } เป็นเครื่องหมายบ่งบองขอบเขตของเมธรอด
class SimpleClass
{ void method1( ) { } } |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น