Custom Search

วันพุธที่ 22 กรกฎาคม พ.ศ. 2552

ประเภทของข้อมูล

ประเภทของข้อมูลและตัวดำเนินการ

 

ประเภทของข้อมูล

ข้อมูลในภาษาซีอาจแบ่งออกได้เป็น 4 กลุ่มดังต่อไปนี้

  • ข้อมูลชนิดซิมเปิล (Simple Type)
  • ข้อมูลประเภทสตริง (String Type)
  • ข้อมูลประเภทโครงสร้าง (Structure Type)
  • ข้อมูลประเภทพอยต์เตอร์ (Pointer Type)

 

ข้อมูลชนิดซิมเปิล

ข้อมูลชนิดซิมเปิลแบ่งได้เป็นข้อมูลประเภทลำดับ (Ordinal Type) และข้อมูลประเภทจำนวนจริง (Real Data Type)

 

ข้อมูลประเภทลำดับ (Ordinal Type)

ข้อมูลแบบลำดับเป็นข้อมูลที่มีค่าเป็นลำดับแน่นอน เช่น ตัวเลขที่ใช้ในการนับ ลำดับตัวอักษร เป็นต้น

 

ข้อมูลชนิดซิมเปิล

ข้อมูลชนิดจำนวนเต็ม (Integer Data Type) : ข้อมูลชนิดนี้สามารถแบ่งได้หลายประเภทขึ้นอยู่กับขนาดของหน่วยความจำที่คอมพิวเตอร์ใช้เก็บ โดยข้อมูลประเภทต่าง ๆ แสดงได้ดังตารางต่อไปนี้

 

 

 

 

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

              ประเภท

ช่วงของข้อมูลที่เก็บไว้

ขนาดหน่วยความจำ

char

unsigned char

signed char

int

unsigned int

long

unsigned long int

128-127

0-255

-128..127

-32,768..32,767

0..65,535

-2,147,483,648..2,147483,647

0..4,294,967,296

1 ไบต์

1 ไบต์

1 ไบต์

2 ไบต์

2 ไบต์

4 ไบต์

4 ไบต์

 

ข้อมูลชนิดซิมเปิล

ข้อมูลประเภทตัวอักขระ (Character Data Type) : ข้อมูลประเภทนี้จะเป็นตัวอักขระ 1 ตัว ซึ่งเป็นไปตามตารางรหัส ASCII ประกอบด้วยข้อมูลที่เป็นตัวอักษร ตัวเลข และอักขระพิเศษ เช่น ‘A’,’B’,’C’ นอกจากนี้ยังมีอักขระพิเศษ เช่น ‘\n’ (รหัสขึ้นบรรทัดใหม่), ‘\t’ (รหัสเว้นวรรค 1 tab), ’\a’ (เสียง Beep)

 

ข้อมูลชนิดซิมเปิล

 

ข้อมูลประเภทตรรก (Boolean Data Type) : จะเป็นค่าทาง Logic ได้แก่ จริง (True) และเท็จ (False) จะใช้ในคั่งควบคุมการตัดสินใจในการทำงาน

 

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

 

 

ข้อมูลประเภทจำนวนจริง (Real Data Type)

ประเภท

ช่วงของข้อมูลที่เก็บไว้

ขนาดหน่วยความจำ

float

double

long double

3.4x10-38   ถึง 3.4x1038

1.7x10-308   ถึง 1.7x10308

3.4x10-4032  ถึง 3.4x104032

ไบต์

ไบต์

10  ไบต์

 

ข้อมูลชนิดซิมเปิล

ข้อมูลประเภทสตริง (String Type) : ข้อมูลประเภทนี้จะนำเอาตัวอักขระมาต่อเรียงกันเป็นข้อความตั้งแต่ 1 ตัวขึ้นไป โดยสามารถเก็บตัวอักขระได้ 255 ตัว โดยตัวอักขระจะต้องอยู่ในเครื่องหมาย “ “ในการเขียนโปรแกรมด้วยภาษาซีจะมีการเติมอักษรว่าง NULL(\0) เป็นตัวสุดท้าย  เช่น การเก็บสตริงคำว่า “COMPUTER” จะใช้เนื้อที่ในการเก็บ 9 ไบต์  โดยแต่ละไบต์เป็นดังนี้

 

