You are on page 1of 43

4/21/2015

TRNG I HC BCH KHOA H NI

Ngn ng lp trnh C v C++


Bi 2: Kiu, ton t v biu thc

TS. ng Khoa
B mn C hc ng dng
Vin C Kh
http://chud-dhbkhn.blogspot.com/

4/21/2015

Quy c v t tn trong C/C++

p dng t tn cho hm, bin, hng, cu trc hay lp:


- L dy k lin tip bao gm ch ci v s v phi bt u
bng ch ci hoc gch di _.
- Khng bao gm cc k t c bit nh ton t: +,-,*,/
- Khng trng vi t kha
- Phn bit ch hoa, ch thng

TRNG I HC
BCH KHOA H NI

4/21/2015

T kha
Mt s t nht nh c dnh cho mc ch ring
C ngha c bit trong ng cnh ca mt ngn ng c
th
S khng c xung t nu t kha v tn bin khc nhau
 V d: t integer cho tn bin th hon ton hp l ngay c
khi m t kha l int

TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu

Tn kiu: l mt t dnh ring ch nh kiu ca d liu.


S byte trong b nh: lu tr mt n v d liu thuc
kiu ny, ph thuc vo cc trnh bin dch v h thng my
khc nhau.
Min gi tr ca kiu: Cho bit mt n v d liu thuc kiu
ny s c th ly gi tr trong min no (gi tr nh nht v ln
nht l bao nhiu), ph thuc vo s byte m h thng my
qui nh cho tng kiu.

TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu c bn

Kiu d liu c bn

int

float double

char

void
TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu c bn
Kiu s nguyn (int)
Lu tr d liu s
int num;
Chim 16 bits (2 bytes) b nh
Biu din cc s nguyn trong phm vi
-32768 ti 32767
Kiu s thc (float)
Lu tr d liu s cha phn thp phn
float num;
Chim 32 bits (4 bytes) b nh
V d : 23.05, 56.5, 32

TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu c bn
Kiu s thc (double)
Lu tr d liu s cha phn thp phn
double num;
Chim 64 bits (8 bytes) b nh
V d : 23.05, 56.5, 32
Kiu k t (char)
Lu tr mt k t n
char c;
Chim 8 bits (1 byte) b nh
V d: a, m, $ % , 1, 5
Kiu void: khng lu bt c d liu g, bo cho trnh bin
dch khng c gi tr tr v
TRNG I HC
BCH KHOA H NI

4/21/2015

Nhng kiu d liu dn xut

B b t (Modifiers)
kiu d liu

Kiu d liu
c bn

unsigned

int

short

int

long

int/double

Kiu d liu dn xut

unsigned int
(ch l s dng)

short int
(chim t b nh hn int)
Long int /longdouble
(chim nhiu b nh hn
int/double)

TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu
 Bng kiu d liu c sn
Kiu d liu
char
wchar_t
short
S
nguyn int
long int
__intn
long
long long
S thc float
double
long double
Loi
K t

Kch thc b nh (bit)


8
16 (Unicode)
16
16
32
n = 8, 16, 32, 64 hoc 128
32
64 (tng ng __int64)
32
64
64
TRNG I HC
BCH KHOA H NI

4/21/2015

Kiu d liu

TRNG I HC
BCH KHOA H NI

10

4/21/2015

Kiu k t

 Mt k t l mt k hiu trong bng m ASCII (American


Standard Code for Information Interchange M chun trao
i thng tin Hoa K)
 Biu din mt k t  dng m ca k t
Cho k t A tng ng cho k t 65 (m ASCII ca A)
 Bin kiu k t c th nhn gi tr theo 2 cch:
c = A hoc
c = 65
 Bng m ASCII chun c 128 k t. Bng ASCII m rng
(bng m ANSI) c 255 k t b sung cc php ton,
ch c du, v cc k t trang tr.
TRNG I HC
BCH KHOA H NI

11

4/21/2015

Kiu k t
V d:

char c, d ; // c, d c php gn gi tr t -128 n 127


unsigned e,f ;

