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

30
ปปปปปปปปปปปปปปป ปปปปปปปปปปปปปปปป Data Types and Operator ปปปปปปปปปป Turbo C++ Version 3.0

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

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

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

Data Types and Operator

ใช้สำ��หร�บ Turbo C++ Version 3.0

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

ประเภทของขอมู�ลประเภทของขอมู�ลขอมู�ลในิภ�ษ�ซี� แบ!งไดำเป#นิ 4 กล$!มู

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type) ขอมู�ลประเภทแถวอ�กขระ (String Type)

ขอมู�ลช้นิ�ดำโครงสำร�ง (Structure Type)

ขอมู�ลช้นิ�ดำศรช้�* (Pointer Type)

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)

ขอมู�ลประเภทล��ดำ�บ (Ordinal Type) ขอมู�ลจำ��นิวนิเตั,มู ขอมู�ลอ�กขระ ขอมู�ลตัรรกะ

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

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)

ขอมู�ลประเภทล��ดำ�บ (Ordinal Type) ขอมู�ลจำ��นิวนิเตั,มูช้นิ�ดำ ตั�วอย่!�ง

integer ...,-3,-2,-1,0,1,2,3,...

binary 0 , 1

Octal 0124 , 076 , 04

hexadecimal 0x17, 0xd ,0x5f

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)• ขอมู�ลจำ��นิวนิเตั,มู

ช้นิ�ดำขอมู�ล ช้!วงของขอมู�ลท�-เก,บไวint -32768...32767

unsigned int 0...65535

signed int -32768...32767

short int -32768...32767

unsigned short int 0...65535

signed short int -32768...32767

long int -2,147,483,648...2,147,483,647

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)

ขอมู�ลประเภทล��ดำ�บ (Ordinal Type) ขอมู�ลอ�กขระ (Character Data Type) ขอมู�ลประเภทนิ�*จำะเป#นิตั�วอ�กขระหนิ.-งตั�ว ซี.-งเป#นิไป

ตั�มู ตั�ร�งรห�สำ ASCII ไดำแก! ตั�วอ�กษร ตั�วเลข อ�กขระ

พิ�เศษช้นิ�ดำขอมู�ล ตั�วอย่!�ง

char 'C' , 'a' , '\n' , '#' , '@'

'{' , '0' , '$'

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)

ขอมู�ลประเภทล��ดำ�บ (Ordinal Type) ขอมู�ลตัรรกะ (Boolean Data Type)

จำะเป#นิค!�ท�งลอจำ�ก

ช้นิ�ดำ ตั�วอย่!�งboolean 1 , 0 , -4

ค!�เท,จำ (False) แทนิค!�ดำวย่เลข 0 ค!�จำร�ง (True) แทนิค!�ดำวย่เลข 1 - ค!�จำร�ง ค0อ ค!�ท�-ไมู!เท!�ก�บ 0

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

ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ ขอมู�ลช้นิ�ดำอย่!�งง!�ย่ (Simple Type)(Simple Type)

ขอมู�ลประเภทจำ��นิวนิจำร�ง (Real Data Type)ไมู!เป#นิขอมู�ลช้นิ�ดำล��ดำ�บ เนิ0-องจำ�กทศนิ�ย่มูมู�ไดำหล�ย่ตั��แหนิ!ง

ช้นิ�ดำ ตั�วอย่!�ง ช้!วงของขอมู�ลท�-เก,บไว

float 11.25, -1.5E4, 2.5e-02 3.4E-38...3.4E+38

double 11.25, -1.5E4, 2.5e-02 1.7E-308...1.7E+308

long double 11.25, -1.5E4, 2.5e-02 3.4E-4932... 1.1E+4932

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

ขอมู�ลประเภทแถวอ�กขระ ขอมู�ลประเภทแถวอ�กขระ (String Type)(String Type)

เป#นิก�รนิ��ตั�วอ�กขระมู�เร�ย่งตั!อก�นิเป#นิขอคว�มูตั�*งแตั!หนิ.-งตั�วเป#นิตันิไป สำ�มู�รถเก,บตั�วอ�กขระไดำ 255 ตั�ว โดำย่ตั�วอ�กขระจำะตัองอย่�!ในิเคร0-องหมู�ย่ “ ” ภ�ษ�ซี� มู�ก�รเตั�มูตั�วอ�กษรว!�ง Null ( \0 ) เป#นิตั�วสำ$ดำท�ย่ของสำตัร�ง

