Professional Documents
Culture Documents
NMLT C07 CacKieuDuLieuCoSo
NMLT C07 CacKieuDuLieuCoSo
NHP MN LP TRNH
ThS. ng Bnh Phng
dbphuong@fit.hcmus.edu.vn
CC KIU D LIU C S
1
&
VC
BB
Ni dung
1 Cc kiu d liu c s
4 Mt s v d minh ha
Cc kiu d liu c s
2
&
VC
BB
Cc kiu d liu c s
Cc kiu d liu c s
3
&
VC
BB
Kiu s nguyn
Kiu ln Min gi tr
(Type) (Byte) (Range)
char 1 128 +127
int 2 32.768 +32.767
short 2 32.768 +32.767
long 4 2.147.483.648 +2.147.483.647
Cc kiu d liu c s
4
&
VC
BB
Kiu s nguyn
Kiu ln Min gi tr
(Type) (Byte) (Range)
unsigned char 1 0 255
unsigned int 2 0 65.535
unsigned short 2 0 65.535
unsigned long 4 0 4.294.967.295
Cc kiu d liu c s
5
&
VC
BB
Kiu s thc
c im
C ngm nh mt cch khng tng minh:
false (sai): gi tr 0.
true (ng): gi tr khc 0, thng l 1.
C++: bool
V d
0 (false), 1 (true), 2 (true), 2.5 (true)
1 > 2 (0, false), 1 < 2 (1, true)
Cc kiu d liu c s
7
&
VC
BB
Kiu k t
c im
Tn kiu: char
Min gi tr: 256 k t trong bng m ASCII.
Chnh l kiu s nguyn do:
Lu tt c d liu dng s.
Khng lu trc tip k t m ch lu m ASCII ca
k t .
V d
Lu s 65 tng ng vi k t A
Lu s 97 tng ng vi k t a.
Cc kiu d liu c s
8
&
VC
BB
Bin
V d
int i;
Bin int j, k;
unsigned char dem;
float ketqua, delta;
C php
<kiu> <tn bin>;
<kiu> <tn bin 1>, <tn bin 2>;
Cc kiu d liu c s
9
&
VC
BB
Hng s
C php
<kiu> <tnhng> = <gi tr>;
Hng
thng
V d
int a = 1506; // 150610
int b = 01506; // 15068
int c = 0x1506; // 150616 (0x hay 0X)
float d = 15.06e-3; // 15.06*10-3 (e hay E)
Cc kiu d liu c s
10
&
VC
BB
Hng s
C php
#define <tnhng> <gi tr>
Hng hoc s dng t kha const.
k hiu
V d
#define MAX 100 // Khng c ;
#define PI 3.14 // Khng c ;
const int MAX = 100;
const float PI = 3.14;
Cc kiu d liu c s
11
&
VC
BB
Biu thc
Khi nim
To thnh t cc ton t (Operator) v cc
ton hng (Operand).
Ton t tc ng ln cc gi tr ca ton hng
v cho gi tr c kiu nht nh.
Ton t: +, , *, /, %.
Ton hng: hng, bin, li gi hm...
V d
2 + 3, a / 5, (a + b) * 5,
Cc kiu d liu c s
12
&
VC
BB
Ton t gn
Khi nim
Thng c s dng trong lp trnh.
Gn gi tr cho bin.
C php
<bin> = <gi tr>;
<bin> = <bin>;
<bin> = <biu thc>;
C th thc hin lin tip php gn.
Cc kiu d liu c s
13
&
VC
BB
Ton t gn
V d
void main()
{
int nA, nB, nC, nD, nE, nThuong;
nA = 10;
nB = nA;
nThuong = nA / nB;
nA = nB = nC = nD = nE = 156;
nE = 156;
nD = nE;
nC = nD;
nB = nC;
nA = nB;
}
Cc kiu d liu c s
14
&
VC
BB
Cc ton t ton hc
Ton t 1 ngi
Ch c mt ton hng trong biu thc.
++ (tng 1 n v), -- (gim 1 n v)
t trc ton hng
V d ++x hay --x: thc hin tng/gim trc.
t sau ton hng
V d x++ hay x--: thc hin tng/gim sau.
V d
x = 10; y = x++; // y = 10 v x = 11
x = 10; y = ++x; // x = 11 v y = 11
Cc kiu d liu c s
15
&
VC
BB
Cc ton t ton hc
Ton t 2 ngi
C hai ton hng trong biu thc.
+, , *, /, % (chia ly phn d)
x = x + y x += y;
V d
a = 1 + 2; b = 1 2; c = 1 * 2; d = 1 / 2;
e = 1*1.0 / 2; f = float(1) / 2; g = float(1 / 2);
h = 1 % 2;
x = x * (2 + 3*5); x *= 2 + 3*5;
Cc kiu d liu c s
16
&
VC
BB
Cc ton t trn bit
^ 0 1 ~ 0 1
0 0 1 1 0
1 1 0 17
Cc kiu d liu c s
&
VC
BB
Cc ton t trn bit
V d
void main()
{
int nA = 5; // 0000 0000 0000 0101
int nB = 6; // 0000 0000 0000 0110
Cc kiu d liu c s
18
&
VC
BB
Cc ton t quan h
Cc ton t quan h
So snh 2 biu thc vi nhau
Cho ra kt qu 0 (hay false nu sai) hoc 1
(hay true nu ng)
==, >, <, >=, <, <=, !=
V d
s1 = (1 == 2); s2 = (1 != 2);
s3 = (1 > 2); s4 = (1 >= 2);
s5 = (1 < 2); s6 = (1 <= 2);
Cc kiu d liu c s
19
&
VC
BB
Cc ton t lun l
Cc ton t lun l
T hp nhiu biu thc quan h vi nhau.
&& (and), || (or), ! (not)
&& 0 1 || 0 1
0 0 0 0 0 1
1 0 1 1 1 1
V d
s1 = (1 > 2) && (3 > 4);
s2 = (1 > 2) || (3 > 4);
s3 = !(1 > 2);
Cc kiu d liu c s
20
&
VC
BB
Ton t iu kin
Ton t iu kin
y l ton t 3 ngi (gm c 3 ton hng)
<biu thc 1> ? <biu thc 2> : <biu thc 3>
<biu thc 1> ng th gi tr l <biu thc 2>.
<biu thc 1> sai th gi tr l <biu thc 3>.
V d
s1 = (1 > 2) ? 2912 : 1706;
int s2 = 0;
1 < 2 ? s2 = 2912 : s2 = 1706;
Cc kiu d liu c s
21
&
VC
BB
Ton t phy
Ton t phy
Cc biu thc t cch nhau bng du ,
Cc biu thc con ln lt c tnh t tri
sang phi.
Biu thc mi nhn c l gi tr ca biu
thc bn phi cng.
V d
x = (a++, b = b + 2);
a++; b = b + 2; x = b;
Cc kiu d liu c s
22
&
VC
BB
u tin ca cc ton t
Ton t u tin
() [] -> .
! ++ -- - + * (cast) & sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
|
^
&&
||
?:
= += -= *= /= %= &=
,
Cc kiu d liu c s
23
&
VC
BB
u tin ca cc ton t
x ln hn hay bng 3
x >= 3
a v b cng du
((a>0) && (b>0)) || ((a<0) && (b<0))
(a>0 && b>0) || (a<0 && b<0)
p bng q bng r
(p == q) && (q == r) hoc (p == q && q == r)
5 < x < 5
(x > 5) && (x < 5) hoc (x > 5 && x < 5)
Cc kiu d liu c s
25
&
VC
BB
Cu lnh
Khi nim
L mt ch th trc tip, hon chnh nhm ra
lnh cho my tnh thc hin mt s tc v
nht nh no .
Trnh bin dch b qua cc khong trng (hay
tab hoc xung dng) chen gia lnh.
V d
a=2912;
a = 2912;
a
=
2912; 26
Cc kiu d liu c s
&
VC
BB
Cu lnh
Phn loi
Cu lnh n: ch gm mt cu lnh.
Cu lnh phc (khi lnh): gm nhiu cu
lnh n c bao bi { v }
V d
a = 2912; // Cu lnh n
Cc kiu d liu c s
27
&
VC
BB
Cu lnh xut
Th vin
#include <stdio.h> (standard input/output)
C php
printf(<chui nh dng>[, <s1>, <s2>, ]);
<chui nh dng> l cch trnh by thng tin
xut v c t trong cp nhy kp .
Vn bn thng (literal text)
K t iu khin (escape sequence)
c t (conversion specifier)
Cc kiu d liu c s
28
&
VC
BB
Chui nh dng
Cc kiu d liu c s
29
&
VC
BB
Chui nh dng
V d
printf(\t); printf(\n);
printf(\t\n); Cc kiu d liu c s
30
&
VC
BB
Chui nh dng
c t (conversion specifier)
Gm du % v mt k t.
Xc nh kiu ca bin/gi tr mun xut.
Cc i s chnh l cc bin/gi tr mun xut,
c lit k theo th t cch nhau du phy.
c t ngha
%c K t char
%d, %ld S nguyn c du char, int, short, long
%f, %lf S thc float, double
%s Chui k t char[], char*
%u S nguyn khng du unsigned int/short/long
Cc kiu d liu c s
31
&
VC
BB
Chui nh dng
V d
int a = 10, b = 20;
printf(%d, a); Xut ra 10
printf(%d, b); Xut ra 20
printf(%d %d, a, b); Xut ra 10 20
float x = 15.06;
printf(%f, x); Xut ra 15.060000
printf(%f, 1.0/3); Xut ra 0.333333
Cc kiu d liu c s
32
&
VC
BB
nh dng xut
C php
nh dng xut s nguyn: %nd, %nld
nh dng xut s thc: %n.kf, %n.lf
int a = 1706;
float x = 176.85;
printf(%10d, a); printf(\n);
printf(%10.2f, x); printf(\n);
printf(%.2f, x); printf(\n);
1 7 0 6
1 7 6 . 8 5
1 7 6 . 8 5
Cc kiu d liu c s
33
&
VC
BB
Chui nh dng
Th vin
#include <stdio.h> (standard input/output)
C php
scanf(<chui nh dng>[, <s1>, <s1>, ]);
<chui nh dng> ging nh dng xut
nhng ch c cc c t.
Cc i s l tn cc bin s cha gi tr
nhp v c t trc du &
Cc kiu d liu c s
35
&
VC
BB
Cu lnh nhp
V d
int x = 4, y = 3, z = -5;
float t = -1.2;
float kq1 = sqrt(x);
int kq2 = pow(x, y);
float kq3 = pow(x, 1/3);
float kq4 = pow(x, 1.0/3);
int kq5 = abs(z);
float kq6 = fabs(t);
Cc kiu d liu c s
38
&
VC
BB
Bi tp
Cc kiu d liu c s
39
&
VC
BB
Bi tp
Cc kiu d liu c s
40
&
VC
BB
Bi tp
Cc kiu d liu c s
41