// e c php gn gi tr t 0 n 255

c = 65 ; d = 179 ;

// d c gi tr ngoi min cho php

e = 179; f = 330 ; // f c gi tr ngoi min cho php


cout << c << int(c);// in ra ch ci 'A' v gi tr s 65
cout << d << int(d) ; // in ra l k t '|' v gi tr s 77
cout << e << int(e) ; // in ra l k t '|' v gi tr s
179
cout << f << int(f);

// in ra l k t 'J' v gi tr s 74

TRNG I HC
BCH KHOA H NI

12

4/21/2015

Bng m ANSI

 B m ANSI khng cha cc k t th hin ngn ng


ca nhiu quc gia  to ra nhiu b m ANSI cho mi
ngn ng.
 Cc b m mu thun do dng cng mt s ch nh hai
k t khc nhau, hoc con s khc nhau th hin cng
mt k t.
 My tnh cn h tr nhiu b m.
 D liu c th b sai lc khi c chuyn qua cc b m
hoc my tnh khc nhau.

TRNG I HC
BCH KHOA H NI

13

4/21/2015

Bng m Unicode

 B m chun quc t c thit k dng lm b m duy


nht cho tt c cc ngn ng, k c nhng ngn ng s
dng k t tng hnh phc tp nh Trung Quc, Thi Lan.
 Cung cp mt con s duy nht
 Cho mi k t
 Cho mi h my tnh
 Cho mi chng trnh
 Cho mi ngn ng
 Chim 1.114.112 m ch, gn hn 96000 m ch. 128
k t u tin theo ASCII.

TRNG I HC
BCH KHOA H NI

14

4/21/2015

Bng m Unicode

 Khng gian m Unicode c chia thnh 17 mt phng,


mi mt phng c 65536 m.
 Mt phng u tin [plane 0] (mt phng a ngn ng cn
bn - Basic Multilingual Plane) cha cc k hiu cho hu
ht cc ngn ng hin i, v mt lng ln cc k t c
bit. a s c dng m ha cc ngn ng Hn-NhtHn-Vit.
 Mt phng mt [plane 1] (mt phng a ngn ng b sung Supplementary Multilingual Plane) dng cho cc ch vit
c nh ca Ai Cp

TRNG I HC
BCH KHOA H NI

15

4/21/2015

Bng m Unicode

 Mt phng hai [plane 2] dng cho 40000 ch Trung Quc,


a s k hiu c.
 Mt phng 14 hin cha mt s cc k t th ngn ng
khng c khuyn khch v mt s k hiu la chn bin
th
 Mt phng 15 v mt phng 16 c m cho cc s dng
c nhn.

TRNG I HC
BCH KHOA H NI

16

4/21/2015

Hng Khai bo v s dng


Hng l mt gi tr c nh no .
 Hng nguyn
o Mc nh theo h 10, thm 0 trc l h 8, thm 0x
trc l h 16.
V d: 31 (h 10), 037 (h 8),
0x1f hay 0x1F (h 16)
o B sung hu t
l(L): long
u(U): unsigned
ul(lu): unsigned long
V d:
75u
// unsigned int
75
// int
75l
// long
75ul
// unsigned long
75lu
// unsigned long
TRNG I HC
BCH KHOA H NI

17

4/21/2015

Hng Khai bo v s dng


V tr du
phy ph
thuc vo n

TRNG I HC
BCH KHOA H NI

18

4/21/2015

Hng Khai bo v s dng


 Hng k t
o K t c mt ch th hin  t mt ch gia hai du
nhy n, .
V d: A, 3, (du cch)
o S dng gi tr trong bng m (thun tin cho cc k t
khng c mt ch)
V d: 65 (A), 51 (3), 32 (du cch)
27 (Esc), 13 (Enter)
o S dng gi tr dng h 8 hoc h 16
0kkk hoc \kkk
h 8, ti a 3 ch s
0xkk hoc \xkk
h 16, ti a 2 ch s
V d: 65, 0101, 0x41 hoc 'A' , '\101' , '\x41'
TRNG I HC
BCH KHOA H NI

