Tải bản đầy đủ (.pdf) (52 trang)

Ky thuat lap trinh bách khoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (823.95 KB, 52 trang )

Ch ng 03
T ch c d li u
trong ch ng trình

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
1


N i dung










D li u c đ nh


H ng
Bi n
Ki u d li u
T khoá
T m v c bi n
Phép toán và bi u th c
Ki u enum, struct
Chuy n đ i ki u d li u

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
2


D li u




D li u đ c l u tr trong RAM c a máy tính

trong q trình ch ng trình th c thi
D li u trong các ch ng trình C th ng xu t hi n
d i 3 hình th c:



Literals hay Fixed Value: giá tr c đ nh
Constant: h ng




Variable: bi n


Tr n Quang
© 2016

ć tên (name) và giá tr thay th (value)
ć tên (name), ki u (type) và n i dung ch a bên
trong (value)

Ch

ng 03: T ch c d

li u trong ch

ng trình


K thu t l p trình
3


Gí tr c đ nh


Giá tr s :


S nguyên h bát phân (octal): b t đ u b ng s 0




Ví d :

0x3D

-0x3AF8

Ví d :

169

ng

-2053

S th c d u ch m đ ng: (floating point)



Tr n Quang
© 2016

-0203

S nguyên h th p phân (decimal): nh bình th




0165

S nguyên h th p l c (hexadecimal): b t đ u b ng 0x




Ví d :

Ví d :

3.14159

Ch

ng 03: T ch c d

13.5f


li u trong ch

-83.1E-9

ng trình

K thu t l p trình
4


Gí tr c đ nh




Giá tr c đ nh ki u s nguyên có th ć ph n h u
t (suffix) là s k t h p c a U và L, cho ki u
Unsigned và ki u Long. Có th là ch hoa ho c
ch th ng theo b t c th t nào.
Ví d :
078
032UU
30
30u
30l
30ul

Tr n Quang
© 2016


/* Không h p l : 8 không ć trong h bát phân*/
/* Khong hop le: không th l p l i h u t */
/* int */
/* unsigned int */
/* long */
/* unsigned long */
Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
5


Gí tr c đ nh


Giá tr ki u ḱ t - chu i


Ḱ t : đ t trong 2 d u nháy đ n ('). Ć th ḱ t
bình th ng (plain character) hay escape sequence
('\n', '\t', …)





'A'

'7'

'\101' '\t'

Chu i: đ t trong 2 d u nháy kép (“)


Tr n Quang
© 2016

Ví d :

Ví d :

"Dai Hoc Bach Khoa"

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
6



Escape sequence
Escape
sequenc
e

Escape
sequence

Meaning

Meaning

\\

\ character

\n

Newline

\'

' character

\r

Carriage return


\"

" character

\t

Horizontal tab

\?

? character

\v

Vertical tab

\a

Alert or bell

\ooo

Octal number of one to three digits

\b

Backspace

\f


Form feed

\xhh . . .

Hexadecimal number of one or
more digits

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
7


H ng






H ng là m t giá tr đ c đ t tên (th ng d̀ng ch

in hoa)
Cú pháp đ nh ngh a h ng:
const <type> <name> = <value> ;
hay
#define <ConstName> <value>
Ví d :




Tr n Quang
© 2016

const int MAX = 15;
#define MAX 15

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
8


Ví d



Ki u ḱ t
const char c = ‘a’;
const char c = ‘A’;



Ki u chu i
const char c[] = “LAP TRINH C/C++”;
const char c[] = “SAI GON”;



Ki u s
const int a = 100;
const float f = 10.5f;
const double d = 10.5;

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình

9


Bi n


Bi n là m t v̀ng trong b nh c a máy tính và ć
các đ c đi m sau:






Tr n Quang
© 2016

Ć tên (name): do ng i d̀ng t đ t ra đ d̀ng
thay cho đ a ch trong b nh
Ć ki u (type): liên quan đ n lo i và đ l n c a giá
tr mà bi n ć th ch a.
Ć d li u: là giá tr ch a trong bi n.

Ch

ng 03: T ch c d

li u trong ch

ng trình


K thu t l p trình
10


Bi n







Là n i l u tr d li u c a ch ng trình, nói khác
nó là 1 v̀ng nh đ c đ t tên
Do ć tên, nên khi c n đ c/ghi v i v̀ng nh này,
ng i l p trình ch c n d̀ng tên thay cho m t đ a
ch c a ń.
Bi n c n đ c khai báo tr c khi d̀ng (đ c/ghi)
Ch ng trình t đ ng c p phát v̀ng nh khi g p
m t khai báo bi n

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch


ng trình

K thu t l p trình
11


Khai b́o bi n


Cú pháp:
<type> <VariableName> [=<ConstExpr>];
trong đ́:
 <type> : ki u ć s n hay ng
i d̀ng t đ nh ngh a
 <VariableName> : tên bi n do ng
i d̀ng t đ t
 <ConstExpr> : giá tr ban đ u, ć th
ć ho c khơng

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình


K thu t l p trình
12


Khai b́o bi n
Ví d :
 T o m t bi n
int a;
char c;


T o nhi u bi n c̀ng ki u
int a, b;
char c1, c2;



T o bi n và kh i đ ng giá tr
int a=10, b;
char c1=‘A’, c2=‘a’;

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch


ng trình

K thu t l p trình
13


Khai b́o bi n


Khai báo bi n đ̃ đ c đ nh ngh a trong module
khác:
extern <type> <variable> ;




Ví d : extern int so;

Khai báo bi n t nh:
static <type> <variable> [=<ConstExpr>];


Tr n Quang
© 2016

Ví d : static long dem;

Ch


ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
14


Quy t c đ t tên bi n




Quy t c đ t tên bi n theo quy t c đ t tên danh hi u
(tên h ng, tên bi n, …)
Quy t c đ t tên danh hi u:





Tr n Quang
© 2016

Ḱ t đ u là m t ch cái hay d u g ch d i (_)
Các ḱ t ti p theo là ch cái, s , d u g ch d i
Không đ c là ḱ hi u nào khác: ! @ # $ % ^ & * …
Khơng đ c tr̀ng v i t khố


Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
15


T khó




Là t ć ́ ngh a đ c bi t đ̃ đ c quy đ nh tr c
b i ngơn ng l p trình.
Ng i l p trình khơng đ c d̀ng t khoá đ đ t
tên cho các tên mình t o ra nh tên bi n, tên ki u,
tên hàm, tên h ng, v.v.

Tr n Quang
© 2016

Ch

ng 03: T ch c d


li u trong ch

ng trình

K thu t l p trình
16


T khó

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
17


Ki u d li u
D li u mà ch ng trình l u tr ć th thu c nhi u
d ng khác nhau, g i là ki u d li u (data type)





Ḱ t (character)
Ki u s








Tr n Quang
© 2016

Ki
Ki
Ki
Ki


S nguyên (integer)
S th c (float)

u chu i
u m ng (array)
u c u trúc (struct)
u ki t kê (enum)
Ch


ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
18


Ki u d li u


M i ki u d li u ć cách t ch c l u tr , c ng nh
các phép toán đi kèm khác nhau


Cách t ch c l u tr


Ví d : v i s nguyên, ý ngh a bit ć tr ng s l n nh t
(MSB) ph thu c vào ń là s ć d u hay khơng d u





Các phép tốn



Tr n Quang
© 2016

S khơng d u: bit này tham gia vào tính đ l n giá tr
S ć d u: bit này ch ra là s d ng hay âm

Ví d : ć th th c hi n các phép toán nhân hay chia
v i ki u s , nh ng không th th c hi n nhân v i ki u
chu i ḱ t
Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
19


Ćc lo i ki u d li u


Ki u d li u c b n (fundamental data type)






Ki u d li u do ng
defined data type)