Example

'C' 'O' 'M' 'P' 'U' 'T' 'E' 'R' '\O'

ใช้เนิ0*อท�-ในิก�รเก,บท�*งสำ�*นิ 9 Bytes

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

ค!�คงท�- (Constant) หมู�ย่ถ.ง ค!�ในิหนิ!วย่คว�มูจำ��ท�-มู�ค!�คงท�-ตัลอดำ

โปรแกรมู ก�รประก�ศค!�คงท�- ท��ไดำ 2 ล�กษณะ ค0อ

ประก�ศ ใหค!�คงท�- ช้0-อว!� a เป#นิช้นิ�ดำ Integer

Const int a ;ประก�ศ ใหค!�คงท�- ช้0-อว!� b เป#นิช้นิ�ดำ Integer เก,บค!� 12 ไว

Const int b = 12 ;

ก�รประก�ศค!�คงท�-และตั�วแปรก�รประก�ศค!�คงท�-และตั�วแปร

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

ตั�วแปร (Variables) หมายถึ�ง ค่าในหนวยค่วามจำ�าที่��สามารถึเปลี่��ยน

ค่าได้� ชื่��อตั�วแปรจำะเป"นตั�าแหนงหนวยค่วามจำ�าที่��เก็$บ

ข้�อม'ลี่อย' ก็ารประก็าศตั�วแปรสามารถึที่�าได้�ด้�งน�)

ตั�วอย่!�งเช้!นิ

Type Variables_list

int count;

float data1 , data2;

ก�รประก�ศค!�คงท�-และตั�วแปรก�รประก�ศค!�คงท�-และตั�วแปร

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

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 11#include <stdio.h>

const int taxrate = 7;

float itemcost , salestax;

void main(void)

{

printf("Please Enter Cost of item : ");

scanf("%f" , &itemcost); salestax = (taxrate * itemcost) / 100;

printf(" item Cost is = %.2f \n" , itemcost);

printf(" Sales tax is %.2f\n" , salestax); return;

} OutputPlease Enter Cost of item : 500

ผลก�รท��ง�นิ ?

OutputPlease Enter Cost of item : 500item Cost is = 500.00Sales tax is 35.00

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

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

ภ�ษ�ซี�มู�ตั�วดำ��เนิ�นิก�ร ดำ�งตั!อไปนิ�* ตั�วดำ��เนิ�นิก�รเลขคณ�ตั (Arithematic Operator)

ตั�วดำ��เนิ�นิก�รลอจำ�ก (Logic Operator)

ตั�วดำ��เนิ�นิก�รเปร�ย่บเท�ย่บ (Relation Operator)

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

ตั�วดำ��เนิ�นิก�รเลขคณ�ตั ตั�วดำ��เนิ�นิก�รเลขคณ�ตั(Arithematic Operator)(Arithematic Operator)

operatorคว�มูหมู�ย่

ช้นิ�ดำของขอมู�ล ตั�วอย่!�ง

+ บวก ตั�มูช้นิ�ดำของขอมู�ล 5 + 2

- ลบ ตั�มูช้นิ�ดำของขอมู�ล 5 - 2

* ค�ณ ตั�มูช้นิ�ดำของขอมู�ล 5 * 2

/ ห�ร ตั�มูช้นิ�ดำของขอมู�ล 5 / 2

%

ห�รเอ�ผลล�พิธ์4เฉพิ�ะเศษของก�รห�ร( Modulo )

จำ��นิวนิเตั,มู 5%2

++ก�รเพิ�-มูค!�ข.*นิหนิ.-ง จำ��นิวนิเตั,มู X++, ++X

-- ก�รลดำค!�ลงหนิ.-ง จำ��นิวนิเตั,มู X-- , --X

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

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 22

ค!�ตั�ว แปร x

ค!�ตั�ว แปร y

ก�รดำ��เนิ�นิ

ก�ร

ค!�จำ�กก�รกระ

ท��

