Bài giảng Kỹ thuật lập trình - Chương 3: Tổ chức dữ liệu trong chương trình cung cấp cho người học các kiến thức: Dữ liệu cố định, hằng, biến, kiểu dữ liệu, từ khóa, tầm vực biến, phép toán và biểu thức,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Ch ng 03
T ch c d li u trong ch ng trình
Trang 3D li u
D li u đ c l u tr trong RAM c a máy tính
trong quá trình ch ng trình th c thi
Trang 5078 /* Không h p l : 8 không ć trong h bát phân*/
032UU /* Khong hop le: không th l p l i h u t */
Trang 7\' ' 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
\xhh Hexadecimal number of one or
more digits
\f Form feed
Trang 9const 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;
Trang 10Bi n
Bi n là m t v̀ng trong b nh c a máy tính và ć
các đ c đi m sau:
Ć 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.
Trang 11Bi 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
Trang 14Khai 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>];
Ví d : static long dem;
Trang 17T khó
Trang 19 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
Các phép toán
Ví d : ć th th c hi n các phép toán nhân hay chia
v i ki u s , nh ng k hông th th c hi n nhân v i ki u chu i ḱ t
Trang 20Ćc lo i ki u d li u
Ki u d li u c b n (fundamental 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á
Trang 21Ki 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
Trang 22Hà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)
Trang 23Ki u s th c
Type Storage
float 4 byte 1.2E-38 to 3.4E+38 6 decimal places double 8 byte 2.3E-308 to 1.7E+308 15 decimal places long
double 10 byte
3.4E-4932 to
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
Trang 24enum colors {RED, GREEN, BLUE};
enum months {JAN, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC};
Trang 25Ki 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 i d̀ng ć th t o ra ki u m i
Trang 26Ki u enum
enum ć th xem nh m t t p h p các h ng s
các ví d trên ta ć các t p h p: colors, months
V i t p colors ć các h ng: RED, GREEN, BLUE
nh đ̃ khai báo
V i t p months ć các h ng: JAN, FEB, MAR, v.v…
V b n ch t, các giá tr trong t p h p (enum) đ c
T NG gán m t con s nguyên M c đ nh h ng
đ u tiên là 0, k ti p là 1, v.v… Tuy nhiên ta có
th gán các giá tr này
Trang 27cout << "Current Day: " << k << endl;
cout << "Friday: " << fri << endl;
system("pause");
}
Trang 28Ki u void
Ki u void ch r ng không ć giá tr
c d̀ng trong 3 tr ng h p:
1 Hàm tr v ki u void
Ví d : void exit (int status);
2 Hàm ć tham s là void (không ć tham s )
Ví d : int rand(void);
3 Pointer tr đ n void
Ví d : hàm void *malloc( size_t size );
Trang 32 T khóa typedef có th s d ng đ đ nh ngh a m t
tên ki u m i
Ví d : typedef unsigned char BYTE ;
Sau đ́ ta ć th s d ng BYTE nh là tên vi t t t cho các ki u unsigned char
V í d : BYTE b1, b2;
Theo quy c, ng i ta th ng d̀ng ch cái vi t
hoa cho nh ng đ nh ngh a này
Trang 33b1.id = 12345;
strcpy( b1.tieude, "Lap trinh C");
strcpy( b1.tacgia, "Tran Quang");
cout << "ID: " << b1.id << endl;
cout << "Tieu de: " << b1.tieude << endl; cout << "Tac gia: " << b1.tacgia << endl;
system("pause");
}
Trang 35Bi u th c và toán t
trong C/C++
Trang 37Tón t (operator)
Toán t 1 ngôi: ch c n 1 toán h ng
Ví d : toán t - (s âm), toán t ! (not lu n ĺ)
Toán t 2 ngôi: c n d̀ng 2 toán h ng
Ví d : toán t * (nhân 2 s ), % (chia l y ph n d )
Toán t 3 ngôi: c n d̀ng 3 toán h ng
Ví d : toán t cond?v1:v2 (ki m tra n u đi u ki n
cond đúng tr v v1, n u sai tr v v2)
Trang 38Ćc lo i tón t
Toán t s h c Arithmetic Operators
Toán t so sánh
(Toán t quan h ) Comparison Operators(Relational Operators)
Toán t lu n ĺ Logical Operators
Toán t bitwise Bitwise Operators
Toán t gán Assignment Operators
Các toán t khác Other Operators
Trang 39 V ph i ć th ch a các phép gán khác
Ví d : a = b = c = 5;
a = 5 + ( b = 4);
Trang 41Toán t t ng / gi m
++ hay là các toán t m t ngôi ć th đ ng
tr c (prefix) ho c sau (postfix) tên bi n
Toán t prefix đ c th c hi n tr c khi s d ng
Trang 45Tón t lu n ĺ
Trang 46Tón t bitwise
Các phép toán trên bit (các s đ c chuy n v h
nh phân đ tính toán trên t ng bit):
bitwise AND &
Trang 47Tón t đi u ki n
ây là toán t 3 ngôi
Cú pháp:
condition ? result1 : result2
N u condition là true thì giá tr tr v s là result1,
n u không giá tr tr v là result2
Ví d :
7==5 ? 4 : 3 tr v 3 vì 7 không b ng 5
7==5+2 ? 4 : 3 tr v 4 vì 7 b ng 5+2
a>b ? a : b tr v giá tr l n h n gi a a và b
Trang 48u tiên c a ćc tón t
Trang 49Chuy n đ i ki u
Khi ta gán m t giá tr vào m t bi n c̀ng m t ki u
d li u, hay khi th c hi n phép toán nh phân gi a hai giá tr c̀ng m t ki u d li u thì không c n s
Trang 50Chuy n đ i ki u
Khi ng i l p trình th c hi n phép gán mà ki u
c a bên ph i phép gán (ki u ngu n) và ki u bên
trái phép gán (ki u đích) khác nhau, c n chuy n
đ i giá tr t ki u ngu n sang ki u đích
Trang 51Chuy n đ i ng m
Tr ng h p gi nguyên giá tr ngu n
Khi ki u ngu n ć s bit th p h n ki u đích
Ví d
char vào short
short vào int
Int vào long long
Int vào double