You are on page 1of 41

Trng i hc Khoa hc T nhin

Khoa Cng ngh thng tin


B mn Cng ngh phn mm

NHP MN LP TRNH

ThS. ng Bnh Phng


dbphuong@fit.hcmus.edu.vn

CC KIU D LIU C S

VC

&
BB

Ni dung

Cc kiu d liu c s

Bin, Hng, Cu lnh & Biu thc

Cc lnh nhp xut

Mt s v d minh ha

Cc kiu d liu c s

VC

&
BB

Cc kiu d liu c s

Turbo C c 4 kiu c s nh sau:


Kiu s nguyn: gi tr ca n l cc s
nguyn nh 2912, -1706,
Kiu s thc: gi tr ca n l cc s thc nh
3.1415, 29.12, -17.06,
Kiu lun l: gi tr ng hoc sai.
Kiu k t: 256 k t trong bng m ASCII.

Cc kiu d liu c s

VC

&
BB

Kiu s nguyn

Cc kiu s nguyn (c du)


n bit c du: 2n 1 +2n 1 1
Kiu
(Type)

ln
(Byte)

Min gi tr
(Range)

char

128 +127

int

32.768 +32.767

short

32.768 +32.767

long

2.147.483.648 +2.147.483.647

Cc kiu d liu c s

VC

&
BB

Kiu s nguyn

Cc kiu s nguyn (khng du)


n bit khng du: 0 2n 1
Kiu
(Type)

ln
(Byte)

Min gi tr
(Range)

unsigned char

0 255

unsigned int

0 65.535

unsigned short

0 65.535

unsigned long

0 4.294.967.295

Cc kiu d liu c s

VC

&
BB

Kiu s thc

Cc kiu s thc (floating-point)


V d
17.06 = 1.706*10 = 1.706*101
Kiu
(Type)

ln
(Byte)

Min gi tr
(Range)

float (*)

3.4*1038 3.4*1038

double (**)

1.7*10308 1.7*10308

(*) chnh xc n (single-precision) chnh xc


n 7 s l.
(**) chnh xc kp (double-precision) chnh xc
n 19 s l.
Cc kiu d liu c s

VC

&
BB

Kiu lun l

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

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

VC

&
BB

Bin

Bin

V d
int i;
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

VC

&
BB

Hng s

Hng
thng

V d
int a = 1506;
int b = 01506;
int c = 0x1506;
float d = 15.06e-3;

C php
<kiu> <tnhng> = <gi tr>;

// 150610
// 15068
// 150616 (0x hay 0X)
// 15.06*10-3 (e hay E)
Cc kiu d liu c s

10

VC

&
BB

Hng s

Hng
k hiu

V d
#define MAX 100
#define PI 3.14
const int MAX = 100;
const float PI = 3.14;

C php
#define <tnhng> <gi tr>
hoc s dng t kha const.

// Khng c ;
// Khng c ;

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++;
x = 10; y = ++x;

// y = 10 v x = 11
// 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

Cc ton t trn bit


Tc ng ln cc bit ca ton hng (nguyn).
& (and), | (or), ^ (xor), ~ (not hay ly s b 1)
>> (shift right), << (shift left)
Ton t gp: &=, |=, ^=, ~=, >>=, <<=
&

Cc kiu d liu c s

17

VC

&

Cc ton t trn bit

BB

V d
void main()
{
int nA = 5;
int nB = 6;
int
nZ1
nZ2
nZ3
nZ4
nZ5
nZ6

nZ1, nZ2, nZ3,


= nA & nB;
= nA | nB;
= nA ^ nB;
= ~nA;
= nA >> 2;
= nA << 2;

// 0000 0000 0000 0101


// 0000 0000 0000 0110
nZ4, nZ5, nZ6;
// 0000 0000 0000
// 0000 0000 0000
// 0000 0000 0000
// 1111 1111 1111
// 0000 0000 0000
// 0000 0000 0001

0100
0111
0011
1010
0001
0100

}
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)
&&

||

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
() [] -> .
! ++ -- - + * (cast) & sizeof
* / %
+ << >>
< <= > >=
== !=
&
|
^
&&
||
?:
= += -= *= /= %= &=
,

u tin

Cc kiu d liu c s

23

VC

&
BB

u tin ca cc ton t

Quy tc thc hin


Thc hin biu thc trong ( ) su nht trc.
Thc hin theo th t u tin cc ton t.
=> T ch ng thm ( )
V d
n = 2 + 3 * 5;
=> n = 2 + (3 * 5);
a > 1 && b < 2
=> (a > 1) && (b < 2)
Cc kiu d liu c s

