s ở
GIÁO DỤC VÀ Đ À O TẠO H À
L Ê VĂN H U Ỳ N H (Chủ
G
I
A
O
T
R
N Ộ I
biên)
I
N
H
NGON NGỮ LẬP TRÌNH c
(Dùng
N H À
trong
các
trường
X U Ấ T B Ả N H À
THON)
N Ộ I - 2007
L ờ i giới
thiêu
ước ta dang bước vào thời kỳ công
đại hóa
nghiệp
vãn minh,
Trong
nhân
nhằm
hiện
đưa Việt
cách
mạng
Đại
hội
hành
Đảng
Trung
toàn
hiện
nước
to lớn đó, công
lực luôn giữ vai trò quan
Chấp
trở thành
hóa,
công
đại.
sự nghiệp
Ban
Nam
nghiệp
ương
quốc
trọng.
Đảng
lần
tác đào
Báo cáo Chính
Cộng
sản
thứ IX đã chỉ
Việt
tạo
trị
của
Nam
tại
rõ: " P h á t t r i ể n
g i á o dục và đ à o tạo là m ộ t trong những đ ộ n g lực quan trọng
t h ú c đ ẩ y sự n g h i ệ p công
nghiệp
hóa,
hiện
đại
hóa,
là đ i ề u
k i ệ n đ ể p h á t t r i ể n n g u ồ n lực c o n n g ư ờ i - y ế u t ố c ơ b ả n đ ể
p h á t t r i ể n x ã h ộ i , tăng truồng k i n h t ế nhanh và b ề n vững".
Quán
và nhận
triệt chủ trương,
thức đúng
giáo
trình
nghị
của Sở Giáo
Uy ban
nhân
cho phép
án biên soạn
học chuyên
việc
nâng
lực Thủ
Trên
chương
nghiệp
cao chất
Hà
Sở Giáo
trình,
lượng
Hà Nội.
đào
đào
số
tạo thực hiện
đề
các trường
ủy, UBND
tạo và phát
định
định
Quyết
đề
231912003,
đã ra Quyết
trong
trình,
tạo, theo
ngày
dục và Đào
giáo trình
(THCN)
lượng
Nội
nước
thành
triển
Trung
này thể
hiện
phố
trong
nguồn
nhân
đô.
cơ sở chương
và những
Sở Giáo dục và Đào
soạn
phô
và Nhà
của chương
tạo Hà Nội,
tâm sâu sắc của Thành
tạo ban hành
biển
thành
trọng
cao chất
dục và Đào
dân
của Đảng
quyết
đắn về tầm quan
đối với việc nâng
5620ỈQĐ-UB
sự quan
Nghị
chương
trình
khung
kinh nghiệm
của Bộ Giáo
dục và
Đào
rút ra từ thực tế đào
tạo,
tạo đã chỉ đạo các trường
trình,
giáo
trình
một
cách
THCN
tổ
khoa
học,
chức
hệ
3
ị
thống
và cập nhật
tượng
học sinh THCN
Bộ giáo
những
trình
các trường
Hà
ở Hà Nội,
hữu ích cho các trường
dạy
tiễn phù
đồng
dạy
và học
thời là tài liệu
có đào tạo các ngành
đáo bạn đọc quan
tổ chức
là một
trong
và đào
tạo Thủ
"50 năm
Thăng
đối
rập
trong
tham
khảo
kỹ thuật
-
nghiệp
tâm đến vấn để hướng
biên
hoạt
nhiều
bộ chương
động
lập ngành
- Hà
trình,
thực
thiết
đô để kỷ niệm
thành
Long
soạn
"50 năm
nghiệp,
" và hướng
ủy, UBND,
nghiệp
chuyên
gia đầu
nhà doanh
gia Hội
đồng
nghiệm
Đây
biền
gắng
nhưng
Chúng
ngành,
ngành
các giảng
đồng
phản
giáo
dục
tới kỷ niệm
thành
soạn
chắc
tôi mong
bước
viên,
Thủ
đô ",
"1000
năm
cảm ơn
phô,
các
kiện giúp
biện,
thu các chương
để từng
của ngành
của Thành
đã tạo điều
là lần đầu
chức
này
Hội
trình,
tiên Sở Giáo
giáo
dục
nhà
quản
đỡ, đóng
đồng
Thành
Vụ Giáo
Bộ Giáo dục và Đào tạo, các nhà khoa
nghiệp
tham
trình
Nội".
các sở, ban,
chuyên
giáo
giải phóng
Sở Giáo dục và Đào tạo Hà Nội chân
bản
với
nghề.
Việc
đọc
hợp
Nội.
này là tài liệu giảng
THON
vụ và đông
thức thực
kiến
thẩm
học,
các
lý,
các
góp ý
định
dục
và
kiến,
Hội
trình.
và Đào
tạo Hả Nội
tố
cố
chương
trình,
giáo
trình.
Dù
đã hết
chắn
không
tránh
khỏi
thiếu
sót,
bất
cập,
ý kiến
đóng
góp
của
bạn
nhận
được
hoàn
thiện
những
bộ giáo
trình
trong
các
sức
lần
tái
sau.
GIÁM ĐỐC SỞ G I Á O DỤC V À Đ À O TẠO
Lời nói
đ ầ u
gòn ngữ c được
được phổ
năm
1978.
công
ngôn
ngữ đặc biệt
Ngày
nay,
năng.
cụ thông
hiệu
chuyên
thường
của
Ngược
cuốn
Ngôn
kế và lần đầu
thiết
ngữ
của các ngôn
quả và thành
nghiệp,
cài đặt trên
lẻo. Lỏng
trình.
rãi trong
c đã tiến bộ hơn nhiêu
Sức mạnh
và D. Ritchie
lập trình
trong
gia phẩn
tất cả các loại máy
ngữ c không
lại, sức mạnh
Rất gần với ngôn
phải
gò bó, không
nhà
cứng
và phần
tính
mềm
và
vạn
gọn và
lỏng
tạo của người
lập
từ tính cô đọng,
ngắn
chế sự sáng
c không
lệ thuộc
vào phần
ứng dụng
nhắc,
vì ngoài
c hoàn
dụng
toàn
ngữ Turbo
trình
nghiệp
thích
thức
trên các hệ thống
chuyên
c có tới không
c của hãng
Borland
với ANSỈ
học được
phần
này
c. Người
về ngôn
ngữ c trong
cứng hay phần
nhằm
giúp
cho
và các bạn yêu thích
học hoàn
mềm thông
các
bạn
ngôn
giáo
dụng
học
sinh
ngữ lập trình
và khám phá sức mạnh
của c. Ngôn
ngữC
sinh lại có ý đinh
sâu vào phía
sau của các dồng
nhìn
đó mới là cách
học ngôn
của mình
thích
muốn
trong
sao
cho
những
và nuôi
học
vấn
sinh
không
ngữ c. Tác giả thành
dưỡng
lòng
cho thấy rằng c là một ngôn ngữ
Một
là làm
kích
của
cả trình
biên
dưới 80%
mã
của
tác giả là có
cân
một số bổ sung về các hàm đồ hoa, âm thanh
các kiến
Giáo
viết bằng
cứng
đổi.
ngôn
tương
máy
chỉnh
dịch của c lẫn chương
Sự lựa chọn
thống.
cụ đắc lực của các
từ máy tính này sang máy tính khác,
cần thay
hệ
một
công
máy tính. Vì vậy, khi chuyển
lệnh không
c đã là
là sự đẩy đủ, hoàn
hạn
ngữ máy nhưng
trình
trầm
tính.
của c bắt nguồn
c không
cao,
bản
hụt
vực lập trình
lĩnh
và trở thành
các chuyên
ngôn
lẻo nên
công
ngữ bậc
tiên
c xuất
từ khi ra đời, mặc dù nhỏ gọn và có vẻ như thiếu
những
và được
rộng
biến
Ngay
trọng
lập trình
B. Kernighan
ham
phải
toàn
có thể yên tâm
trình
này để lập
sử
trình
khác.
các
trường
c bước
trung
học
lùm
quen
đầu
dễ học, nhất
là khi
học
lệnh.
thực
tình,
trình
bày
tâm muốn
mê của
và vào ra, Tui bo
Nhưng
qua
người
cách
học
chứ
không
trình
khó.
đề mà tác giả cố gắng
thể hiện
trong
giáo
không
ngữ
trình
c,
chỉ biết
về ngôn
lập
má
còn
5
sử dụng
biết
hiệu
không
thể xem
dò gỡ
lỗi.
nhẹ,
Giáo trình
Mười
chương
quả
nhất
là khả
khung
phụ
ví dụ minh
bài tập đồ sộ chìa
từ đầu
đã được
hoa
cố gắng
dung
giáo
trình
đến
mô phỏng
cuối
thực
bảo, góp ý từ phía
mong
Học
biết
tin, PGS.TS.
viện
Quân
quát
toàn
kiện
năng
và khả
năng
bài
tập.
cơ bản
theo
được
trình
Nội dung
từng chương,
minh
trình
và chạy
họa
để tiện
thử thành
ra trên
rất hữu ích với
đấm
các
báo để giáo
màn
đều
công.
hình
viên
tra.
được
sử dụng.
chắc chắn giáo trình
phục
Các
đánh
số
một
Các
ví dụ
đều
hình
ảnh
để người
học
minh
dễ
tác giả cũng
cảm
Phạm
chân
ơn Ban
cho
tác giả những
cuốn
giáo
trình
giám
để tác giả hoàn
thành
hình
thiện
Nguyễn
Đoàn
ý kiến
quý
Văn
báu
Ban
hợp
việc dạy và học
nhận
mong
được
sự
các em học sinh và bạn
hiệu
Văn Ất - Đại học Giao
sự, PGS.TS.
còn có chỗ chưa
vụ tốt nhất cho công
ơn sâu sắc PGS.TS.
dành
trường
ESTIH
bản thảo.
Đồng
Xuân
- Viện
thông,
- Viện
góp phần
Huy
Công
làm
nghệ
nên
này.
Lê Văn
thời,
Huỳnh
lý
của
chỉ
đọc.
đã hết
tác
Công
TS. Dương
Tác gia
6
kỹ
bộ nội dung
cao, tuy khó nhưng
các hình
tế diễn
muốn
thành
viên và tạo điều
thông
trợ giúp
phụ lục và phần
các thầy, các bạn đồng nghiệp,
giả xin chân
xin bày tỏ lòng
cầu
hoa.
giáo
nhưng
các thầy và các bạn học sinh,
động
các
yêu
chứng.
sai sót. Ngoài
Tác
một
cho quá trình dạy, học và kiểm
dịch
Mặc dù đã rất cố gắng,
hoặc
thác
phẩn
theo nội dung
tra kỹ lưỡng,
và kiếm
như
mê.
ví dụ, các bài tập,
kiểm
khai
bao
lục gồm một số bài nâng
Tất cả các
trình
do Bộ Giáo dục và Đào tạo ban hành.
vã học sinh có đủ bài tập dùng
chiều
năng
trình
bạn học sinh giỏi và có lỏng say
Phần
lập
12 chương,
của giáo
bày chi tiết, với rất nhiều
Phần
trường
được chia thành
hai chương
trình
môi
sức
giả
nghệ
Tử Cường
-
thông
đã
chất
lượng
tin
của
C h ư ơ n g
Ì
CÁC KHÁI NIỆM Cơ BẢN
ì. CHƯƠNG TRÌNH (PROGRAM)
L à m ộ t g i ả i thuật đ ư ợ c v i ế t b ằ n g m ộ t n g ô n n g ữ l ậ p t r ì n h n à o đ ó m à sau k h i
đ ư ợ c d ị c h t h à n h n g ô n n g ữ của m ộ t m á y t í n h cụ t h ể c ó t h ể d ù n g đ ể g i ả i q u y ế t
m ộ t l ớ p c á c b à i t o á n . C á c bước x ử lý của g i ả i thuật t r o n g c h ư ơ n g t r ì n h đ ư ợ c
g ọ i là c á c c â u l ệ n h (statement) hoặc c á c chỉ l ệ n h ( i n s t r u c t i o n ) t ù y theo c ấ p bậc
của n g ô n ngữ. N g ư ờ i c h u y ê n soạn thảo ra c h ư ơ n g t r ì n h g ọ i là n g ư ờ i l ậ p t r ì n h .
li. NGÔN NGỮ LẬP TRÌNH
L à m ộ t t ậ p h ợ p đ ị n h nghĩa t ư ờ n g m i n h c á c k ý tự, c á c k ý h i ệ u v à c á c q u y
tắc k ế t hợp c h ú n g cho p h é p v i ế t c á c c h ư ơ n g t r ì n h m á y t í n h .
Số lượng c á c k ý tự, k ý h i ệ u trong m ộ t n g ô n n g ữ l ậ p t r ì n h là hữu
hạn.
N g ư ờ i l ậ p t r ì n h c h ỉ đ ư ợ c p h é p sử d ụ n g c á c k ý t ự , k ý h i ệ u đ ó . C á c q u y tắc
n h ằ m đ ả m b ả o đ ể n g ư ờ i l ậ p t r ì n h sử d ụ n g c á c k ý h i ệ u đ ú n g đ ắ n , t ạ o ra đ ư ợ c
c á c t ê n , c á c b i ể u t h ứ c , c á c c â u l ệ n h h ợ p l ệ . Q u y t ắ c đ ể t ạ o ra c á c c â u l ệ n h
g ọ i là c ú p h á p .
IU. TÍNH Cơ ĐỘNG (PORTABILITY)
T í n h c ơ đ ộ n g ( p o r t a b i l i t y ) của m ộ t n g ô n n g ữ l ậ p t r ì n h t h ể h i ệ n k h ả n ă n g
t h í c h ứng c ủ a m ộ t c h ư ơ n g t r ì n h v i ế t b ằ n g n g ô n n g ữ đ ó v ớ i n h i ề u l o ạ i m á y
t í n h v à n h i ề u h ệ đ i ề u h à n h k h á c nhau. N ế u m ộ t c h ư ơ n g t r ì n h v i ế t b ằ n g m ộ t
n g ô n n g ữ n à o đ ó k h i m a n g sang m á y t í n h n à o l ạ i p h ả i c h ỉ n h sửa đ ể p h ù h ợ p
v ớ i m á y t í n h đ ó t h ì ta n ó i là n g ô n n g ữ đ ể v i ế t c h ư ơ n g t r ì n h đ ó k h ô n g c ó t í n h
cơ động.
7
IV. CÁC L O Ạ I NGÔN NGỮ LẬP TRÌNH
1. N g ô n n g ữ m á y
L à b ộ l ệ n h của c h í p v i x ử lý t r ê n m ộ t l o ạ i m á y t í n h cụ t h ể , t h ể h i ệ n b ằ n g
c á c m ã số, c á c q u y tắc sử d ụ n g c á c m ã s ố đ ó đ ể v i ế t c á c c h ư ơ n g t r ì n h đ i ề u
k h i ể n trực t i ế p h o ạ t đ ộ n g của m á y t í n h t ư ơ n g ứng.
V í d ụ , t r ê n b ộ v i x ử lý
80286, 0 5 0 1 0 0 c ó nghĩa là c ộ n g t h ê m m ộ t số 16 bít c ó g i á trị là Ì v à o thanh
ghi A X .
V i ế t c h ư ơ n g trình bằng n g ô n ngữ m á y đòi h ỏ i n g ư ờ i lập trình phải am hiểu
sâu sắc c ấ u t r ú c v à h o ạ t đ ộ n g của m á y t í n h . C h ư ơ n g t r ì n h v i ế t b ằ n g n g ô n n g ữ
m á y chạy nhanh và h i ệ u q u ả n h ư n g k h ô n g c ó tính c ơ đ ộ n g .
2. H ợ p n g ữ ( a s s e m b l y l a n g u a g e )
L à n g ô n n g ữ l ậ p t r ì n h m à m ỗ i c â u l ệ n h ứng v ớ i m ộ t l ệ n h t r o n g n g ô n n g ữ
m á y , n h ư n g thay cho c á c m ã m á y v à c á c đ ị a c h ỉ b ộ n h ớ l à c á c t ừ g ợ i n h ớ
( m e m o n i c s ) . V í d ụ , c ũ n g là l ệ n h c ộ n g t h ê m s ố Ì v à o t h a n h g h i A X , l ệ n h hợp
n g ữ n h ư sau:
A D D A X , 0001 h
L ậ p t r ì n h b ằ n g hợp n g ữ thực c h ấ t là l ậ p t r ì n h b ằ n g n g ô n n g ữ m á y n h ư n g đ ỡ
vất vả h ơ n . D ù n g t r ì n h h ợ p d ị c h (assembler) đ ể d ị c h c h ư ơ n g t r ì n h h ợ p n g ữ sang
n g ô n n g ữ m á y . C h ư ơ n g t r ì n h v i ế t b ằ n g hợp n g ữ c ũ n g k h ô n g c ó t í n h c ơ đ ộ n g .
3. N g ô n n g ữ b i ê n d ị c h
L à n g ô n ngữ c ó thể được dịch thành n g ô n ngữ m á y b ở i m ộ t c h ư ơ n g trình
dịch (compiler). M ộ t c h ư ơ n g trình được viết bằng n g ô n ngữ b i ê n dịch được g ọ i
là c h ư ơ n g t r ì n h n g u ồ n ( p r o g r a m source) c h ỉ c h ạ y đ ư ợ c t r ê n m á y t í n h sau k h i đ ã
đ ư ợ c d ị c h sang n g ô n n g ữ m á y . B ả n d ị c h h o à n c h ỉ n h của c h ư ơ n g t r ì n h n g u ồ n c ó
t h ể c h ạ y đ ư ợ c t r ê n m á y t í n h g ọ i là c h ư ơ n g t r ì n h k h ả t h i ( p r o g r a m e x e c u t a b l e ) .
C h ư ơ n g t r ì n h k h ả t h i c ó t h ể c h ạ y đ ư ợ c m à k h ô n g c ầ n đ ế n sự c ó m ặ t của t r ì n h
biên dịch.
4. N g ô n n g ữ t h ô n g d ị c h
Là ngôn ngữ d ù n g đ ể viết các chương trình có thể chạy được trên m á y tính
v ớ i đ i ề u k i ệ n ngay t r ư ớ c k h i thực h i ệ n m ộ t l ệ n h , p h ả i c ó m ộ t c h ư ơ n g t r ì n h
8
t h ô n g d ị c h (interpreter) d i ễ n g i ả i ý nghĩa c â u l ệ n h đ ó t h à n h m ã l ệ n h của m á y
t í n h t ư ơ n g ứng.
C h ư ơ n g t r ì n h v i ế t b ằ n g n g ô n n g ữ t h ô n g dịch p h ả i vừa c h ạ y vừa d ị c h n ê n
c h ạ y c h ậ m , t h i ế u t r ì n h t h ô n g d ị c h thì k h ô n g c h ạ y đ ư ợ c .
5. N g ô n n g ữ b ậ c
cao
Người lập trình bằng ngôn ngữ bậc cao dùng ngôn ngữ này để trình bày
g i ả i thuật cho c á c b à i t o á n của m ì n h m à k h ô n g c ầ n quan t â m đ ế n c ấ u t r ú c và
hoạt đ ộ n g của m á y t í n h . C á c n g ô n n g ữ bậc cao c ó t h ể là n g ô n n g ữ t h ô n g dịch
hoặc b i ê n d ị c h v à t h ư ờ n g là n g ô n n g ữ b i ê n dịch, c ó t í n h c ơ đ ộ n g
cao.
V. c VÀ CÁC NGÔN NGỮ CÙNG DÒNG
1. c
D o B . K e r n i g h a n v à D . R i t c h i e t h u ộ c B e l l L a b o r a t o r i e s của h ã n g Á T &
T t h i ế t k ế n h ằ m p h ụ c vụ cho v i ệ c v i ế t h ệ đ i ề u h à n h Ư N I X . C h ị u ả n h h ư ở n g
của A L G O L n h ư P A S C A L , n h ư n g c đ ặ c b i ệ t t h u ậ n t i ệ n cho v i ệ c l ậ p t r ì n h
h ệ t h ố n g v à d u n g hoa t ố t t h ế m ạ n h của n g ô n n g ữ bậc cao v à t í n h h i ệ u q u ả
của n g ô n n g ữ m á y . c đ ư ợ c d ù n g n h i ề u đ ể v i ế t c á c h ệ đ i ề u h à n h , c á c c h ư ơ n g
t r ì n h d ị c h , k ể c ả c h ư ơ n g t r ì n h d ị c h của n g ô n n g ữ c . V ì l ậ p t r ì n h v i ê n c ó t h ể
đ ư a v à o c á c c h ỉ l ệ n h t á c d ụ n g trực t i ế p đ ế n v i ệ c b i ể u d i ễ n d ữ l i ệ u theo t ừ n g
bít b ê n t r o n g b ộ x ử l ý , n ê n c h ư ơ n g t r ì n h c đ ã đ ư ợ c b i ê n d ị c h sẽ c h ạ y n h a n h
h ơ n n h i ề u so v ớ i c á c c h ư ơ n g t r ì n h đ ư ợ c v i ế t b ằ n g c á c n g ô n n g ữ l ậ p t r ì n h
bậc cao k h á c . Đ ặ c t r ư n g của c là l ỏ n g l ẻ o n h ư n g n g ắ n g ọ n , t i ế t k i ệ m đ ể đ ủ
h i ệ u q u ả . C ó n g ư ờ i đ ã n ó i c là h ợ p n g ữ c ơ đ ộ n g , vì l à n g ô n n g ữ l ậ p t r ì n h h ệ
t h ố n g n h ư n g c đ ộ c l ậ p v ớ i p h ầ n c ứ n g , v à h ỗ t r ợ cho v i ệ c l ậ p t r ì n h c ấ u t r ú c
v à m o d u l hoa.
N g ố n n g ữ c đ ã t r ả i qua hai giai đ o ạ n l ớ n trong l ị c h sử p h á t t r i ể n của n ó .
N ó đ ư ợ c t r ì n h b à y l ầ n đ ầ u t i ê n trong m ộ t c u ố n
s á c h c ó tiêu đ ề "The
c
P r o g r a m m i n g L a n g u a g e " x u ấ t b ả n n ă m 1978 của c á c t á c g i ả n g ô n n g ữ n à y .
P h i ê n b ả n c n à y đ ư ợ c g ọ i là " K e r n i g h a n & R i t c h i e 78", hay g ọ i tắt là " K & R
78", hay t h ư ờ n g g ọ i n h ấ t là " K & R " .
9
Sau n h ữ n g t h à n h tựu rực r ỡ của h ệ đ i ề u h à n h U N I X . d ẫ n đ ế n n h ữ n g
t h à n h c ô n g của n g ô n n g ữ c , t ì n h h ì n h trở n ê n phức t ạ p : N h i ề u n h à c u n g
c ấ p c á c b ộ t r ì n h b i ê n d ị c h đ ã đ ư a ra thị t r ư ờ n g c á c b ộ b i ê n d ị c h k h ô n *
t ư ơ n g t h í c h v ớ i K & R , vì c ó t h ê m n h i ề u m ở r ộ n g r i ê n g . Đ ế n c u ố i
1978, v i ệ c t h i ế t l ậ p l ạ i t r ậ t tự, c ũ n g n h ư t i ê u c h u ẩ n hoa n g ô n noữ
năm
c
trở
n ê n c ầ n t h i ế t . V i ệ n t i ê u c h u ẩ n hoa q u ố c gia M ỹ ( A N S I ) thực h i ệ n t r á c h
n h i ệ m n à y và c h u ẩ n A N S I c ra đ ờ i n ă m 1989. N á m
1990, t ổ chức t i ê u
c h u ẩ n hoa q u ố c t ế ( I S O ) c h ấ p n h ậ n c h u ẩ n A N S I c n h ư c h u ẩ n q u ố c t ế
và
g ọ i là c h u ẩ n ISO c .
P h i ê n bản t h ứ hai n à y của c l ẽ ra phải được g ọ i là ISO c , n h ư n g c ầ n
n h ư t o à n t h ế g i ớ i quen g ọ i đ ó là A N S I c . Vì v ậ y ta h i ể u A N S I c c h í n h là
ISO c.
T ừ đ ó đ ế n nay, c t i ế p tục c ó n h i ề u thay đ ổ i và c ả i t i ế n . T h a y đ ổ i r õ rệt
nhất là việc đ ư a k h á i n i ệ m lớp, đ ố i tượng v à o c đ ể trở t h à n h c hướno
đối
tượng và C + + .
2. C + +
C á c k h á i n i ệ m về lập trình hướng đ ố i tượng trong S I M U L A , A L G O L và
S M A L L T A L K n g à y nay đ ã phát triển thành một phong c á c h l ậ p trình h i ệ n đ ạ i
làm thay đ ổ i hẳn c á c h nhìn nhận, p h â n tích v ấ n để và thiết k ế c h ư ơ n g trình.
C + + là một n g ô n n g ữ lai, v ẫ n g i ữ l ạ i những ưu đ i ể m của c , n h ư n g t ă n g c ư ờ n °
k h ả n ă n g k i ể m soát k i ể u d ữ l i ệ u , cho p h é p thiết k ế c á c lớp đ ố i tượno và h ỗ trợ
lập trình hướng đ ố i tượng.
3. J A V A
J A V A l ộ t x á c t ừ C + + , t h o á t l y k h ỏ i m ọ i chi t i ế t n h ỏ nhặt t i n h v i của
c
đ ể trở t h à n h m ộ t
ngôn ngữ lập trình hoàn toàn hướng
đối
tượng
C h ư ơ n g t r ì n h n g u ồ n J A V A c ó t í n h c ơ đ ộ n g cao, k h i b i ê n d ị c h cho
mã
n g u ồ n g ọ i là b y t e c o d e . M ã bytecode c ó t h ể c h ạ y t h ô n g d ị c h d ư ớ i m ọ i h ệ
đ i ể u h à n h t r ê n c á c p h ầ n c ứ n g k h á c nhau, k í c h t h ư ớ c n h ỏ , g ọ n .
JAVA
đ ư ợ c t h i ế t k ế đ ể c h u ẩ n bị cho k ỷ n g u y ê n của I n t e r n e t , k ỷ n g u y ê n của c á c
trang W E B .
10
4. c #
L à m ộ t n g ô n n g ữ lập trình hướng đ ố i tượng trong b ộ phần m ề m Visual
Studio N É T của M i c r o s o í t . G i ố n g J A V A v ớ i c ú p h á p r ắ n chắc, p h o n g c á c h l ị c h
l ã m l ẫ n ý t ư ở n g h ư ớ n g t ớ i m ô i t r ư ờ n g m ạ n g v à Internet, d ễ sứ d ụ n g v à n ă n g
suất cao g i ố n g n h ư V i s u a l Basic. N g ô n n g ữ n à y c ó p h á t t r i ể n t h ê m r ấ t n h i ề u ý
t ư ở n g m ớ i cao c ấ p l à m cho n ó m ạ n h h ơ n , h i ệ n đ ạ i h ơ n , an t o à n h ơ n so v ớ i Java
và C++.
li
C h ư ơ n g
2
MÔI TRƯỜNG LẬP TRÌNH c
BORLAND C++, là một môi trường phát triển tích hợp (IDE - Intergrated
Development E n v i r o n m e n t ) đ ư ợ c p h á t t r i ể n l ê n t ừ c h ư ơ n g t r ì n h T u r b o c . T r o n g
m ô i t r ư ờ n g n à y , b ạ n c ó t r ì n h soạn t h ả o t o à n m à n h ì n h , g i a o d i ệ n đ a cửa sổ v ớ i
m e n u . h ộ p t h o ạ i , h ỗ trợ d ù n g c h u ộ t . B ạ n c ó t h ể v i ế t , d ị c h c h ư ơ n g t r ì n h , l i ê n k ế t
c á c m o d u l , c h ạ y t h ử c h ư ơ n g t r ì n h do m ì n h v i ế t ra, g ỡ l ỗ i c h ư ơ n g t r ì n h t ừ n g
d ò n g m ộ t v à k i ể m tra g i á trị của t ừ n g biến,
g i á trị của t ừ n g ô n h ớ , thay đ ổ i g i á
trị của c á c biến theo ý m u ố n n h ằ m x á c đ ị n h l ỗ i của c h ư ơ n g t r ì n h , k i ể m tra giá
trị của c á c thanh g h i sau m ỗ i l ệ n h đ ư ợ c thực h i ệ n . . . M ô i t r ư ờ n g cho p h é p t ạ o ra
c á c d ự á n ứng d ụ n g c h u ẩ n , c á c d ự á n t h ư v i ệ n h à m c h u ẩ n v i ế t t r ê n m ộ t hoặc
nhiều tệp nguồn.
Rất khó tìm chương
trước),
vì các chương
4.5 và BORLAND
đối tượng.
Học
3.0 đơn giản
bâng
ngôn
Visuaỉ
ngôn
trình
trình
C++
6.0.
bằng
Trong
C++
ngôn
như bằng
ngữ c là môi trường
đến BORLAND
5.0
lỗi thời.
ỈDE,
giáo
BORLAND
nhưng
Môi
trường
bản
2.0 trở
BORLAND
về
C+ +
hướng
ngữ c trong
C+ +
là môi
C+ + . Tuy
trình
c (phiên
thì lại hỗ trợ chủ yếu cho lập trình
lợi hơn cả. Đây
ngữ c cũng
C++
c hay Microsoỷt
này đã quá
Builder
lập trình
và thuận
Turbo
này,
môi
môi
trường
trường
BORLAND
lai, cho phép
nhiên
có thể sử dụng
trường
lập trình
C+ + IDE.
lập
trình
Microsoỷt
để giới thiệu
Vì vậy sau đây
nhớ là ngôn ngữ ta học là ngôn
ta sẽ chỉ
về
nói
ngữC.
T r ê n m ộ t m á y t í n h c ó c à i đ ặ t B O R L A N D C + + 3.0, c ó t h ể t h ấ y c á c t h ư m ụ c
v à c á c t ệ p sau đ â y t r o n g ổ đĩa C:
- T h ư m ụ c C : \ T C , hoặc C : \ B O R L A N D
- Trong đó có các thư mục
LIB,
12
EXAMPLES.
c
BIN, INCLUDE, INCLƯDEXSYS,
BGI,
- C á c thư mục I N C L U D E . INCLƯDEVSYS có các tệp tiêu đ ề v ớ i phần
m ở r ộ n g . H , ví d ụ S T D I O . H , C O N I O . H . ... C á c t ệ p n à y c h ứ a c á c k h a i
báo
c á c h à m và c á c m a c r o đ ể c h è n v à o đ ầ u c h ư ơ n g t r ì n h đ ể đ ỡ c ô n g v i ế t c á i gì
tương tự như thế.
- T h ư m ụ c L I B c ó c á c tệp - L I B . ví d ụ C C . L I B . M A T M . L I B . . . là c á c t ệ p t h ư
v i ệ n h à m . Đ â y là c á c t ệ p k h ô n g t h ể t h i ế u k h i h ọ c l ậ p t r ì n h c .
- Trong thư mục
GOTH.CHR.
B G I c ó c á c tệp . B Ó I , . C H R .
ví d ụ
EGAVGA.BGI,
C á c t ệ p n à y c ầ n t h i ế t k h i l ậ p t r ì n h đ ồ hoa t r o n g h ệ đ i ề u h à n h
D O S c ù a m á y PC.
- T h ư m ụ c E X A M P L E S c ó n h i ề u t h ư m ụ c con với r ấ t n h i ề u c h ư ơ n g t r ì n h
m ẫ u để bạn tham khảo.
- T r o n g t h ư m ụ c B I N c ó c á c tệp rất quan t r ọ n g sau đ â y :
• B C . E X E (hoặc T C . E X E ) : C á c c h ư ơ n g t r ì n h n à y m ở ra m ô i t r ư ờ n g p h á t
t r i ể n t ổ n g hợp I D E n ó i t r ê n .
• T ệ p T C H E L P . T C H : T h i ế u t ệ p n à y bạn sẽ m ấ t h ẳ n p h ầ n trợ g i ú p .
• C á c t ệ p T C C O N P I G . T C , là t ệ p c ấ u h ì n h , chứa c á c t h ô n g số c à i đ ặ t mặc
đ ị n h hoặc do b ạ n lựa c h ọ n cho m ô i trường I D E . N ế u k h ô n g c ó t ệ p n à y thì khi
c h ạ y T C . E X E , n ó sẽ đ ư ợ c tạo ra. M ỗ i l ầ n bạn thay đ ổ i c ấ u h ì n h b ằ n g menu
Options thì t ệ p n à y sẽ đ ư ợ c cập nhật.
Chú ý: Nếu
trường,
bạn quá mạnh
đến mức chương
trình
dạn thay đổi cấu hình từmenu
của bạn đã từng chạy
tốt bồng
Options
nhiên
dược nữa thì có tììé xóa tệp này đi. Bạn sẽ cố tệp mới để thử lại từ
của
không
mỏ
dịcì
đầu.
• M ộ t số c h ư ơ n g t r ì n h t i ệ n ích n h ư T E M C . E X E , M A K E . E X E , T L I B . E X E ,
T L I N K . E X E . V ì b ạ n đ a n g sử d ụ n g m ô i trường I D E n ê n k h ô n g c ầ n p h ả i quan
t â m đ ế n 3 c h ư ơ n g t r ì n h sau. R i ê n g c h ư ơ n g t r ì n h T E M C . E X E là m ộ t c h ư ơ n g
t r ì n h lý t h ú . N ó d ù n g đ ể dịch m ộ t t ệ p " c h ư ơ n g t r ì n h " v i ế t b ằ n g m ộ t t h ứ n g ô n
n g ữ g ọ i là " T E M P L " , k ế t q u ả sẽ tạo ra m ộ t t ệ p c ấ u h ì n h k i ể u
TCCONFIG.TC,
trong đ ó quy đ ị n h c á c thao t á c sử d ụ n g p h í m của m ô i t r ư ờ n g I D E . B ạ n sẽ t ă n g
n ă n g suất k h i l ậ p t r ì n h và l à m bạn b è p h ả i ngạc n h i ê n v ớ i c á c c ú b ấ m .
Đ ể bước đ ầ u sử d ụ n g đ ư ợ c I D E , chí c ầ n c á c t ệ p sau:
• T C . E X E (hoặc B C E X E ) ,
• M ộ t số tệp . H (STTDIO.H, STTDLIB.H, C O N I O . R
A L L O C . H , STRING.H.
_DEFS.H. _ N U L L . H )
13
• M ộ t s ố t ệ p . L I B và .OBJ ( C S . L I B , M A T H S . L I B , F P 8 7 . L I B ,
C0S.OBJ c ó
trong thư mục L I B )
• M u ố n có trợ g i ú p thì t h ê m tệp T C H E L P . T C H .
C á c t ệ p n à y n ế u n é n l ạ i b ằ n g P K Z I P hoặc N e t h ì c h i ế m k h ô n g h ế t m ộ t đĩa
m ề m 1,44 M b . C ó t h ể đ ể c h u n g t ấ t cả t r o n g m ộ t t h ư m ụ c hay c h i a ra t h à n h c á c
t h ư m ụ c con n h ư đ ã n ê u ở t r ê n .
ì. MÔI TRƯỜNG PHÁT TRIỂN TÍCH HỢP BORLAND C++ IDE
1. K h ở i
động
N ế u b ạ n c h ư a t h ê m đ ư ờ n g d ẫ n t ớ i t h ư m ụ c chứa B C . E X E ( h o ặ c T C . E X E )
vào d ò n g lệnh P A T H trong c h ư ơ n g trình A U T O E X E C . B A T thì h ã y t h ê m vào
c u ố i d ò n g đ ó m ộ t d ấ u c h ấ m p h ẩ y v à ngay sau đ ó l à t ê n đ ư ờ n g d ẫ n .
Ví dụ:
D ò n g P A T H cũ:
PATH=C:\JDOS;C:\WINDOWS;C:\NC;C:\TF\BIN
BC.EXE
có mặt trong C : \ B O R L A N D C \ B I N chẳng
hạn.
V ậ y thì
dòng
P A T H sau k h i sửa sẽ là:
PATH=C:\DOS;C:\WINDOWS;C:\NC;C:\TP\BIN;C:\
BORLANDC \BIN
C ũ n g c ó t h ể k h ô n g c ầ n sửa d ò n g l ệ n h P A T H n h ư t r ê n , m à t h ê m v à o c u ố i
t ệ p A U T O E X E C . B A T l ệ n h sau:
PATH=%PATH%;C:\BORLANDC\BIN
Sau đ ó k h ở i đ ộ n g l ạ i m á y t í n h của b ạ n .
Đ ể t r á n h sự l ộ n x ộ n k h ô n g đ á n g c ó sau n à y , b ạ n h ã y t ạ o ra m ộ t t h ư m ụ c
d à n h r i ê n g cho v i ệ c h ọ c l ậ p t r ì n h c v à cất c á c c h ư ơ n g t r ì n h của b ạ n t r o n g đ ó .
Ví dụ thư mục
C:\MYPROG.
T ừ nay t r ở đ i , m ỗ i l ầ n l ậ p t r ì n h c , b ạ n h ã y d ù n g l ệ n h C D đ ể v à o t h ư m ụ c
M Y P R O G trước t i ê n , sau đ ổ c h ạ y c h ư ơ n g t r ì n h B C . E X E ( h o ặ c T C . E X E ) .
>CD\MYPROGỈĨWfi
>BC
M
I
N ế u d ù n g Shortcut t r o n g W i n d o w s thì b ạ n đ ặ t c á c t h u ộ c t í n h t r o n g b ả n g
Program của Shortcut n h ư sau:
- Close ô n e x i t : c h ọ n ( c ó g ạ c h c h é o )
- Working:
14
C:\MYPROG
- Nếu
bạn
đang
dùng
Windows
98
trở v ề
trước
thì
nên
vào
mục
A d v a n c e d . . . v à b ỏ c h ọ n m ụ c M s D O S mode.
N g o à i ra, c ó t h ể v à o b ả n g Screen và c h ọ n c h ế đ ộ F u l l Screen.
B ạ n sẽ t h ấ y m ở ra trước m ắ t b ạ n m ộ t cửa sổ m à u x a n h v ớ i m ộ t thanh M e n u
ở trên cùng. C ó thể có một
cửa
sổ con
g i ớ i t h i ệ u sản
p h ẩ m của
hãng
B O R L A N D n ế u đ â y là l ầ n đ ầ u tiên b ạ n c h ạ y B O R L A N D c . Ân p h í m Esc đ ể
cất cửa sổ đ ó đ i v à bắt đ ầ u l à m quen v ớ i m ô i t r ư ờ n g l ậ p t r ì n h .
2. Xem xét lại cấu hình
Mỗi lựa chọn trong hàng menu có thể được kích hoạt bằng cách click
c h u ộ t v à o m ụ c c h ọ n đ ó hoặc d ù n g t ổ hợp p h í m A L T v à p h í m n ó n g . P h í m n ó n g
là p h í m ứng v ớ i c h ữ c á i c ó m à u đ ỏ trong m ụ c c h ọ n . V í d ụ ta c ầ n k í c h hoạt
m e n u O p t i o n s , h ã y ấn t ổ hợp p h í m A L T - O .
_ • X
C-ebug Prcj
ẹ s = = = .i4,:, -,.r,s * = CONST.CPP
•ũũ ' * &t * en
#inelude
Corapiler
#defĩne PI 3.1416926
«đefine HI l o
le generatĩon.
dvancêd ccd« aenerat"ôn.
#dẹfine H2 l o
BiaĩnO
c— cctions...
{
f l ọ a t r = 5, 3 m HI, b = «2;
Cót r- 2át*ons...
pr-intf ("\fiHifiifc tron ban kinh r = 564.
ỊtriI»tfCXnChặ v i l a %ị.2f", r*PI*2);
pri ntf C"V»Hinh chu nhát canh a » 5W>
printf
Đ ế thay đ ổ i lựa c h ọ n của m ụ c n à o đ ó , b ạ n d ù n g p h í m
SSBS^BB.
li. CÁCH SỬ DỤNG CÁC TRỢ GIÚP
M ô i t r ư ờ n g I D E của B O R L A N D c l u ô n l u ô n s ẵ n s à n g t r ợ g i ú p b ạ n n ế u
trong đĩa của b ạ n c ó c á c t ệ p * . T C H . T h ự c c h ấ t h i ệ n t ạ i b ạ n c h ỉ c ầ n
tệp
T C H E L P . T C H là đ ủ .
Đ ể g ọ i t ớ i p h á n t r ợ g i ú p , b ạ n chỉ c ầ n l à m c á c thao t á c sau:
- Ân p h í m SO- L ú c đ ó , con trỏ của b ạ n đ a n g ở trong cửa sổ n à o sẽ c ó ngay
m ộ t b ả n g c h i d ẫ n c ầ n t h i ế t v ề cửa sổ đ ó .
16
- H o ặ c ấn t ổ h ợ p p h í m A L T • C h ọ n m ụ c C o n t e n t s , sẽ t h ấ y m ộ t b ả n g t ổ n g quan v ề c á c t r ợ g i ú p c ủ a c .
Bạn có thể dùng chuột hoặc bàn phím để chọn vấn đề mà mình quan tâm. Mỗi
từ khoa có màu vàng trong cửa sổ này đều ẩn giấu sau nó cả một chuỗi các giải
thích tỉ mỉ, chi tiết.
• X
(32
CONST.CPP
ihncluđe
#defĩne f >l 3.1416926
#define HtL 10
#define H2 l o ! = [ • ] =
HELP COKTEMTS
•ị
flọat
HOM t o Use Help L
_
prĩntf
pr"intf
Menus and Hót Keys I—
printf
prìnrtí
Editor Coraraands
#undẹf PI
Assembler (buịlt-in)
Functions
#đefine RI
Coranand
LÌ
ne
CTC)
Header Files
#undef m
• Caonand Line uCC)
l ữ5t re am classes
L_
_ 3:3
Container classes
Turbo C++ Language
Error Messages
utìlitĩes V
1
H ì n h 2. H ộ p t h o ạ i H E L P
CONTENTS
• Chọn mục Index, bạn sẽ có một danh mục các vấn đề xếp thành nhóm
theo vần ABC. Bạn có thể tìm trong danh mục đó vấn đề mà mình quan tâm.
Có thể gõ thẳng từ mà bạn muốn tìm hiểu. Nếu từ đó có trong danh sách thì
bạn sẽ tìm thấy nó ngay.
Đ ể tra c ứ u c á c h d ù n g c ủ a m ộ t t ừ khoa, v í d ụ s w i t c h , b ạ n h ã y đ ặ t c o n t r ỏ
v à o t ừ s w i t c h v àấn t ổ h ợ p p h í m C T R L - ị^Ị.
Đ ể x e m l ạ i c ử a sổ t r ợ g i ú p trước đ ó , h ã yấn t ổ h ợ p p h í m A L T - m ,
Thường ở cuối trang trợ giúp về một hàm có xuất hiện các dòng chữ màu vàng
cho tên một ví dụ nào đó, chẳng hạn ^ffi33aSĩuE' bạn hãy click vào đó và
toàn v ă n m ộ t c h ư ơ n g t r ì n h v í d ụ sẽ x u ấ t h i ệ n . B ạ n m ở menu E d i t v à c h ọ n lệnh
^aaf^MHifj^ để chép ví dụ đó. Mở một tệp mới và chọn lệnh dán bằng cách
nhấn tổ hợp phím Shift-Insert hoặc chọn lệnh Paste trong menu Edit và chạy thử.
2-Giáo trình NN lặp trình c
17
H I . C Á C L Ệ N H C ơ B Ả N C Ủ A B O R L A N D C++ I D E
1. c ử a s ổ l à m v i ệ c
1.1. C ấ u t r ú c m ộ t c ử a sổ
M ộ t cửa sổ l à m v i ệ c c ó c ấ u t r ú c n h ư sau:
* Đường
viền
Đ ó là đ ư ờ n g bao n é t k é p h ì n h c h ữ nhật bao q u a n h cửa sổ.
T h a n h t i ê u đ ề : C h í n h l à n é t v i ề n t r ê n c ạ n h t r ê n của cửa sổ. G i ữ a
đường
v i ề n n à y c ó t i ê u đ ề của cửa sổ. N ế u b ấ m n ú t t r á i c h u ộ t l ê n t h a n h n à y v à r ê đ i sẽ
l à m d i c h u y ể n cửa sổ.
N ú t Close: P h í a đ ầ u m ú t t r á i của thanh t i ê u đ ề c ó m ộ t n ú t c h ữ n h ậ t n h ỏ
m à u x a n h lá c â y . N ú t n à y d ù n g đ ể đ ó n g cửa sổ.
N ú t Z o o m : Đ ầ u m ú t p h ả i của thanh t i ê u đ ề cửa sổ c ó n ú t p h ó n g đ ạ i . K h i
n ú t n à y c ó h ì n h d ạ n g [ ĩ . ] t h ì c ó t á c d ụ n g p h ó n g to cửa sổ. K h i n ú t n à y c ó d ạ n g
[Xì
sẽ c ó t á c d ụ n g thu n h ỏ cửa sổ t r ở l ạ i k í c h t h ư ớ c trước k h i b ị p h ó n g to. B ê n
canh n ú t z o o m l à m ộ t c o n s ố c h ỉ s ố t h ứ t ư của cửa sổ.
ran
BU
• X
#ĩncluđe "ayheader. ti"
tinclude -cstdio. h>
t m c ì u d e «XMtío.h>
vcrĩd etainO
í
•
f l o a t a = 1.5, b
printfr\rtML0.2f
prịntf("\i*l0.2f
pri o t f ("\n5O0.2f
p r i ntFr\n5O.0.2f
getchõ; •
= 2.7;
+ 50.0.2f
* KLQ,2f
+• KIO. 2f
+ %L0.2f
5KL0.2f"»
sao; 2? %
%w.2f"
í
ĩ ——— Project:
F i l e nạn®;
ARĨT.LI8
BRIT.CPP
Vãich
f l Hteìp
Alt-F9 Cowpi1e F3 Make n e Menu
tt
Save F3 ũpett
H ì n h 3. C á c l o ạ i cửa sổ v à c ấ u t r ú c cửa sổ của B O R L A N D C + + I D E
18
- Xem thêm -