Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Tự học adobe illustrator 8.0 thông qua hình ảnh...

Tài liệu Tự học adobe illustrator 8.0 thông qua hình ảnh

.PDF
532
13
76

Mô tả:

TÙ SÁCH KHKT ĐHBK HÀ NỘI Tống Đình Quỳ ) i' NGỐN NGV LẬP TRÌNH TỐNG ĐÌNH QUỲ (LÝ THUYẾT) NHÀ XUẤT BẢN THỐNG KÊ LỜI GIỚI THIỆU ể Thiết kế, viết và gõ rối chưởng trình máy tính là một công việc vô cùng thú vị nhưng cũng hết sức khó khăn. Hiện nay các nhà lập trình sử dụng nhiều ngôn ngữ khác nhau, trong đó C++ là một trong những ngôn ngữ thông dụng nhất. Ngoài những khó khăn thông thường của việc học lập trình, quá trình lập trình dùng ngôn ngữ C++ đặt ra đầy những thử thách, vì đây không phải là ngôn ngữ trò chơi như Pascal, hay một công cụ giảng dạy như Modula-2. C++ là ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng rã i nhất dựa trên ý tiíởĩiíí lập trình hướng đối tưỢng. Với mong muôn hỗ trỢ các nhà lập trình tương lai trong việc tìm hiểu về C++, nhóm tác giả ELI COM kết hỢp với trường Đại học Bách Khoa xin trân trong gửi tới các bạn cuôn “Ngôn ngữ lập trình C++ dành cho sinh viên”. Với cuốn sách này các bạn sinh viên sẽ nắm được những kiến thức cơ bản nhát của việc lập trình. N goài‘ra cuôn sách cũng tập trung vào mô hình lập trình hướng đối tượng. Đây thực sự là một thử thách vì phương pháp hướng dẫn ở đây đi ngược lạ i các phương pháp giảng dạy truyền thông về ngôn ngữ này. Phương pháp đổi mới này nhằm ưu tiên cho việc sử dụng các lớp, xây dựng cấu trúc dữ liệu nhò dùng các đô'i tượng và con trỏ, thao tác với cấu trúc dữ liệu . Cuốn sách không chỉ giới thiệu vê C++ mà còn giối thiệu cả về khoa học máy tính. Các ví dụ được xây dựng trên chính những trải nghiệm của các sinh viên. Các ví dụ cũng giúp sinh viên làm quen với các mặt tiên tiến của khoa học máy tính, những vấn để về kiến trúc máy tính, các ngôn ngữ lập trình và ‘^rình biên dịch, các cấu trúc dữ liệu và đồ họa. Song song với cuốh lý thuyết C++ dành cho sinh viên, nhóm táọ giả cũng cunị; cấp cho các bạn những bài tập thực hành thú vị và thiết thực qua cuốh C++ bài tập. Các cu(m sách này thực sự hỗ trỢ đác lực cho quá trình học tập của những bạiì trẻ yôu lập trình. TÁC GIẢ MỤC LỤC Chưtftìg 1. LÂP TRỈNH LÀ Gì? Giớitiỉệuchuang..................................................... 7 1.1. Bâitoân'Chú chuột ừong mê cung’...........................7 Bài tập -P h án 1 .....................................................11 1.2. Mảy áih vâ ngôn ngữ lập Irinh................................. 12 1.3. Chứơng Wnh và thiứt t ó n ....................................... 13 14. Các #)ực tế tremg lập Irhih..............................13 Tổng két..................1 ...........................................15 Chưotìg 2. CÁC PHẨN TỬ c o BẢN CỦA C++ G i ớ i m u ơ * m i ....................................................16 2.1. Hãchưemgừinhãan giản........................................ 16 2.2. Một diudng trbth pWrc tạp hon................................ 17 B ầ itậ p -^1 ........ ................................ 20 2.3 Tữímh danh.............. ..............................................21 2.4. B iãi..........................................................................21 2.5. Biểu thức................................................................. 22 2.6. Câu lệnh gán............................................................24 2.7. Hằng ký ........................................................... 26 2.8. Dồng c M ẩ íc h .........................................................26 2.9. Câu lệnh phức..........................................................27 2.10. Trwi bày chíơng tfWi C++.............................27 2 J 1 .N h ậ p « u ấ t( Ì o n ^ „ ............................................. 28 2.12. Vôrig lặp đơn g á n ..................................................30 2.13.Gỡlỗichư<»)gWn h .............................................. 32 B M tặ p p h á iì .........................................................39 Tổng ká(................... ..... .........................................42 Chương 3. LỆNH LựA CHỌN GiỡitiiệuchuanB..............■...................... ............ 44 3.1.Câulộnhi f ..... 1 .................................................... 44 3.2. Xây <*/ng các thức logic...................51 3.3 Phân lich biểu Ihức togk;...’........................................55 Bài tệp-Phán 1 .....“.............................................. 56 3.4. Kiểu li^ k à............................................................... 62 3.5.Câulệf*Sw»c h ....................................................65 3.6.Gỡai»ttìvlựachọ n ..............................................71 Bài tập-Phán 2.. .................................................... 76 Tổng két..................................................................80 Chương 4. HÀM Giởitìiệuchuang.................................................... 81 4.1. Phạm vi của biến..................................................... 86 4.2. T rả v é ị^ lrỊ.............................................................91 4.3. Tham à .. , . .............................................................. 94 Bài ^p-P hán 1...................................................... 95 4.4. Tham chiếu............................................................. 96 B à in p -P h á n 2 ......................................................98 4.5. Phái triín và ^ lỗi các môđun................................. M 4.6. Mở rộng...... ........................................................... 107 B àitập-P tìắn3 ....................................................108 TổngkẾt.............................. .................................112 Chương 5. LỆNH LẶP Giớiữìiệuchưang..................................................114 51. Vòng lặp fof........................................................... 114 5 2 Cèc vòng fof lổng nhau....................................... 118 B é itậ p -P h ầ n l ....................................................121 5.3, Vòng ậpwhil«....................................................... 126 ẵ.ĩA . kiểm tmvỉmg lặp........................................129 5.3.2. Phán tích sổ lần lặp cùa một vòng lặp........ 130 B àltặp -P h & ì2 ................................................... 135 5.4.Vỏnglặpdowhite .................................................. 136 5.5. Lụa chọì cấu trúc vống lặp Ihích hợp.137 5.6. Lệnh brêak bong vòng lặp ..................................... 141 5.7 vitk^cuâctìng..................... ...... ......................... 142 B à itậ p -R )ắ n 3 ...................................................146 Tổngkâ .............................................. ................149 Chưcmg 6. ĐỊNH NGHĨÀ KIỂU DỮ UỆU Giúiltụệuchuang............................................... 151 6.1. Mội kiểu dữ liệu mới: T m e.................................... 152 6.2. Láp vâ các hàm lehách của Idp...............................153 s h . Binh rựaa lớp................... ........................ f53 6.2.2. HalhàmUìách....^ ............ ........... ............157 Bồi tập-Phần 1 ................................................... 161 6.3. Chi tiỂÌ h > L 11 NGỐN NGỮ LẬP TRỈNH Ct^• DÀNH CHO SINH VIÉN Ký hiệu nghĩa là lặp lại các lệnh trôn cho đến khi thoát khỏi mô cunu. Giống trường hcip trước, ta có thể viết lại một cách chính xác và xúc tích hơn như sau: whil« (not out8Ỉd« thm turn right; M Z « ? ) { whiX« ỉfacing a traXl?) { turn lm£t: } step forward; Đoạn chươiìịí trình trôn khác trước là đầu tiên kiểm tra xem chú chuột đã ra khỏi mê C U ĨI Í Ỉ chưa rồi mới tiến hành các lệnh còn lại. Vì chú chuột ban đầu được đ ặt Tìịxoầi mẽ cuììịĩ nên cần có lệnh để nó đi vào mê cung, tiếp đến mới là các lệnh lặp trên. atmp forward; // Cau x«nh nay dua chuot vao M vrhile (not outsida the maxtt?) { turn right; w hiltt ( f a c in 9 m ir a ll? ) cung ( turn Imttĩ ) stmp f o r w a r d ; / / Lam c a c h nao dtt b i t t t duoc / / c h u o t khong d o i d ỉ« n v o i tu o n g } (hai dấu Jĩạch chéo để miêu tả lời chú thích) Đoạn chương trìn h trên th ậ t đơn ^iản nhưnií có thể đưa được chú chuột ra khỏi mê cunií hằng cách luôn đi sá t bẽn phải các bức tưòng. Khi chạy chương trinh, chuột sẽ luôn đi theo thuật toán đã chỉ và thoát khỏi mô cung. Xum hình sau: ChưíỉnỊí trinh trên là kết quả cùa việc phán tích hài toán thành một th u ậ t toán khả thi (tất nhiên, có thể tiếp cận hài toán theo những cách khác và tạo ra các th u ậ t toán khác để dần chuột thoát khỏi mô cuniĩ theo các đưòng khác nhau!). Bài tập - Phẩn 1 ì. Điều p xảy ra nếu đ ặt chú chuột trước lối vào một mẽ cung không có lối ra? 2. Viết lại chương trình với th u ật toán mới: "Luôn đi sát ben trái các bửc tưòn^”. Các thay đối cần thiết của chưđng trìn h đối với th u ật toán mới này? 3. Nếu chú chuột có thể trả lời được lệnh itaXi mt right?- "có tưòng ỏ bôn phải"-thì liệu có thể làm chương trình đơn gikn hơn với lệnh đó? Nếu có. hã y viết chương trìn h , 4. Có thể thêm vào lệnh turn around - "quay nịĩvíúc lại" để chươriịĩ trình đơn giản hơn? Nêu cổ, hã y viết lại chương trình. J 12^ ___________________________________________________________ Chương 1. LẬP TRỈNHLA GÌ? 5. Điều ^ xảy ra khi chuột được đặt troriỊí mô cuĩìịĩ không cỏ cả líYi vào và lối ra? 6. Giả sử mỏ cunK có ìối vào cũnK là lối ra thì chú chuột cỏ thể đi qua một phònịỉ tót kỳ nhiều nhất bao nhiêu lần? 7. Giả sử chú chuột trả lòi được lệnh £acing north? đôi diện V(ìi hướnịĩ Bắc. Viết CIC lệnh đế nó quay về hướníĩ Bắc. 8. Giả sử mọi mô cung có ít nhất một \ối vào, một lôi ra và tưòĩiíí hao quanh. Sử dụnp5 lệnh ban đầu để viết chương trình làm cho chuột đi vào mé cun^^ và đâm vào m)t bức tườnK(Xem lòi ^iải tronịí cuôn **Ngôn ngữ lập trinh C++ dành cho sinh viên - Bài tập'*) 1.2. Máy tính và ngôn ngữ lập trình Máy tính, cũn^ như chú chuột ở phần trước chỉ hiểu được và hành động hay trả líti đVi với một sô^ lưỢĩiK íĩiới hạn các lệnh được dự đoán trướo - gụi là tập lệnh. Viết chương trìrh n^hĩa là thể hiện việc ^iải quyết bài toán dưới dạníỉ th u ậ t toán, bằn^ các lệnh có trunfĩ táp lệnh. Tất nhiên, tập lệnh của máy tính phức tạp hơn nhiều so với lệnh của chú chuột. Cac tập lệnh cũng khác nhau đôl với mỗi máy, nhưng mọi tập lệnh của máy tín h đều hao ịĩồii các chức náng; • Thực hiện các phép toán sô' học đơn giản với số nguyên, phân sô' và có khả nánị( lưu " trử các kết quả trung ííian. • Xử lý dã y ký tự, ký hiệu và các số, có thể so sánh các mục theo kích thước tươn^ đôl hoặc bằng nhau. • Nhận thôtiỊí tin (input) từ các nguồn như bàn phím, đĩa tử, điện thoại, bán^ từ hay các máy tính khác và íĩửi lại thông tin (output) cho các thiết bị như máy in, đĩa từ, bánfĩ từ hay máy tính cuôì. Các lệnh máy đơn ịĩiản khi kết hỢp một cách thôníĩ minh có thể thực hiện các côní; việc rấ t khó khăn và phức tạp. Lợi th ế lớn nhất của máy tính là nó có thể thi hành các lệnh vói tốc độ rấ t nhanh-hàn^ triệu lệnh troriỊĩ một RÌây. Mặc dù chỉ phản ứng được với vài lệnh đrfn ịỉiản nhưnK niáy tính lại có thể thực thi rấ t nhanh các CÔĨIÍĨ việc có thể cực kỳ phức tạp. Quá trình viết một chươĩiịĩ trình máy tính hoàn toàn với quy trình ịĩiki bài toán con chuột: Ta phải biết các lệnh có sán, phải hiểu bài toán cần được ịíiải quyết để lập một thuật toán ííiải, sau đó thể hiện thuật toán dưới dạng các lệnh máy. Đó là những cỏriK việc khó khăn. Nhiều nám qua, các chuyên ^ia máy tính đã tìm mọi cách để làm chúnjĩ trở nên dề dàntĩ hơn. Đáng kể nhất là nịĩười lập trình không còn bị ịíiới hạn với tập lệnh máy nữa: họ sử dụrìỊi ngôn nịĩữ lập trìn h bậc cao và máy tính sẽ chuyển kết quả thành các lệnh máy để chươnịĩ trình có thể chạy được. Có rất nhiểu ngôn nfíữ lập trình, C++ chỉ là một trong các ĩiẶíỏn đó. Đặc tính nói lên bản chất của ngôn ngữ lập trình là các câu lệnh được sừ dụníĩ một cách chính xác tuân theo các quy lu ật nj;hiôm ngặt. Do đó, nó tương phản với ngôn ngữ của loài ngưòi và sự chính xác chặt chẻ Ịiầy nên trở ngại lớn n h ất cho những người mới học lập trìn h . NGỔN NGỮ LẬP TRlNH DẨNH CHO SINH VIÉN___________________________________________13^ C++ được thiết kế như một ngôn ngữ cho các mục tiỏu tổníĩ quát. Đó là một úịĩòĩì ngữ rất mạnh. Do vậy, các hài học trong ịĩiáo trình này không chỉ áp dụnịĩ cho C++ mà còn cho tất cả các nự;ồn njíữ khác. 1.3. Chương trình và thuật toán Như mô hình hài toán chú chuột trong mê cung đã chỉ rõ, trước khi bắt đầu viết một chướng trình (troTìịi C++ hay bất kỳ ngôn ngữ nào) níĩười lập trình phải có khái niệm chính xác vế nhiệm vụ của chươĩìíĩ trình và cách để chương trìn h thực hiện nhiệm vụ đó. T rừ khi đã nắm rấ t vữnjí về th u ậ t toán, còn không, lập trình sẽ là một côn^ việc rấ t khó khàn và nhiều khi kết quả nhận đưỢc khi chạy chương trình th ật là thảm hại! Trước khi đ ặ t bút viết, cẫn níĩhiên cửu kỹ đối tượniĩ và tổ chức tư liệu. Sau khi đã thiết kế một thuật toán, chươnK trìn h nên đưỢc viết dưởi phong cách sáníĩ sủa và dễ hiểu. Cuô'n sácli này sẽ hưổng dẫn cách thiết kế các thuật toán và cách thể hiện chúníĩ bằnj; C++. Cụ thể là; níóì pháp của C++, các vấn để về cách trình bày và cuối cùng, cách thiết kế và cài đặt một thuật toán. Trước tiẽn, việc viết một chương trình đúng cú pháp dưòng như là phần khó n h ất. Nó yêu cầu phải thôníĩ thạo các quy tắc về nịĩử pháp và áp dụnỉí chúnK troníĩ thực hành. Thônjĩ thạo cú pháp C++ là khó hơn ta tưởng chỉ vì máy tính hoàn toàn khônK bỏ qua các lỗi. Trong một lỗi như quên đấu chấm phẩy (;) có thế trỏ th àn h một lồi nặnjĩ của chương trìn h . Tuy nhiên, về lâu dài, nó chỉ là cách học để tuân thủ các quy tắc của ngôn ngữ mà thôi. Viết một chương trình cho sáng sủa lại là một việc khó khăn hơn vì có rất ít các quy tắc chính xác, chỉ có những nguyên tắc tổnịí quát. Tuy thế, có những sáng tạo nhỏ trong việc viết một chướng trình sán^ĩ sủa. Đó là việc tổ chửc, chú ý tới chi tiết, và cảm nhận nó theo kinh nghiệm. Việc này có được sau khi đã lập trình nhiều. Cuôl củnịĩ, sau hai vấn đề trên thì thiết kế một thuật toán mới thực sự là phần khó khán nhất, phần quan trọng nhất và củxìịỉ. là phần hấp dẫn nhất. Nó yêu cầu các kỹ náng khéo léo để giải quyết bài toán. Ta sẽ phải học và nhớ rất nhiều các kỹ th u ậ t để sử dụng khi lập trìn h và hiết kết hđp các phưdnịỉ án thực hiện côníí việc. Tuy thế, thỉnh thoảng vẫn có thể quôn và phải học lại như một kỹ th u ặt mới. Những vàn đề đó thực sự đáng ngại nhưng sẽ m ất dần đi khi n^ười lập trình n^ày cầYiịĩ biết thêm nhiều kỹ th u ậ t mới và hoàn thiện h(ỉn. Thiết kê và cài đặt một th u ậ t toán yôu cầu chú ý đến các vấn để khôriK chỉ của C++. Khôntí chỉ cần các thuật toán giải quyết đúng bài toán, mà còn cần phải có tính hiệu quả, dề hiểvi và tin cậy tron^ các điểu kiện khác nhau. Các vân đề đó được đề cập tron^ ciuVn sách này cùnịí vói C++. 1.4. Các bước thực tế trong iập trình Sau khi đã th iết kế một th u ật toán và viết chương trình trôn KÌấy, cần phải nhập nó vao một filo tronịí máy tính, ịid lỗi (loại bỏ lỗi của chương trình) để chưđnỉĩ trình trỏ th àn h một chưíỉng trìn h hoàn thiện. File là tập hỢp các thông tin như ván bản, dữ liệu hay chơíín^ trình được lưn trữ. Nhập và hiệu chỉnh chươn^í trìn h đưỢc tiến hành nhò trình soạn thảo (editor), một chương trình cho phép chèn, xóa các dònịĩ hay các ký tự, di chuyển chúnị? hay tìin kiếm môt sô' ký tự đác biệt. T rình soạn thảo cho phép lưu trữ hay phục hổi những ịẠ đươc viết ra IGn đĩa từ, bộ nhớ chính của máy tính. Sừ dụng tốt trình soạn thào sẽ làm cho việc nhập và gỡ lỗi một chương trìn h dễ dàng hớn. - 1 4 ____________________________________________________ Chương 1. LẬP TRlNH LẦGÌ? Nên nhớ rằnK các chương trình được viết và nhập troĩìỊĩ C++, một ngôn n^ữ bậc cao (củnK như BASIC, Fortran và Pascal), do đó cần phải đưỢc biỏn dịch san^í n^^ôn n^íữ máy để có thể chạv được trực tiếp báníĩ phần cửnịí của máy tính. Do đó, khi đã cỏ một file chửa chưíỉnK trìn h , cần một chương trìn h khác đế chuyển đổi chưdnK trình đó saníí nííôn n^ữ máv Kọi là trình biên dịch (compiler). Nếu chươníí trình có lỗi cú pháp (syntactic errors) việc hiôn dịch sẽ khônịí thành côn^ và máy tính sẽ hiện thông háo lỗi (thưòn^ĩ là nuẮn và khó hiểu). Chưrtn^ trìn h sẽ cần sửa đổi lại các lồi đó và sau vài lần như vậy sẽ trở thành một chươn^í trình có thể chạy đưỢc. Tuy nhiên trìn h hiên dịch chỉ kiểm tra các lỗi cú pháp do đó khôníĩ hề đảm bảo chiííỉĩiịí trìn h sẽ chạv đún^ như mon^ muôn. Nói cách khác, chươnjí trình có thể đún^ về n^ữ pháp nhưnịĩ khi chạy sẽ khôníĩ cho kết quả mon^ đợi. Nhữriịí lỗi đó chỉ xuất hiện khi chạy chưdn^ trìn h , ịĩọi là lỗi thi hành (run-tim e errors) hay lỗi loí^ic (logic errors) và chún^ cũnịí cần được sửa lại như các lỗi cú pháp. Lỗi th i hành có thể là do nhầm lẫn khi nhập chương trìn h và cũnjí có thẻ là do nhầm lẫn troĩiịí th u ậ t toán. Tronịỉ hất cứ trưỏnịí hỢp nào đểu phải sử dụn^ trìn h soạn thảo và trìn h biên dịch để sửa chương trình cho đến khi chạy được. Thử chạy chươníí trìn h với nhiều dữ liệu vào đẻ chác chắn nó làm việc đúnK, nếu khôn^^ sẽ phải quay lại các bước trên. Quá trìn h như vặy ỉíọi là ịĩờ lổi (dehuịĩginK). Nhữníí điều đã đề cập ở trẽn vể soạn thảo - biên dịch - chạy chư(ỉnK trình được minh họa ở hình 1.1. Nííay d ư d i( S o ạ n t^ ^ lã một chưíỉn^ trình C++.(fíĩcn d ĩ^ c h u y e n chươnK trìn h C++ th àn h ngôn ngũ m aỹr"6an đầu, các nhà lập trình phaTVĩSEchUdng trìn h trực tiếp bằng n^ĩôn n^ữ máy. còn bây íĩiờ hầu như tấ t cả viết hằnK ĩiịĩôn n^íữ hậc cao. Níĩỗn nỊ^^ữ máy được sừ dụng bởi trình biên dịch» máy tính sẽ chạy trên ngôn Xìịíử này. Cả trìn h soạn thảo và trìn h biên dịch làm việc tronỊĩ một mỗi trưòn^; Kọi là hệ điểu hành (OperatiĩiK-system). Đó là chươnu trìn h rấ t phức tạp điểu khiển toàn bộ máy tín h , bao ịĩồm mọi p h ần cứnịĩ nôi vỏi m áy CŨĨỈK n h ư các chương trìn h chạy trẽ n chúng. Tronịí CÁC máy nhiều ĩiKưòi sử dụníí, hệ điểu hành là chưdníx trình cho phép đáng nhập hay đáníĩ x u ết hệ thôn^; tạo, chuyển, xóa hay in các file; ííọi các trình biên dịch hay các trình soạn thảo wà chạy các chươn^ĩ trìn h . Vởi máy tính cá nhân thì khôn^ĩ phải đầnịĩ nhập hay đănK xuất, cảc tác vụ tạo, di chuyển, xóa vả in ra các file, chạy các chươníT trình» thường được thực hiện bỏi một chươntĩ trìn h ịỉhép KÌữa trìn h biôn dịch và trình soạn thảo. Tronj; các phần trôn, ta cô' trá n h miôu tả về phần cửn^ của máy tính, đặc hiệt là ĩĩitối quan hệ ịíiữa CPU (bộ xử lý trunj; tâm ) với bộ nhớ dành cho nó và các thiết bị khác Jíăn V(ỏi nỏ. Giông như khi học lái xe, ta chẳn^ cần quan tâm các máy móc bOn tron^ vận hành nhiư th ế nào, chỉ cần lái cho xe chạy mà thôi! Cànjĩ n^ày máy tính cànK đưỢc thiết kế để tirở thành '*thân thiện*' hơn và ngưòi sử dụnịĩ khônịĩ cần phải biêt rò lăm các chi tiết về điệm hay các tác vụ hỏn tron^ĩ của máy tính như thời kì đầu máy tính mới xuâ^t hiện. N^^ày na^y, có thể sử dụriịĩ máy tính cho rấ t nhiều tác vụ mà chẳng cần biết điều ịờ xảy ra hôn trom^^ máv tính, có thê viết chưdnự trìn h chỉ với rấ t ít kiến thửc về các vận hành hỏn tron^ mávy. Tất nhiOn» để íxiải quyết các vấn để ịĩiới hạn của máy tính ta cần biết nhiều và nhiều hcíín nữa, nhưnịí các miêu tả ngắn ịĩọn trên đã đủ cho mục đích của chươníĩ này. Chươníí tới sẽ xem xét cấu trúc tổn^^ th ể của một chưdn^ trình C++ và Jíiới thiệu vmi tính náng cớ bản. Các chưdníí tiếp theo sẽ đi sâu hơn về C++ và việc thiết kế, thực thi cáic th u à t toán. NGỔN NGỮ LẬP TRlNH C-t-H DẨNH CHO SINH VIÊN 15 Trỉnh soạn thảo \ Các lỗi Ị biên dịch f vã cảnh báo (» I Ìb*M*r4 H í I \ ■ t IM HiuMlanv roKr >«« .... ’ // .» • /L _ ’ rv n '. ./ — \ X \ \ •!>* N \ ^ \ ^ \ •#<•••. 'iieDesMti e 4C«t.»«V . . I*.«» I «-«»• •.* «-»«««« ri «- «.•&•*»« •* • a« •■««17» «« •« *vn' •'«*>« , 1 « 4«bl* • \ \ . « . • : /- \ V V«(M \ \ \ \ •«« ««« .n»»r M • .»1^I _ .— 1** «•> Lỗi thi hành • ■»»«Lj1»ậ> *o«o.J»»iM *e».«nia <««. I ara I Đắu ra •1« !««»•■•»4( không ««1 chính xa ttotlklx % (« «»» Zì M>> . fti«0 »«|*l •ll tMid r« rv l-« m 4 i % ft* <•7**■ # « t« |« i a «t»« •ki.ấadgo*o>».Wi 1 / I*• y / / / / / / l* .4 3» 1 a* )« .• » • .♦ >• « II • »>-* 11 4 ề4 « ••,4 4S.« HỈNH 1.1. Chu trình soạn thào, bỉén dịch và gõ lổỉ một c h iK ^ trình. Chương Irĩnh duọc minh họa là chương ỉrình bàng nhiệt độ ỏ chuong 2; cổc kết quà ro ciKiọc minh bọQ ò hình 2.1. Tổng kết Máy tính có thế làm đưỢc rấ t nhiều điểu tuyệt vời dưới quyển kiểm soát của một n^ưòi lập trìn h kinh nịíhiệm. Ngưừi đọc đã có đưỢc vài khái niệm về lập trìn h . Vấn đề trưóc tiên cần đưỢc phân tích rỏ ràn^, sau đó phát triển một th u ậ t toán tương ứng; chướng trìn h được viết, n hập vào một fik\ sửa lại (nếu cần) bằnK trìn h biôn dịch và trìn h soạn thảo, cuôi cùng được đem chạy và gỡ lỗi. Chưong 2 CÁC PHẦN TỬ Cơ BẢN CỦA C++ G iới th iệ u chương Chương này sẽ xem xét một chương trinh mẫu đ ế minh họa cho cấu trúc một chương trinh C++ và vái phép tính đơn giản trên các số. Một vài công cụ cơ bản đ ể điều khiển nhập, xuất dữ liệu cùng các vòng lặp đơn giản đưỢc đưa ra đủ cho người đọc bắt đầu tự viết một chương trình. Phần cuôì giài thiệu quá trinh gở lỗi đ ể có được một chương trinh hoàn chỉnh. 2.1. Hai chương trình đơn giản Xét chương trìn h đơn íĩiàn đã hoàn chỉnh sau: 1 iincludtt 2 iincludtt 3 4 M in 5 // o { S a y h m X lo . 6 7 // £dward M. teingold, Nov^đ>«r 12, 1993 8 9 cottt « "Itello!"; 10 } Khi biên dịch và thực hiện chương trìn h trên m àn hình sẽ xuất hiện dòng: HttXXo! Ta sẽ xem xét từng th àn h phần của chương trìn h này. Đầu tiên là các con sô' chĩ dòng khônịí thuộc chướnịĩ trìn h (không Kỏ chúng vào file chứa chương trìn h ). Chúnỉĩ chỉ có ý nghía cho việc phân tích chương trình. Dòng 1 và 2 là các dẫn hướng hiên dịch cần được đặt ỏ đầu mọi chương trìn h . Chúng sẽ được giải thích sau. Còn hây giò h ã y tạm thừa nhận chúnịĩ- Dòn^ĩ 3 là một dòng trôn^ĩ chỉ để chưđn^ĩ trìn h dề đọc. Nó ngăn cách dẫn hướn^ biÊn dịch* với phần đầu chương trìn h (heading) từ dòn^ 4 đến àòn)ĩ 7. Các dòng này bắt đầu chương trình hằnjĩ từ khóa mmin và hai dòng chú thích cho biết tác ^iả, ngày viết và mục đích của chương trìn h . Các dòníí chú thích đưỢc bắt đầu bằng cặp dấu Rạch chéo // d ành cho người đọc chương trìn h . Máy tín h sẽ bỏ qua chúng. * H ai dònK n à y hư ó n g d ả n cho tr ìn h Hiên dịch đ ặ t 2 file c h u ẩ n "io strtía m .h " và "io m an ip .h " v ào đ ầu chươníĩ tr in h . H ai file n ày c h ^ các đ ịn h n g h ĩa cầ n để chư ơng tr ìn h có th ể n h ậ p /x u ấ t d ừ liệvỉ, V ấn để n à y sẻ đvrợc nói kỹ hơn đ chư ơng 10. a» NGÒN NGỮ LẬP TRlNH DẨNH CHO SINH VIÊN___________________________________________ n Dònu 9: 9 cout « các ký tự "H '\ "e'\ "1", T \ V* và hiển thị từiiíĩ ký tự ra m àn h ìn h ^h àn h cảu chào. 'ĩiêp theo, xét một chương trìn h yêu cầu ngưòi sử dụng nhập vào nhiệt độ theọ độ Pahrenheit và chuyển nó sang độ Celsius. Ví dụ, khi chạy chương trìn h sẽ có dạng; PlttAsa typ« thm t*ii^r«tur« r) : 68 68 dmq F ỉs 20 dmg c Sau đây là chương trình; 1 iincXude 2 #includa 3 4 m a ỉn {) 5 // C h u y M nhlttt do F«hrttnhttỉt sang C«l8Ìus { 6 7 // Smmvml N. Kamỉn, Jwam 1, 1993 8 float tmmpmrtíturm;ti Hhl«t do Fahrenhttit. 9 10 11 typ« thm tmmpmrmturm cout 12 iđmg F) : cin »t«iiqp«rfttur«; «tmmỊmrmtìizm ỉ 13 cout 14 cout « " 15 cout « ( 5 . 0 * (tttn^ratura - 32)) / 9.0; 16 cout « « d » g C"; d*g r is " ; 17 } Các dần hướng hiôn dịch và p h ần đầu chương trìn h tương tự như chưdng trìn h đầu, nhưng phần quan trọníí nhất cùa chương trìn h , từ dònií 9 đến dòng 16, thì phức tạp hơn. Dòiỉịị 11 và các dòng la đến 16 ký tự ra m àn hình. Dòng 12 cho máy tính hiết ngưòi sử dụng đang cần nhập vào tại đảy. Giá tri nhập vào sè được lưu lại để sử dụnp sau dưới một tên mantí ý nghĩa hiểu tưỢĩiK là tamp^ratur*. Tên mang tính hình thức này đã đưỢc cho biết ở dòn^ lệnh 9. Dòng 16 lấy giá trị t«iạpttratur« đã được lưu và thực hiện vài phép tính để tạo ra ịĩiá trị độ Celsius tưởng ứng. Ký hiệu * được dùng trong C++ như phép nhán. Cách lưu các tĩiá trị như taiBperatur* sẽ được nói đến trong mục 2.4. 2.2. Một chương trình phức tạp hơn Dưói đây là một chương trình C++ khi chạy sẽ tạo ra một hảng tương ứn^ giữa "C (xom hình 2.1). 1 2 3 4 #incXuđtt <Ì 08 tr«a]n.h> tincludtt main 0 __ { 5 6 7 // Tao bang tuong ung giuA do F va do // tu -10 do c d«n 10 do c 8 // c Ruth N. Raỉnợold, Octob^r 22, 1993 'X, '\ và 18 Chương 2. Các phán tử cơ bản của C++ 9 10 11 12 13 14 fio«t CmXmium, i f Hhi«t do CttXsỉus » rahranhttit; // Nhi«t đo TahrmrừimÌLt ”DEGR££S cĨXEGBEBS r\n" ; cout « 15 16 c«lsius « -10.0; Khiltt (Cttlsius <» 10.0) { rahrttnỈMit m (9.0/5.Ữ) * Calaius + 32.0; // C h u y M do c sang do F. X7 18 cout « X9 « Mtw(7) « Calslus « Mtw(7) rấhrmnhmit « 20 21 « " ” "\n” ; // Tang gia tri do c ) 22 } Giống hai chương trìn h trưổc, dòng 1 và 2 là các dẫn hướĩiịỊ biên dịch cần đ ặt ò đầu chươn^ĩ trình. Phần đầu chương trình từ dòng 4-8 mở đầu chương trình vỏi từ khóa main, và vài dòn^ chú thích cho biết tên tác giả, ngày viết và mục đích của chươnịĩ trìn h . Ba dòng tiêp theo (10, 11. 12) miêu tả các giá trị cần tín h toán (giốhg như tem perature), Phần quan trọng n hất của chương trìn h là các dòng sau: 14 cout « " D E 6 R £ E S c DEGRiXS r\n" ; 15 C«Xsỉua - -10.0; 16 Mhil« {CmlmLìxm <» 10.0) { 17F«hr«nb«ỉt ■ (9.0/5.0) * Cttlsỉus 4- 32.0; // Chuy«n do c amnq do F 18 19 20 cout « B«tw(7) «C«Xaỉu8 « « ••tw(7) « C«Xsỉu«-*"f; // Tang " TềhrmábmLt « "\n” ; trl do c 21 } Chúnịí miêu tả chính xác các hoạt động xảy ra trong khi thực hiện chương trìn h . D^grMS c -10 -9 -« -7 -« -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 DttgrMS r 14 15.8 17,6 19.4 21.2 23 24.8 26.6 28.4 30.2 32 33.8 35.6 37.4 39.2 41 42.8 44.6 46.4 48.2 50 HỈNH 2.1.B ^h lo n g (]ff>0(^»F vồ *>C tú -ÌO °C td i^1O O C ,có dkềợc smi khỉ c h ^ chưong tiỉr^ mồu. r-Ằ- , NGÒN NGỮ LẬP TRỈNH c * * DẤNH CHO SINH VIÊN_____________________________________ 19 Câu lệnh: IS C*1«1WI • >10.0; cho biết một troniỉ số các tên ký hiệu (hay còn gọi là biến) cần cho việc tính toán trong chương trình được nhận giá trị là -10.0. ở đây, biến có tên là caiaiM . Tên biến sử dạng trong chương trình cẴn được khai báo ỏ đầu chưdng trình. Trong ví dụ trẽn, ta có; 10 « lM it 11 c « lai« a, / / a h la t do Cmlmímm 12 rs h x M ÌM Ìt; / / đo r a liE M d M Ỉ k Ngoài tên biến, ta còn phải khai báo kiểu của.từng biến. Trong chương trình trên, cả hai biện cciaiM và ralucMiMit đều có kiểu fiM t (các giá trị sế của chúng có tỉtể có |diần thập phân). Hình 2.2 cho ta hình dung các biến như các hộp, trong có chứa giá trị cửa biến. Bàn thân mỗi hộp là môt vị trí trong bộ nhớ máy tính, nđi giá trị đtíú c lưu lại. 20 68 C clciaa ralicw d w it Hbm 2^. Câc vf M Irona nhố m ãr M i e io hai blÌR toong diMing NMi bâng nhiệt dộw Việc tính toán các biến là cốt lôi cùa chưdng ti^nh trong đó cdng thửc: “F = -»C + 32 được sử đ fn g lặp lại mỗi khi chuyển -ItPC, - 9 ^ ,... 9 ^ , I C ^ th ần h n hiệt độ F tưỡng ứiig. Việc lặp iại như trê n được tiến h à n h bằng lệnh ^Axixm (đả gidi thiệu ỏ chưđng 1). Trong chướnK trình này, các cảu lệnh; 17 ra h rM iM iit • 19.0/5.0) * OmXmXĩm ^ 3 2 .0 ; // a s a y M 1 8 csout « 19 « M tv f7 } « M tw (7 ) « CmtmLum « ” ra h s m h ttlt « c ««119 do F . ” -\ » - ; / / Tang qịm t r i do c 20 CaXsitts^M*; dược thực hiện lộp cho tới khi giá trị C m X m X um bằng 10.0. Vì giá trỊ CttisiM ban đầu là -ỈO.O (câu lệnh 15) và câu lệnh cuếì trong các lệnh trẽ n tản g giá tr ị c^Xmium lên 1.0 nên cuối cùng, khi biến lón hơn ỈO.O chưitog trinh sẽ dừng. Mỗi lần cấc lệnh trên đưỢc thực hiện, chúnỉĩ tính gỉá trị nhiệt độ F tưđnpĩ âng với giá trị nhiệt độ c hiện thòi (biến cmXmXvếmh đ ư a RÌá trị đó vào Tểầucmnbmtt v à in cả h a i giá tr ị r a m ột dòng mởi. Smtmịi} cho C-M- hiết cần hảy cột cho mỗi số, do đó các sọ được cãn th ẳn g cột. Lệnh á đong 20 saù đãiy lả ị^oỉi đặc trưng để tính toán các biến trong C-M20 / / Vang 9 1 « trl ởữ c. CÓ nghĩa là ( iá trị biến cátch viết khác: C m lm X u m l è n V . H iép toán này đ ư ^ niinh họa ồ hình 2.3. Một CmtmmkuB mCmXmikW-¥ 1 . 0 ; Phép toán trên cho thấy ý nghĩa của tên gọi "Ngốn nĩĩũ nhiều tính năng mổí đưỢc đưa vào. 9 i là Đfến n fS c vdi 20 Chương 2. Các phắn tử cơ bản của Việc thực hiện lặp các câu lệnh như bài toán con chuột ò chươnịĩ 1 hay trong chương trìn h hkrxịĩ nhiệt độ trẽn là một th ế m ạnh lớn của máy tính. Việc th iết kế các vòĩìiĩ lặp (các lệnh đưỢc lặp lại đến khi thỏa mã n một điều kiện nào đó) là một trong các kỹ nănfĩ quan trọng nhất của lập trình và sẽ đưỢc bàn kỹ hơn ở chương 5. Người đọc cũnK chưa cần phải tự viết một chương trìn h sử dụniĩ lệnh whii« mà chỉ cần thay đổi chút ít chxiơng trìn h đă cho. Như th ế sẽ khôn^ bị sa vào các chi tiế t khôníí cần thiết. Phép toán 20 c«l«iu« 68 C m l B L u B ^ ’¥ Cttlsius a) Trước phép toán b) Sau phwp toán CalsiusA CttlsiusV-f HỈNH 2.3. Hiệu quà eủo phép toán khi C«18ÌU8 Cỏotàtrị20. Bài tập - Phẩn 1 1. N hập vào, biên dịch và thực hiện chươníí trin h mẳu in ra bảriỊĩ tương ứng giữa nhiệt độ FaH*renheit và Celsius. 2. Giải thích tại sao bảng kết quả (hình 2.1) có 21 dònịỉ chứ không phải 20. 3. Thử níĩhiệm một số thay đổi với chươĩiịĩ trình bảĩiK nhiệt độ trang 17. Troĩìịr mỗi trường hỢp, thử íĩiải thích các sự kiện xảy ra khi dịch chương trình mà; (a) Bỏ quôn một dấu chấm phẩy. (ỉì) Thêm một dấu chấm phẩy th ừ a vào cuôi một àòĩìịi. (c) Đồi nain thành mi an. (d) Đổi một dấu ( th àn h Ị. (e) Đổi các háng sô' 9.0 và 5.0 th àn h 9 và 5 tươníĩ ứnjỉ. (f) Đổi -10.0 thành -5.0, thành 10.0 và th àn h 20.0. (g) Đổi dòng 20 thành C«isiu8 - Cttisius + 0.5; (h) Đổi dÒTiịi 20 thành C«i8iua - c«iaiu s + 2; (i) Đối dònK 20 thành Cttisiua - Cttisius -i; 4. Sửa lại chương trình để đổi nKưỢc từ -10“F, -9”F, > 1Ơ’F, dùng công thức; "C = ("F - 32) X 9 5. Viết lại chươníx trình để chuyển n hiệt độ K ahrcnheit thành nhiệt đô Ktílvins (nhiệt độ tuyệt đôi). Dùriíí côn^ĩ thức: K = -("F - 32) + 273.16 (Xem lòi Kiải troriíí cuốn ''Ngôn ngữ lập trinh dành chỡ sinh viên - bài tậ p ”) 1 độ Kelvin tươníí ứníí với 1 độ Celsius nhưng Ơ*K = -273.16“C. NGỔN NGỮ LẬP TRỈNH C-t-^ DẨNH CHO SINH VIÊN___________________________________________ ^ 2.3 Từ định danh m Tronịị chương trìn h bảng nhiệt độ, ngoài các dòng chú thích, các từ còn lại là các từ định danh. Từ định dan h là tên được C++ thừ a nhận. Một số từ định danh được cung cấp hởi C++ như fioat và Nhữníĩ từ định danh như th ế gọi là từ khóa. Bảng 2*1 là danh sách tấ t cả các từ khóa của C++. mmm muto hrmmk cmmm catoh ehar class conat contlniM ởmtÊAxXt dmXmtm áo áoúhXm mlmm •ntaa mxtmrn tXomt toT friMd goto if InXlM ÌBt mw op*rato£ privat* protacted Public rttglstar rttturn Xong short siợMd sÌEttot stetic struct s«rifceh thia throw try typttd«f union tmsignad Virtual void volatiX^ ìrtìiXa_______________ t«aqpXate BẢNG 2.1. Từ khổo trcMìQ C^I- Nịĩoài các từ khóa là các từ định danh người dùnfỊ tự định nghĩa. Các từ đó có thể là một dã y sô' và chữ bất kỳ nhưng phải đưỢc bắt đầu bằníĩ chữ. Ngoài ra, không được sử dụnịỉ dâu chấm câu và các ký hiệu khác. Các từ định danh sau là hỢp lệ trong C++: a Sura v«rX £ỉnaXT^^ còn các từ sau khônịí hỢp lệ: 2forl X y kỉnợ kong vì chúng hoặc hắt đầu bằng số hoặc chứa ký hiệu hoặc có khoảng trống. Các từ định danh khôn^ hị ịỊÌỞi hạn vể độ dài. Trong C++ có phân hiệt chữ hoa. chữ thường: Từ định danh DATA khác với d*ta, ch ú n g là hai từ đ ịn h d a n h riê n g biệt. Từ định danh có thể dùng ký tự Ặĩạch dưới CJ khi nó cấu tạo từ nhiểu từ như max_t«mp«ratur« hay f r««zing_j>oint. Tuy nhiôn, nên sử dụng cách viết hoa, viết thưòng cho các từ định danh ^ĩhép như sau: BiAxTttB^ratura hay frMEingPoint. 2.4. Biến Xem xét ^ dòní; sau troni; chương trìn h hảng n h iệt độ: 10 flo«t 11 12. Calaius, // Nhiét độ Ca Is Iu s . Fahrttnh«it; // Mhỉệt độ rakcanhait. 'I'ừ khóa fioat cho trìn h biên dịch biết một khai báo về các biến sử dụng trong chương trìn h . Khai háo một hiến níĩhĩa là thông báo sự tồn tại của nó troníĩ chương trìn h . Mỗi biến Kiểu của biến miêu tả bản chất tron^^ C+-Í- ịĩồm cỏ tên (từ định dânh) và kiểu (ví dụ của ííiá trị đưỢc lưu tron^ĩ vị trí bộ nhớ dành cho biến. Một biến chỉ có một kiểu trong suốt chươníĩ trình và kiểu này xác định các phép toán có thể thực hiện trôn nó. Trong chương trình bảníĩ nhiệt độ. cả hai biến Tmhrmáhmit và c«x*iu« cùng có kiểu fXoat. Có nhiều kiểu hiến trong C++ nhưng hiện thời ta chỉ nói đến kiểu fio a t và kiểu in t. Giá trị của kiểu £ioat là số có phần th ậ p phản: 3.14X59, 7.12, 9.0, 0.5« + 001, -X€.3« + 002 CÌHiang z Các phẳn tử cơ bản Ký hiệu • là ký hiệu khoa họe sà dụng tnm g C-H- đ ỉ idiAii cách sế vdi phần mũ. Ví dụ, tốc độ ánh sáag bằnK 2.9»7»2M m/s. b&n kính electroo lả 2 .ti7 f3 » * -ite . Số kiểu tiom t được lưu trong m&y tinli ehi l i g ỉn đáng (khác vói số kiểu la t , được ỉưu chính xác). Độ chính xác của số < lM t ư ên hAu hất máy tính chỉ đạt được 15 số sau dấu chím thập phân. Do đó, số Kchi được ltfu là 3.1415926S3589793. Biến kiểu iDt có các giá trị phẲi lả số nguyên: 103 45 -632 Máy tính phân biệt các số kiểu ịmt vdi CMỈ số kiểu flo«« không có phần thập phân. Ví d ụ biến iAoỉtfhB*wr được địDh n i ^ a : flo a t w h o l« d ta ittM c ; cho phép nó nhận các giá trị 3.0, 2.0, ... cõng như các giá trị 3.Ỉ2, 1.75, ... Trong khi, nếu dịoh nghĩa Int Mliol^tadME; thỉ DÓchỉ được nhận các Riá trị như -3, 2, 65. 2.5. Biểu thức Nỉũểu tác vụ của chưdng trinh yêu cảu tính toán gỉấ tiị của một biểu thức. Một biểu thác có thể là một h&ng, một M ái, vải phép tính số ỈIỌC hay hàm áp dụng cho biểĐ hoặc hằng, kết quả là một giá trị. Ví dụ: M com(mnglm) 3 + aiaOahM mu^ỊiÊimimÊaậ. Cấc ký hiệu / được sử àạng cho các phép tìMÉB cộng, trừ, nhân, chia gọi ỉà các toán tử số. Chúng được dùng cho các ìõẾt kiẨu f loat và íáỉa int và có ý RRhĩa như ký hiệu của chúng: « sẻ cộnR 2 số, - sẽ trừ 2 sấ v i « aẽ nhân 2 8ố. Toán tử / ỉà phép ehia ỉấy thươnt; nguyên vdi các số kiểu nguyên (int). Vđỉ eáe Bố ìâểu thực thì nó là phép chia bình thườniỊ. kết quà có đù Gác chữ s ế thập Ịdi&n. T«én tà % được dàag trong phép cbia lấy số dư. Ví dụ: 8 /4 b ằ n (Ị 2 7 /4 liằ a fĩl 6 3 /8 k Ì a R 7 8%4 bằng 0 7%4 bằnfc 3 63%8 tÀ ag 7 Khi tĩộp ỉỗì chia cho không, mộc vài máy tfnỉi ■§ ềtlag diưdng tiinh và đưa ra tỈMog báo lỗi. Một số máy tỉnh khác vẫn tiểp tạc tìiực hỉẬn chưmiĩ tiìnli nhưng sẽ cho kết quà s«i. Kiểu Ký hiệu Toán t ử Thi 4^ fioat K Cộng Trừ Nhân Chia Cộmr Trừ Nh&n Chia Phần trftjB 4iso«n 4^ s.aoiioo * / ittt + * / % lẢNC 2 ^ Câe loãn *ửlò học Ivong - 5.03M>1 SL57«KI - S.-TOmOX - s.00«02 7M3 * 3.«mM - 2.1«04 / «5 a«»i - 4.aii00 s - M CS7 - -Noe S7 • 600 • 3 - 2100Q i9 / s • 3 ịO %3 - 1 N n aM n lử / tar %đitt 9Ộp iAi tronsphép ehio ctio 0. NGỔN NGỮ LẶP TRlNH c-n- DẨNH CHO SINH VIÊN__________________________________________ M Bảníĩ 2.2 trìn h bày tấ t cả các toán tử số học tron^í C++ vói 2 kiểu flo a t và int. Một biểu thức chỉ thực hiện tín h giá trị khi mọi hiến trong hiểu thửc đã được gán giá trị. Ví dụ: (9.0/5.0) * Cmlaium + 32.0 chỉ được tính sau khi Caisius đã được gán ^iá trị nào đó. Lổi chia cho không (DMsion byzero) H ãy kiểm tra xem máy tính của bạn xử lý như thê nào khi íĩặp lỗi chia cho khôn^. Một máy tính, khi gặp lệnh: Cout « # 1/0; sẻ in ra íĩiá trị 0 mà không cảnh báo gì troníĩ khi một mảy tính khac sè dưa ra thÔHK báo lỗi: ArỉthiMtic Excttption (cor« dus^d) và chương trình bị dừng. Giống như khi ta tín h tay, các biểu thức tron^^ C++ cần đưỢc tín h theo quy tắc ưu tiên cho phép cả ngưòi dùng và máy tính hiểu cách biểu thức được tính. Ví dụ, biểu thức 2+4/2 sẽ có ííiá trị là 3 (nếu hiểu là <2+4)/2) hay 4 (nếu hiểu là 2 + (4/2)). Quy tắc ưu tiền tranịĩ C++ cũnịĩ íĩiông như quy tác khi tín h tay. Các biểu thức con trorií? dấu ngoậc đún 0 cìược tính trước. Nếu không có dấu ngoặc 0 th ì các phép *, / , %được ưu tiên cao nhất, sau đó là +, Thứ tự của các phép +, - hay các phép /, %được thực hiện từ trái sang phải. Các cặp dấu n^oác đơn được tính từ trong ra n^oài. Xem hảnịí 2-3 có tống kết các quy tắc ưu tiên và vài ví dụ. Vì trong C++, ngoài các toán tử sô' học cònnhiểu toán tử khác nôn các quv tắc bao quát hơn sẽ được trình hày ở P hụ lục A. Nói churiK. nôn sử dụng cặp dấu 0 để trán h khó hiểu cho niĩười đọc. Quy tắc Ví dụ 1. Tính mọi biểu thức trong dấu ngoặc (). 2. Tính các dấu ngoặc lồnịĩ nhau từ tronịí ra riKoài 3. Bùn nịịoàì dấu ngoặc hoặc khòng cổ dấu nịĩoặc: (a) Tính V , %trước 4-, (b) 'Vinh lần lượt . %từ trá i san^í phải (c) Tính lần lượt 4 , - từ trá i qua phải 3.146 ~ 0.146/2.0 củnK KÌÔnK như 3.146 - (0.146/2.Oí s: 3.Ì46-0.073 6 + 37%S/5 củn^ ^iốnjĩ như 6 +((37%8)/5ì = 6 t- (5/5) s 7 3.0"3 hay NhưnK ____________6 37% ( 8 / 5 ) = 6 * 37%1 = 6 0 s 6________________ __________________________ _______________ BẢNG 2.3. Cóc quy tắc uu tién cho càc bỉểu thúc số học trong C+-*-. sủ dụng 0 để trónh khó hiểu cho n g i^ độc. Xem Phụ lục A để có cóc miéu tà chi n ít hơn. c+-t“ có rấ t nhiều hàm toán học phổ biến, được định nghĩsi trưóc để sử dụníĩ trong các hiểu thức số học. Các biểu thức áp dụng cho hàm ^ọi là đôl sô' của hàm . Ví dụ, với các hàm lượng ^iác, có thể viết s in ( 2 *th«ta> và đôì sô' cho hàm là biểu thửc 2*thmtm. Bảng 2.4 RÌỚi thiệu một sô" hàm được định nghĩa trước. Một danh sách các hàm đầy đủ hơn được cho troníí Phụ lục B. Để sử dụng các hàm sô" học phải có dẫn hưđn^ĩ biên dịch:
- Xem thêm -

Tài liệu liên quan