ข้อมูลและตัวแปร

ชนิดของข้อมูล << Click>>
       ข้อมูล ในหลักการเขียนโปรแกรม หมายถึง ค่าของตัวแปรในเชิงคุณภาพหรือเชิงปริมาณ นั่นหมายความว่า เมื่อมีการส่งผ่านค่า รับค่า ผ่านตัวแปร จำเป็นต้องระบุ ชนิดของข้อมูล ที่จะมาเก็บในตัวแปร
ในภาษาซี มีการกำหนดชนิดของข้อมูลไว้ 4 ประเภท คือ
  1. ข้อมูลชนิดซิมเพิล (simple type)
  2.  ข้อมูลชนิดสตริง (string type)
  3. ข้อมูลประเภทโครงสร้าง (structure type)
  4. ข้อมูลประเภทพอยเตอร์ (pointer type)

1. ข้อมูลชนิดซิมเพิล (simple type)

        ข้อมูลชนิดซิมเพิล แบ่งได้เป็นข้อมูลประเภทที่มีลำดับ (ordinal type) และข้อมูลประเภทจำนวนจริง (real data type) โดยข้อมูลประเภทมีลำดับเป็นข้อมูลที่มีค่าลำดับที่แน่นอน เช่นตัวอักษร A   B   C … Z   ตัวเลขที่ใช้ในการนับ ซึ่งในภาษาซียังแบ่งข้อมูลประเภทลำดับ ออกได้หลายประเภท ได้แก่

1. ข้อมูลประเภทจำนวนเต็ม (Integer data type)
2. ข้อมูลประเภทจำนวนจริง (Real data type)
3. ข้อมูลประเภทตัวอักขระ (Character data type)
4. ข้อมูลประเภทตรรกะ (ฺBoolean data type)

1.1 ข้อมูลประเภทจำนวนเต็ม (Integer data type)

         ข้อมูลประเภทนี้ใช้เก็บตัวเลขที่เป็นจำนวนเต็ม โดยคอมพิวเตอร์จะใช้หน่วยความจำในการเก็บข้อมูล ในรูปของเลขฐานสอง เช่น ถ้าหากคอมพิวเตอร์ ใช้หน่วยความจำ ในการเก็บข้อมูล จำนวน 8บิต  หรือ 1ไบต์ จะแทนค่าข้อมูลได้ เท่ากับ 2^ 8 (2 ยกกำลัง 8) หรือเท่ากับ 256 ค่า ซึ่งถ้าเขียนอยู่ในรูป เลขฐานสิบ จะแทนค่าได้ตั้งแต่ 0 ถึง 255 ข้อมูลชนิดจำนวนเต็ม ยังแบ่งออกได้เป็นหลายประเภท ขึ้นอยู่กับขนาดของหน่วยความจำที่คอมพิวเตอร์ใช้เก็บข้อมูล โดยข้อมูลประเภทต่าง ๆ แสดงได้ดังตารางต่อไปนี้