24

VC

&
BB

Vit biu thc cho cc mnh

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;

Cc kiu d liu c s

26

VC

&

Cu lnh

BB

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

// Cu lnh phc/khi lnh


a = 2912;
b = 1706;

}
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

Vn bn thng (literal text)


c xut y ht nh lc g trong chui nh
dng.
V d
Xut chui Hello World
printf(Hello ); printf(World);
printf(Hello World);
Xut chui a + b
printf(a + b);
Cc kiu d liu c s

29

VC

&
BB

Chui nh dng

K t iu khin (escape sequence)


Gm du \ v mt k t nh trong bng sau:
K t iu khin

ngha

\a
\b
\n
\t
\\
\?
\

Ting chung
Li li mt bc
Xung dng
Du tab
In du \
In du ?
In du

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
%d, %ld
%f, %lf
%s
%u

K t
S nguyn c du
S thc
Chui k t
S nguyn khng du

char
char, int, short, long
float, double
char[], char*
unsigned int/short/long
Cc kiu d liu c s

31

VC

&
BB

Chui nh dng

V d
int a = 10, b = 20;

Xut ra 10
printf(%d, b);
Xut ra 20
printf(%d %d, a, b); Xut ra 10 20
printf(%d, a);

float x = 15.06;

printf(%f, x);
printf(%f, 1.0/3);

Xut ra 15.060000
Xut ra 0.333333
Cc kiu d liu c s

32

VC

&

nh dng xut

BB

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);

Cc kiu d liu c s

33

VC

&
BB

Chui nh dng

Phi hp cc thnh phn


int a = 1, b = 2;
Xut 1 cong 2 bang 3 v xung dng.

printf(%d, a);
// Xut gi tr ca bin a
printf( cong );
// Xut chui cong
printf(%d, b);
// Xut gi tr ca bin b
printf( bang );
// Xut chui bang
printf(%d, a + b); // Xut gi tr ca a + b
printf(\n);
// Xut iu khin xung dng \n

printf(%d cong %d bang %d\n, a, b, a+b);


Cc kiu d liu c s

34

VC

&
BB

Cu lnh nhp

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, cho a v b kiu s nguyn


scanf(%d, &a); // Nhp gi tr cho bin a
scanf(%d, &b); // Nhp gi tr cho bin b
scanf(%d%d, &a, &b);
Cc cu lnh sau y sai

scanf(%d, a);
// Thiu du &
scanf(%d, &a, &b);
// Thiu %d cho bin b
scanf(%f, &a); // a l bin kiu s nguyn
scanf(%9d, &a); // khng c nh dng
scanf(a = %d, b = %d, &a, &b);
Cc kiu d liu c s

36

VC

&
BB

Mt s hm hu ch khc

Cc hm trong th vic ton hc


#include <math.h>
1 u vo: double, Tr kt qu: double

acos, asin, atan, cos, sin,


exp, log, log10
sqrt
ceil, floor
abs, fabs

2 u vo: double, Tr kt qu: double


double pow(double x, double y)
Cc kiu d liu c s

37

VC

&
BB

Mt s hm hu ch khc

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

1. Trnh by cc kiu d liu c s trong C v


cho v d.
2. Trnh by khi nim v bin v cch s dng
lnh gn.
3. Phn bit hng thng v hng k hiu.
Cho v d minh ha.
4. Trnh by khi nim v biu thc.
Ti sao nn s dng cp ngoc n.
5. Trnh by cch nh dng xut.
Cc kiu d liu c s

39

VC

&
BB

Bi tp

6. Nhp nm sinh ca mt ngi v tnh tui ca


ngi .
7. Nhp 2 s a v b. Tnh tng, hiu, tnh v
thng ca hai s .
8. Nhp s lng v n gi.
Tnh tin v thu gi tr gia tng phi tr, bit:
a. tin = s lng * n gi
b. thu gi tr gia tng = 10% tin

Cc kiu d liu c s

40

VC

&
BB

Bi tp

9. Nhp im thi v h s 3 mn Ton, L, Ha


ca mt sinh vin. Tnh im trung bnh ca
sinh vin .
10.Nhp bn knh ca ng trn. Tnh chu vi v
din tch ca hnh trn .
11.Nhp vo s xe (gm 5 ch s) ca bn. Cho
bit s xe ca bn c my nt?

Cc kiu d liu c s

41

You might also like