“C”

“O”

“M”

“P”

“U”

“T”

“E”

“R”

“\0”

การประกาศตัวแปรและค่าคงที่

การประกาศค่าคงที่   ค่าคงที่ (Constant) เป็นค่าในหน่วยความจำที่มีค่าคงที่ตลอดโปรแกรม ในการประกาศค่าคงที่จะเป็นการกำหนดชื่อให้ค่าคงที่ ถ้าในโปรแกรมส่วนใดส่วนหนึ่งเรียกชื่อที่ประกาศไว้ก็จะได้ข้อมูลตามที่กำหนด ซึ่งทำได้ 2 ลักษณะดังต่อไปนี้

วิธีที่ 1

รูปแบบ          Const แบบข้อมูล ชื่อค่าคงที่;

 

 

        const int a:

  ตัวอย่าง

วิธีที่ 2

รูปแบบ    const แบบข้อมูล ชื่อค่าคงที่ = ค่าข้อมูล

 

ตัวอย่างเช่น

              const int count = 100;

 

การประกาศค่าคงที่ด้วย #define

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

รูปแบบ

#define ชื่อค่าคงที่ ค่าที่ต้องการเก็บ

 

ตัวอย่าง

#define PI 3.14

 

 

 

#define X (5+3)/2

 

 

การประกาศค่า

รูปแบบ

Type  variable_list หรือ ประเภทข้อมูล <ชื่อตัวแปร....>

 

ตัวอย่างเช่น

   int DATA1,DATA2;

             

 

int DATA1;

float DATA2;

หรือ

 

 

 

ตัวอย่างที่ 4.1

โปรแกรมต่อไปนี้เป็นตัวอย่างโปรแกรมที่มีการประกาศค่าคงที่ และตัวแปร โดยโปรแกรมนี้จำคำนวณภาษี 7% และแสดงทางหน้าจอ

#include “stdio.h”

#include “coino.h”

const float taxrate = 0.07;

float itemcost;

float salestax;

main()

{

clscr();             

printf(“Please enter cost of item : ”);

scanf(“%f, &itemcost”);

salestax = taxrate * itemcost;

printf(“Item cost is = %f \n”,itemcost);

printf(“Sale tax is %f\n”,salestax);getch();

}

Please enter cost of item : 43000

Item cost is = 43000.000000

Sales Tax is = 3010.000000

 

การตั้งชื่อ

การตั้งชื่อในภาษาซีมีรูปแบบดังนี้

ชื่อจะต้องไม่ซ้ำกับคำสงวน (Reserved word) และคำมาตรฐานที่คอมไพล์เลอร์รู้จัก

- จะต้องขึ้นต้นด้วยตัวอักษร (A-Z,a-z) หรือเครื่องหมาย _ (Underscore)      เท่านั้น

-  ตัวต่อไปต้องเป็นตัวอักษรหรือตัวเลขหรือเครื่องหมาย

     การตั้งชื่อจะต้องไม่มีช่องว่าง

  • ตัวอักษรตัวเลกและตัวอักษรตัวใหญ่จะมีความหมายแตกต่างกัน

 

ตัวดำเนินการ     (Operator)

ตัวดำเนินการเลขคณิต

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม.จำนวนจริง

จำนวนจริง

จำนวนเต็ม

 

จำนวนเต็ม

จำนวนเต็ม

 

 

 

 

 

จำนวนเต็ม

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม.จำนวนจริง

จำนวนเต็ม

 

จำนวนเต็ม

จำนวนเต็ม

 

บวก (Addition)

ลบ (Subtraction)

คูณ (Multiplication)

หาร(real number Division)

การหารแบบเอาเศษ (Modulus)

การเพิ่มค่าขึ้น 1(Increment)

การลดค่าลง 1 (Decrement)

+

-

*

/

%

 

++

- -

ข้อมูลผลลัพธ์

ข้อมูลที่ถูกกระทำ

กระบวนการ

