
CÁC ðC ðIM CA C++CÁC ðC ðIM CA C++
Chương 2
1
• Các khái nim cơbn ca C++
• Lp trình cu trúc trong C++
• Các ñcñim mi ca C++
Ni dungNi dung
• Các khái nim cơbn trong C++
• Cu trúc ñiu khin
• Hàm và cu trúc chương trình
• Con trvà chui ký t
•
Tham
s
mc
nhiên
ca
hàm
•
Tham
s
mc
nhiên
ca
hàm
• Tái ñnh nghĩa hàm
• Hàm ti ch(inline)
• Truyn tham s
• Tham chiu
• Struct
2
CácCác kháikhái nimnim cơcơbnbn
•Tkhóa
– Dành riêng cho ngôn ngkhông ñưcñt tên
trùng vi tkhóa.
– Là chthưng
Vd : char, int, return, for, else, const,
static
static
•Tên
– Phân bit chHOA và chthưng
– Gmch, s, ‘_’ và phi btñu bng chcái.
–ð dài tiña là 32
– Nên theo quy cách ñt tên.
Vd: x, hoten, a1, num_of_var, Delta, TEN, ...
3
Các khái nim cơ bnCác khái nim cơ bn
•Kiu dliu
TênTên kiukiu KíchKích thưcthưc PhmPhm vivi
char 1 byte -128 127
unsigned char 1 byte 0 255
int 2 bytes -32768 32767
unsigned int 2 bytes 0 65535
short 2 bytes 0 65535
long 4 bytes -231 231 - 1
unsigned long 4 bytes 0 232 - 1
float 4 bytes 1.2e-38 3.4e38
double 8 bytes 2.2e-308 1.8e308
4

