intTypePromotion=1

Giáo trình Ngôn ngữ lập trình C: Phần 1

Chia sẻ: Năm Tháng | Ngày: | Loại File: PDF | Số trang:152

0
102
lượt xem
30
download

Giáo trình Ngôn ngữ lập trình C: Phần 1

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Phần 1 giáo trình Ngôn ngữ lập trình C cung cấp cho người học các nội dung: Các khái niệm cơ bản, môi trường lập trình C, các thành phần cơ bản của ngôn ngữ C, biểu thức, vào ra cơ bản, các cấu trúc điều khiển, kiểu con trỏ, hàm. Mời các bạn cùng tham khảo

Chủ đề:
Lưu

Nội dung Text: Giáo trình Ngôn ngữ lập trình C: Phần 1

  1. s ở GIÁO DỤC VÀ Đ À O TẠO H À N Ộ I L Ê VĂN H U Ỳ N H (Chủ biên) G I A O T R I N H NGON NGỮ LẬP TRÌNH c (Dùng trong các trường THON) N H À X U Ấ T B Ả N H À N Ộ I - 2007
  2. L ờ i giới thiê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 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 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ệ 3
  3. thố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Ở G I Á O DỤC V À Đ À O TẠO ị
  4. Lờ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 5
  5. biế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 6
  6. 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
  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
  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
  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 năm 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ữ 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
  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
  11. 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ì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. 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 c - Trong đó có các thư mục BIN, INCLUDE, INCLƯDEXSYS, BGI, LIB, EXAMPLES. 12
  12. - 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 B G I c ó c á c tệp . B Ó I , . C H R . ví d ụ EGAVGA.BGI, GOTH.CHR. 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 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. • 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
  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: C:\MYPROG 14
  14. - 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 ĩd"'t Search Run Ccrp- C-ebug Prcj ẹ s = = = .i4,:, -,.r,s * = CONST.CPP ? ĩ #inelude •ũũ ' * &t * en Corapiler #defĩne PI 3.1416926 «đefine HI l o le generatĩon. #dẹfine H2 l o dvancêd ccd« aenerat"ôn. 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
  15. M e n u O p t i o n s sẽ t r ả i x u ố n g v à trong đ ó ta t h ấ y c ó r ấ t n h i ề u m ụ c chọn. Đ ừ n g tự ý c h ọ n bừa m à h ã y t u â n theo chỉ d ẫ n sau đ â y : • Chọn C o m p i l e r , trong đ ó chọn Code generation..., trong đ ó c h ọ n Small. • Chọn C o m p i l e r , trong đ ó chọn Ạ d v a n c e d code g e n e r a t i o n . . . Trong Floating point chọn 80287. • C h ọ n D i r e c t o r i e s . . . , t r o n g đ ó k i ế m tra x e m : - Ịnclude d i r e c t o r i e s c ó đ ú n g là đ ư ờ n g d ẫ n t ớ i t h ư m ụ c c h ứ a c á c t ệ p * . H hay k h ô n g . N ế u sai t h ì sửa l ạ i cho đ ú n g , n ế u t h i ế u t h ì t h ê m v à o v ì c á c t ệ p n à y c ó t h ể đ ể t r o n g n h i ề u t h ư m ụ c k h á c nhau. H a i đ ư ờ n g d ẫ n c á c h n h a u m ộ t d ấ u c h ấ m phẩy. - L i b r a r y d i r e c t o r i e s c ó đ ú n g là đ ư ờ n g d ẫ n t ớ i t h ư m ụ c c h ứ a c á c t ệ p * . L I B hay k h ô n g . N ế u sai t h ì sửa l ạ i hoặc t h ê m v à o . - O u t p u t d i r e c t o r y : Bạn n ê n tạo m ộ t thư mục r i ê n g n à o đ ó và đ ặ t đường d ẫ n đ ầ y đ ủ của t h ư m ụ c đ ó t ạ i đ â y đ ể m ỗ i k h i b ạ n d ị c h c h ư ơ n g t r ì n h của b ạ n , b á n dịch sẽ đ ư ợ c x ế p g ọ n g à n g v à o n ơ i n à y . • Chọn Options\Environment\Preferences, trong đ ó chọn A u t o Save, g ạ c h c h é o v à o E d i t o r F i l e s . Đ i ề u n à y đ ả m b ả o trước m ỗ i l ầ n c h ạ y t h ử c h ư ơ n g t r ì n h đ ư ợ c l u n l ạ i t r ê n đĩa. K h i l ậ p t r ì n h c , chắc c h ắ n b ạ n sẽ n h i ề u l ầ n bị treo m á y . N ế u k h ô n g l à m thao t á c n à y , b ạ n d ễ c ó n g u y c ơ t h ấ y m ấ t c h ư ơ n g t r ì n h m à không có c á c h nào cứu l ạ i . • Đê lưu l ạ i c á c thay đ ổ i , c h ọ n Options\Save, gạch chéo vào mục E n v i r o n m e n t và chọn O K . • N g o à i ra, c h ư a n ê n t h ử l à m đ i ề u g ì k h á c cả. Đ ể chọn mục n à o đ ó trong các hộp thoại bạn t h ử d ù n g c á c p h í m Tab t ị 5 5 5 5 Đ ế 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
  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. (32 • X CONST.CPP ihncluđe #defĩne f >l 3.1416926 #define HtL 10 #define H2 l o ! = [ • ] = HELP COKTEMTS •ị flọat prĩntf HOM t o Use Help L _ pr"intf Menus and Hót Keys I— printf prìnrtí Editor Coraraands #undẹf PI #đefine RI Assembler (buịlt-in) Functions #undef m Coranand LÌ ne CTC) Header Files L_ _ 3:3 • Caonand Line uCC) l ữ5t re am classes 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
  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 • X BU #ĩ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 = 2.7; 5KL0.2f"» printfr\rtML0.2f + 50.0.2f sao; 2? % prịntf("\i*l0.2f * KLQ,2f %w.2f" pri o t f ("\n5O0.2f +• KIO. 2f í p r i ntFr\n5O.0.2f + %L0.2f getchõ; • ĩ ——— Project: Vãich F i l e nạn®; ARĨT.LI8 BRIT.CPP f l Hteìp tt Save F3 ũpett Alt-F9 Cowpi1e F3 Make n e Menu 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
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2