งานทำ blog บทที่ 2

21

Upload: -

Post on 16-Aug-2015

429 views

Category:

Documents


0 download

TRANSCRIPT

ตัวแปร (Variable) คือ สัญลักษณ์ที่ใช้แทนค่าข้อมูล

ในการเขียนโปรแกรม ซึ่งข้อมูลนั้นจะเป็นตัวหนังสือ

หรือตัวเลขก็ได้ โดยที่เบื้องหลังการท างานของตัวแปร

จะเป็นการจองพื้นที่ของหน่วยความจ าส าหรับเก็บ

ข้อมูลตามรูปแบบชนิดของข้อมูล

กฎการตั้งชื่อ

1. ชื่อจะต้องข้ึนต้นด้วยตัวอักษรหรือเครื่องหมาย

underscore(_) เท่านั้น จะขึ้นต้นด้วยตัวเลขหรือ

เครื่ อ งหมายอื่ น ไม่ ไ ด้ แต่ ภายในชื่ อสามารถ

ประกอบด้วยตัวอักษร เครื่องหมาย underscore

หรือตัวเลขก็ได้ เช่น Test_Amount, Love2, g1_A2,

_FirstName เป็นต้น

2. ชื่อจะประกอบด้วยอักขระพิเศษไม่ได้ เช่น $, @, #, &

กฎการตั้งชื่อ

3. ภายในชื่อมีช่องว่างหรือแท็บไม่ได้

4. ชื่อในภาษา C เป็นแบบ Case- Sensitive คือ

ตัวอักษรตัวใหญ่และตัวอักษรตัวเล็กจะถือเป็นคนละ

ตัวกัน เช่น Test, test, tEsT

5. ชื่อท่ีต้ังขึ้นต้องไม่ซ้ ากับค าสงวน (Reserved Word)

auto break case char const continue

default do double else enum extern

float for goto if int long

register return short signed sizeof static

struct switch typedef union unsigned void

volatile while

ค าสงวน (Reserved Word)

ค าสงวน หมายถึง ค าที่สงวนไว้ส าหรับเรียกใช้ตามวัตถุประสงค์ที่ก าหนด

ไว้เฉพาะ เช่น ค าส่ังที่ใช้ในค าส่ังควบคุม และชนิดของข้อมูล เป็นต้น

การประกาศตัวแปร

การประกาศตัวแปรเพื่อใช้งาน คือ การสร้าง

ตัวแปร โดยก าหนดชื่อและชนิดของข้อมูลให้กับตัวแปร

ในบางกรณีจะมีการก าหนดค่าเริ่มต้นให้กับตัวแปร

ดังกล่าวด้วย ซึ่งภาษา C มีรูปแบบการประกาศตัวแปร

และก าหนดชนิดข้อมูลให้กับตัวแปรดังนี้

type varName [= Value];

โดยที่ type เป็นชนิดของข้อมูล

varName เป็นชื่อตัวแปร

Value เป็นค่าข้อมูลของตัวแปร

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

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

3

4

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

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

ดังนี ้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ไบต์

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

ไบต์

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เหนื่อย

นัก

ก็

พักก่อน

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 (ชนิดข้อมูลแบบตัวจ านวนทศนิยม)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ค่าคงที่ (Constants)

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

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

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

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

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

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

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

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

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

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

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

(Data Type Conversion)

Implicit Type Conversion

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

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

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

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

Explicit Type Conversion

char

Implicit Type Conversion

Implicit Type Conversion

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

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

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

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

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

(Signifiance)

short

int

unsigned int

long int

unsigned long int

float

double

Long double

Explicit Type Conversion (Casting)

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

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

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

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

แปลงข้อมูล

(DataType) ExpressionOrVariableName

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

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

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