TIN H C
CH2: KI U D
IC
NG
LI U– BI N – BI U TH C
1 Các ki u d li u c b n
2 Bi n, h ng
gs
3 Bi u th c
4 Các tóan t trong C
5 Th t
u tiên
tiê c a các
á phép
hé toán
t á
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 1
1. Ki u d li u
Ki u s nguyên:
Giá tr là các s nguyên nh 2912, -1706.
Ki u s th c:
Giá tr là các s th c nh 3.14, 29.2, -17.6
Ki u lu n lý:
Giá tr đúng (Khác 0) ho c sai (B ng 0)
ýt :
Ki u ký
256 ký t trong b ng mã ASCII.
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 2
1. Ki u d li u
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 3
1.1 S nguyên có d u
Ki u
(Type)
char
int
Short int
L
Long
i t
int
l n
(Byte)
1
2
2
4
Khoa TVTHK. Tin H c
iC
ng
Mi n giá tr
(Range)
–128 ~ +127
–32.768
32 768 ~ +32
+32.767
767
–32.768 ~ +32.767
–2.147.483.648
2 147 483 648 ~ +2
+2.147.483.647
147 483 647
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 4
1.2 S nguyên không d u
Ki u
(Type)
l n
(Byte)
unsigned char
unsigned int
unsigned
g
short int
unsigned long int
Khoa TVTHK. Tin H c
iC
ng
1
2
2
4
Ph n II. Ch
Mi n giá tr
(Range)
0 … 255
0 … 65.535
0 … 65.535
0 … 4.294.967.295
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 5
1.3 S th c
S th c (Floating point number)
Ki u
(Type)
l n
(Byte)
Mi n giá tr
(Range)
float (*)
4
3.4*10–38 … 3.4*1038
double (**)
( )
8
308 … 1.7
1 7*10
1.7
10–308
1 7*10
10308
()
(*)
chính xác đ n (Single
(Single-precision)
precision) chính xác đ n 7 s
l .
(**)
chính xác kép (Double-precision) chính xác đ n 19
s l .
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 6
1.4 Ki u d li u: Lu n lý
c đi m
C ng
g m đ nh m t cách không
g t ng
g minh:
false (sai): giá tr 0.
true (đúng): giá tr khác 0, th ng là 1.
Ví d
0 (false), 1 (true), 2 (true), 2.5 (true)
1 > 2 (0,
(0 false),
false) 1 < 2 (1
(1, true)
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 7
1. Ki u d li u: Ký t
c đi m
ê ki u
u: cchar
a
Tên
Mi n giá tr : 256 ký t trong b ng mã ASCII.
Chính là ki u s nguyên do:
L u t t c d li u d ng s .
Không
g l u tr c ti p kýý t mà ch l u mã ASCII c a
ký t đó.
Ví d
L u s 65 t
L u s 97 t
Khoa TVTHK. Tin H c
iC
ng
ng đ
gđ
ng
ng v i ký t ‘A’…
ng
g v i kýý t ‘a’.
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 8
2. Bi n
c đi m
Tên bi n
iNumber
Ki u d li u
int
Giá tr c a bi n
10
Cú pháp:
ki u>
tê bi n>;
<ki u> <tên bi n 1>, <tên bi n 2>;
<ki u> <tên bi n = value> ;
VD:
int i;;
int j, k = 4;
unsigned char dem_so;
float ketqua, delta;
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 9
2. H ng
c đi m
X Tên h ng
X Ki u d li u
X Giá tr c a h ng
Cú pháp:
const <ki u> <tênh ng> = <giá tr >;
#define <tênh ng> <giá tr >
VD:
const int MAX_NUMBER = 100;
const char LETTER
LETTER_A
A = “A”;
A;
const float PI = 3.14;
# define PI 3.14
#d
define
fi MAX
MAX_NUM
NUM 100
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 10
3. Bi u th c
T o thành t các toán t (Operator) và các toán
h ng (Operand).
Toán t tác đ ng lên các giá tr c a toán h ng và
cho giá tr có ki u nh t đ nh.
Toán T
y=2*y+5
Toán h ng
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 11
4. Các tóan t
trong C++
1 Toán t gán (=)
2 Toán t s h c (+, - *, /, % )
3 Các toán t kh i t o (+=, -=, *=, /=, %=)
4 Tóan t t ng / gi m: ++ / -5 Các toán t quan h ( ==, !=, >, <, >=, <= )
6 Các toán t logic ( !, &&, || ).
7 Toán t đi u ki n ( ? ).
8 Toán t ph y (,)
9 Tóan
Tó t chuy
h
n ki u
10
u tiên c a tóan t
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 12
1. Tóan t
gán: =
Th ng đ c s d ng trong l p trình.
Gán giá tr bên ph i d u = cho bi n.
Cú pháp
<bi n> = <giá tr >;
<bi n> = <bi n>;
<bi n> = <bi u th c>;
Toán t gán luôn đ c th c hi n t trái sang ph i và không
đ o ng
g c. Có th th c hi n liên ti p p
phép
pg
gán. L nh g
gán
khác v i d u = trong tóan h c
VD
int a, b, c, d ;
a=b=c=d=5;
a =a+1;
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 13
2 Tóan t tính tóan: +, - , * , / , %
Toán t
+
*
/
%
Tên
C ng
Tr
Nhân
Chia
L y ph n d
Ví d
10 + 5.5 = 15.5
5–3=2
2*3=6
7 / 2 = 3.5
9%4 =1
̌ Tóan t %: Chia l y s d :
VD: a = 7 % 2 ;
//giá tr c a a sau l nh này = 1 vì 7/3=2 d 1
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 14
2 Tóan t tính tóan: +, - , * , / , %
̌ Chú ý phép chia s nguyên, s th
VD: a = 9/2 ;
// bi n a có giá tr
a = 9/2.0
9/2 0
// bi n a có giá tr
a = 9.0/2
// bi n a có giá tr
a = 9.0/2.0 // bi n a có g
giá tr
Tính
a) 2 * 5 * 5 + 3 * 2 -7
a) 2 / 3 / 4 + 5
b) (7 * 3 / 4 - 2) * 5
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
c:
4
45
4.5
4.5
4.5
Toán t
()
* / %
+ =
,
ng 2: Ki n d li u-bi n-h ng-bi u th c
u tiên
LåR
å
å
å
å
Trang 15
3 Các tóan t
Các toán t
gán ph c h p (+=, -=, *=, /=, %=)
Toán T
=
+=
-=
*=
/=
%=
Khoa TVTHK. Tin H c
kh i t o
Ví d
n = 25
n += 25
n -= 25
n *= 25
n /= 25
n %= 25
iC
ng
Ph n II. Ch
T
ng
gđ
ng
gv i
n = n + 25
n = n – 25
n = n * 25
n = n / 25
n = n % 25
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 16
4 Các tóan t
Toán T
++
++
---
T ng m
T ng m
Gi m m
Gi m m
T ng , gi m (1)
Tên
t (ti n t
t (h u t
t (ti
( nt
t (h u t
)
)
)
)
Ví d : k=5;
++k + 10 // đ c 16
k++ + 10 // đ c 15
--k + 10 // đ c 14
k-- + 10 // đ c 15
̌ Ti n t (++a) thì giá tr đ c t ng tr c khi bi u th c
đ c tính và giá tr đã t ng đ c s d ng trong bi u
th c;
̌ H u t (a++) giá tr trong bi n a đ c t ng sau khi đã
tính toán.
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 17
4 Các tóan t
T ng , gi m (2)
Chú ý:
a++ ;
a ;
a-++a ;
--a ;
b = a++
ú
ú
ú
ú
ú
b = ++a
ú
a += 1 ;
a -=
=1;
a += 1 ;
a -= 1 ;
b=a;
a++ ;
a++ ;
b=a;
A = 5;
B = ++A;
A = 5;
B = A++;
K t qu : A=6, B=6
K t qu : A=6, B=5
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 18
5 Tóan t quan h : ==, !=, >, <, >=, <= (1)
Toán
t
==
!=
<
<=
>
>=
Tên
Ví d
So sánh b ng
So sánh không b ng
S sánh
So
á h nh
h h n
So sánh nh h n ho c b ng
So sánh l n h n
So sánh l n h n ho c b ng
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
5 == 5 // cho 1
5 != 5 // cho 0
5 < 5.5
5 5 // cho
h 1
5 <= 5 // cho 1
5 > 5.5
5 5 // cho 0
6.3 >= 5 // cho 1
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 19
5 Tóan t quan h : ==, !=, >, <, >=, <= (2)
0: SAI (false)
<> 0:
ÚNG (true)
T t c các ký t đ c s p x p theo m t th t nh t đ nh
trong b ng mã ASCII. Do đó vi c so sánh 2 ký t chính là
so sánh th t (hay mã) c a chúng.
chúng
Ví d :
a > ‘c’
c => Bi u Th c Logic mang giá tr false
‘a’
‘1’ < ‘A’ => Bi u Th c Logic mang giá tr true
‘$’ > ‘1’ => Bi u Th c Logic mang giá tr false
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 20
6 Các toán t
Toán t
!
&&
||
logic ( !, &&, || )
Tên
Ví d
Ph đ nh lu n lýý ((Not)) !(5
( == 5))
// đ c 0
Và lu n lý (AND)
5 < 6 && 6 < 6 // đ c 0
Ho c lu n lý (OR)
5 < 6 || 6 < 5 // đ c 1
Tính:
a) s1 = (1 > 2) && (3 > 4);
b) s2 = (1 > 2) || (3 > 4);
c) s3 = !(1 > 2);
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 21
7 Toán t
đi u ki n ( ? ).
condition ? result1 : result2
N u condition là true thì giá tr tr v s là result1,
result1 n u
không giá tr tr v là result2.
7 == 5 ? 4 : 3
7 == 5 +2 ? 4 : 3
5>3 ? a : b
a>b?a:b
Khoa TVTHK. Tin H c
iC
ng
//tr
//tr
//tr
//tr
Ph n II. Ch
v
v
v
v
3 vì 7 không b ng 5.
4 vì 7 b ng 5+2.
a,, vì 5 l n h n 3.
giá tr l n h n, a ho c b.
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 22
8 Toán t
ph y (,)
Toán t ph y
X Các bi u th c đ t cách nhau b ng d u ,
X Các
Cá bi u th c con l n l t đ c tính
tí h t trái
t ái sang
ph i.
X Bi u th c m i nh n đ c là giá tr c a bi u th c
bên ph i cùng.
Ví d :
int x,
x yy, z ;
x = (a++, b = b + 2);
T ng đ ng: a++; b = b + 2; x = b;
// H n ch
h s d ng ki u này
à vìì không
khô minh
i h b ch.
h Vi t l ii:
a++ ;
b += 2 ;
x=b;
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 23
9 Chuy n đ i ki u trong C: T đ ng
C 2 bi u th c là s nguyên:
• N u 1 trong 2 là long int, k t qu là long int
• N u 1 trong 2 là unsigned int,
int k t qu là unsigned int
Ki u d li u
long double ← highest type
double
float
unsigned
i
d llong
long int
unsigned int
int
short in
char
← lowest type
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
(!)Trong tr ng
h p chuy n đ i t
highå low, d
li u có
ó th không
khô
chính xác.
VD: 4.5 å int s
là 4
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 24
9 Chuy n đ i ki u: cast
Cho phép chuy n đ i d li u t ki u này sang ki u khác.
Th c hi n = cách đ t tr c bi u th c c n chuy n đ i tên
ki u d li u đ c b c trong c p ngo c đ n ()
VD:
int i;
float f =3.14;
i = int (f) //i=3
int i = 10.5;; // i = 10
sizeof(): Toán t này có m t tham s , đó có th là m t ki u
d li u hay là m t bi n và tr v kích c b ng byte c a ki u
hay đ i t ng đó.
a = sizeof (char); //a=1
Khoa TVTHK. Tin H c
iC
ng
Ph n II. Ch
ng 2: Ki n d li u-bi n-h ng-bi u th c
Trang 25