ผลล�พิธ์4ท�-เก,บ

10 5 x = y + 2 7 X = 7

10 5 x = x/y 2 X = 2

10.0 5 x = x/y 2.0 X = 2.0

9 2 x = x%y 1 X = 1

14 -3 x = x%y 2 X = 2

-14 3 x = x%y -2 X = -2

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

ก�รดำ��เนิ�นิก�ร ผลล�พิธ์4

ช้นิ�ดำผลล�พิธ์4

13 / 5 * 3 6จำ��นิวนิเตั,

มู

6 * 5 / 10 * 2 + 10 16จำ��นิวนิเตั,

มู

(6 * 5) / (10 * 2) + 10 11จำ��นิวนิเตั,

มู

(6 * 5.0) / (10 * 2 + 10) 1.0จำ��นิวนิจำร�

(6 * 5.0) / (10 * (2 + 10)) 0.25จำ��นิวนิจำร�

3 * (4 % (6 / 2)) + 5 8จำ��นิวนิเตั,

มู

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 33

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

ค!�ตั�วแปรx

ก�รดำ��เนิ�นิก�ร ค!�จำ�กก�รกระท��

7 x = x+1 8

7 x = x-1 6

7 x = x++ 8

7 x = ++x 8

7 x = x-- 6

7 x = --x 6

7 Y = ++x Y มู�ค!�เป#นิ 8

7 Y = x++ Y มู�ค!�เป#นิ 7

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 44

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

จำ�กตั�วอย่!�งท�- จำ�กตั�วอย่!�งท�- 44 ถ� x มู�ค!�เป#นิ 7

y = + + x แลว

อธ์�บ�ย่ไดำว!� x มู�ค!�เป#นิ 7 ตั!อ มู� เพิ�-มูค!� x ข.*นิหนิ.-ง

แลวสำ!งใหตั�วแปร y ท��ให y มู�ค!�เป#นิ 8 ถ� x มู�ค!�เป#นิ 7 y = x + + แลว

อธ์�บ�ย่ไดำว!� x มู�ค!�เป#นิ 7 ท��ให y มู�ค!�เป#นิ 7 ดำวย่

และเพิ�-มูค!� x ข.*นิหนิ.-ง สำ!งผลให x มู�ค!�เป#นิ 8

สำร$ปไดำว!� - ถ�ว�งตั�วดำ��เนิ�นิ

ก�รไวหนิ�ตั�วแปรจำะท��ก�รเพิ�-มูค!�ก!อนิแลวจำ.งสำ!งค!�ให

ก�บ y

- ถ�ว�งตั�วดำ��เนิ�นิ ก�รไวหล�งตั�วแปร

จำะท��ก�รสำ!งค!�ใหก�บy ก!อนิแลวจำ.งเพิ�-มู

ค!� x อ�กหนิ.-ง

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

ตั�วดำ��เนิ�นิก�รเปร�ย่บเท�ย่บ ตั�วดำ��เนิ�นิก�รเปร�ย่บเท�ย่บ(Relation Operator)(Relation Operator)

operatorคว�มูหมู�ย่

ช้นิ�ดำของขอมู�ล

ตั�วอย่!�ง

ผลล�พิธ์4

< นิอย่กว!� boolean 5 < 4 0

<=นิอย่กว!�หร0อ

เท!�ก�บ boolean 5 <= 5 1

== เท!�ก�บ boolean 0 == 0 1

> มู�กกว!� boolean 5 > 4 1

>=มู�กกว!�หร0อ

เท!�ก�บ boolean 5 >= 4 1

!= ไมู!เท!�ก�บ boolean 0 != 0 0

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

ตั�วดำ��เนิ�นิก�รลอจำ�ก ตั�วดำ��เนิ�นิก�รลอจำ�ก (Logic (Logic Operator)Operator)

operatorคว�มูหมู�ย่

ช้นิ�ดำของขอมู�ล

ตั�วอย่!�ง

ผลล�พิธ์4

&& AND boolean 1 && -1 1

|| OR boolean 1 || 0 1

! NOT boolean !4 0

A B A && B

1

1

0

0

1

0

1

0

1

0

0

0

A B A || B

1

1

0

0

1

0

1

0

1

1

1

0

