3.3 ชนิดของข้อมูล

16

Upload: -

Post on 16-Apr-2017

805 views

Category:

Education


0 download

TRANSCRIPT

Page 1: 3.3 ชนิดของข้อมูล
Page 2: 3.3 ชนิดของข้อมูล

1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)

2 Character Type (ชนิดข้อมูลแบบตัวอักษร)

3

4

กำรประกำศตัวแปรควรเลือกใช้ชนิดข้อมูลที่เหมำะสม และต้ัง

ชื่อตัวแปรตำมกฎในกำรต้ังชื่อเสมอ ซึ่งชนิดข้อมูลต่ำง ๆ ในภำษำ C มี

ดังนี ้

String Type (ชนิดข้อมูลแบบข้อควำม)

Floating Type (ชนิดข้อมูลแบบจ ำนวนทศนิยม)

Page 3: 3.3 ชนิดของข้อมูล

1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)

Integer เป็นชนิดข้อมูลแบบจ ำนวนเต็ม ประกอบไปด้วย

จ ำนวนเต็มบวก จ ำนวนเต็มลบ และจ ำนวนเต็มศูนย์ ซึ่งใน

ภำษำ C ได้แบ่งจ ำนวนเต็มออกเป็นชนิดต่ำง ๆ ซึ่งแต่ละชนิดมี

ขนำดและขอบเขตของกำรใช้งำนที่แตกต่ำงกัน กำรเลือกใช้

จ ำนวนเต็มชนิดใดในกำรประกำศตัวแปรน้ันก็ขึ้นอยู่กับขนำดใน

กำรจัดเก็บข้อมลูของตัวแปรน้ัน ๆ

Page 4: 3.3 ชนิดของข้อมูล

1 Integer Type (ชนิดข้อมูลแบบจ ำนวนเต็ม)

ในข้อมูลชนิดเดียวกันของภำษำ C อำจจะมีควำมแตกต่ำงใน

เรื่องของขนำดและขอบเขตชนิดข้อมูลได้ ซึ่งจะขึ้นอยู่กับระบบปฏิบัติกำร

ที่ใช้งำน เช่น

• ในระบบปฏิบัติกำร 16 บิต ข้อมูลชนิด int จะเป็น 16 บิต หรือ 2

ไบต์

• ในระบบปฏิบัติกำร 32 บิต ข้อมูลชนิด int จะเป็น 32 บิต หรือ 4

ไบต์

Page 5: 3.3 ชนิดของข้อมูล

ชนิดขอ้มูล กำรคิดเครือ่งหมำย ขนำดไบต์ ช่วงข้อมูล

Short int

signed (คิดเครื่องหมำย)

2

-32,768 ถึง 32,767

unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 65,535

int

signed (คิดเครื่องหมำย)

4

-2,147,483,648 ถึง

2,147,483,647

unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 4,294,967,295

Long int

signed (คิดเครื่องหมำย)

4

-2,147,483,648 ถึง

2,147,483,647

unsigned (ไม่คิดเครือ่งหมำย) 0 ถึง 4,294,967,295

ตำรำงแสดงขนำดและขอบเขตข้อมูล

Page 6: 3.3 ชนิดของข้อมูล

กำรก ำหนดค่ำให้กับตัวแปรชนดิจ ำนวนเตม็

• จะต้องเป็นค่ำตัวเลขไม่มีจุดทศนิยม

• ห้ำมใช้เครื่องหมำย , หรือช่องว่ำงคั่นระหว่ำงตัวเลข เช่น 1,234

ซึ่งถือว่ำผิด

• กรณีเป็นค่ำบวกไม่จ ำเป็นต้องใส่เครื่องหมำย + น ำหน้ำค่ำ แต่

กรณีเป็นค่ำลบต้องใส่เครื่องหมำย – น ำหน้ำค่ำ

• ช่วงตัวเลขจ ำนวนเต็มควรอยู่ในช่วงชนิดข้อมูลนั้น ๆ

• สำมำรถใช้เครื่องหมำย suffix ต่อท้ำยค่ำที่ก ำหนดให้ตัวแปรได้

โดยใช้ L ต่อท้ำยชนิดข้อมูล long หรือใช้ U ต่อท้ำยค่ำเป็น unsigned

(ใชตั้วพิมพใ์หญ่หรือเล็กควำมหมำยเหมือนกัน)

Page 7: 3.3 ชนิดของข้อมูล

