ตัวแปร ประเภทตัวแปร ตัวด...

34
อ. เอก ตังคนานนท์ อ. เอก ตังคนานนท์ 2 November 2010 เอกสารประกอบการสอนวิชา CP111 มหาวิทยาลัยศรีนครินทรวิโรฒ ตัวแปร ประเภทตัวแปร ตัวดาเนินการ Variables and Operators The content in this slide is adapted from Introduction to Computing Systems 2 nd edition. Yale N. Patt, Sanjay J. Patel and its supplementary slides.

Upload: others

Post on 13-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท

2 November 2010

เอกสารประกอบการสอนวชา CP111

มหาวทยาลยศรนครนทรวโรฒ

ตวแปร ประเภทตวแปร ตวด าเนนการ Variables and Operators

The content in this slide is adapted from Introduction to Computing Systems 2nd edition. Yale N. Patt, Sanjay J. Patel and its supplementary slides.

Page 2: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

เนอหา

องคประกอบพนฐานของภาษาซ

ตวแปร

ตวด าเนนการ

โครงโปรแกรมภาษาซ (ส าหรบทบทวนความเขาใจ)

Agenda

2

Page 3: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 3

องคประกอบพนฐานของภาษาซ Basic C Elements

Page 4: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

องคประกอบพนฐานของภาษาซ

ตวแปร (Variables)

เปนชอท ใชในการอางองถงขอมลท ถกก าหนดประเภท

มลกษณะเชนเดยวกนกบตวแปรใดๆ ในคณตศาสตร แตม

ประเภทของตวแปรก ากบอยดวย

ตวด าเนนการ (Operators)

เปนการด าเนนการทก าหนดไวแลวท ใชกระท ากบขอมล

มลกษณะเชนเดยวกบการบวก ลบ คณ หาร ในคณตศาสตร

4

Basic C Elements

Page 5: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 5

ตวแปร Variables

Page 6: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ประเภทขอมลพนฐาน

int

จ านวนเตม (integer)

double

จ านวนทศนยม (floating point)

char

ตวอกษร (character)

ขนาดของตวแปรจะขนอยกบคอมไพเลอรและสถาปตยกรรมของ

คอมพวเตอร

6

C Data Type

Citation: http://msdn.microsoft.com/en-us/library/a86zba5c%28VS.80%29.aspx

Page 7: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ประเภทขอมล

7

Data Type

Citation: http://msdn.microsoft.com/en-us/library/a86zba5c%28VS.80%29.aspx

Integer

short 2 bytes

int 4 bytes

long 4 bytes

Floating point

float 4 bytes

double 8 bytes

Character

char 1 byte

Others

void

Optional keywords

signed

unsigned

Example

unsigned short

unsigned int

signed long int

Page 8: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ชอตวแปร (1/2)

การตงชอตวแปรในภาษาซจะตองสอดคลองกบ context free

grammar ดงน

identifier: nondigit | identifier nondigit | identifier digit

nondigit: one of

_ a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

digit: one of

0 1 2 3 4 5 6 7 8 9

สรปส นๆ คอประกอบดวยตวอกษร a – z, A – Z, 0 – 9 และ

สญลกษณ _ โดยหามขนตนดวยตวเลข 0 – 9

ตวเลกตวใหญมความแตกตางกน (case sensitive)

8

Variable Names, Identifiers

Citation: http://msdn.microsoft.com/en-us/library/e7f8y25b%28VS.80%29.aspx

Page 9: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ชอตวแปร (2/2)

การตงชอท ถกตอง

ticksPerSecond

_ticksPerSecond

x1

ตวอยางการตงชอท ไมถกตอง

123num

sur-name

finished?

9

Variable Names, Identifiers

Citation: http://msdn.microsoft.com/en-us/library/e7f8y25b%28VS.80%29.aspx

ตวพมพเลกและใหญแตกตางกน นนคอตว

แปรตอไปนหมายถงคนละตวกน

surname

SurName

surName

Surname

Page 10: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

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

สามารถท าไดโดยการเขยน statement ตอไปน

data-type variable-name [, variable-name, …];

ตวอยาง

int numStudents;

double x, y;

int a = 2;

10

Variable Declaration

numStudents

x

y

2 a

Page 11: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

C Literals

Integer

12345

-12345

0x2A1F

Floating point

1.02

9.18e20

Character

'r'

'\n‘

'\xA'

11

Page 12: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 12

ตวด าเนนการ Operators