ตารางข้อมูลชนิดจำนวนเต็ม

        ข้อมูลชนิดจำนวนเต็มสามารถใช้เก็บเลขที่แสดงเครื่องหมาย คือเลขบวกและเลขลบ เช่น +10 และ –5 ถ้าไม่ระบุเครื่องหมายตามปรกติแล้วจะถือว่าเป็นเลขบวก ดังนั้นเครื่องหมายบวกจึงสามารถละไว้ในฐานที่เข้าใจ เลขจำนวนเต็มเมื่อเก็บแบบแสดงเครื่องหมายจะเรียกว่า signed number เมื่อเก็บแบบไม่สนแสดงเครื่องหมายจะเรียกว่า unsigned number

   การเก็บแบบแสดงเครื่องหมาย และแสดงมีเครื่องหมายแตกต่างกันอย่างไร        คำตอบคือ ถ้าเก็บแบบแสดงเครื่องหมาย ตัวเครื่องหมายเองจะใช้ที่เก็บข้อมูลหนึ่งบิต หากเก็บแบบไม่แสดงเครื่องหมายก็สามารถใช้บิตนั้นมาเก็บจำนวนตัวเลขได้ การเก็บแบบไม่แสดงเครื่องหมายจึงเก็บตัวเลขได้มากกว่า

      ยกตัวอย่างเช่นข้อมูลแบบ byte ใช้เนื้อที่ในหน่วยความจำแปดบิต         หากเก็บเลขจำนวนเต็ม      แบบไม่แสดงเครื่องหมาย จะก็จะเก็บเลขได้จาก 0 ถึง 255 หากเป็นเลขจำนวนเต็มแบบแสดงเครื่องหมาย หรือ sbyte ก็จะเก็บเลขได้น้อยกว่าครึ่งหนึ่ง คือเก็บจำนวนได้จาก –128 ถึง +127 (ดูในตาราง) ภาษา C# สนับสนุนเลขจำนวนเต็มทั้งแบบแสดงและไม่แสดงเครื่องหมาย เลขที่ไม่แสดงเครื่องหมายจะถูกเหมาว่าเป็นบวก เครื่องหมายลบจะไม่ถูกเก็บไว้ในหน่วยความจำ และจำนวนศูนย์จะถูกถือว่าเป็นจำนวนลบ

การประกาศตัวแปรชนิดจำนวนเต็ม

ข้อมูลชนิด int

รูปแบบ   int  <ชื่อตัวแปร> [= ค่าที่กำหนด] , [<ชื่อตัวแปร> = ค่าที่กำหนด]… ;

ตัวอย่าง    int  a , b  ;                              // ประกาศตัวแปรชื่อ a และ b โดยไม่กำหนดค่าเริ่มต้น
int  x=5 , b=10 ;                      // ประกาศตัวแปรชื่อ x และ b โดยมีค่าเริ่มต้นเป็น 5 และ 10
int  c=10.5 ;                           // ประกาศตัวแปรชื่อ c โดยมีค่าเริ่มต้นเป็น 10 (ไม่เอาทศนิยม)

ข้อมูลชนิด long

รูปแบบ   long  <ชื่อตัวแปร> [= ค่าที่กำหนด] , [<ชื่อตัวแปร> = ค่าที่กำหนด]… ;

ตัวอย่าง    long  p , q ;                         // ประกาศตัวแปรชื่อ p และ  q   โดยไม่กำหนดค่าเริ่มต้น             int  e=50000 , f=100000 ;   // ประกาศตัวแปรชื่อ e  และ  f  โดยมีค่าเริ่มต้นเป็น 50000 และ1 00000

ข้อมูลชนิด byte

ชนิดข้อมูลแบบ byte เป็นชนิดที่มีขนาดเล็กที่สุดในกลุ่มข้อมูลจำนวนเต็ม การประกาศจองหน่วยความจำชนิดนี้ทำได้โดยใช้คีย์เวิร์ด byte ปรกติแล้วโปรแกรมเมอร์นิยมใช้ byte ในการรับ-ส่งข้อมูล หรือแฟ้มข้อมูลภายในเครือข่าย นอกจากนั้นยังนิยมใช้เมื่อต้องการทำงานกับข้อมูลในระดับบิต (binary operation) เพราะการกระทำลักษณะนี้ไม่สามารถทำโดยใช้แบบข้อมูลชนิดอื่นๆ ได้

byte x = 10, y = 20;

โค้ดที่เห็นข้างบนทำหน้าที่ประกาศตัวแปรสองตัวชื่อ x และ y โดยมีชนิดข้อมูลเป็น byte ทั้งคู่
** จงใช้ชนิดข้อมูลแบบ byte เมื่อใดก็ตามที่คุณต้องการรับ-ส่งข้อมูลในเครือข่าย หรือเมื่อต้องการทำงานกับข้อมูลในระดับบิต **

1.2. ข้อมูลประเภทจำนวนจริง (Real data type)

      ข้อมูลประเภทนี้จะเป็นจำนวนจริงหรือทศนิยม ข้อมูลประเภทนี้จัดลำดับก่อนหลังได้ยาก จึงไม่จัดเป็นข้อมูลประเภทที่มีลำดับ เนื่องจากทศนิยม มีได้หลายตำแหน่ง ข้อมูลชนิดจำนวนจริงนี้ยังแบ่งออกได้เป็นหลายประเภท โดยแต่ละประเภท จะใช้หน่วยความจำ ในการเก็บแตกต่างกัน ทำให้เก็บข้อมูล ได้แตกต่างกัน ดังตารางต่อไปนี้