2 Character Type (ชนิดข้อมูลแบบตัวอักษร)

Char เป็นชนิดข้อมูลแบบอักษรตัวเดียว มีขนำด 1 ไบต์ หรือ

8 บิต โดยจะก ำหนดค่ำอยู่ในเครื่องหมำย ‘ ’ ซึ่งเป็นได้ท้ัง

ตัว อักษร (Letter) , ตั ว เลข (Digit) และสัญลักษณ์พิ เศษ

(Special Symbols) ลักษณะส ำคัญของข้อมูลชนิดนี้คือ ไม่

สำมำรถน ำไปค ำนวณได้ ตัวอย่ำงเช่น ตัวอักษร ‘2’ แตกต่ำง

จำกตัวเลข 2 ดังน้ัน ‘2’ + 3 จึงไม่สำมำรถประมวลผลได้ในกำร

เขยีนโปรแกรมภำษำ C

Page 8: 3.3 ชนิดของข้อมูล

3 String Type (ชนิดข้อมูลแบบตัวข้อควำม)

ในควำมจริงน้ัน ตัวแปรชนิดข้อควำมไม่มีกำรก ำหนดไว้ใน

ภำษำ C แต่เรำสำมำรถใช้ตัวแปรชนิดข้อควำมในรูปแบบของ

ชุดตัวแปรอักขระได้โดยใช้เทคนิคในเรื่องของ Array เข้ำมำช่วย

กำรก ำหนดค่ ำข้ อควำมให้ กับตั วแปรจะอยู่ ภำยใน

เครื่องหมำย (“ ”) โดยในกำรสร้ำงต้องประกำศขนำด Array

ไว้ล่วงหน้ำ เพ่ือเป็นกำรจองพื้นที่ส ำหรับขนำดของข้อมูล

เหนื่อย

นัก

ก็

พักก่อน

Page 9: 3.3 ชนิดของข้อมูล

Floating Point Type เป็นชนิดข้อมูลแบบตัวเลขทศนิยม

ที่สำมำรถน ำไปค ำนวณทำงคณิตศำสตร์ได้ ซึ่งอำจจะมีจุด

ทศนิยมหรือไม่มีจุดทศนิยมก็ได้ โดยสำมำรถเขียนในรูป

ทศนิยมได้ ดังนี ้

• เลขทศนิยม เช่น 12.568, -13.5

• เลขทศนิยมแบบยกก ำลัง เช่น 2.004E+5, 4.10956E-25

ซึ่ง 2.004E+5 ก็คอื 2.004 x 105

ส่วน 4.10956E ก็คอื 4.10956 x 10

-25

4 Floating Point Type (ชนิดข้อมูลแบบตัวจ ำนวนทศนิยม)

Page 10: 3.3 ชนิดของข้อมูล

ชนิดข้อมลู ขนำดไบต์ ช่วงข้อมลู

float 4 3.4 x 10-38

ถึง 3.4 x 1038

double 8 1.7 x 10-308

ถึง 1.7 x 10308

long double 10 3.4 x 10-4932

ถึง 1.1 x 104932

ตำรำงแสดงขนำดและขอบเขตข้อมูล

Page 11: 3.3 ชนิดของข้อมูล

จุดสังเกตพบว่ำ ชนิดข้อมูลแบบทศนิยมจะเป็นแบบ signed (คิด

เครื่องหมำย) เสมอ ซึ่งเรำสำมำรถก ำหนดค่ำให้ตัวแปร โดยค ำนึงถึง

ข้อก ำหนดดังนี้จะต้องเป็นค่ำตัวเลขที่สำมำรถมีจุดทศนิยมได้

• ห้ำมใช้เครื่องหมำย , หรือช่องว่ำงคั่นระหว่ำงตัวเลข เช่น 1,234.03

• กรณีเป็นค่ำบวกไม่จ ำเป็นต้องใส่เครื่องหมำย + น ำหน้ำค่ำ แต่ใน

กรณีเป็นค่ำลบต้องใส่เครื่องหมำย – น ำหน้ำค่ำเสมอ

• กำรเขียนในรูปแบบใช้ตัวอักษร E ค่ำที่ถูกก ำหนดสำมำรถก ำหนด

ได้ท้ังค่ำบวกและค่ำลบ

• สำมำรถใช้เครื่องหมำย suffix ต่อท้ำยค่ำที่ก ำหนดให้ตัวแปรได้

โดยใช้ L ต่อท้ำยชนิดข้อมูล long double หรือใช้ F ต่อท้ำยค่ำที่เป็น

