intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Lập trình cơ bản với C++: Phần 1

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:77

20
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình Lập trình cơ bản với C++ kết cấu gồm 8 chương và được chia thành 2 phần, phần 1 gồm 4 chương đầu, cung cấp cho sinh viên những kiến thức cơ bản về lập trình, ngôn ngữ lập trình, chương trình dịch; biến, kiểu dữ liệu và các phép toán; các cấu trúc điều khiển; thuật toán; hàm;... Mời các bạn cùng tham khảo chi tiết nội dung giáo trình!

Chủ đề:
Lưu

Nội dung Text: Giáo trình Lập trình cơ bản với C++: Phần 1

  1. Hồ Sĩ Đàm, Trần Thị Minh Châu, Lê Sỹ Vinh GIÁO TRÌNH LẬP TRÌNH CƠ BẢN VỚI C++ NXB Đại học Quốc gia
  2. M cl c Gi i thi u...........................................................................................................6 Chương 1. M u .........................................................................................8 1.1. Chương trình là gì?.............................................................................8 1.2. L p trình là gì? ...................................................................................8 1.2.1. M c cao c l p v i máy tính ......................................................8 1.2.2. M c th p ph thu c vào máy tính ..............................................10 1.3. Ngôn ng l p trình và chương trình d ch ..........................................10 1.4. Môi trư ng l p trình b c cao.............................................................11 1.5. L i và tìm l i ....................................................................................13 1.6. L ch s C và C++ .............................................................................14 1.7. Chương trình C++ u tiên ...............................................................15 Bài t p .........................................................................................................19 Chương 2. Bi n, ki u d li u và các phép toán ............................................20 2.1. Ki u d li u......................................................................................22 2.1.1. Ki u d li u cơ b n ....................................................................22 2.1.2. Ki u d li u d n xu t .................................................................24 2.2. Khai báo và s d ng bi n .................................................................24 2.2.1. nh danh và cách t tên bi n ...................................................24 2.2.2. Khai báo bi n .............................................................................25 2.3. H ng.................................................................................................25 2.4. Các phép toán cơ b n........................................................................26 2.4.1. Phép gán.....................................................................................26 2.4.2. Các phép toán s h c..................................................................26 2.4.3. Các phép toán quan h ................................................................27 1
  3. 2.4.4. Các phép toán lô-gic...................................................................28 2.4.5. ưu tiên c a các phép toán......................................................28 2.4.6. Tương thích gi a các ki u ..........................................................29 Bài t p .........................................................................................................30 Chương 3. Các c u trúc i u khi n ..............................................................31 3.1. Lu ng i u khi n..............................................................................31 3.2. Các c u trúc r nhánh .......................................................................32 3.2.1. L nh if-else ...........................................................................32 3.2.2. L nh switch .............................................................................38 3.3. Các c u trúc l p ................................................................................42 3.3.1. Vòng while...............................................................................42 3.3.2. Vòng do-while ........................................................................45 3.3.3. Vòng for ...................................................................................48 3.4. Thu t toán và các c u trúc i u khi n l ng nhau...............................50 3.5. Các l nh break và continue .........................................................53 3.6. Bi u th c i u ki n trong các c u trúc i u khi n.............................56 Bài t p .........................................................................................................58 Chương 4. Hàm............................................................................................59 4.1. C u trúc chung c a hàm ...................................................................60 4.2. Cách s d ng hàm ............................................................................62 4.3. Các hàm có s n.................................................................................60 4.4. Bi n toàn c c và bi n a phương .....................................................63 4.4.1. Ph m vi c a bi n ........................................................................63 4.4.2. Th i gian s ng c a bi n..............................................................65 4.5. Tham s , i s , và cơ ch truy n d li u cho hàm...........................66 2
  4. 4.5.1. Truy n giá tr ..............................................................................66 4.5.2. Truy n tham chi u......................................................................67 4.5.3. Tham s m c nh ......................................................................70 4.6. Hàm trùng tên...................................................................................72 4.7. Hàm quy ......................................................................................73 Bài t p .........................................................................................................76 Chương 5. M ng và xâu kí t .......................................................................77 5.1. M ng m t chi u................................................................................77 5.1.1. Kh i t o m ng ............................................................................78 5.1.2. Trách nhi m ki m soát tính h p l c a ch s m ng....................78 5.1.3. M ng làm tham s cho hàm........................................................79 5.2. M ng nhi u chi u .............................................................................81 5.3. Xâu kí t ...........................................................................................82 5.3.1. Kh i t o giá tr cho xâu kí t ......................................................83 5.3.2. Thư vi n x lý xâu kí t .............................................................84 5.4. Tìm ki m và s p x p d li u trong m ng ..........................................84 5.4.1. Tìm ki m tuy n tính ...................................................................84 5.4.2. Tìm ki m nh phân .....................................................................86 5.4.3. S p x p ch n ..............................................................................87 Bài t p .........................................................................................................89 Chương 6. Con tr và b nh .......................................................................91 6.1. B nh máy tính ...............................................................................91 6.2. Bi n và a ch c a bi n....................................................................91 6.3. Bi n con tr ......................................................................................92 6.4. M ng và con tr ................................................................................94 3
  5. 6.5. B nh ng .....................................................................................95 6.5.1. C p phát b nh ng.................................................................96 6.5.2. Gi i phóng b nh ng .............................................................96 6.6. M ng ng và con tr .......................................................................97 6.7. Truy n tham s là con tr .................................................................99 Bài t p .......................................................................................................102 Chương 7. Các ki u d li u tr u tư ng ......................................................104 7.1. nh nghĩa ki u d li u tr u tư ng b ng c u trúc struct .................104 7.2. nh nghĩa ki u d li u tr u tư ng b ng c u trúc class ...............110 7.2.1. Quy n truy nh p .......................................................................113 7.2.2. Toán t ph m vi và nh nghĩa các hàm thành viên ..................114 7.2.3. Hàm kh i t o và hàm h y.........................................................115 7.3. L i ích c a l p trình hư ng i tư ng.............................................118 7.4. Biên d ch riêng r ...........................................................................119 Bài t p .......................................................................................................123 Chương 8. Vào ra d li u...........................................................................125 8.1. Khái ni m dòng d li u ..................................................................125 8.2. T p văn b n và t p nh phân ...........................................................126 8.3. Vào ra t p .......................................................................................126 8.3.1. M t p......................................................................................127 8.3.2. óng t p...................................................................................128 8.3.3. X lý t p văn b n .....................................................................129 8.3.4. X lý t p nh phân ....................................................................132 Bài t p .......................................................................................................136 Ph l c A. Phong cách l p trình .................................................................138 4
  6. Ph l c B. D ch chương trình C++ b ng GNU C++...................................142 Tài li u tham kh o .........................................................................................145 5
  7. Gi i thi u L p trình là m t trong nh ng bư c quan tr ng nh t trong quy trình gi i quy t m t bài toán. Nhi u ngôn ng l p trình ã ư c ra i nh m giúp chúng ta gi i quy t các bài toán m t cách hi u qu nh t. M i ngôn ng l p trình có nh ng th m nh và như c i m riêng. Các ngôn ng l p trình có th chia ra thành hai lo i chính là ngôn ng l p trình b c th p (g n gũi v i ngôn ng máy), và ngôn ng l p trình b c cao (ng n gũi v i ngôn ng t nhiên c a con ngư i). Giáo trình này trang b cho sinh viên nh ng ki n th c cơ b n v l p trình. Ngôn ng l p trình C++ ư c s d ng minh h a cho vi c l p trình. Vi c l a ch n C++ b i vì nó là m t ngôn ng l p trình hư ng i tư ng chuyên nghi p ư c s d ng r ng rãi trên toàn th gi i phát tri n các chương trình t ơn gi n n ph c t p. Hơn th n a, s m m d o c a C++ cho phép chúng ta gi i quy t nh ng bài toán th c t m t cách nhanh chóng, ngoài ra cho phép chúng ta qu n lý và tương tác tr c ti p n h th ng, b nh nâng cao hi u qu c a chương trình. Giáo trình ư c chia thành 8 chương, m i chương trình bày m t v n lý thuy t trong l p trình. Các v n lý thuy t ư c mô t b ng các ví d th c t . K t thúc m i chương là ph n bài t p sinh viên gi i quy t và n m rõ hơn v lý thuy t. C u trúc c a giáo trình như sau: • Chương 1: gi i thi u các khái ni m cơ b n v l p trình và quy trình gi i quy t m t bài toán. Sinh viên s hi u v ngôn ng l p trình b c cao và ngôn ng l p trình b c th p. Cu i chương chúng tôi gi i thi u v môi trư ng l p trình cũng như ngôn ng l p trình C++. • Chương 2: Chúng tôi gi i thi u các khái ni m cơ b n v bi n s , h ng s , các ki u d li u cơ b n và các phép toán cơ b n. Sau khi h c, sinh viên s bi t cách khai báo và s d ng bi n s , h ng s , và các phép toán trên bi n và h ng s . • Chương 3: Trương này gi i thi u v c u trúc chương trình cũng như các c u trúc i u khi n. C th là các c u r nhánh (if-else, switch), c u trúc l p (for- do, while-do, repeat) s ư c gi i thi u. • Chương 4: Chương trình con và hàm s ư c gi i thi u sinh viên hi u ư c chi n lư c l p trình “chia tr ”. Chúng tôi s trình bày chi ti t v 6
  8. cách khai báo và s d ng hàm, cũng như cách truy n tham s , truy n giá tr cho hàm. • Chương 5: Chương này trình bày c u trúc d li u ki u m ng và xâu kí t . Cách khai báo và s d ng m ng m t chi u cũng như m ng nhi u chi u và ví d liên quan ư c trình bày chi ti t chương này. • Chương 6: ây là m t chương tương i c thù cho C++, khi chúng tôi trình bày v b nh và ki u d li u con tr . C u trúc b nh , cách qu n lý và xin c p phép b nh ng thông qua vi c s d ng bi n con tr s ư c trình bày. • Chương 7: Trong chương này chúng tôi s trình bày v c u trúc d li u tr u tư ng (c th là struct và class trong C++). Sinh viên s hi u và bi t cách t o ra nh ng c u trúc d li u tr u tư ng phù h p v i các ki u i tư ng d li u c n bi u di n. Cu i chương, chúng tôi cũng gi i thi u v l p trình hư ng i tư ng, m t th m nh c a ngôn ng l p trình C++. • Chương 8: Chúng tôi gi i thi u v cách vào ra d li u. Sinh viên s ư c gi i thi u chi ti t v cách làm vi c v i các t p d li u. 7
  9. Chương 1. M u Trong chương này, chúng tôi s gi i thi u qua m t s khái ni m cơ b n v : chương trình, l p trình, ngôn ng l p trình. 1.1. Chương trình là gì? B n ch c ch n ã dùng qua nhi u chương trình khác nhau, ví d như chương trình so n th o văn b n “Microsoft Word”. Chương trình, hay ph n m m, ư c hi u ơn gi n là m t t p các l nh máy tính th c hi n theo. Khi b n ưa cho máy tính m t chương trình và yêu c u máy tính th c hi n theo các l nh c a chương trình, b n ang ch y chương trình ó. 1.2. L p trình là gì? L p trình là có th hi u ơn gi n là quá trình vi t ra các l nh hư ng d n máy tính th c hi n gi i quy t m t bài toán c th nào ó. L p trình là m t bư c quan tr ng trong quy trình gi i quy t m t bài toán như mô t Hình 1.1. chương trình d ch trình so n th o bút/gi y bút/gi y Hình 1.1: Quy trình gi i quy t m t bài toán. Quy trình trên có th ư c chia ra thành hai m c: m c cao c l p v i máy tính (machine independent) và m c th p ph thu c vào máy tính (machine specific). 1.2.1. M c cao c l p v i máy tính M c cao c l p v i máy tính thư ng ư c chia thành ba bư c chính là: xác nh v n , thi t k thu t toán và l p trình. 8
  10. Xác nh v n : Bư c này nh nghĩa bài toán, xác nh d li u u vào, các ràng bu c, yêu c u c n gi i quy t và k t qu u ra. Bư c này thư ng s d ng bút/gi y và ngôn ng t nhiên như ti ng Anh, ti ng Vi t mô t và xác nh v n c n gi i quy t. Thi t k thu t toán: M t thu t toán là m t b các ch d n nh m gi i quy t m t bài toán. Các ch d n này c n ư c di n t m t cách hoàn ch nh và chính xác sao cho m i ngư i có th hi u và ti n hành theo. Thu t toán thư ng ư c mô t dư i d ng mã gi (pseudocode). Bư c này có th s d ng gi y bút và thư ng không ph thu c vào ngôn ng l p trình. Ví d v thu t toán “tìm ư c s chung l n nh t (UCLN) c a hai s x và y” vi t b ng ngôn ng t nhiên: • Bư c 1: N u x>y thì thay x b ng ph n dư c a phép chia x/y. • Bư c 2: N u không, thay y b ng ph n dư c a phép chia y/x. • Bư c 3: N u trong hai s x và y có m t s b ng 0 thì k t lu n UCLN là s còn l i. • Bư c 4: N u không, quay l i Bư c 1. ho c b ng mã gi : repeat if x > y then x := x mod y else y := y mod x until x = 0 or y = 0 if x = 0 then UCLN := y else UCLN := x L p trình là bư c chuy n i thu t toán sang m t ngôn ng l p trình, ph bi n là các ngôn ng l p trình b c cao, ví d như các ngôn ng C++, Java. Bư c này, l p trình viên s d ng m t chương trình so n th o văn b n vi t chương trình. Trong và sau quá trình l p trình, ngư i ta ph i ti n hành ki m th và s a l i chương trình. Có ba lo i l i thư ng g p: l i cú pháp, l i trong th i gian ch y, và l i lô-gic (xem chi ti t M c 1.5). 9
  11. 1.2.2. M c th p ph thu c vào máy tính Các ngôn ng l p trình b c cao, ví d như C, C++, Java, Visual Basic, C#, ư c thi t k con ngư i tương i d hi u và d s d ng. Tuy nhiên, máy tính không hi u ư c các ngôn ng b c cao. Do ó, trư c khi m t chương trình vi t b ng ngôn ng b c cao có th ch y ư c, nó ph i ư c d ch sang ngôn ng máy, hay còn g i là mã máy, mà máy tính có th hi u và th c hi n ư c. Vi c d ch ó ư c th c hi n b i m t chương trình máy tính g i là chương trình d ch. 1.3. Ngôn ng l p trình và chương trình d ch Như chúng ta th y, quá trình gi i quy t m t bài toán thông qua các bư c khác nhau chuy n i t ngôn ng t nhiên mà con ngư i hi u ư c sang ngôn ng máy mà máy tính có th hi u và th c hi n ư c. Ngôn ng l p trình thư ng ư c chia ra thành hai lo i: ngôn ng l p trình b c th p và ngôn ng l p trình b c cao. Ngôn ng l p trình b c th p như h p ng (assembly language) ho c mã máy là ngôn ng g n v i ngôn ng máy mà máy tính có th hi u ư c. c i m chính c a các ngôn ng này là chúng có liên quan ch t ch n ph n c ng c a máy tính. Các h máy tính khác nhau s d ng các ngôn ng khác nhau. Chương trình vi t b ng các ngôn ng này có th ch y mà không c n qua chương trình d ch. Các ngôn ng b c th p có th dùng vi t nh ng chương trình c n t i ưu hóa v t c . Tuy nhiên, chúng thư ng khó hi u i v i con ngư i và không thu n ti n cho vi c l p trình. Ngôn ng l p trình b c cao như Pascal, Ada, C, C++, Java, Visual Basic, Python, … là các ngôn ng có m c tr u tư ng hóa cao, g n v i ngôn ng t nhiên c a con ngư i hơn. Vi c s d ng các ngôn ng này cho vi c l p trình do ó d dàng hơn và nhanh hơn r t nhi u so v i ngôn ng l p trình b c th p. Khác v i ngôn ng b c th p, chương trình vi t b ng các ngôn ng b c cao nói chung có th s d ng ư c trên nhi u lo i máy tính khác nhau. Các chương trình vi t b ng m t ngôn ng b c cao mu n ch y ư c thì ph i ư c d ch sang ngôn ng máy b ng cách s d ng chương trình d ch. Chương trình d ch có th chia ra thành hai lo i là trình biên d ch và trình thông d ch. M t s ngôn ng b c cao như C, C++ yêu c u lo i chương trình d ch ư c g i là trình biên d ch (compiler). Trình biên d ch d ch mã ngu n thành mã máy – d ng có th th c thi ư c. K t qu c a vi c d ch là m t chương trình th c thi ư c và có th ch y nhi u l n mà không c n d ch l i. Ví d , v i ngôn ng C++ 10
  12. m t trình biên d ch r t ph bi n là gcc/g++ trong b GNU Compiler Collection (GCC) ch y trong các môi trư ng Unix/Linux cũng như Windows. Ngoài ra, Microsoft Visual C++ là trình biên d ch C++ ph bi n nh t trong môi trư ng Windows. M t s ngôn ng b c cao khác như Perl, Python yêu c u lo i chương trình d ch g i là trình thông d ch (interpreter). Khác v i trình biên d ch, thay vì d ch toàn b chương trình m t l n, trình thông d ch v a d ch v a ch y chương trình, d ch n âu ch y chương trình n ó. Trong môn h c này, C++ ư c ch n làm ngôn ng th hi n. ây là m t trong nh ng ngôn ng l p trình chuyên nghi p ư c s d ng r ng rãi nh t trên th gi i. Trong ph m vi nh p môn c a môn h c này, C++ ch ư c gi i thi u m c r t cơ b n, r t nhi u tính năng m nh c a C++ s không ư c nói n ho c ch ư c gi i thi u sơ qua. Ngư i h c nên ti p t c tìm hi u v ngôn ng C++, vư t ra ngoài gi i h n c a cu n sách này. 1.4. Môi trư ng l p trình b c cao l p trình gi i quy t m t bài toán b ng ngôn ng l p trình b c cao, b n c n có công c chính là: chương trình so n th o, chương trình d ch dành cho ngôn ng s d ng, và các thư vi n chu n c a ngôn ng s d ng (standard library), và chương trình tìm l i (debugger). Các bư c cơ b n xây d ng và th c hi n m t chương trình: 1. So n th o: Mã ngu n chương trình ư c vi t b ng m t ph n m m so n th o văn b n d ng text và lưu trên ĩa. Ta có th dùng nh ng ph n m m so n th o văn b n ơn gi n nh t như Notepad (trong môi trư ng Windows) hay vi (trong môi trư ng Unix/Linux), ho c các công c so n th o trong môi trư ng tích h p vi t mã ngu n chương trình. Mã ngu n C++ thư ng t trong các t p v i tên có ph n m r ng là .cpp, cxx, .cc, ho c .C (vi t hoa). 2. D ch: Dùng trình biên d ch d ch mã ngu n chương trình ra thành các o n mã máy riêng l (g i là “object code”) lưu trên ĩa. Các trình biên d ch ph bi n cho C++ là vc.exe trong b Microsoft Visual Studio hay gcc trong b GNU Compiler v i các tham s thích h p d ch và liên k t t o ra t p ch y ư c. V i C++, ngay trư c khi d ch còn có giai o n ti n x lý (preprocessing) khi các nh hư ng ti n x lý ư c th c thi làm các thao tác như b sung các t p văn b n c n d ch hay thay th m t s chu i văn b n. M ts nh hư ng ti n x lý quan tr ng s ư c gi i thi u d n trong cu n sách này. 11
  13. 3. Liên k t: M t t p mã ngu n thư ng không ch a y nh ng ph n c n thi t cho m t chương trình hoàn ch nh. Nó thư ng dùng n d li u ho c hàm ư c nh nghĩa trong các t p khác ho c trong thư vi n chu n. Trình liên k t (linker) k t n i các o n mã máy riêng l v i nhau và v i các thư vi n có s n t o ra m t chương trình mã máy hoàn ch nh ch y ư c. 4. N p: Trình n p (loader) s n p chương trình dư i d ng mã máy vào b nh . Các thành ph n b sung t thư vi n cũng ư c n p vào b nh . 5. Ch y: CPU nh n và th c hi n l n lư t các l nh c a chương trình, d li u và k t qu thư ng ư c ghi ra màn hình ho c ĩa. Thư ng thì không ph i chương trình nào cũng ch y ư c và ch y úng ngay l n ch y th u tiên. Chương trình có th có l i cú pháp nên không qua ư c bư c d ch, ho c chương trình d ch ư c nhưng g p l i trong khi ch y. Trong nh ng trư ng h p ó, l p trình viên ph i quay l i bư c so n th o s a l i và th c hi n l i các bư c sau ó. So n th o D ch Liên k t N p Ch y (edit) (compile) (link) (load) (execute) B nh ĩa Hình 1.2: Các bư c cơ b n xây d ng m t chương trình. thu n ti n cho vi c l p trình, các công c so n th o, d ch, liên k t, ch y... nói trên ư c k t h p l i trong m t môi trư ng l p trình tích h p (IDE – integrated development environment), trong ó, t t c các công o n i v i ngư i dùng ch còn là vi c ch y các tính năng trong m t ph n m m duy nh t. IDE r t h u ích cho các l p trình viên. Tuy nhiên, i v i nh ng ngư i m i h c l p trình, th i gian u nên t th c hi n các bư c d ch và ch y chương trình thay vì thông qua các ch c năng c a IDE. Như v y, ngư i h c s có th n m 12
  14. ư c b n ch t các bư c c a quá trình xây d ng chương trình, hi u ư c b n ch t và c i m chung c a các IDE, tránh tình tr ng b ph thu c vào m t IDE c th . Ví d v các IDE ph bi n là Microsoft Visual Studio – môi trư ng l p trình thương m i cho môi trư ng Windows, và Eclipse – ph n m m mi n phí v i các phiên b n cho c môi trư ng Windows cũng như Unix/Linux, c hai u h tr nhi u ngôn ng l p trình. Dành cho C++, m t s môi trư ng l p trình tích h p ph bi n là Microsoft Visual Studio, Dev-C++, Code::Blocks, KDevelop. M i môi trư ng có th h tr m t ho c nhi u trình biên d ch. Ch ng h n Code::Blocks h tr c GCC và MSVC Do C++ có các phiên b n khác nhau. Có nh ng b n cài t khác nhau c a C++. Các b n ra i trư c chu n C++ 1998 (ISO/IEC 14882) có th không h tr y các tính năng ư c c t trong chu n ANSI/ISO 1998. B n C++ do Microsoft phát tri n khác v i b n C++ c a GNU. Tuy nhiên, các trình biên d ch hi n i h u h t h tr C++ chu n, ta cũng nên ch n dùng các ph n m m này. Ngôn ng C++ ư c dùng trong cu n sách này tuân theo chu n ISO/IEC 14882, còn g i là "C++ thu n túy" (pure C++). 1.5. L i và tìm l i Trong và sau quá trình l p trình, chúng ta ph i ti n hành ki m th và s a l i chương trình. Có ba lo i l i thư ng g p: l i cú pháp, l i run-time và l i lô-gic. L i cú pháp là do l p trình viên vi t sai v i các quy t c cú pháp c a ngôn ng l p trình, ch ng h n thi u d u ch m ph y cu i l nh. Chương trình biên d ch s phát hi n ra các l i cú pháp và cung c p thông báo v v trí mà nó cho là có l i. N u trình biên d ch nói r ng chương trình có l i cú pháp thì ch c ch n là có l i cú pháp trong chương trình. Tuy nhiên, l i là ch nào thì trình biên d ch ch có th oán, và nó có th oán sai. L i run-time là l i xu t hi n trong khi chương trình ang ch y. L i d ng này s gây ra thông báo l i và ng ng chương trình. Ví d là khi chương trình th c hi n phép chia cho 0. L i lô-gic có nguyên nhân là do thu t toán không úng, ho c do l p trình viên g p sai sót khi th hi n thu t toán b ng ngôn ng l p trình (ví d vi t nh m d u c ng thành d u tr ). Khi có l i lô-gic, chương trình c a b n có th d ch và ch y bình thư ng, nhưng k t qu c a chương trình ưa ra l i có trư ng h p sai ho c 13
  15. ho t ng c a chương trình không như mong i. L i lô-gic là lo i l i khó tìm ra nh t. N u chương trình c a b n d ch và ch y không phát sinh thông báo l i, th m chí chương trình cho ra k t qu có úng v i m t vài b d li u test, i u ó không có nghĩa chương trình c a b n hoàn toàn không có l i. có th ch c ch n hơn v tính úng n c a chương trình, b n c n ch y th chương trình v i nhi u b d li u khác nhau và so sánh k t qu mà chương trình t o ra v i k t qu mong i. 1.6. L ch s C và C++ Ngôn ng l p trình C ư c t o ra b i Dennis Ritchie (phòng thí nghi m Bell) và ư c s d ng phát tri n h i u hành UNIX. M t trong nh ng c i m n i b t c a C là c l p v i ph n c ng (portable), t c là chương trình có th ch y trên các lo i máy tính và các h i u hành khác nhau. Năm 1983, ngôn ng C ã ư c chu n hóa và ư c g i là ANSI C b i Vi n chu n hóa qu c gia Hoa Kỳ (American National Standards Institute). Hi n nay ANSI C v n là ngôn ng l p trình chuyên nghi p và ư c s d ng r ng rãi phát tri n các h th ng tính toán hi u năng cao. Ngôn ng l p trình C++ do Bjarne Stroustrup (thu c phòng thí nghi m Bell) phát tri n trên n n là ngôn ng l p trình C và c m h ng chính t ngôn ng l p trình Simula67. So v i C, C++ là ngôn ng an toàn hơn, kh năng di n t cao hơn, và ít òi h i các k thu t b c th p. Ngoài nh ng th m nh th a k t C, C++ h tr tr u tư ng hóa d li u, l p trình hư ng i tư ng và l p trình t ng quát, C++ giúp xây d ng d dàng hơn nh ng h th ng l n và ph c t p. B t u t phiên b n u tiên năm 1979 v i cái tên "C with Classes" (C kèm l p i tư ng)1 v i các tính năng cơ b n c a l p trình hư ng i tư ng, C++ ư c phát tri n d n theo th i gian. Năm 1983, cái tên "C++" chính th c ra i, các tính năng như hàm o (virtual function), hàm trùng tên và nh nghĩa l i toán t (overloading), h ng ... ư c b sung. Năm 1989, C++ có thêm l p tr u tư ng, a th a k , hàm thành viên tĩnh, h ng hàm, và thành viên ki u protected. Các b sung cho C++ trong th p k sau ó là khuôn m u (template), không gian tên (namespace), ngo i l (exception), các toán t i ki u d li u m i, và ki u d 1 Theo l i k c a Bjarne Stroustrup t i trang cá nhân c a ông t i trang web c a phòng thí nghi m AT&T http://www2.research.att.com/~bs/bs_faq.html#invention 14
  16. li u Boolean. Năm 1998, l n u tiên C++ ư c chính th c chu n hóa qu c t b i t ch c ISO, k t qu là chu n ISO/IEC 148822. i kèm v i s phát tri n c a ngôn ng là s phát tri n c a thư vi n chu n C++. Bên c nh vi c tích h p thư vi n chu n truy n th ng c a C v i các s a i nh cho phù h p v i C++, thư vi n chu n C++ còn có thêm thư vi n stream I/O ph c v vi c vào ra d li u d ng dòng. Chu n C++ năm 1998 tích h p thêm ph n l n thư vi n STL (Standard Template Library – thư vi n khuôn m u chu n)3. Ph n này cung c p các c u trúc d li u r t h u ích như vector, danh sách, và các thu t toán như s p x p và tìm ki m. Hi n nay, C++ là m t trong các ngôn ng l p trình chuyên nghi p ư c s d ng r ng rãi nh t. 1.7. Chương trình C++ u tiên Chương trình ơn gi n trong Hình 1.3 s hi n ra màn hình dòng ch “Hello world!”. Trong chương trình có nh ng c i m quan tr ng c a C++. Ta s xem xét t ng dòng. 2 Văn b n này (ISO/IEC 14882:1998) sau ó ư c phát hi n l i ch nh s a vào năm 2003, thành phiên b n ISO/IEC 14882:2003. 3 STL v n không n m trong thư vi n chu n mà là m t thư vi n riêng do HP và sau ó là SGI phát tri n. 15
  17. Hình 1.3: Chương trình C++ u tiên. Hai dòng u tiên b t u b ng chu i // là các dòng chú thích chương trình. ó là ki u chú thích dòng ơn. Các dòng chú thích không gây ra ho t ng gì c a chương trình khi ch y, trình biên d ch b qua các dòng này. Ngoài ra còn có d ng chú thích ki u C dùng chu i /* và */ ánh d u i m b t u và k t thúc chú thích. Các l p trình viên dùng chú thích gi i thích và gi i thi u v n i dung chương trình. Dòng th ba, #include là m t nh hư ng ti n x lý (preprocessor directive) – ch d n v m t công vi c mà trình biên d ch c n th c hi n trư c khi d ch chương trình. #include là khai báo v thư vi n s ư c s d ng trong chương trình, trong trư ng h p này là thư vi n vào ra d li u iostream trong thư vi n chu n C++. Ti p theo là hàm main, ph n không th thi u c a m i chương trình C++. Nó b t u t dòng khai báo header c a hàm: int main() M i chương trình C++ thư ng bao g m m t ho c nhi u hàm, trong ó có úng m t hàm có tên main, ây là nơi chương trình b t u th c hi n và k t thúc. Bên trái t main là t khóa int, nó có nghĩa là hàm main s tr v m t giá tr là s nguyên. T khóa là nh ng t c bi t mà C++ dành riêng cho nh ng m c 16
  18. ích c th . Chương 4 s cung c p thông tin chi ti t v khái ni m hàm và vi c hàm tr v giá tr . Thân hàm main ư c b t u và k t thúc b i c p ngo c {}, bên trong ó là chu i các l nh mà khi chương trình ch y chúng s ư c th c hi n tu n t t l nh àu tiên cho n l nh cu i cùng. Hàm main trong ví d ang xét có ch a hai l nh. M i l nh u k t thúc b ng m t d u ch m ph y, các nh hư ng ti n x lý thì không. L nh th nh t g m cout, toán t
  19. n ây ta có th s a chương trình trong Hình 1.3 in ra l i chào "Hello world!" theo các cách khác nhau. Ch ng h n, ta có th in ra cùng m t n i dung như cũ nhưng b ng hai l nh g i cout: cout
  20. Bài t p 1. Trình bày các bư c chính gi i quy t m t bài toán. 2. T i sao c n ph i có chương trình d ch, s khác bi t gi a trình biên d ch và trình thông d ch? 3. S khác bi t gi a ngôn ng l p trình b c cao và ngôn ng l p trình b c th p? 4. Li t kê ra t t c các ngôn ng l p trình b c th p, b c cao mà b n bi t 5. Trình bày v môi trư ng l p trình b c cao. 6. Làm quen v i môi trư ng l p trình Dev-C. 7. Vi t m t chương trình C++ hi n ra màn hình tên c a b n. 8. Trình bày s khác bi t gi a C và C++. 9. Trình bày các lo i l i thư ng g p khi l p trình. 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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