ữ ệ ữ ệ

ế ế

ể ể Bi n và Ki u D  Li u Bi n và Ki u D  Li u

ươ

Ch

ng 2

ụM c Tiêu M c Tiêu

ượ ệ ế variables)  ằ

c bi n ( ế t bi n và h ng (constants)  ử ể ữ ệ t kê các ki u d  li u khác nhau và s   ươ ng trình C d ng chúng trong ch

Lập trình cơ bản C/Chương 2/ 2 of 22

 Hi u ể đ  Phân bi  Li ệ ụ ể ử ố ọ  Hi u và s  d ng các toán t ử ụ s  h c

Bi nếBi nế

B  nhộ ớ

ữ ệ D  li u

15

15

ữ ệ D  li u  trong b  ộ nhớ

ộ ớ

ỗ ị

ấ M i v  trí trong b  nh  là duy nh t

ỗ ị

ế

Bi n cho phép cung c p m t tên có ý nghĩa cho m i v  trí nh

Lập trình cơ bản C/Chương 2/ 3 of 22

Ví dụVí dụ

BEGIN DISPlAY ‘Enter 2  numbers’ INPUT A, B C = A + B DISPLAY  C END

trên ớ

ệ ấ

ế

ị ụ ể

ế ủ

• A, B và C là các bi n trong đo n mã gi ả ạ ế • Tên bi n giúp chúng ta truy c p vào b  nh  mà không c n dùng  ế ộ ậ ỉ ủ ị đ a ch  c a chúng • H  đi u hành đ m nhi m vi c c p b  nh  còn tr ng cho  ả ệ ề ữ nh ng bi n này • Ð  tham chi u đ n m t giá tr  c  th  trong b  nh , chúng ta  ộ ế ể ế ỉ ầ ch  c n dùng tên c a bi n

Lập trình cơ bản C/Chương 2/ 4 of 22

Khai báo Khai báo

ể ữ ệ ế ị •    [=]

•Ví d : ụ

Lập trình cơ bản C/Chương 2/ 5 of 22

int a = 3; int b; int a=3, b=4; char c = ‘A’;

H ngằH ngằ

 M t ộ h ngằ  (constant) là m t giá tr  không bao  ờ ờ ổ ị ồ ạ ủ i c a nó. thay đ i trong th i gian t n t gi

ử ụ ị ừ  Đ nh nghĩa h ng: s  d ng t ằ khóa const

ể ữ ệ ằ

Lập trình cơ bản C/Chương 2/ 6 of 22

const   = 

H ngằH ngằ

Các ví dụ

ố nguyên

ằ c b t đ u b ng 0x.

ắ ầ ằ ằ

 const int a= 5;  h ng sằ  const float x = 5.3; h ng sằ ố th cự ự  const char c = ‘1’; h ng ký t  H ng trong h  16 đ ượ ắ ầ ệ ằ      Ví d : 0xa5 = 10*16 + 5 =165.   H ng trong h  8 b t đ u b ng 0.  ệ     Ví d : 0345 = 3*64+4*16+5=229

Lập trình cơ bản C/Chương 2/ 7 of 22

ịĐ nh danh Đ nh danh

ế

 Tên c a các bi n (variables), các hàm (functions), các nhãn (labels) và

ườ

ng khác nhau do ng

i dùng đ nh nghĩa g i là đ nh danh

 Ví d  v  các đ nh danh đúng

  Ví d  v  các đ nh danh sai

ợ ệ

Không h p l

!

ủ ố ượ các đ i t ụ ề  arena   s_count  marks40  class_one ụ ề  1sttest  oh!god  start... end

 Các đ nh danh có th  có b t c  chi u dài nào theo quy  ướ ị ượ

ề ệ

ố ư ấ ứ c, nh ng s   ổ ậ c nh n di n b i trình biên d ch thì thay đ i

ị ộ  trong m t bi n đ

ể ế ký t theo trình biên d chị

ữ ườ

 Các đ nh danh trong C có phân bi

t ch  hoa và ch  th

ng

Lập trình cơ bản C/Chương 2/ 8 of 22

ị ị

ắ ặ ắ ặ Các nguyên t c đ t tên đ nh danh Các nguyên t c đ t tên đ nh danh

ả ắ ầ ự ầ ự  alphabet  ự ữ ố  ch , s

ế ặ ừ ằ ế Tên bi n ph i b t đ u b ng m t ký t ể  đ u có th  là các ký t Theo sau ký t … Nên tránh đ t tên bi n trùng tên các t khoá

ế ủ Tên bi n nên mô t ả ượ  đ c ý nghĩa c a nó

ự Tránh dùng các ký t ẫ ầ  gây l m l n

ướ ặ ẩ ế c đ t tên bi n chu n khi

Lập trình cơ bản C/Chương 2/ 9 of 22

ụ Nên áp d ng các quy  ậ l p trình

ịĐ nh danh  Đ nh danh

Lập trình cơ bản C/Chương 2/ 10 of 22

ừT  khóa  T  khóa

ấ ả ữ ộ : T t c  các ngôn ng  dành m t

 T  khóa ừ ố ừ ấ ị s  t  Nh ng  t ữ này  có  m t  ý  nghĩa  đ c  bi

ừ ữ ả ủ

ộ ế ừ

ụ  nh t đ nh cho m c đích riêng ệ ặ ộ t  ữ ụ ể ộ trong ng  c nh c a m t ngôn ng  c  th    khóa và tên  ụ ừ integer cho tên    ả  ngay c  khi mà

Lập trình cơ bản C/Chương 2/ 11 of 22

 S  không có xung đ t n u t ẽ ế bi n khác nhau. Ví d  t ợ ệ ế bi n thì hoàn toàn h p l ừ int  khóa là  t

ừT  khóa  T  khóa

Lập trình cơ bản C/Chương 2/ 12 of 22

ể ữ ệ ể ữ ệ Ki u d  li u Ki u d  li u

ượ ư  Các  ki u  d   li u  khác  nhau  đ ữ ệ ữ c  l u  tr

Ví d  : 10 hay 178993455

ố ự • S  th c.

Ví d , 15.22 hay 15463452.25

ố ươ

ụ ng

• S  d • S  âmố

ụ  Tên. Ví d  : John ị ậ  Giá tr  lu n lý : ụ Ví d  : Y hay N

Lập trình cơ bản C/Chương 2/ 13 of 22

ể ế trong bi n là: ố  S  (Numbers) • S  nguyên. ụ

ể ữ ệ ể ữ ệ

Ki u d  li u (tt.) Ki u d  li u (tt.)

ể ả ạ ữ ệ ẽ ượ ư  Ki u d  li u mô t ữ ệ lo i d  li u s  đ c l u

trong bi nế

ế ặ

ứ ể  Tên bi n đ t sau ki u d  li u ể ữ ệ  Ví d  : tên bi n “varName” đ ng sau ki u d   ữ ế

ệ ụ li u “int”

ki u d  li u

ữ ệ      tên bi nế

int

varName

Lập trình cơ bản C/Chương 2/ 14 of 22

ể ữ ệ ơ ả ể ữ ệ ơ ả Ki u d  li u c  b n Ki u d  li u c  b n

ể ữ ệ ơ ả Ki u d  li u c  b n

int

float

char

void

double

Lập trình cơ bản C/Chương 2/ 15 of 22

Ki uểKi uể  s  nguyên (int) ố s  nguyên (int)

ư

 L u tr  d  li u s   ữ ữ ệ ố int num; ể ư ữ ấ ứ ể ữ ệ  Không th  l u tr  b t c  ki u d  li u

ặ nào khác nh  ư “Alan” ho c “abc”

ớ  nguyên trong ạ ph m vi

ố i 32767

Lập trình cơ bản C/Chương 2/ 16 of 22

 Chiếm 16 bits (2 bytes) b  nhộ  Bi u di n các s ễ ể ớ      ­32768 t  Ví d  ụ : 12322, 0, ­232

ể ố ự ể ố ự

Ki u s  th c (float) Ki u s  th c (float)

ữ ữ ệ ố ứ ư ậ ầ  L u tr  d  li u s  ch a ph n th p phân

ộ ớ i 6 con s

ươ ớ  (10 mũ  d ng 38)

Lập trình cơ bản C/Chương 2/ 17 of 22

float num;  Có đ  chính xác t ố  Chiếm 32 bits (4 bytes) b  nhộ  3.4E­38 đ n 3.4E+38 ế  Ví d  ụ : 23.05, 56.5, 32

ể ố ự double) ể ố ự double)   Ki u s  th c ( Ki u s  th c (

ư

 L u tr  d  li u s  ch a ph n th p phân

ữ ữ ệ ố ứ double num;

i 10 con s

 Có đ  chính xác t  Chiếm 64 bits (8 bytes) b  nh   ớ    1.7E­308 đ n 1.7E+308 ế  Ví d  ụ : 23.05, 56.5, 32

Lập trình cơ bản C/Chương 2/ 18 of 22

ể ể

Ki u ký t Ki u ký t

ự char ự

char ) )