double (ใชตั้วพิมพใ์หญ่หรือเล็กควำมหมำยเหมือนกัน)

Page 12: 3.3 ชนิดของข้อมูล

ค่ำคงที่ (Constants)

1. ระบุค่ำโดยตรง (Literal Constants) เป็นกำรก ำหนด

ค่ำคงที่เพื่อใช้งำนโดยตรง โดยไม่มีกำรก ำหนดค่ำผ่ำนตัวแปร

ใด ๆ ทั้งสิ้น ตัวอย่ำงเช่น ‘I’, “Love Thailand”, ‘\007’ เป็นต้น

2. นิยำมโดย # (Defined Constants) เป็นกำรก ำหนดค่ำคงที่

โดยกำรประกำศใช้งำนไว้ในส่วนของเฮดเดอร์ไฟล์

3. เก็บไว้ในตัวแปร (Memory Constants) เป็นกำรก ำหนด

ค่ำคงที่ในรูปแบบของตัวแปร

ค่ำคงที่ (Constants) คือ ค่ำข้อมูลชนิดใดชนิดหนึ่งที่ไม่มีกำรเปลี่ยนแปลงใน

ขณะที่โปรแกรมท ำงำน ตัวอย่ำงเช่น ค่ำ ซึ่งมีค่ำเท่ำกับ 3.14 เป็นต้น ซึ่งใน

ภำษำ C สำมำรถใช้งำนค่ำคงที่ได้ 3 รูปแบบดังนี้

Page 13: 3.3 ชนิดของข้อมูล

กฎของกำรแปลงชนิดของข้อมูล

(Data Type Conversion)

Implicit Type Conversion

ในกำรเขียนโปรแกรมเพื่อก ำหนดกำรท ำงำนอย่ำงใดอย่ำงหนึ่ง บำครั้ง

อำจมีชนิดข้อมูลต่ำง ๆ ในกำรประมวลผลมำกกว่ำ 1 ชนิด ดังนั้น ก่อน

ประมวลผลข้อมูลก็ควรแปลงข้อมูลต่ำง ๆ ให้มีชนิดข้อมูลเดียวกันก่อน

หลักในกำรแปลงชนิดของข้อมูล ซึ่งสำมำรถแปลงได้ 2 วิธีดงันี ้

Explicit Type Conversion

Page 14: 3.3 ชนิดของข้อมูล

char

Implicit Type Conversion

Implicit Type Conversion

หลักกำรแปลงชนิดข้อมูลในวิธีนี้คือ คอมไพเลอร์จะท ำหน้ำที่แปลง

ชนิดข้อมูลของข้อมูลที่มีค่ำนัยส ำคัญต่ ำไปเป็นชนิดข้อมูลชนิดเดียวกันกับข้อมูล

ที่มีค่ำนัยส ำคัญสูงกว่ำในชุดค ำสั่งนั้น ๆ โดยอัตโนมัติ ส ำหรับล ำดับนัยส ำคัญ

ของชนิดข้อมูล สำมำรถอธิบำยได้ ดังรูป

ล ำดับนยัส ำคญั

(Signifiance)

short

int

unsigned int

long int

unsigned long int

float

double

Long double

Page 15: 3.3 ชนิดของข้อมูล

Explicit Type Conversion (Casting)

เป็นกำรเปลี่ยนประเภทชนิดข้อมูลเป็นชนิดข้อมูลตำมที่เรำต้องกำร

โดยใช้ Explicit Type Conversion (Casting) ซึ่งมีรูปแบบดังนี้

โดยที่ DataType คือ ชนิดข้อมูลปลำยทำง

ExpressionOrVariableName คือ นิพจน์หรือตัวแปรที่ต้องกำร

แปลงข้อมูล

(DataType) ExpressionOrVariableName

Page 16: 3.3 ชนิดของข้อมูล

ที่มำ : คู่มืออบรมครูวิทยำศำสตร์ คณิตศำสตร์ คอมพิวเตอร์ โลก ดำรำศำสตร์ และอวกำศ ระดับมัธยมศึกษำตอนปลำย

หนังสือเรียนรำยวิชำเพิ่มเติม กำรเขียนโปรแกรมเบื้องต้นด้วยภำษำ C บริษทซัคเซสมีเดีย

คู่มือเรียนเขียนโปรแกรมภำษำ ส ำนักพิมพ์ IDC PREMIER