ชนิดข้อมูล (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 |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น