(  (

ữ ộ ư  L u tr  m t ký t ự ơ    đ n

char gender; gender='M';

Lập trình cơ bản C/Chương 2/ 19 of 22

 Chi m ế 8 bits (1 byte) b  nh   ớ    Ví dụ: ‘a’, ‘m’, ‘$’ ‘%’ , ‘1’, ’5’

Ki u ểKi u ể voidvoid

ư ấ ứ ữ ệ

Không l u b t c  d  li u gì Báo cho trình biên d ch không có giá tr  tr   ị ả ị

Lập trình cơ bản C/Chương 2/ 20 of 22

về

ữ ữ

ẫ ẫ

ấ ể ữ ệ ấ ể ữ ệ Nh ng ki u d  li u d n xu t Nh ng ki u d  li u d n xu t

B  b  t

ể ữ ệ ẫ

ấ Ki u d  li u d n xu t

ể ữ ệ Ki u d  li u  ơ ả   c  b n

ộ ổ ừ (Modifiers)  ể ữ ệ    ki u d  li u

unsigned

int

unsigned int  ố ươ ) ng

(ch  là s  d

short

int

ộ ớ ơ

ế

short int  (chi m ít b  nh  h n int

)

Long int /longdouble

ế

(chi m  nhi u

ộ ớ ơ   ề  b  nh  h n

long

int/double

int/double)

Lập trình cơ bản C/Chương 2/ 21 of 22

ể ữ ệ ể ữ ệ

Các ki u d  li u signed và  Các ki u d  li u signed và  unsigned unsigned

ế ộ ỉ

unsigned int varNum; varNum=23123; ượ ấ

ỉ ị ươ ể ể ậ  Ki u unsigned ch  rõ r ng m t bi n ch  có  ằ ng th  nh n giá tr  d

c c p phát 2 bytes

ể ượ ể unsigned  có  th   đ ớ c  dùng  v i  ki u

ỗ ợ ữ ệ ạ  Ki u unsigned int h  tr  d  li u trong ph m

Lập trình cơ bản C/Chương 2/ 22 of 22

ế  varNum đ  B   t ổ ừ ữ ệ d  li u int và float  ể ừ vi t 0 đ n 65535

ữ ữ

ể ữ ệ ể ữ ệ Nh ng ki u d  li u long (dài)  Nh ng ki u d  li u long (dài)  và short (ng n) ắ và short (ng n) ắ

 short int chi m gi

i 127

ế ố  Cho phép s  có ph m vi t

 ­2,147,483,648 và 2,147,483,647   long double chi m ế 128 bits (16 bytes)

Lập trình cơ bản C/Chương 2/ 23 of 22

ế ữ 8 bits (1 byte)  ừ ớ ạ  ­128 t ữ 32 bits (4 bytes)  long int chi m gi

ể ữ ệ ể ữ ệ

ạ ạ

ị ị Ki u d  li u & ph m vi giá tr Ki u d  li u & ph m vi giá tr

Ki uể

ạ Ph m vi

ngượ Dung l ằ tính b ng bit

char

8

i 127

­128 t ớ

Unsigned char

8

0 t

i 255 ớ

signed char

8

­128 t

i 127 ớ

int

16

i 32,767

­32,768 t ớ

unsigned int

16

0 t

i 65,535

ư ể

signed int

16

Gi ng nh  ki u int

ư ể

short int

16

Gi ng nh  ki u int

unsigned short int

16

0 t

i 65, 535

Lập trình cơ bản C/Chương 2/ 24 of 22

ể ữ ệ ể ữ ệ

ạ ạ

ị ị

Ki u d  li u & ph m vi giá tr  (tt.) Ki u d  li u & ph m vi giá tr  (tt.)

Ki uể

ạ Ph m vi

Dung  ngượ l tính b ng ằ bit

signed short int

16

ư ể Gi ng nh  ki u short int

long int

32

­2,147,483,648 t

i 2,147,483,647

signed long int

32

0 t

unsigned long int

32

i 4,294,967,295 ư ể Gi ng nh  ki u long int

float

32

ố ậ 6 con s  th p phân

double

64

long double

128

ố ậ 10 con s  th p phân ố ậ 10 con s  th p phân

Lập trình cơ bản C/Chương 2/ 25 of 22

ụ ề ụ ề

ế ế

Ví d  v  cách khai báo bi n Ví d  v  cách khai báo bi n

main () {

/*abc of type character */ char abc;  /*xyz of type integer */ int xyz;   float length;  /*length of type float */ double area;  /*area of type double */ long liteyrs;   /*liteyrs of type long int */ short arm; /*arm of type short integer*/

Lập trình cơ bản C/Chương 2/ 26 of 22

}

ử ố ọ (Arithmetic Operators) ử ố ọ (Arithmetic Operators)

Các toán t Các toán t

s  h c   s  h c

1 ử

Ch c năng

2 ử

Ch c năng

Toán t ngôi

Toán t ngôi

­

+

ố ố

++

­

­ ­

*

L y đ i s Tăng 1  Gi m 1ả

%

/

^

C ngộ Trừ Nhân ấ L y ph n  dư Chia ấ ố L y s  mũ

Lập trình cơ bản C/Chương 2/ 27 of 22