ตัดำเนินการ

 

 

 

 

 

 

ตัวอย่าง ต่อไปนี้เป็นการใช้ตัวดำเนินการบวก ลบ และคูณ

3 + 4                            =               7

7.0 – 3.0              =              4.0

6 * 1.5              =              9.0

1.5 – 1              =              0.5

2.25 *1.5              =              3.375

5.8 + 3              =              8.8

ตัวอย่าง  ต่อไปนี้เป็นการใช้ตัวดำเนินการหารแบบต่าง ๆ

9 / 2                            =              4.5

9 % 2                            =              1

18 % 2              =              0

-14 % 3              =              -2

14 % -3              =              2

18.2 / 2              =              9.1

ลำดับก่อนหลังของการทำตัวดำเนินการแสดงได้ดังตารางต่อไปนี้ โดยเรียงจากลำดับสูงสุดไปหาลำดับต่ำสุด

การทำงานในวงเล็บมีลำดับการทำงานสูงสุดถ้าหากมีวงเล็บซ้อนกันจะทำวงเล็บในสุดก่อน

 

ถ้าหากมีตัวดำเนินการหลายตัวในประโยคเดียวกัน จะทำจากซ้ายไปขวา

 

 

ถ้าหากมีตัวดำเนินการหลายตัวในประโยคเดียวกัน จะทำจากซ้ายไปขวา

การทำในวงเล็บ

 

 

การคูณ    การหาร DIV

การหาร MOD

 

 

การ บวก ลบ

( )

 

 

*. / หรือ %

 

 

 

+ หรือ

 

 

 

 

 

 

 

 

ลำดับการทำงาน

การทำงาน

ตัวดำเนินการ

 

 

 

 

 

 

 

 

ตัวอย่าง

   5     %     2      +   14   /   5   -  6                 หาร MOD และ DIV  ก่อนทำการลบ             

              1                  +     4.66       -   6             

 

                                5.66                 -    6

 

              0.55

ตัวอย่าง           

                             3  *  (4 % (6/2)) + 5              ทำในวงเล็บในก่อนทำในวงนอก

                             

                  5 *( 4%                5)   + 5

             

              5*              1               + 5             

 

                                             8

 

 

 

 

 

 

 

 

ตัวอย่างที่ 4.2 โปรแกรมนี้จะรับข้อมูลทางอินพุตเป็นเลขจำนวนเต็มจำนวน 3 ค่า แล้วหาค่าเฉลี่ย

 

#include “stdio.h”

#include “conio.h”

main(void)

{

int a,b,c;

              float ans;

              clrscr();

printf(“number 1 = ”);

              scanf(“%d”,&a);

              printf(“number 2 = ”);

scanf(“%d”,&b);

printf(“number 3 = ”);

scanf(“%d”,&c);

ans = (a + b+ c)/3;

Printf(“Average of %d, %d, %d = %f\n”a,b,c,ans);

              getch();

}

 

 

 

ตัวดำเนินการเปรียบเทียบ

เท่ากับ

ไม่เท่ากับ

น้อยกว่าหรือเท่ากับ

มากกว่าหรือเท่ากับ

มากกว่า

น้อยกว่า

==

!=

<=

>=

>

<

กระบวนการ

ตัวดำเนินการ

 

 

 

 

 

 

 

 

 

 

ตัวดำเนินการทางตรรก (Logical Operator)

ตัวดำเนินการทางตรรก (Logical Operator) ประกอบด้วยการทำ AND, OR และ NOT เมื่อกระทำกับค่าใด ผลลัพธ์ที่ออกมาจะเป็นจริงหรือเป็นเท็จ ตัวดำเนินการทางตรรกแสดงได้ดังตาราง

 

AND ค่าสองค่าถ้าค่าทั้งสองเป็นจริงผลลัพธ์จะเป็นจริง

OR ค่าสองค่า ถ้าค่าทั้งสองเป็นเท็จผลลัพธ์จะเป็นเท็จ

NOT เปลี่ยนค่าจากจริงเป็นเท็จ จากเท็จเป็นจริง

&&

!!

!

การกระทำ

ตัวดำเนินการ