Xem mẫu
- Updatesofts.com Ebooks Team
C++ Căn b n và nâng cao
M c l c:
I. Cơ b n v C++ (2)
I. C u trúc c a m t trương trình C++ (2)
II. Các bi n ki u và h ng s (5)
III. Các toán t (13)
IV. Giao ti p v i Console (19)
II. Các c u trúc ñi u khi n và Hàm (22)
I. C u trúc d li u ñi u khi n (22)
II. Hàm I (29)
III. Hàm II (34)
III. D li u nâng cao (41)
I. M ng (41)
II. Sâu ký t (48)
III. Con tr (54)
IV. B nh ñ ng (65)
V. Các c u trúc (69)
VI. Các ki u d li u do ngư i dùng ñ nh nghĩa. (typedef, union, enum) (75)
Trang 1
- Updatesofts.com Ebooks Team
C u trúc c a m t chương trình C++
Có l m t trong nh ng cách t t nh t ñ b t ñ u h c m t ngôn ng l p trình là b ng m t
chương trình. V y ñây là chương trình ñ u tiên c a chúng ta :
Hello World!
// my first program in C++
#include
int main ()
{
cout
- Updatesofts.com Ebooks Team
(không b t bu c). N i dung c a hàm main ti p ngay sau ph n khai báo chính th c ñư c
bao trong các ngo c nh n ( { } ) như trong ví d c a chúng ta
cout
- Updatesofts.com Ebooks Team
with more comments */
#include
int main ()
{
cout
- Updatesofts.com Ebooks Team
Các bi n, ki u và h ng s
Identifiers
M t tên (indentifiers) h p l là m t chu i g m các ch cái, ch s ho c kí t g ch dư i.
Chi u dài c a m t tên là không gi i h n.
Kí t tr ng, các kí t ñánh d u ñ u không th có m t trong m t tên. Ch có ch cái, ch
s và kí t g ch dư i là ñư c cho phép. Thêm vào ñó, m t tên bi n luôn ph i b t ñ u
b ng m t ch cái. Chúng cũng có th b t ñ u b ng kí t g ch dư i ( _ ) nhưng kí t này
thư ng ñư c dành cho các liên k t bên ngoài (external link). Không bao gi chúng b t
ñ u b ng m t ch s .
M t lu t n a mà b n ph i quan tâm ñ n khi t o ra các tên c a riêng mình là chúng không
ñư c trùng v i b t kì t khoá nào c a ngôn ng hay c a trình d ch, ví d các tên sau ñây
luôn luôn ñư c coi là t khoá theo chu n ANSI-C++ và do v y chúng không th ñư c
dùng ñ ñ t tên
asm, car, bool, break, marry, catch, to char, class, const,
const_cast, continue, default, delete, do, double,
dynamic_cast, else, enum, explicit, extern, false, float,
for, friend, goto, if, inline, int, long, mutable,
namespace, new, operator, private, protected, public, to
register, reinterpret_cast, return, short, signed, sizeof,
static, static_cast, struct, switch, template, this, throw,
true, try, typedef, typeid, typename, union, unsigned,
using, virtual, void, volatile, wchar_t
Thêm vào ñó, m t s bi u di n khác c a các toán t (operator) cũng không ñư c dùng
làm tên vì chúng là nh ng t ñư c dành riêng trong m t s trư ng h p.
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq,
xor, xor_eq
Trình d ch c a b n có th thêm m t t dành riêng ñ c trưng khác. Ví d , r t nhi u trình
d ch 16 bit (như các trình d ch cho DOS) còn có th các t khoá far, huge và near.
Chú ý: Ngôn ng C++ là "case sensitive" có nghĩa là phân bi t ch hoa ch thư ng. Do
v y bi n RESULT khác v i result cũng như Result.
Các ki u d li u
Khi l p trình, chúng ta lưu tr các bi n trong b nh c a máy tính nhưng máy tính ph i
bi t chúng ta mu n lưu tr gì trong chúng vì các ki u d li u khác nhau s c n lư ng b
nh khác nhau.
Trang 5
- Updatesofts.com Ebooks Team
B nh c a máy tính chúng ta ñư c t ch c thành các byte. M t byte là lư ng b nh
nh nh t mà chúng ta có th qu n lí. M t byte có th dùng ñ lưu tr m t lo i d li u nh
như là ki u s nguyên t 0 ñ n 255 hay m t kí t . Nhưng máy tính có th x lý các ki u
d li u ph c t p hơn b ng cách g p nhi u byte l i v i nhau, như s nguyên dài hay s
th p phân. Ti p theo b n s có m t danh sách các ki u d li u cơ b n trong C++ cũng
như mi n giá tr mà chúng có th bi u di n
S
Tên Mô t Mi n giá tr
byte
có d u: -128 to 127
1 Kí t hay ki u s nguyên 8-bit
char
không d u: 0 to 255
có d u: -32763 to 32762
2 ki u s nguyên 16-bit
short
không d u: 0 to 65535
có d u:-2147483648 to
4 ki u s nguyên 32-bit 2147483647
long
không d u: 0 to 4294967295
S nguyên. ð dài c a nó ph thu c vào h
th ng, như trong MS-DOS nó là 16-bit, trên
* Xem short, long
int
Windows 9x/2000/NT là 32 bit...
D n g d u ph y ñ n g
4 3.4e + / - 38 (7 digits)
float
D ng d u ph y ñ ng v i ñ chính xác g p
double 8 1.7e + / - 308 (15 digits)
ñôi
D ng d u ph y ñ ng v i ñ chính xác hơn
long
10 1.2e + / - 4932 (19 digits)
na
double
Giá tr logic. Nó m i ñư c thêm vào chu n
1 ANSI-C++. B i v y không ph i t t c các
bool ho c false
true
trình d ch ñ u h tr nó.
Ngoài các ki u d li u cơ b n nói trên còn t n t i các con tr và các tham s không ki u
(void) mà chúng ta s xem xét sau.
Khai báo m t bi n
ð có th s d ng m t bi n trong C++, ñ u tiên chúng ta ph i khai báo nó, ghi rõ nó là
ki u d li u nào. Chúng ta ch c n vi t tên ki u (như int, short, float...) ti p theo sau ñó
là m t tên bi n h p l . Ví d
int a;
float mynumber;
Dòng ñ u tiên khai báo m t bi n ki u int v i tên là a. Dòng th hai khai báo m t bi n
ki u float v i tên mynumber. Sau khi ñư c khai báo, các bi n trên có th ñư c dùng
trong ph m vi c a chúng trong chương trình.
Trang 6
- Updatesofts.com Ebooks Team
N u b n mu n khai báo m t vài bi n có cùng m t ki u và b n mu n ti t ki m công s c
vi t b n có th khai báo chúng trên m t dòng, ngăn cách các tên b ng d u ph y. Ví d
int a, b, c;
khai báo ba bi n ki u int (a,b và c) và hoàn toàn tương ñương v i :
int a;
int b;
int c;
Các ki u s nguyên (char, short, long and int) có th là s có d u hay không d u tuỳ
theo mi n giá tr mà chúng ta c n bi u di n. Vì v y khi xác ñ nh m t ki u s nguyên
chúng ta ñ t t khoá signed ho c unsigned trư c tên ki u d li u. Ví d :
unsigned short NumberOfSons;
signed int MyAccountBalance;
N u ta không ch rõ signed or unsigned nó s ñư c coi là có d u, vì v y trong khai báo
th hai chúng ta có th vi t :
int MyAccountBalance
cũng hoàn toàn tương ñương v i dòng khai báo trên. Trong th c t , r t ít khi ngư i ta
dùng ñ n t khoá signed. Ngo i l duy nh t c a lu t này ki u char. Trong chu n ANSI-
C++ nó là ki u d li u khác v i signed char và unsigned char.
ð có th th y rõ hơn vi c khai báo trong chương trình, chúng ta s xem xét m t ño n mã
C++ ví d như sau:
4
// operating with variables
#include
int main ()
{
// declaring variables:
int a, b;
int result;
// process:
a = 5;
b = 2;
a = a + 1;
result = a - b;
// print out the result:
cout
nguon tai.lieu . vn