Page 13: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการ

สวนหนงเปนตวด าเนนการทวๆ ไปท รจกกนดในคณตศาสตร

เชนการบวก ลบ คณ หาร

ใชในการจดการตวแปร เชน ก าหนดคา เพมคา เปนตน

13

Operators

x = a + 3;

Expression

Statement

Literal Identifier Operator

Page 14: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

Expression

เกดจากการประกอบกนของตวแปร (variables), คาคงท

(constants), ตวด าเนนการ (operators), และฟงกชน (function

calls)

มผลลพธของการด าเนนการเปนขอมลประเภทใดประเภทหนง

ตวอยาง

y + 2

1 – sqrt(10)

count > LIMIT

14

Page 15: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

Statement

ใชแสดงการท างานชนหนง

ตวอยาง

a = y + 2;

b = 1 – sqrt(10);

c = 1;

;

15

Page 16: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ประเภทของตวด าเนนการ

Assignment Operators

Arithmetic Operators (Additive, Multiplicative)

Relational and Equality Operators

Logical Operators

Bitwise Operators

Cast Operators

16

Classification of Operators

ถาดตามจ านวนของตวถกกระท า อาจแบงเปน

o Unary operator

o Binary operator

ถาดตามต าแหนงของตวด าเนนการ อาจแบงเปน

o Infix operator

o Prefix operator

o Postfix operator

Page 17: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการก าหนดคา

ใชในการก าหนดคาหรอเปลยนแปลงคาของตวแปร

17

Assignment Operators

a = 5;

x = a + 3;

1. ท ำกำรค ำนวนแลวใหผลลพออกมำ

2. น ำคำท ไดจำกกำรค ำนวนใน 1 มำใส x

Page 18: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการทางคณตศาสตร (1/2)

การบวก

+

การลบ

-

การคณ

*

การหาร

/

การมอดดโล

%

18

Arithmetic Operators

ตวอยาง

5 + 3

5 * 3

5 % 3

3 + 4 + 5

5 * 2 + 3

• ท าจากซายไปขวา (Left to right

association)

• ท า * / กอน + - % (Precedence)

Citation: http://msdn.microsoft.com/en-us/library/y0c1cfax%28VS.80%29.aspx

Page 19: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการทางคณตศาสตร (2/2)

ผลลพธจากการกระท าระหวาง integer กบ floating point

จะไดเปนขอมลประเภพ floating point

a = 1 + 1.5;

เศษท เหลอจากการหารจ านวนเตมจะถกตดทงไป

a = 9 / 4;

ตวด าเนนการ % หมายถงเศษท เหลอจากการหาร

a = 9 % 4;

19

Arithmetic Operators

Citation: http://msdn.microsoft.com/en-us/library/y0c1cfax%28VS.80%29.aspx

Page 20: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการเปรยบเทยบ (1/2)

มากกวา

>

มากกวาหรอเทากบ

>=

นอยกวา

<

นอยกวาหรอเทากบ

<=

เทากบ

==

ไมเทากบ

!=

20

Relational Operators

ตวอยาง

5 > 3

5 < 3

5 == 3

5 != 3

Citation: http://msdn.microsoft.com/en-us/library/y0c1cfax%28VS.80%29.aspx

Page 21: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการเปรยบเทยบ (2/2)

ผลลพธจากการกระท าเปนตวแปรประเภท int โดยม

ความหมายดงน

1 TRUE

0 FALSE

21

Relational Operators

Citation: http://msdn.microsoft.com/en-us/library/y0c1cfax%28VS.80%29.aspx

Page 22: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการตรรกกะ (1/2)

นเสธ (NOT)

!

และ (AND)

&&

หรอ (OR)

||

22

Logical Operators

ตวอยาง

!TRUE

TRUE && FALSE

TRUE || FALSE

!!!TRUE

!TRUE && FALSE || TRUE

• NOT ท าจากขวาไปซาย

AND, OR ท าจากซายไปขวา

• ท า NOT กอน AND และท า AND

กอน OR

Page 23: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการตรรกกะ (2/2)

ภาษาซไมมตวแปรประเภทตรรกกะ (Boolean data type)

ภาษาซจะมการตความหมายตรรกกะจากตวแปรประเภท

จ านวนเตมดงน

FALSE ส าหรบจ านวนเตมศนย

TRUE ส าหรบจ านวนเตมท ไมใชศนย

23

Logical Operators

1 -2 -1.5 -1.5e10

' a' 0