A !A

1

0

0

1

ตั�ร�งค!�คว�มูจำร�ง AND

ตั�ร�งค!�คว�มูจำร�ง OR

ตั�ร�งค!�คว�มูจำร�ง NOT

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

#include <stdio.h>void 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);}

A B A OR B| 1 | 1 | 1 || 1 | 0 | 1 || 0 | 1 | 1 || 0 | 0 | 0 |

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 55

ผลก�รท��ง�นิ ?

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

ก�รย่$บนิ�พิจำนิ4โดำย่ใช้ ก�รย่$บนิ�พิจำนิ4โดำย่ใช้(Compound (Compound Assignment)Assignment)

นิ�พิจำนิ4 ตั�วดำ��เนิ�นิก�รท�-ย่$บแลว

x = x + y x += y

x = x - y x -= y

x = x * y x *= y

x = x / y x /= y

x = x % y x %= y

z = (x+1) + (y+1) z = ++x + ++y

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

ขนิ�ดำของหนิ!วย่คว�มูจำ��ของขอมู�ลขนิ�ดำของหนิ!วย่คว�มูจำ��ของขอมู�ลเร�ย่งจำ�กนิอย่ไปมู�กเร�ย่งจำ�กนิอย่ไปมู�ก

char

short

int

unsigned int

long int

unsigned long int

float

double

long double

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

ก�รเปล�-ย่นิประเภทของขอมู�ลก�รเปล�-ย่นิประเภทของขอมู�ลx y นิ�พิจำนิ4 zint int z = x + y int

float float z = x + y float

int float z = x + y float

int double z = x * y double

char float z = x + y float

short long z = (x + y) / 4.6 long then float

ผลี่ลี่�พธ์-จำะเก็$บในข้�อม'ลี่ประเภที่ที่��ใหญ่ก็วาเสมอ

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

ก�รเปล�-ย่นิประเภทของขอมู�ลก�รเปล�-ย่นิประเภทของขอมู�ล

ภ�ษ�ซี�สำ�มู�รถเปล�-ย่นิประเภทของขอมู�ลใหเป#นิไปตั�มูท�-ผ�ใช้ตัองก�รไดำ โดำย่ก�รนิ��ช้นิ�ดำขอมู�ลไวหนิ�ขอมู�ลเช้!นิx นิ�พิจำนิ4 ผลล�พิธ์4

int float x float

float (int)(x + 2.5 ) int

int (float)( x +1) float

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

#include <stdio.h>void 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;}

ผลก�รท��ง�นิ

6 -1

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 66

16 i < j: i <= j: i == j: i > j: i >= j:

6 -1 i < j: 0 i <= j: 0 i == j: 0 i > j: 1 i >= j: 1

16 i < j: 1 i <= j: 1 i == j: 0 i > j: 0 i >= j: 0

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

#include <stdio.h>void 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

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 77

2-1 i && j: i || j : !i : !j :

0 -2 i && j: 0 i || j : 1 !i : 1 !j : 0

2-1 i && j: 1 i || j : 1 !i : 0 !j : 0

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

ล��ดำ�บก�รดำ��เนิ�นิง�นิของ ล��ดำ�บก�รดำ��เนิ�นิง�นิของOperator Operator

1. ()

2. ! (Not) , ++ , -- , -

3. * , / , %

4. + , -

5. < , > , <= , >=

6. == , !=

7. && (And)

8. || (Or)

9. = , *= , /= , %= , += , -=,

ในิกรณ�อย่�!ในิล��ดำ�บเดำ�ย่วก�นิจำะท��จำ�กซี�ย่ไปขว�

วงเล,บตั�ดำลบ

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

#include <stdio.h>void 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;}

2+3 && 1 : 2+3 && 0 : -3 < 1 && 1 : 12/3*5 > 10 < 5:

ตั�วอย่!�งท�- ตั�วอย่!�งท�- 88

ผลก�รท��ง�นิ ?

2+3 && 1 : 12+3 && 0 : 0-3 < 1 && 1 : 112/3*5 > 10 < 5: 1

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

จำบประเภที่ข้องข้�อม'ลี่แลี่ะตั�วด้�าเน0นก็าร

Data Types and Operator

Question ?