ข้อมูลชนิด float

        ชนิดข้อมูลแบบ float เหมาะสำหรับเก็บเลขจำนวนจริงที่ต้องการความเที่ยงตรงแบบปรกติ อย่างเช่นจำนวนเงิน ความเที่ยงตรงแบบปรกติคือมีจำนวนเลขหลังจุดทศนิยมเจ็ดหลัก ยกตัวอย่างเช่นแบ่งเงินจำนวน 53.50 บาทให้คน 17 คนจะได้คนละ 3.147058823529 บาท ถ้าเก็บเป็นแบบ float ก็จะเหลือแค่ 3.1470588 ซึ่งไม่ได้เที่ยงตรงอย่างถึงที่สุด แต่ก็เพียงพอสำหรับจำนวนเงิน

** จงใช้ float เมื่อคุณต้องการตัวเลขแบบมีทศนิยมที่ต้องการความละเอียดขนาดจำนวนหลักหลังจุดทศนิยม 7 หลัก  **

ข้อมูลชนิด double

ชนิดข้อมูลแบบ double ใช้เก็บจำนวนมีทศนิยมซึ่งมีค่าสูงมากๆ หรือต่ำมากๆ ใช้พื้นในหน่วยความจำมากเป็นสองเท่าของ float

** จงใช้ double เมื่อต้องการเก็บตัวเลขที่มีจำนวนหลักหลังจุดทศนิยมมากกว่า 7 หลัก  **

3. ข้อมูลประเภทตัวอักขระ (Character data type)

ข้อมูลประเภทนี้จะเป็นอักขระหนึ่งตัว ซึ่งเป็นไปตามตารางรหัส ASCII ประกอบด้วยข้อมูลที่เป็นตัวอักษร ตัวเลข และอักขระพิเศษ ข้อมูลประภทนี้จะเป็นข้อมูลประเภทที่มีลำดับ เนื่องจากเรียงตามลำดับตามตาราง ASCII ข้อมูลประเภทนี้จะใช้เนื้อที่หน่วยความจำในการเก็บข้อมูล 1 Byte และต้องเขียนให้อยู่ในเครื่องหมาย ‘   ‘ (single quotation) เช่น

การประกาศตัวแปรชนิดอักขระ char

ข้อมูลชนิด char

รูปแบบ   char   <ชื่อตัวแปร> [= ค่าที่กำหนด] , [<ชื่อตัวแปร> = ค่าที่กำหนด]… ;

ตัวอย่าง    char   ch1 , ch2;                    // ประกาศตัวแปรชื่อ ch1 และ ch2 โดยไม่กำหนดค่าเริ่มต้น
char   ans=’y’ , more = ‘n’;     // ประกาศตัวแปรชื่อ ans และ more โดยมีค่าเริ่มต้นเป็น ‘y’ และ ‘n’

ข้อมูลประเภทตรรกะ (ฺBoolean data type)

จะเป็นค่าทางลอจิก ได้แก่ จริง (true) กับเท็จ (false ) จะใช้ในคำสั่งควบคุมเพื่อตัดสินใจการทำงาน ในการเรียงลำดับจะให้ค่าที่เป็นเท็จ มาก่อนค่าที่เป็นจริง ซึ่งในการเขียนโปรแกรมด้วยภาษาซี จะแทนค่าที่เป็นเท็จด้วย 0 และ แทนค่าที่เป็นจริงด้วย 1

การประกาศตัวแปรชนิด ใช้การประกาศแบบจำนวนเต็ม (int) หรือ อักขระ (char) เพื่อให้ได้ค่า 0 ซึ่งก็คือ เป็นเท็จ
4. ข้อมูลประเภทตรรกะ (Boolean data type)

 

ใส่ความเห็น

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s