Quán triệt chủ trương, Nghị quyết của Đảng và Nhà nước và nhận thức đúng đắn về tầm quan trọng của chương trình, giáo trình đối với việc nâng cao chất lượng đào tạo, theo đề nghị của Sở
Trang 5L ờ i g i ớ i t h i ê u
ước ta dang bước vào thời kỳ công nghiệp hóa, hiện đại hóa nhằm đưa Việt Nam trở thành nước công nghiệp vãn minh, hiện đại
Trong sự nghiệp cách mạng to lớn đó, công tác đào tạo nhân lực luôn giữ vai trò quan trọng Báo cáo Chính trị của Ban Chấp hành Trung ương Đảng Cộng sản Việt Nam tại Đại hội Đảng toàn quốc lần thứ IX đã chỉ rõ: " P h á t t r i ể n
g i á o dục v à đ à o tạo là m ộ t t r o n g n h ữ n g đ ộ n g lực q u a n t r ọ n g
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 con n g ư ờ i - y ế u t ố c ơ b ả n đ ể
p h á t t r i ể n x ã h ộ i , t ă n g t r u ồ n g k i n h t ế nhanh v à b ề n v ữ n g "
Quán triệt chủ trương, Nghị quyết của Đảng và Nhà nước
và nhận thức đúng đắn về tầm quan trọng của chương trình, giáo trình đối với việc nâng cao chất lượng đào tạo, theo đề nghị của Sở Giáo dục và Đào tạo Hà Nội, ngày 231912003,
Uy ban nhân dân thành phô Hà Nội đã ra Quyết định số 5620ỈQĐ-UB cho phép Sở Giáo dục và Đào tạo thực hiện đề
án biên soạn chương trình, giáo trình trong các trường Trung học chuyên nghiệp (THCN) Hà Nội Quyết định này thể hiện
sự quan tâm sâu sắc của Thành ủy, UBND thành phố trong việc nâng cao chất lượng đào tạo và phát triển nguồn nhân lực Thủ đô
Trên cơ sở chương trình khung của Bộ Giáo dục và Đào tạo ban hành và những kinh nghiệm rút ra từ thực tế đào tạo,
Sở Giáo dục và Đào tạo đã chỉ đạo các trường THCN tổ chức biển soạn chương trình, giáo trình một cách khoa học, hệ
Trang 6thống và cập nhật những kiến thức thực tiễn phù hợp với đối tượng học sinh THCN Hà Nội
Bộ giáo trình này là tài liệu giảng dạy và học rập trong các trường THON ở Hà Nội, đồng thời là tài liệu tham khảo hữu ích cho các trường có đào tạo các ngành kỹ thuật - nghiệp
vụ và đông đáo bạn đọc quan tâm đến vấn để hướng nghiệp, dạy nghề
Việc tổ chức biên soạn bộ chương trình, giáo trình này
là một trong nhiều hoạt động thiết thực của ngành giáo dục
và đào tạo Thủ đô để kỷ niệm "50 năm giải phóng Thủ đô ",
"50 năm thành lập ngành " và hướng tới kỷ niệm "1000 năm Thăng Long - Hà Nội"
Sở Giáo dục và Đào tạo Hà Nội chân thành cảm ơn Thành
ủy, UBND, các sở, ban, ngành của Thành phô, Vụ Giáo dục chuyên nghiệp Bộ Giáo dục và Đào tạo, các nhà khoa học, các chuyên gia đầu ngành, các giảng viên, các nhà quản lý, các nhà doanh nghiệp đã tạo điều kiện giúp đỡ, đóng góp ý kiến, tham gia Hội đồng phản biện, Hội đồng thẩm định và Hội đồng nghiệm thu các chương trình, giáo trình
Đây là lần đầu tiên Sở Giáo dục và Đào tạo Hả Nội tố chức biền soạn chương trình, giáo trình Dù đã hết sức cố gắng nhưng chắc chắn không tránh khỏi thiếu sót, bất cập, Chúng tôi mong nhận được những ý kiến đóng góp của bạn đọc để từng bước hoàn thiện bộ giáo trình trong các lần tái bản sau
GIÁM ĐỐC SỞ GIÁO DỤC VÀ Đ À O TẠO
Trang 7L ờ i n ó i đ ầ u
gòn ngữ c được B Kernighan và D Ritchie thiết kế và lần đầu tiên được phổ biến rộng rãi trong cuốn Ngôn ngữ lập trình c xuất bản năm 1978 Ngay từ khi ra đời, mặc dù nhỏ gọn và có vẻ như thiếu hụt trầm trọng những công cụ thông thường của các ngôn ngữ bậc cao, c đã là một ngôn ngữ đặc biệt hiệu quả và thành công trong lĩnh vực lập trình hệ thống Ngày nay, c đã tiến bộ hơn nhiêu và trở thành công cụ đắc lực của các nhà lập trình chuyên nghiệp, các chuyên gia phẩn cứng và phần mềm máy tính
và được cài đặt trên tất cả các loại máy tính
Sức mạnh của ngôn ngữ c không phải là sự đẩy đủ, hoàn chỉnh và vạn năng Ngược lại, sức mạnh của c bắt nguồn từ tính cô đọng, ngắn gọn và lỏng lẻo Lỏng lẻo nên c không gò bó, không hạn chế sự sáng tạo của người lập trình Rất gần với ngôn ngữ máy nhưng c không lệ thuộc vào phần cứng của máy tính Vì vậy, khi chuyển từ máy tính này sang máy tính khác, cả trình biên dịch của c lẫn chương trình ứng dụng viết bằng c có tới không dưới 80% mã lệnh không cần thay đổi
Sự lựa chọn ngôn ngữ Turbo c của hãng Borland của tác giả là có cân nhắc, vì ngoài một số bổ sung về các hàm đồ hoa, âm thanh và vào ra, Tui bo
c hoàn toàn tương thích với ANSỈ c Người học hoàn toàn có thể yên tâm sử dụng các kiến thức học được về ngôn ngữ c trong giáo trình này để lập trình trên các hệ thống phần cứng hay phần mềm thông dụng khác
Giáo trình này nhằm giúp cho các bạn học sinh các trường trung học chuyên nghiệp và các bạn yêu thích ngôn ngữ lập trình c bước đầu lùm quen
và khám phá sức mạnh của c Ngôn ngữC không phải dễ học, nhất là khi học sinh lại có ý đinh nhìn sâu vào phía sau của các dồng lệnh Nhưng thực tình,
đó mới là cách học ngôn ngữ c Tác giả thành tâm muốn qua cách trình bày của mình kích thích và nuôi dưỡng lòng ham mê của người học chứ không muốn cho thấy rằng c là một ngôn ngữ khó
Một trong những vấn đề mà tác giả cố gắng thể hiện trong giáo trình
là làm sao cho học sinh không chỉ biết về ngôn ngữ lập trình c, má còn
Trang 8biết sử dụng hiệu quả môi trường lập trình như một yêu cầu kỹ năng không thể xem nhẹ, nhất là khả năng khai thác các trợ giúp và khả năng
dò gỡ lỗi
Giáo trình được chia thành 12 chương, phẩn phụ lục và phần bài tập
Mười hai chương của giáo trình bao quát toàn bộ nội dung cơ bản theo chương trình khung do Bộ Giáo dục và Đào tạo ban hành Nội dung được trình bày chi tiết, với rất nhiều ví dụ minh hoa
Phần phụ lục gồm một số bài nâng cao, tuy khó nhưng rất hữu ích với các bạn học sinh giỏi và có lỏng say mê
Phần bài tập đồ sộ chìa theo nội dung từng chương, đấm báo để giáo viên
vã học sinh có đủ bài tập dùng cho quá trình dạy, học và kiểm tra
Tất cả các ví dụ, các bài tập, các hình minh họa đều được đánh số một chiều từ đầu giáo trình đến cuối giáo trình để tiện sử dụng Các ví dụ đều
đã được kiểm tra kỹ lưỡng, dịch và chạy thử thành công Các hình ảnh minh hoa cố gắng mô phỏng thực tế diễn ra trên màn hình để người học dễ hình dung và kiếm chứng
Mặc dù đã rất cố gắng, nhưng chắc chắn giáo trình còn có chỗ chưa hợp lý hoặc sai sót Ngoài mong muốn phục vụ tốt nhất cho công việc dạy và học của các thầy và các bạn học sinh, tác giả cũng chân thành mong nhận được sự chỉ bảo, góp ý từ phía các thầy, các bạn đồng nghiệp, các em học sinh và bạn đọc Tác giả xin chân thành cảm ơn Ban giám hiệu trường ESTIH đã hết sức động viên và tạo điều kiện để tác giả hoàn thiện bản thảo Đồng thời, tác giả xin bày tỏ lòng biết ơn sâu sắc PGS.TS Nguyễn Xuân Huy - Viện Công nghệ thông tin, PGS.TS Phạm Văn Ất - Đại học Giao thông, TS Dương Tử Cường - Học viện Quân sự, PGS.TS Đoàn Văn Ban - Viện Công nghệ thông tin đã dành cho tác giả những ý kiến quý báu góp phần làm nên chất lượng của cuốn giáo trình này
Tác gia
Lê Văn Huỳnh
Trang 9C 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 viết bằng m ộ t n g ô n n g ữ l ậ p t r ì n h n à o đ ó m à sau k h i
được dịch t h à n h n g ô n n g ữ của m ộ t m á y tính cụ t h ể c ó t h ể d ù n g đ ể g i ả i quyế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 trong 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 (instruction) 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
Trang 10n g ô n n g ữ m á y C h ư ơ n g t r ì n h viế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 n g ữ c ó t h ể đ ư ợ c dịch t h à n h n g ô n n g ữ m á y b ở i m ộ t c h ư ơ n g t r ì n h dịch (compiler) M ộ t c h ư ơ n g t r ì n h được v i ế t b ằ n g n g ô n n g ữ b i ê n d ị c h đ ư ợ c g ọ i
là c h ư ơ n g t r ì n h n g u ồ n (program source) chỉ chạy được t r ê n m á y t í n h sau k h i đ ã được dịch sang n g ô n n g ữ m á y B ả n dịch h o à n c h ỉ n h của c h ư ơ n g t r ì n h n g u ồ n c ó
t h ể chạ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 executable)
Trang 11t h ô n g dịch (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ính 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 chạy vừa dịch n ê n chạy c h ậ m , t h i ế u t r ì n h t h ô n g dịch thì k h ô n g chạy được
5 N g ô n n g ữ b ậ c c a o
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 ó thể là n g ô n n g ữ t h ô n g dịch hoặc b i ê n dịch và t h ư ờ n g là n g ô n n g ữ b i ê n dịch, c ó tính 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ịch 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 nhanh
N g ố n n g ữ c đ ã t r ả i qua hai giai đ o ạ n l ớ n trong lịch sử p h á t t r i ể n của n ó
N ó được t r ì n h b à y l ầ n đ ầ u tiê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à "Kernighan & Ritchie 78", hay g ọ i tắt là " K & R 78", hay t h ư ờ n g g ọ i nhất là " K & R "
Trang 12Sau 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 à cung
c ấ p c á c bộ t r ì n h b i ê n dịch đ ã đ ư a ra thị trường c á c bộ b i ê n dịch 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 n ă m
1978, v i ệ c t h i ế t l ậ p l ạ i trật tự, c ũ n g n h ư tiêu c h u ẩ n hoa n g ô n noữ c trở
n ê n cần t h i ế t V i ệ n tiêu c h u ẩ n hoa quố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 tiêu chuẩn hoa q u ố c t ế (ISO) c h ấ p nhận chuẩ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 ư toà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ó nhiều thay đ ổ i và cải t i ế n Thay đ ổ 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 khá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, phân tích vấn để và thiết k ế c h ư ơ n g trình C++ là một n g ô n ngữ lai, v ẫ n g i ữ l ạ i những ưu đ i ể m của c, n h ư n g t ă n g c ư ờ n ° khả năng 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ợ
Trang 134 c #
L à m ộ t n g ô n n g ữ l ậ p t r ì n h h ư ớ n g đ ố i tượng trong b ộ p h ầ n m ề m V i s u a l
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 , phon g c á c h l ị c h
l ã m l ẫ n ý t ư ở n g h ư ớ n g t ớ i m ô i trường 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ưởng 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 + +
Trang 14c á 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
n h i ề u tệ p n g u ồ n
Rất khó tìm chương trình Turbo c hay Microsoỷt c (phiên bản 2.0 trở về trước), vì các chương trình này đã quá lỗi thời Môi trường BORLAND C+ + 4.5 và BORLAND C++ Builder 5.0 thì lại hỗ trợ chủ yếu cho lập trình hướng đối tượng Học lập trình bằng ngôn ngữ c trong môi trường BORLAND C+ + 3.0 đơn giản và thuận lợi hơn cả Đây là môi trường lai, cho phép lập trình bâng ngôn ngữ c cũng như bằng C+ + Tuy nhiên có thể sử dụng Microsoỷt Visuaỉ C++ 6.0 Trong giáo trình này, môi trường lập trình để giới thiệu về ngôn ngữ c là môi trường BORLAND C+ + IDE Vì vậy sau đây ta sẽ chỉ nói đến BORLAND C++ ỈDE, nhưng nhớ là ngôn ngữ ta học là ngôn ngữC
Trang 15• 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 chạ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ằng menu
Options thì t ệ p n à y sẽ được cập nhật
Chú ý: Nếu bạn quá mạnh dạn thay đổi cấu hình từmenu Options của mỏ trường, đến mức chương trình của bạn đã từng chạy tốt bồng nhiên không dịcì 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ừ đầu
Trang 16• 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 t h ư m ụ c L I B )
- Close ô n exit: c h ọ n ( c ó g ạ c h c h é o )
- W o r k i n g : C : \ M Y P R O G
Trang 17- N ế u bạ n đ a n g d ù n g W i n d o w s 98 tr ở v ề trước thì n ê n v à o mụ c
Advanced và b ỏ c h ọ n mục M s DOS 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 xanh v ớ i m ộ t thanh M e n u
ở t r ê n c ù n g C ó t h ể c ó m ộ t cửa sổ con g i ớ i t h i ệ u sản p h ẩ m của h ã n g
B O R L A N D n ế u đ â y là l ầ n đ ầ u tiên b ạ n chạ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 trường 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
chuộ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 menu O p t i o n s , h ã y ấn t ổ hợp p h í m A L T - O
A U T O E X E C B A T N h ư n g tốt h ơ n cả là h ã y tạo m ộ t shortcut của c h ư ơ n g trình
T C E X E (hoặc B C E X E ) trên Desktop của W i n d o w s và t h i ế t đ ặ t c h ế đ ộ l à m việc d ư ớ i sự y ể m trợ của W i n d o w s L à m n h ư v ậ y sẽ g i ú p b ạ n k h ô n g p h ả i b ă n
k h o ă n về chuột H ơ n nữa n ế u c h ư ơ n g trình của bạn c ó bị treo thì c ũ n g k h ố n g phải tắt m á y k h ở i đ ộ n g l ạ i từ đ ầ u
Đ ế thay đ ố i c ấ u h ì n h bạn h ã y chọn menu Options
Trang 18c ó t h ể đ ể trong n h i ề u t h ư m ụ c k h á c nhau H a i đ ư ờ n g d ẫ n c á c h nhau m ộ t d ấ u
Đ ể g ọ i tới p h á n trợ 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ảng chi d ẫ n c ầ n t h i ế t về cửa sổ đ ó
Trang 19Hoặ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ảng tổng 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
Menus and Hót Keys I—
l ữ 5t re am classes Turbo C++ Language
u t ì l i t ĩ e s V
1
H ì n h 2 H ộ p t h o ạ i H E L P C O N T E N T S
• 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 trình ví d ụ sẽ xuất hiện B ạ n m ở menu Edit và chọ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ử
Trang 20Đ ó là đ ư ờ n g bao nét k é p h ì n h c h ữ nhật bao quanh cửa sổ
T h a n h tiê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 đ ư ờ n g
Trang 21C h ỉ t h i v i trí: T r ê n c ạ n h d ư ớ i , p h í a trái của cửa sổ c ó hai số n g u y ê n , c á c h nhau b ằ n g m ộ t g ạ c h c h é o C á c số n à y cho biết con trỏ v ă n b ả n đ a n g n h ấ p n h á y
ở d ò n g n à o , cột n à o t r o n g cửa sổ
N ú t Size: G ó c p h ả i p h í a d ư ớ i của m ỗ i cửa sổ c ó m ộ t đ o ạ n v i ề n đ ơ n B ấ m chuột v à o đ â y r ồ i r ê đ ể thay đ ổ i k í c h thước của cửa sổ
* Thanh cuốn dọc và thanh cuốn ngang
Đ â y là hai thanh n ằ m t r ê n c ạ n h p h ả i và cạnh đ á y của cửa sổ T r ê n hai đ ầ u
m ú t của m ỗ i thanh c ó hai nút h ì n h tam g i á c n h ỏ ở giữa m ỗ i thanh c u ố n c ó
m ộ t con chạy h ì n h c h ữ nhật C á c nút tam g i á c d ù n g đ ể c u ố n cửa sổ theo c h i ề u
c h ư ơ n g t r ì n h của b ạ n M ỗ i cửa sổ n à y t ư ơ n g ứng v ớ i m ộ t t ệ p t r ê n đĩa N ế u c ó
n h i ề u cửa s ố ứng v ớ i c ù n g m ộ t t ệ p th ì c h ú n g sẽ đư ợ c đ á n h s ố b ê n c ạ n h tiê u đ ề của cửa sổ
* Cửa sổ thông báo
L à nơi x u ấ t h i ệ n c á c t h ô n g b á o trong q u á t r ì n h dịch hoặc c h ạ y t h ử c h ư ơ n g trình T i ê u đ ề của cửa sổ n à y l u ô n l u ô n là Message B ạ n c ó t h ể cất cửa sổ n à y
đi cho k h ỏ i v ư ớ n g víu, n h ư n g m ỗ i k h i c ó gì cần trao đ ổ i v ớ i b ạ n t h ì cửa sổ n à y
đ a n g thực h i ệ n n g o à i t ầ m t á c d ụ n g của b i ế n đ ó
Trang 22* Cửa sổ Registers
N ế u b ạ n c ó h ứ n g th ú theo d õ i x e m c á c thanh g h i b i ế n đ ổ i n h ư t h ế n à o sau
m ỗ i bước thực h i ệ n của c h ư ơ n g t r ì n h thì m ở cửa sổ n à y
* Cửa sổ Proịect
Đ â y là cửa sổ lưu g i ữ c á c t h ô n g t i n v ề m ộ t d ự á n , bao g ồ m t ê n v à đ ư ờ n g
d ẫ n của c á c tệp liên quan đ ế n d ự á n B ạ n c ó t h ể truy cập d ễ d à n g v à o b ấ t k ỳ tệp
n à o trong đ ó m à k h ô n g m ấ t c ô n g t ì m k i ế m
* Cửa sổ Project notes
T r o n g q u á t r ì n h x â y d ự n g m ộ t d ự á n , b ạ n cần g h i c h é p t ấ t cả n h ữ n g gì cần phải l à m , những gì đ a n g l à m , những gì đ ã l à m , k ế t q u ả c ô n g v i ệ c , n h ữ n g thắc mắc, những p h á t h i ệ n , n h ữ n g thay đ ổ i Cửa sổ n à y là c h ỗ l à m v i ệ c đ ó
C h ú ý là: Đ ể m ở cửa sổ soạn thảo thì v à o m e n u File Đ ể m ở c á c cửa sổ
N ế u k h ô n g p h ả i là
l ầ n đ ầ u t h ì t ệ p đ ư ợ c cập nhật
Trang 23tên có sẵn tức là ghi
đè, chú ý trả l ờ i Yes hay N o cho đ ú n g
T ấ t cả các tệp h i ệ n
đ a n g m ở sẽ được cập nhật lên đĩa
A l t - W , z W i n d o w \ Z o o m F5
Phóng đ ạ i / Phục h ồ i
Cửa sổ trở t h à n h v i ề n
đ ơ n liên tục, tiêu đ ề ,
c á c thanh cuố n và cá c chi t i ế t k h á c t r ê n
Trang 24H ì n h 4 C á c l ệ n h c h í n h t r ê n c ử a sổ
Trang 252 C á c l ệ n h s o ạ n t h ả o
C á c l ệ n h n à y được thực h i ệ n bằng các p h í m hoặc tổ hợp p h ú n trên b à n p h ú n
nếu k h ô n g d ù n g chuột C ó th ể lựa chọ n tập hợp l ệ n h b ằ n g c á c h chọ n men u
n à o đ ó trong cửa sổ soạn thảo và
K h i sử d ụ n g cửa sổ trợ g i ú p , n ế u
c ó c h ư ơ n g trìn h m ẫ u , c ó th ể thực
h i ệ n c á c thao t á c sao c h é p t h ô n g thường đ ể c h é p sang tệp m ớ i và
chạy thử N ế u d ù n g l ệ n h n à y thì
d ễ chịu h ơ n n h i ề u B ạ n tiết k i ệ m đươc thao tác đ á n h d ấ u chon
H ì n h 5 C á c l ệ n h s o ạ n t h ả o
Trang 27ext t o Fi sOptnons
K Ị Case-sensĩtive
»[X] | b o l e mrổs only
ĩ ĩ Reọular expressian
Global Selected text
ữirection (•} Forward
c } Eadcwarđ
Ongin ( ) Fron cursor (») Entire scope
"im" Tim từ trên xuống, trong toàn bộ đoạn văn bản đã chọn Trước hết bạn
Trang 28t ĩ Rẹgulạr expressìon
ĩ ĩ Prõmpt ôn replace Global
Selected text
ƠI rection C»J Forward
c 3 Backward
Ongin
c 5 Fro«a cưrsor
CÓ Entire stx>pe Change mi li Carvce LU L Help
Consĩder only whole word$ during search
H ì n h 9 C ử a s ổ t h a y t h ế
3 L ư u t ệ p
Hãy nhớ thường xuyên lưu chương trình mà bạn mất công sáng tạo ra
C h ọ n File\Save hoặc ấn nút E m Đ ặ t t ê n cho c h ư ơ n g t r ì n h ( n ế u c h ư ơ n g t r ì n h
c ó t ê n là N O N A M E x x C C h ú ý: Đ ừ n g cho p h ầ n m ở r ộ n g , n ế u k h ô n g b ạ n sẽ gặp rắc r ố i ) , v à ấn O K
Chọn CompiIe\Make Nếu chương trình gồm nhiều modul, trong đó các
t ệ p n g u ồ n (*.c, * H , *.C) hoặc c á c t ệ p *.OBJ hoặc * L I B m ớ i đ ư ợ c d ị c h l ạ i c ó
Trang 29Đ ể cất bớt m ộ t t ệ p , h ã y l ậ t n ó lên trên c ù n g (lúc đ ó cửa sổ đ ó sẽ c ó k h u n g
v i ề n nét k é p ) v à ấn A L T - ị j j p hoặc b ấ m v à o nú t Close của than h tiê u đ ề I D E
IV VIẾT CHƯƠNG TRÌNH ĐẦU TAY
T r ư ớ c m ặ t b ạ n là m ộ t ô cửa sổ m à u xanh m ớ i t i n h k h ô i c ó tiêu đ ề là
- Lựa c h ọ n sau k h i đ ã k í c h hoạt Menu: P B 3 B
- D ù n g chuột: C h ọ n đ â u thì Click chuột v à o đ ó
V ì là cửa sổ m ớ i c h ư a ứng v ớ i tệp n à o n ê n t ê n t ạ m t h ờ i của cửa sổ là
N O N A M E 0 0 C
Trang 30ĩ- : r.-i
F ỉ to %f I"h k'Ị in í í"' Prnirrt Or;t sns
ri vjvS«» vịww VÍU' tiũíhầ <stdìo,h >
Trang 31Đ ừ n g cho r ằ n g c á i n à y k h ô n g c ầ n , c á i k i a n ê n thay b ằ n g c á i g ì k h á c , hoặc
d ù n g d ấ u ngoặc m ó c thay cho d ấ u ngoặc t r ò n t r ô n g sẽ đ ẹ p h ơ n D ù c là
n g ô n n g ữ m ề m d ẻ o p h ó n g k h o á n g , n h ư n g c ũ n g k h ô n g c ó c h ỗ cho sự c ẩ u t h ả
tuy t i ệ n
H o à n t o à n c ó t h ể g h é p vài ba d ò n g l ạ i l à m m ộ t n ế u p h ả i t i ế t k i ệ m k h ô n g gian T u y n h i ê n k h ô n g n ê n l à m n h ư t h ế , và k h ô n g c ó lý do gì đ ế bạn p h ả i tiết
k i ệ m cả N g a y cả c á c d ò n g t r ố n g cũng rất c ó í c h trong việc l à m cho c h ư ơ n g trình c ù a bạn s á n g sủa, r õ r à n g N ê n tập trình b à y c h ư ơ n g t r ì n h của m ì n h theo
đ ú n g phong c á c h của ví d ụ n à y ngay từ b â y g i ờ
1 G h i v à đ ặ t t ê n t ệ p
C h ọ n m e n u F i l e \ S a v e T r o n g h ộ p t h o ạ i h i ệ n ra sau đ ó , đ ặ t t ê n cho t ệ p
là V D 0 1 C C h ỉ c ầ n g õ V D 0 1 la đ ủ H ậ u t ố c sẽ do B O R L A N D c t h ê m
v à o T r ê n t i ê u đ ề c ủ a c ử a s ổ b ạ n sẽ t h ấ y k h ô n g p h ả i l à N O N A M E 0 0 C nữa m à là V D 0 1 C N ế u b ạ n t ự ý cho m ộ t h ậ u t ố n à o k h á c t h ì c h ắ c c h ắ n
sẽ g ặ p r ắ c r ố i k h i b i ê n d ị c h í t n h ấ t l à b ạ n sẽ k h ô n g t ậ n d ụ n g đ ư ợ c c h ứ c
n ă n g t r ợ g i ú p c ú p h á p t r o n g q u á t r ì n h s o ạ n t h ả o C h ứ c n ă n g n à y p h â n b i ệ t
c á c t h à n h p h ầ n c ú p h á p t r o n g c h ư ơ n g t r ì n h v à h i ể n t h ị c h ú n g v ớ i c á c m à u
đ ặ c t r ư n g
Trang 333 K ế t t h ú c p h i ê n l à m v i ệ c t r ê n B O R L A N D C + + I D E
T h a o t á c c u ố i c ù n g b ạ n cần biết trước k h i k ế t t h ú c b à i n à y là ra k h ỏ i
B O R L A N D C + + I D E R ấ t đ ơ n g i ả n : C h ọ n F i l e \ ( 2 u i t hoặc A L T - 0 N ế u b ạ n
c ó tệp n à o đ ã m ở , đ ã sửa m à c h ư a lưu hoặc c h ư a đ ặ t t ê n thì B O R L A N D C + +
I D E sẽ h ỏ i c ó lưu k h ô n g N ế u bạn trả l ờ i Y E S thì I D E sẽ y ê u cầu đ ặ t tên (nếu tệp là N O N A M E x x C ) , và sau đ ó lun tệp v à o đĩa c ẩ n thận, đ ã c ó n h i ề u bạn bị
m ấ t tệp oan vì l à m sai c h ỗ n à y Trước k h i c h ọ n Yes hay N o , cần b i ế t là Yes
Trang 34c h ư ơ n g t r ì n h N ế u cho a và b k h i l ậ p t r ì n h t h ì c h ư ơ n g t r ì n h của c h ú n g ta
k h ô n g đ á n g đ ư ợ c g ọ i là c h ư ơ n g t r ì n h , vì n ó c h ỉ d ù n g đ ể g i ả i c ó m ộ t t r ư ờ n g hợp d u y n h ấ t của l o ạ i b à i t o á n t í n h d i ệ n t í c h h ì n h c h ữ n h ậ t ( t h à l ấ y m á y t í n h
3.2 K h a i b á o b i ê n
C ó t h ể khai b á o c á c b i ế n b ê n n g o à i hoặc b ê n trong h à m m a i n
Trang 35K h a i b á o c á c
b i ế n a b s
Cú pháp của c chuẩn ANSI đòi hỏi phái khai báo các biến cục bộ ở đầu các khối C++ cải tiến cho phép khai báo biến ở vị trí bất kỳ, mục đích là để khai báo biến ở gần với chỗ nó được sử dụng
k h o á n g trống, sau đ ó ấn f f l f f E H C ũ n g c ó thể g õ giá trị của a, sau đ ó án
r ồ i g õ t i ế p g i á trị của b, r ồ i ấn
E n t e r
E n t e r
Trang 37/ * K h a i bao b i ê n * / / * B á t d â u ham m i n *./
Trang 383.9 C h ú t h í c h
T r o n g c h ư ơ n g t r ì n h trên, t ấ t cả những gì được bao giữa hai c ặ p k ý t ự / * và
*/ được coi là c h ú t h í c h C á c c h ú t h í c h sẽ bị c h ư ơ n g t r ì n h b i ê n d ị c h b ỏ qua Sau cặp ký tự li cũng là chú thích viết theo kiểu của C+ + Chú thích đó chỉ trong phạm vi một dòng Đưa ra một ví dụ ở đây để các bạn tham khảo
B ạ n h ã y g õ c ẩ n t h ậ n c h ư ơ n g t r ì n h t r ê n đ â y , lưu v à đ ặ t t ê n là V D 0 2 C , dịch
và chạy thử N ế u c ó l ỗ i thì c ố g ắ n g x e m đ ó là l ỗ i gì, t ì m và sửa l ỗ i C h ú ý c á c
d ấ u c h ấ m phẩy, c á c c h ữ v i ế t hoa, v i ế t t h ư ờ n g , c á c d ấ u ngoặc L ấ y c h ư ơ n g t r ì n h
n à y l à m m ẫ u đ ể v i ế t c á c c h ư ơ n g trình đ ơ n g i ả n k h á c trong p h ầ n b à i tập
Trang 39T r o n g B O R L A N D C + + I D E trên c á c m á y I B M PC và t ư ơ n g t h í c h , b ạ n c ó thể lựa c h ọ n l ậ p t r ì n h theo n g ô n n g ữ T u r b o C + + , A N S I c , c t r ê n Ư N I X V , hay
c K e r n i g h a n & R i t c h i e (C n g u y ê n t h ú y ) N ế u d ù n g T u r b o C + + , b ạ n sẽ sử d ụ n g được tất cả n h ữ n g s á n g tạo, c ả i t i ế n của h ã n g B O R L A N D trong m ô i trường DOS trên p h ầ n c ứ n g của m á y I B M PC và b ộ v i x ử lý của Intel c ù n g v ớ i b ộ p h ố i
g h é p đ ồ hoa, đ i ề u k h i ể n m à n h ì n h của m á y PC B ạ n c ò n c ó t h ể d ù n g l u ô n cả các l ệ n h của C + + , v à h ơ n nữa, b ạ n c ó t h ể l ậ p t r ì n h h ư ớ n g đ ố i t ư ợ n g C ò n nếu bạn m u ố n l ậ p t r ì n h theo đ ú n g "tinh t h ầ n của C" thì c h ọ n A N S I c C á c ví d ụ trong g i á o t r ì n h n à y sẽ t ự h ạ n c h ế đ ể chỉ dịch v ớ i A N S I c T u y n h i ê n , l à m việc
Trang 40Chú ý: Ngôn ngữ c phân biệt chữ hoa, chữ thường (A hoàn toàn khác với
a, Hanoi khác với HAN OI); không đánh đồng dấu trừ - với dấu gạch nối _, chữ o với số 0, chữ ỉ với số 1 Các loại dấu ngoặc có công dụng hoàn toàn khác nhau, các dấu chấm, dấu phẩy, dấu chấm phẩy, dấu hai chấm không bao giờ được thay thế cho nhau
III BỘ TỪ KHÓA
T ừ khoa là c á c t ừ đ ư ợ c tạo ra t ừ b ộ k ý tự, t h ư ờ n g chỉ c ó c á c c h ữ c á i t ừ 'a'
đ ế n 'z' và d ấ u g ạ c h n ố i M ỗ i t ừ khoa c ó m ộ t ý nghĩa x á c đ ị n h , c h ỉ đ ư ợ c p h é p sử
d ụ n g từ khoa đ ú n g theo c ú p h á p đ ã quy đ ị n h của t ừ k h o a đ ó D a n h s á c h d ư ớ i
đ â y bao g ồ m c á c t ừ khoa của c và C + + B O R L A N D C + + I D E h i ể n t h ị c á c từ khoa v ớ i m à u t r ắ n g t r ê n n ề n xanh n ế u b ạ n c h ư a thay đ ổ i q u y ước v ề m à u b ằ n g