19

4/21/2015

Hng Khai bo v s dng


 Mt s hng k t thng dng
K t

M t

\n

K t xung dng

\r

Xung dng (Enter)

\t

tab

\f

Ko trang

\a

Chung (loa ku bp)

\'

Nhy n (')

\"

Nhy kp (")

\?

Du chm hi (?)

\\

Du \
TRNG I HC
BCH KHOA H NI

20

4/21/2015

Hng Khai bo v s dng


 Hng xu k t
o Dy k t bt k nm gia hai du nhy kp, .
V d: Hello, world, A, (xu rng)
o Chiu di xu = s k t gia hai du nhy kp
o Phn bit k t A v xu A. Cng biu din ch A
nhng c b tr b nh khc nhau.
K t A chim 1 byte
Xu A chim 2 byte. Mt byte c dng cho k t kt
thc xu \0.

TRNG I HC
BCH KHOA H NI

21

4/21/2015

Hng Khai bo v s dng


 Khai bo hng
o S dng tin x l #define
#define TN_HNG gi_tr
V d:
#define MAX 100
#define NEWLINE \n
#define PI 3.14156
o S dng t kha const
const kiu_d_liu tn_hng = gi_tr;
V d:
const char NEWLINE = \n;
const double PI = 3.14156;
TRNG I HC
BCH KHOA H NI

22

4/21/2015

Bin Khai bo v s dng

B nh

D liu

15

15
D liu
trong b
nh
Mi v tr trong b nh l duy nht

Bin cho php cung cp mt tn c ngha cho mi v tr nh


TRNG I HC
BCH KHOA H NI

23

4/21/2015

Bin Khai bo v s dng

 Bin l cc tn gi lu gi tr.
 Gi tr c lu c th gi tr ban u, trung gian hoc kt qu
cui cng.
 Gi tr c lu vo mt nh trong b nh, kch thc nh
(byte) ty thuc vo kiu d liu ca bin.
 Tn bin gip chng ta truy cp vo b nh m khng cn dng
a ch ca chng
 c khai bo trc khi s dng
 Trong C, cc bin phi c khai bo ngay t u chng trnh
hay u ca hm.
 Trong C++, c th khai bo bt k ch no trc khi s dng
TRNG I HC
BCH KHOA H NI

24

4/21/2015

Bin Khai bo v s dng


 Khai bo
Kiu tn_bin;
Kiu tn_bin_1, tn_bin_2, tn_bin_3;
int i;
float f1, f2;
Cc bin khai bo kiu ny s c gi tr 0 ( nh cha s
dng), gi tr no nu nh c s dng trc .
 - Khai bo c khi to gi tr
Kiu tn_bin = gt; // gt: hng, bin hoc biu thc.
Kiu tn_bin(gt); // C++
int i = 5, j = 10, k = j, f = 5*i;
double d(10.5);
TRNG I HC
BCH KHOA H NI

25

4/21/2015

Bin Khai bo v s dng


 Gn gi tr cho bin
S dng ton t gn, =.
tn_bin = gt; // gt: hng, bin hoc biu thc
Gn nhiu bin cng mt gi tr
bin_1 = bin_2 = bin_3 = bin_4 = gt;
i = j = k = 5;
Gn trong mt biu thc
m = j*(k=5);
Tng ng vi hai cu lnh: k = 5; v m = j*k;

TRNG I HC
BCH KHOA H NI

26

4/21/2015

Bin - Phm vi bin

int y = 38;
void main( ){
int z=47;
while(z<400)
{
int a = 90;
z += a++;
z++;
}
y = 2 * z;

Phm vi bin y
Phm vi bin z
Phm vi bin a

TRNG I HC
BCH KHOA H NI

27

4/21/2015

Php ton
 Ton hng
Cc thnh phn tn tham gia trong php ton
 Ton t
Cc k hiu php ton
 Php ton 1 ngi
Php ton c mt ton hng
V d: -a (ly gi tr m ca a), &b (ly a ch
ca b)
 Php ton 2 ngi
Php ton tr 2 ngi: a b
Php ton ly hi cc bit 2 s nguyn: a & b
- Php ton 3 ngi: a ? b : c

Ton T

2*y+5
Ton hng

TRNG I HC
BCH KHOA H NI

28

4/21/2015

Bn Kiu Ton T

S hc
(Arithmetic)

Lun L
(Logical)

Quan h
(Relational)

Nh phn
(Bitwise)

TRNG I HC
BCH KHOA H NI

29

4/21/2015

Cc php ton s hc: +, -, *, /, %


 Cc php ton + (cng), - (tr), * (nhn) c ngha nh
trong s hc thng thng thng
 Php ton / (chia) da theo kiu ca ton hng
 Hai ton hng s nguyn  kt qu ly phn nguyn
 Mt trong hai ton hng thc  kt qu l s thc
V d:
5/2 = 2
5.0/2 = 5/2.0 = 5.0/2.0 = 2.5
 Php ton % (ly phn d) tr li phn d ca php ton
chia, /, hai ton hng s nguyn
5%2 = 1
2%5 = 2
TRNG I HC
BCH KHOA H NI

30

4/21/2015

Php ton tng v gim: ++, - Php ton ++, --, thc hin tng hoc gim 1 n v
i++ v ++i tng ng i = i + 1
 S khc nhau i++ v ++I khi nm trong cu lnh, biu thc
 i++: tng i sau khi biu thc tnh ton xong
 ++i: tng i, sau i mi tham gia vo biu thc tnh ton
V d: j = 5
Php ton

Tng ng

Kt qu

i = j++;

i = j; j = j + 1;

i = 5, j = 6

i = ++j;

j = j + 1; i = j;

i = 6, j = 6

i = j++ + 7;

i = j + 7; j = j + 1;

i = 12, j = 6

i = ++j + 7;

j = j + 1; i = j + 7;

i = 13, j = 6
TRNG I HC
BCH KHOA H NI

31

4/21/2015

Ton t quan h v lun l (lgic)


y l cc php ton tr li gi tr ng (#0) v sai (=0)
c dng so snh: biu thc vi biu thc, bin vi bin,
biu thc vi bin, bin vi hng hoc biu thc vi hng

Ton t quan h
Ton t
>
>=
<
<=
==
!=

ngha
Ln hn
Ln hn hoc bng
Nh hn
Nh hn hoc bng
Bng
Khng bng
TRNG I HC
BCH KHOA H NI

32

4/21/2015

Php ton quan h v logic


 Php ton quan h (u tin sau php ton s hc)
 <, <=, >, >=
 ==, != (u tin sau 4 php ton trn)
 Php ton logic
 && (v), || (hoc) kt hp cc iu kin
 ! (ph nh)
a

a && b

a || b

!a

1
TRNG I HC
BCH KHOA H NI

33

4/21/2015

Php ton thao tc nh phn (bitwise)


 Cho php thao tc cc bit ring bit ca mt bin
 6 ton t thao tc bit
Ton t

K hiu

Cch vit

M t

Dch tri

<<

x << y

Cc bit trong x dch tri y bit

Dch phi

>>

x >> y

Cc bit trong x dch phi y bit

NOT (B)

~x

Ly phn b ca cc bit trong x

AND (Hi)

&

x&y

Tng bit trong x AND tng bit trong y

OR (Tuyn k
loi tr)

x|y

Tng bit trong x OR tng bit trong y

XOR (Tuyn
c loi tr)

x^y

Tng bit trong x XOR tng bit trong y


TRNG I HC
BCH KHOA H NI

34

4/21/2015

Php ton thao tc nh phn (bitwise)


V d:
bit a
0
0
1
1

a&b
(a AND b)

bit b
0
1
0
1

11001110
& 10011000
= 10001000

0
0
0
1
11001110
| 10011000
= 11011110

a|b
(a OR b)
0
1
1
1

a^b
(a XOR b)
0
1
1
0

~a
1
0

11001110
^ 10011000
= 01010110

TRNG I HC
BCH KHOA H NI

35

4/21/2015

Php ton thao tc nh phn (bitwise)


V d: dch bit
23 << 1  23x2 = 46

23 >> 1  23/2 = 11

TRNG I HC
BCH KHOA H NI

36

4/21/2015

Ton t gn v biu thc

 Php gn dng x = x@a; c vit di dng x @= a,


trong @ l cc php ton s hc, ton t bit...
x = x + 2;  x += 2;
x = x - 2;  x -= 2;
x = x * 2;  x *= 2;
x = x / 2;  x /= 2;
x = x * (10 + c);  x *= 10 + c;

TRNG I HC
BCH KHOA H NI

37

4/21/2015

Biu thc iu kin, ?

 Vit di dng biu thc 3 ngi: e1 ? e2 : e3;


e1: biu thc logic
e2, e3: biu thc bt k
Php ton thc hin biu thc e2 nu iu kin e1 ng v
thc hin biu thc e3 nu ngc li.
+ S ln nht ca 2 s
a > b ? a : b;
max = (a > b ? a : b);
+ S ln nht ca 3 s
max = (a > b ? (a > c ? a : c) : (b > c ? b : c))

TRNG I HC
BCH KHOA H NI

38

4/21/2015

u tin ca ton t

 cp n th t thc thi cc ton t trong C/C++


 u tin ca cc ton t ny c thay i bi cc du
ngoc n trong biu thc ()

Loi ton t

Ton t

Tnh kt hp

Mt ngi

- ++ --

Phi n tri

Hai ngi

Tri n phi

Hai ngi

* / %

Tri n phi

Hai ngi

+-

Tri n phi

Hai ngi

Phi n tri

TRNG I HC
BCH KHOA H NI

39

4/21/2015

Biu thc

 Biu thc l s m t quan h gia cc ton hng (hng,


bin, hm), php ton v cp du () theo mt quy tc nht
nh
 Gi tr ca biu thc c tnh ton da theo th t u tin
ca cc php ton:
i. Cc biu thc trong cp du ngoc ()
ii. Cc php ton 1 ngi (++, --, &, * )
iii. Cc php ton s hc
iv. Cc php ton quan h, logic
v. Cc php gn

TRNG I HC
BCH KHOA H NI

40

4/21/2015

Chuyn i kiu
Khi tnh ton mt biu thc, phn
ln cc php ton u yu cu cc
ton hng phi cng kiu. Trng
hp khc kiu, chng trnh s t
ng chuyn kiu.
 Chuyn i kiu t ng
Kiu d liu thp hn s c
nng thnh kiu cao hn cho ph
hp vi php ton
char int long int float
double

TRNG I HC
BCH KHOA H NI

41

4/21/2015

Chuyn i kiu

 p kiu
 Khi chuyn kiu t ng c th khng thc hin c (thc
 nguyn) hoc c th mt d liu (cao hn  thp hn).
V d: int i;
float f = 3;
i = f + 2; // f+2=5.0 nhng khng gn c cho i
 p kiu chuyn v kiu mong mun
C php: (tn_kiu)biu_thc
tn_kiu(biu_thc)
i = (int)(f + 2); hoc
i = int(f + 2);
TRNG I HC
BCH KHOA H NI

42

4/21/2015

Th vin cc hm ton hc <math>


Cc hm s hc
abs(x), labs(x), fabs(x) : tr li gi tr tuyt i ca mt s
nguyn, s nguyn di v s thc.
pow(x, y) : hm m, tr li gi tr x ly tha y (xy).
exp(x) : hm m, tr li gi tr e m x (ex).
log(x), log10(x) : tr li lgarit c s e v lgarit thp phn ca
x (lnx, logx) .
sqrt(x) : tr li cn bc 2 ca x.
atof(s_number) : tr li s thc ng vi s vit di dng xu
k t s_number.
Cc hm lng gic
sin(x), cos(x), tan(x) : tr li cc gi tr sinx, cosx, tgx.
TRNG I HC
BCH KHOA H NI

43

You might also like