300 likes | 425 Views
ประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator (บทที่ 3). ประเภทของข้อมูล. ข้อมูลในภาษาซี แบ่งได้เป็น 4 กลุ่ม ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทแถวอักขระ (String Type) ข้อมูลชนิดโครงสร้าง (Structure Type) ข้อมูลชนิดศรชี้ (Pointer Type).
E N D
ประเภทของข้อมูลและตัวดำเนินการData Types and Operator (บทที่ 3)
ประเภทของข้อมูล ข้อมูลในภาษาซี แบ่งได้เป็น 4 กลุ่ม • ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทแถวอักขระ (String Type) • ข้อมูลชนิดโครงสร้าง (Structure Type) • ข้อมูลชนิดศรชี้ (Pointer Type)
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทลำดับ (Ordinal Type) • ข้อมูลจำนวนเต็ม • ข้อมูลอักขระ • ข้อมูลตรรกะ • ข้อมูลประเภทจำนวนจริง (Real Type)
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทลำดับ (Ordinal Type) • ข้อมูลจำนวนเต็ม
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลจำนวนเต็ม
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทลำดับ (Ordinal Type) • ข้อมูลอักขระ (Character Data Type) ข้อมูลประเภทนี้จะเป็นตัวอักขระหนึ่งตัว ซึ่งเป็นไปตาม ตารางรหัส ASCII ได้แก่ ตัวอักษร ตัวเลข อักขระพิเศษ
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทลำดับ (Ordinal Type) • ข้อมูลตรรกะ (Boolean Data Type) จะเป็นค่าทางลอจิก • ค่าเท็จ (False) แทนค่าด้วยเลข 0 • ค่าจริง (True) แทนค่าด้วยเลข 1 - ค่าจริง คือ ค่าที่ไม่เท่ากับ 0
ข้อมูลชนิดอย่างง่าย (Simple Type) • ข้อมูลประเภทจำนวนจริง (Real Data Type) ไม่เป็นข้อมูลชนิดลำดับ เนื่องจากทศนิยมมีได้หลายตำแหน่ง
ข้อมูลประเภทแถวอักขระ (String Type) • เป็นการนำตัวอักขระมาเรียงต่อกันเป็นข้อความตั้งแต่หนึ่งตัวเป็นต้นไป สามารถเก็บตัวอักขระได้ 255 ตัว โดยตัวอักขระจะต้องอยู่ในเครื่องหมาย “” • ภาษาซีมีการเติมตัวอักษรว่าง Null ( \0 ) เป็นตัวสุดท้ายของสตริง Example ใช้เนื้อที่ในการเก็บทั้งสิ้น 9 Bytes
การประกาศค่าคงที่และตัวแปรการประกาศค่าคงที่และตัวแปร ค่าคงที่ (Constant) • หมายถึง ค่าในหน่วยความจำที่มีค่าคงที่ตลอดโปรแกรม • การประกาศค่าคงที่ ทำได้ 2 ลักษณะ คือ • ประกาศ ให้ค่าคงที่ ชื่อว่า a เป็นชนิด Integer Const int a ; // ERROR • ประกาศ ให้ค่าคงที่ ชื่อว่า b เป็นชนิด Integer เก็บค่า 12 ไว้ Const int b = 12 ;
การประกาศค่าคงที่และตัวแปรการประกาศค่าคงที่และตัวแปร ตัวแปร (Variables) • หมายถึง ค่าในหน่วยความจำที่สามารถเปลี่ยนค่าได้ • ชื่อตัวแปรจะเป็นตำแหน่งหน่วยความจำที่เก็บข้อมูลอยู่ • การประกาศตัวแปรสามารถทำได้ดังนี้ ตัวอย่างเช่น
ตัวอย่างที่ 1 Output Please Enter Cost of item : 500 Output Please Enter Cost of item : 500 item Cost is = 500.00 Sales tax is 35.00 ผลการทำงาน ?
ตัวดำเนินการ (Operator) ภาษาซีมีตัวดำเนินการ ดังต่อไปนี้ • ตัวดำเนินการเลขคณิต (Arithematic Operator) • ตัวดำเนินการลอจิก (Logic Operator) • ตัวดำเนินการเปรียบเทียบ (Relation Operator)
ตัวดำเนินการเลขคณิต (Arithematic Operator)
จากตัวอย่างที่ 4 ถ้า x มีค่าเป็น 7 y = + + x แล้ว อธิบายได้ว่า x มีค่าเป็น 7 ต่อมา เพิ่มค่า x ขึ้นหนึ่ง แล้วส่งให้ตัวแปร y ทำให้ y มีค่าเป็น 8 สรุปได้ว่า - ถ้าวางตัวดำเนินการไว้หน้าตัวแปร จะทำการเพิ่มค่าก่อนแล้วจึงส่งค่าให้กับ y - ถ้าวางตัวดำเนินการไว้หลังตัวแปร จะทำการส่งค่าให้กับ y ก่อนแล้วจึงเพิ่มค่า x อีกหนึ่ง ถ้า x มีค่าเป็น 7 y = x + + แล้ว อธิบายได้ว่า x มีค่าเป็น 7 ทำให้ y มีค่าเป็น 7 ด้วย และเพิ่มค่า x ขึ้นหนึ่ง ส่งผลให้ xมีค่าเป็น 8
ตัวดำเนินการเปรียบเทียบ (Relation Operator)
ตัวดำเนินการลอจิก (Logic Operator) ตารางค่าความจริง AND ตารางค่าความจริง OR ตารางค่าความจริง NOT
ตัวอย่างที่ 5 #include <stdio.h> int main() { int A , B; printf(" A B A OR B\n"); A = 1; B = 1; printf("| %d | %d | %d |\n", A, B, A||B); A = 1; B = 0; printf("| %d | %d | %d |\n", A, B, A||B); A = 0; B = 1; printf("| %d | %d | %d |\n", A, B, A||B); A = 0; B = 0; printf("| %d | %d | %d |\n", A, B, A||B); return(0); } A B A OR B | 1 | 1 | 1 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 | ผลการทำงาน ?
การยุบนิพจน์โดยใช้ (Compound Assignment)
ขนาดของหน่วยความจำของข้อมูลเรียงจากน้อยไปมากขนาดของหน่วยความจำของข้อมูลเรียงจากน้อยไปมาก long double double float unsigned long int long int unsigned int int short char
การเปลี่ยนประเภทของข้อมูลการเปลี่ยนประเภทของข้อมูล ผลลัพธ์จะเก็บในข้อมูลประเภทที่ใหญ่กว่าเสมอ
การเปลี่ยนประเภทของข้อมูลการเปลี่ยนประเภทของข้อมูล ภาษาซีสามารถเปลี่ยนประเภทของข้อมูลให้เป็นไปตามที่ผู้ใช้ต้องการได้ โดยการนำชนิดข้อมูลไว้หน้าข้อมูลเช่น
ตัวอย่างที่ 6 #include <stdio.h> int main() { int i , j; scanf("%d %d" , &i , &j ); printf(" i < j: %d\n" , i<j ); printf(" i <= j: %d\n" , i<=j ); printf(" i == j: %d\n" , i==j ); printf(" i > j: %d\n" , i>j ); printf(" i >= j: %d\n" , i>=j ); return(0); } ผลการทำงาน 1 6 i<j: i<=j: i==j: i>j: i>=j: 1 6 i<j:1 i<=j:1 i==j:0 i>j:0 i>=j:0 6 -1 6 -1 i< j:0 i<= j: 0 i== j:0 i> j: 1 i>= j: 1
ตัวอย่างที่ 7 #include <stdio.h> int main() { int i , j; scanf("%d %d" , &i , &j ); printf(" i && j: %d\n" , i && j ); printf(" i || j : %d\n" , i || j ); printf(" !i : %d\n" , !i ); printf(" !j : %d\n" , !j ) ; return(0); } ผลการทำงาน 2 -1 i && j: i || j : !i : !j : 2 -1 i && j:1 i || j : 1 !i : 0 !j : 0 0-2 0-2 i && j:0 i || j : 1 !i : 1 !j : 0
ลำดับการดำเนินงานของ Operator วงเล็บ • () • ! (Not) , ++ , -- , - • * , / , % • + , - • < , > , <= , >= • == , != • && (And) • || (Or) • = , *= , /= , %= , += , -=, ติดลบ ในกรณีอยู่ในลำดับเดียวกันจะทำจากซ้ายไปขวา
ตัวอย่างที่ 8 #include <stdio.h> int main() { int i , j; printf("2+3 && 1 : %d\n" , 2+3 && 1); printf("2+3 && 0 : %d\n" , 2+3 && 0); printf("-3 < 1 && 1 : %d\n" , -3 < 1 && 1); printf("12/3*5 > 10 < 5: %d\n" , 12/3*5 > 10 < 5); return(0); } 2+3 && 1 : 2+3 && 0 : -3 < 1 && 1 : 12/3*5 > 10 < 5: 2+3 && 1 : 1 2+3 && 0 : 0 -3 < 1 && 1 : 1 12/3*5 > 10 < 5: 1 ผลการทำงาน ?
จบประเภทของข้อมูลและตัวดำเนินการData Types and Operator Question ?