Các khái nim cơ bnCác khái nim cơ bn
•Bin
– Khai báo: bt kỳvtrí nào trong chương trình
– Kh!i to: có thva khai báo và kh!i to
Vd: int x=5, y=10;
for(
int
i
=0, tong =0 ;
i
<10 ;
i
++)
for(
int
i
=0, tong =0 ;
i
<10 ;
i
++)
tong +=i ;
– Bin khai báo trong 1 khi lnh: ch"có phm vi
hotñng trong khi lnh ñó.
Vd: if( delta >0 ) {
float x1= (-b + sqrt(delta)) / (2*a);
float x2= (-b - sqrt(delta)) / (2*a);
...
}5
Các khái nim cơ bnCác khái nim cơ bn
•Bin
– Bin toàn c#c: có tác d#ng trong toàn bCT.
– Binña phương (c#c b): ch"có tác d#ng trong
phm vi ca nó.
Vd
:
int
so = 5;
Vd
:
int
so = 5;
void GanSo(int x) {
so = x;
}
int NuaSo(int x) {
int c = 2;
int so = x/c ;
return so;
}
6
Các khái nim cơ bnCác khái nim cơ bn
•Hng
– Khai báo: Vd: #define MAX 100
const int MAX=100;
– Mt shng quan tr$ng :
•
S
nguyên
:
10 ,
-
5, 300000, 1000L, ...
•
S
nguyên
:
10 ,
-
5, 300000, 1000L, ...
• Sthc : 3.1416, .5 , 123E-5, ...
• Ký t: char ch1 = ‘A’ , ch2=97;
• Chui ký t:
char *str=“Chuoi Ky Tu”;
char chuoi[50]; strcpy(chuoi,“ ”);
if ( strcmp(chuoi,“”)==0)
cout << “Chuoi rong”; 7
Các khái nim cơ bnCác khái nim cơ bn
•Kiu: Chuynñi kiu :
– Mc nhiên (t ñng) :
float x = 3.1416;
int y = x ; float sole = x - y;
–
Do
ngưi
lp
trình
s%
d#ng
:
–
Do
ngưi
lp
trình
s%
d#ng
:
Cú pháp: ( ( KiuKiu ) ) biubiu thcthc
hocKiuKiu ( ( biubiu thcthc ))
Vd:int a=10, b=3;
float c1 = a / b ;
float c2 = float (a/b);
float c3 = (float) a / b ;
float c4 = float (a)/b; 8

Các khái nim cơ bnCác khái nim cơ bn
•Các phép toán
– Sh$c: + , - , * , / , %
– Lun lý: ==, !=, >, <, >=, <=, &&, ||, !
– Gán : =
–
Ly
kích
thưc
:
–
Ly
kích
thưc
:
sizeof (ñi tưng dliu )
–ðiu kin: e1 ? e2 : e3
– Lyña ch": &(bin)
– Tăng gim : x++ , x-- , ++x , --x
tong+= i ; tich *= i;
/= , %= , -= , &= , |= , ^=
9
Các khái nim cơ bnCác khái nim cơ bn
•Mng
– Khai báo: <<KiuKiu> <> <TênTên mngmng> [<> [<KíchKích thưcthưc>];>];
Vd: int m[10]; float ds[MAX];
– Th'tphn t%: t0 ñn (kích thưc -1)
Vd
:
Vd
:
//CT tính tng ca 10 sFibonacci ñu tiên
long a[10]; a[0] = a[1] = 1;
for (int i = 2; i < 10 ; i++)
a[i] = a[i-1] + a[i-2];
long tong = 0;
for(i=0 ; i<10 ; i++)
tong += a[i]; 10
Các khái nim cơ bnCác khái nim cơ bn
•Chú thích
– Trên 1 dòng: //chú thích trên 1 dòng
– Trên nhiu dòng: /*
chú thích trên nhiu dòng
*/
•Các chthtin biên dch:
#define #undefine #include
#if #else #endif
#if #elif #else #endif
#ifdef #else #endif
#ifndef #else #endif
#error 11
Các khái nim cơ bnCác khái nim cơ bn
•Nhp xut
– Thưvin hàm : #include <iostream.h>
– Nhp: cincin >> >> BinBin
– Xut: coutcout << (<< (BiuBiu thcthc))
–
Các
kiu
d
liu
có
th
nhp
xut
:
–
Các
kiu
d
liu
có
th
nhp
xut
:
char , int, unsigned, long, unsigned long, …
float, double, char* , char []
(void*): lyña ch ñu ca chui
– Có thnhp xut liên t#c trên mt dòng.
Vd:
cout << “Gia tri x = “ << x << “ , y = “ <<y;
cout << “Nhap n = “; cin >> n; 12

Các khái nim cơ bnCác khái nim cơ bn
•Nhp xut
– Mt shàm ñnh dng toàn c#c:
•cin.width(n)
•cout.width(n)
– Ký t ñc bit : \n, \t, \0, \b, \r
–ðnh dng khác: endl, ends, flush, …
13
Các khái nim cơ bnCác khái nim cơ bn
•Cu trúc 1 chương trình ñơn gin
14
Cu trúc ñiu khinCu trúc ñiu khin
•Tun t
– Câu lnh: vit trên mt hay nhiu dòng
– Khi lnh:
• Là dãy các lnh vit trong cp{ }
•
Tương
ñương
vi
1
câu
lnh
•
Tương
ñương
vi
1
câu
lnh
•Giá trca biu thcñiu kin
– Bng 0 : <=> SAI
– Khác 0 : <=> ñúng
Vd: int x=0;
if(x==2)
cout<< “ x bang 2 “;
else
cout<< “ x khac 2 “; 15
Cu trúc ñiu khinCu trúc ñiu khin
•Rnhánh
–if (biu thc)
Lnh 1;
else
Lnh
2;
Lnh
2;
–switch (biu thc) {
case ‘giá tr1’ :Lnh 1; ... [ break; ]
case ‘giá tr2’ :Lnh 2; ... [ break; ]
...
case ‘giá trn’ :Lnh n; ... [ break; ]
default : Lnh n+1;
}16

Cu trúc ñiu khinCu trúc ñiu khin
•Lp
–while (biu thc)
Lnh ;
–
do
–
do
Lnh ;
while (biu thc);
–for ( e1 ; e2 ; e3 )
Lnh;
e1 : biu th'c kh!i to
e2 : biu th'cñiu kin
e3 : biu th'c lp17
Cu trúc ñiu khinCu trúc ñiu khin
•Tkhóa break
– Thoát ra khi cu trúc switch
– Thoát ra khi vòng lp : while, do while, for
•Tkhóa
continue
:Tr!v ñu vòng lp
•Lnh nhygoto
– Dùng chung vinhãn lnh
– Không nên s%d#ng vì s(phá v!cu trúc CT
–Ưuñim : thoát khi các vòng lp lng sâu
18
Hàm và cu trúc chương trìnhHàm và cu trúc chương trình
•Hàm - Cú pháp :
<Kiu trv> <Tên hàm> (Danh sách kiu và tham s)
{[ Khai báo dliu cc b]
[ Thân hàm ]
[
Câu
lnh
return
]
[
Câu
lnh
return
]
}
Vd: int Max ( int x, int y) {
int somax;
somax = (x>y) ? x : y;
return somax;
}
19
Hàm và cu trúc chương trìnhHàm và cu trúc chương trình
•Hàm - Khai báo prototype :
<Kiu trv> <Tên hàm> ( Danh sách kiu );
Vd: int Max ( int , int );
int Min ( int , int );
void
main() {
Khai báo hàm
void
main() {
int a =10 , b =5;
cout<<“So max= “<< Max(a,b)<<endl;
cout<<“So min= “<< Min(a,b)<<endl;
}
int Max (int x , int y) { ... }
int Min (int x , int y) { ... }
20
ðnh nghĩa
hàm