Page 24: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ตวด าเนนการ

24

Operators

a = !(5 > 3) && 1 + 2 != 3

Page 25: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

C++ Operator Precedence

Symbol Type of Operation Associativity

[ ] ( ) . –> postfix ++ and postfix –– Expression Left to right

prefix ++ and prefix –– sizeof & * + – ~ ! Unary Right to left

typecasts Unary Right to left

* / % Multiplicative Left to right

+ – Additive Left to right

<< >> Bitwise shift Left to right

< > <= >= Relational Left to right

== != Equality Left to right

& Bitwise-AND Left to right

^ Bitwise-exclusive-OR Left to right

| Bitwise-inclusive-OR Left to right

&& Logical-AND Left to right

|| Logical-OR Left to right

? : Conditional-expression Right to left

= *= /= %= += –= <<= >>=&= ^= |=

Simple and compound assignment2 Right to left

, Sequential evaluation Left to right

25 Citation: http://msdn.microsoft.com/en-us/library/2bxt6kc4%28VS.80%29.aspx

Page 26: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 26

โครงโปรแกรมภาษาซ (ส าหรบทบทวนความเขาใจ) C Source Code Structure (for Practical Lecture Revision)

Page 27: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

ประกาศตวแปร

(var. declaration)

โครงโปรแกรมภาษาซ (1/3)

27

C Source Code Structure

#include<stdio.h> int main() { int a; a = 5; printf("a = %d\n", a); }

ex02_01.c

ค าส ง

(statements)

Page 28: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

โครงโปรแกรมภาษาซ (2/3)

28

C Source Code Structure

#include<stdio.h> int main() { int a; int b; float f; double x, y; char c1, c2, c3; a = 5; printf("a = %d\n", a); b = a > 1; printf("b = %d\n", b); f = a + 1.2; printf("f = %f\n", f); x = y = f; printf("(x, y) = (%f, %f)\n", x, y); c1 = c2 = c3 = 'a'; printf("c1 c2 c3 = %c %c %c\n", c1, c2, c3); return 0; }

ex02_02.c

Page 29: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

โครงโปรแกรมภาษาซ (3/3)

29

C Source Code Structure

#include<stdio.h> #define TRUE 1 #define FALSE 0 int main() { printf("TRUE = %d\n", TRUE); printf("FALSE = %d\n", FALSE); printf("test1 = %d\n", TRUE && FALSE); printf("test2 = %d\n", TRUE || FALSE); printf("test3 = %d\n", !TRUE); printf("test4 = %d\n", (1 > 2) != TRUE); return 0; }

ex02_03.c ประกาศมาโคร

(macro declaration)

Page 30: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

การบาน (1/2)

ใหท าความเขาใจกบ operator ตอไปน

Assignment =

Arithmetic +, -, *, /, %

Logical &&, ||, !

Relational <, <=, >, >=, ==, !=

Postfix Operator ++, --

ใหท าความเขาใจกบค าส ง printf ในขนพนฐาน

30

Homework

Page 31: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท

การบาน (2/2)

ส าหรบ operator นสตสามารถศกษาไดจากเวปไซตดงตอไปน

http://www.cplusplus.com/doc/tutorial/operators

http://msdn.microsoft.com/en-us/library/y0c1cfax(VS.80).aspx

นสตควรใชโครงโปรแกรมกอนหนานในการท าความเขาใจดวย

การปฏบตจรง ส าหรบฟงกชน printf สามารถศกษาไดจาก

http://www.cplusplus.com/reference/clibrary/cstdio/printf

http://msdn.microsoft.com/en-us/library/wc7014hz.aspx

31

Homework

Page 32: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 32

ค าถามทายบท

จะขนสไลดทายชวโมงท ท าการสอน

Page 33: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท 33

ส าหรบสปดาหตอไป

จะใหเวลา 30 นาททายชวโมงในการถามตอบ

ถาไมมคนถามค าถามภายในเวลา 1 นาท จะท าการสอบ

Page 34: ตัวแปร ประเภทตัวแปร ตัวด าเนินการteacheraromdee.yolasite.com/resources/chapter02.pdf · ตัวด าเนินการทางคณิตศาสตร์

อ. เอก ตงคนานนท อ. เอก ตงคนานนท

2 November 2010

บทท 3 การรบและการแสดงขอมล

การรบขอมลทางแปนพมพและการแสดงผลขอมลออกทางจอคอมพวเตอร

จบบทท 2 The End of Chapter 2