Ngôn ng C/C++ cung c p s n m t s các tên ki u
Tên các ki u này c ng là t khoá

i l p trình đ nh ngh a (user-

Tên ki u do ng i l p trình t đ t ra
M t s ki u nh : struct, enum

Ki u d li u d n xu t (derived data type)



Tr n Quang
© 2016

M ng (array)
Con tr (pointer)
Ch

ng 03: T ch c d

li u trong ch


ng trình

K thu t l p trình
20


Ki u s nguyên
Type

Storage size

Value range

char

1 byte

-128 to 127 or 0 to 255

unsigned char

1 byte

0 to 255

signed char

1 byte


-128 to 127

int

2 or 4 bytes

-32,768 to 32,767 or
-2,147,483,648 to 2,147,483,647

unsigned int

2 or 4 bytes

0 to 65,535
or 0 to 4,294,967,295

short

2 bytes

-32,768 to 32,767

unsigned short

2 bytes

0 to 65,535

long


4 bytes

-2,147,483,648 to 2,147,483,647

unsigned long

4 bytes

0 to 4,294,967,295

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
21


Hàm sizeof()


Hàm sizeof() tr v s byte c a ki u d li u





Ví d : printf("%d", sizeof(int));

S bytes c a ki u d li u tu thu c vào phiên b n,
tuy nhiên s tho m̃n:
1 == sizeof(char) <= sizeof(short) <= sizeof(int)
<= sizeof(long) <= sizeof(long long)

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
22


Ki u s th c
Type
float
double
long

double

Storage
Value range
Precision
size
4 byte 1.2E-38 to 3.4E+38
6 decimal places
8 byte 2.3E-308 to 1.7E+308 15 decimal places
3.4E-4932 to
10 byte
19 decimal places
1.1E+4932

 Thêm #include <float.h> vào đ u ch ng trình đ s d ng
ćc chi ti t đã cài đ t s n c a ki u s th c

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình
23



Ki u enum






enum d̀ng đ đ nh ngh a các giá tr thu c ki u s
nguyên nh ng đ c gán cho tên g i nh
Cú pháp:
enum enumName { enumeration list }
ví d :
enum colors {RED, GREEN, BLUE};
enum months {JAN, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC};

Tr n Quang
© 2016

Ch

ng 03: T ch c d

li u trong ch

ng trình

K thu t l p trình

24


Ki u enum



enum có th đ c xem nh m t ki u d li u.
các ví d trên ta ć các ki u là: colors, months






M t bi n ki u colors ch ć th RED, GREEN, BLUE
nh đ̃ khai báo
M t bi n ki u months trên ch ć th ć các giá tr
JAN, FEB, MAR, v.v.

Ngh a là ng

Tr n Quang
© 2016

i d̀ng ć th t o ra ki u m i

Ch

ng 03: T ch c d


li u trong ch

ng trình

K thu t l p trình
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×