giáo trình đại học bách khoa

Giáo trình Toán ứng dụng I - Đại học Bách Khoa Hà Nội

Giáo trình Toán ứng dụng I - Đại học Bách Khoa Hà Nội

...          0, 0, 1 sin xa x x xf   af 0   af 0 VÔ CÙNG BÉ   0lim 0   x xx  Đại lượng (x) – vô cùng bé (VCB) khi x  x 0 : VCB cơ bản (x  0): Lượng giác   xxxx tg,cos1,sin ... C(x)(x): VCB (x) VCB, C(x) bị chặn BT:   xx x sin1sinlim   VÍ DỤ 2/ Chứng minh phương trình sau có ít nhất 1 nghiệm âm xx 1 5 1/ Tìm a, b để hàm số sau liên tục trên R              1, 10, 0,1 2 xx xbax xx xf f...

Ngày tải lên: 12/09/2012, 16:20

16 2,8K 25
Giáo trình Cơ sở tạo hình - Trường Đại học Bách Khoa Đà Nẵng

Giáo trình Cơ sở tạo hình - Trường Đại học Bách Khoa Đà Nẵng

... TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ TẠO HÌNH – DÀNH CHO CHUYÊN NGÀNH KIẾN TRÚC 15 Hình I-8a Hình I-8b Hình I-8c Hình I-8e Hình I-8d TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ ... chẳn của các đại lượng, người ta còn gọi đó là tỷ lệ môdun. 2.2.3.2. Ví dụ:(Hình II-2e) Hình II-2b Hình II-2c u v Hình II-2d TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ ... Hình V-2a Hình V-2b Hình V-2c TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ TẠO HÌNH – DÀNH CHO CHUYÊN NGÀNH KIẾN TRÚC 17 theo dõi quá trình tạo ra kiệt tác này. Hoá ra là những...

Ngày tải lên: 16/10/2012, 11:26

60 7,3K 46
Giáo trình Vẽ Mỹ ThuậtBỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOAGIÁO TRÌNH VẼ MỸ THUẬT 1VẼ BÚT SẮTTÀI LIỆU THAM KHẢO DÀNH CHO SINH VIÊN HỌC NGÀNH KIẾN TRÚCBIÊN SOẠN: GV. HS. TRẦN VĂN TÂM ĐÀ NẴNG, 2007TRẦN VĂN TÂM1.Giáo potx

Giáo trình Vẽ Mỹ ThuậtBỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOAGIÁO TRÌNH VẼ MỸ THUẬT 1VẼ BÚT SẮTTÀI LIỆU THAM KHẢO DÀNH CHO SINH VIÊN HỌC NGÀNH KIẾN TRÚCBIÊN SOẠN: GV. HS. TRẦN VĂN TÂM ĐÀ NẴNG, 2007TRẦN VĂN TÂM1.Giáo potx

... nước. Giáo trình Vẽ Mỹ Thuật TRẦN VĂN TÂM 37 H61. Lê Trương Di Hạ, 05KT- ĐHBK ĐN, Một góc khu A, 2005. Giáo trình Vẽ Mỹ Thuật TRẦN VĂN TÂM 1 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ... GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA GIÁO TRÌNH VẼ MỸ THUẬT 1 VẼ BÚT SẮT TÀI LIỆU THAM KHẢO DÀNH CHO SINH VIÊN HỌC NGÀNH KIẾN TRÚC ... người già. Giáo trình Vẽ Mỹ Thuật TRẦN VĂN TÂM 39 H63. Trần Đăng Khoa, 02KT- ĐHBK ĐN, Chùa, 2002. H64. Ký họa của SV ĐH Phương Đông, Chùa Mía, Đường Lâm, Hà Tây, 2006. Giáo trình Vẽ Mỹ...

Ngày tải lên: 30/03/2014, 15:20

46 855 2
GIÁO TRÌNH MÔN ĐỘC HỌC MÔI TRƯỜNG ĐẠI HỌC BÁCH KHOA CHƯƠNG 1

GIÁO TRÌNH MÔN ĐỘC HỌC MÔI TRƯỜNG ĐẠI HỌC BÁCH KHOA CHƯƠNG 1

... CHUNG VỀ ðỘC HỌC 1.1. Các khái niệm về ñộc học 1.1.1. ðộc học ðộc học là bộ môn khoa học nghiên cứu về lượng và chất các tác ñộng bất lợi của các tác nhân hoá học, vật lý và sinh học lên hệ ... viên qua học học phần + Nâng cao ý thức bảo vệ môi trường + Nắm ñược cách thức và phương pháp nghiên cứu của bộ môn khoa học ðộc học môi trường. 7. Mô tả vắn tắt nội dung học phần: Học phần ... GIÁO TRÌNH ðỘC HỌC MÔI TRƯỜNG ðẠI HỌC BÁCH KHOA - 2007 4 Chương 1: Một số vấn ñề chung Giới thiệu các khái niệm chung của bộ môn ñộc học môi...

Ngày tải lên: 24/04/2014, 16:10

17 1,2K 4
GIÁO TRÌNH MÔN ĐỘC HỌC MÔI TRƯỜNG ĐẠI HỌC BÁCH KHOA  17 CHƯƠNG 2 NGUYÊN LÝ CỦA ðỘC HỌC

GIÁO TRÌNH MÔN ĐỘC HỌC MÔI TRƯỜNG ĐẠI HỌC BÁCH KHOA 17 CHƯƠNG 2 NGUYÊN LÝ CỦA ðỘC HỌC

... Gây rối loạn quá trình chuyển hóa năng lượng: ñộc chất tác ñộng ñến các hợp chất trung gian trong quá trình chuyển hóa năng lượng hoặc làm mất hoạt tính enzyme gây rối loạn quá trình chuyển hóa ... cản quá trình hô hấp: một số ñộc chất oxy hóa hemoglobin thành methemoglobin là dạng hem protein không có khả năng liên kết với oxy, ngăn cản quá trình hô hấp. - Can thiệp vào các quá trình ... hơn so với chất ban ñầu. Trong trường hợp này ñộc chất ñã ñược hoạt hóa sinh học nhờ các phản ứng sinh học. Quá trình chuyển hóa chịu ảnh hưởng của nhiều yếu tố: ñộ tuổi, di truyền, dinh dưỡng,...

Ngày tải lên: 24/04/2014, 16:11

29 591 0
Giáo trình C++ - Đại Học Bách Khoa (phần 1) potx

Giáo trình C++ - Đại Học Bách Khoa (phần 1) potx

... -Cónhữngngônngữlai,cóthểlậptrìnhhớngđốitợngmộtcáchđầyđủ, màcũngcóthểlậptrìnhdùngđốitợng.TurboPASCAL,C++thuộcloạinày. NgônngữCtừkhirađờiđÃsớmkhẳngđịnhđợcvịthếlàcôngcụchủyếu trongcôngnghệphầnmềm.C++pháttriểnCthànhngônngữhớngđốitợng đÃthừakếđợccácđiểmmạnhcủaCvàthíchứngvớixuhớnglậptrìnhhiệnđại. ChọnC++đểgiảngdạycũngnhlàmcôngcụpháttriểnphầnmềmlàhợplý,vì khôngnhữngnómạnh,mànódễhiểuchonhữngngờivốnquenvớilậptrình truyềnthống,nayđivàolậptrìnhhớngđốitợng.Nhvậychủđềcủacuốnsách làhoàntoànthíchhợpvớinhucầugiảngdạylậptrìnhởcáctrờngđạihọc,cũng nhvớinhucầucủanhữnglậptrìnhviênđanghànhnghề. Cuốnsáchgồm6chơngvà4phụlục -Chơng1:Lậptrìnhhớngđốitợng-phơngphápgiảiquyếtbàitoánmới -Chơng2:NhữngmởrộngcủaC++ -Chơng3:Đốitợngvàlớp -Chơng4:Địnhnghĩatoántửtrênlớp -Chơng5:Kỹthuậtthừakế -Chơng6:Khuônhình -Phụlục1:Cáckênhxuấtnhập -Phụlục2:Xửlýlỗi -Phụlục3:Bàitoánquanhệgiađình -Phụlục4:MÃchơngtrìnhbàitoánquanhệgiađình. T T T T µ µ µ µ i i i i li li li li Ö Ö Ö Ö u u u u tham tham tham tham kh kh kh kh ¶ ¶ ¶ ¶ o o o o [1]. ClaudeDelannoy,ProgrammerenlangageC++,EYROLLES. [2]. ScottRobertLadd,TurboC++TechniquesandApplications,M&TBooks. [3].H.M.Deitel&P.J.Deitel,CHowtoprogram. NhvậycuốnsáchbaotrùmđủcácvấnđềcầnđềcậpvàđÃđợccấutrúckhá hợplý.Mỗichơngđềukếtthúcbởiphầntómtắtvàcácbàitập,thuậntiệnchoviệc họcvàthựchành. NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminh hoạ. Cuốnsáchcóthểdùnglàm: -GiáotrìnhgiảngdạyvềlậptrìnhhớngđốitợngởcáctrờngĐạihọc. -SáchthamkhảovềC++chonhữngngờilậptrìnhchuyênnghiệp. Tôichorằngquyểnsáchlàrấtcóíchvàhyvọngsẽsớmđợcxuấtbảnđể phụcvụbạnđọc.XintrântrọnggiớithiệuvớibạnđọccuốnsáchLậptrìnhhớng đốitợngvớiC++,mộtsxảnphẩmlaođộngkhoahọcnghiêmtúccủatậpthểcán bộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaHànội. Hànội,ngày4tháng5năm1999 GS. GS. GS. GS. Nguy Nguy Nguy Nguy ễ ễ ễ ễ n n n n V V V V ă ă ă ă n n n n Ba Ba Ba Ba Khoa Khoa Khoa Khoa CNTT, CNTT, CNTT, CNTT, Đ Đ Đ Đ HBK HBK HBK HBK H H H H à à à à n n n n ộ ộ ộ ộ i i i i ... -Cónhữngngônngữlai,cóthểlậptrìnhhớngđốitợngmộtcáchđầyđủ, màcũngcóthểlậptrìnhdùngđốitợng.TurboPASCAL,C++thuộcloạinày. NgônngữCtừkhirađờiđÃsớmkhẳngđịnhđợcvịthếlàcôngcụchủyếu trongcôngnghệphầnmềm.C++pháttriểnCthànhngônngữhớngđốitợng đÃthừakếđợccácđiểmmạnhcủaCvàthíchứngvớixuhớnglậptrìnhhiệnđại. ChọnC++đểgiảngdạycũngnhlàmcôngcụpháttriểnphầnmềmlàhợplý,vì khôngnhữngnómạnh,mànódễhiểuchonhữngngờivốnquenvớilậptrình truyềnthống,nayđivàolậptrìnhhớngđốitợng.Nhvậychủđềcủacuốnsách làhoàntoànthíchhợpvớinhucầugiảngdạylậptrìnhởcáctrờngđạihọc,cũng nhvớinhucầucủanhữnglậptrìnhviênđanghànhnghề. Cuốnsáchgồm6chơngvà4phụlục -Chơng1:Lậptrìnhhớngđốitợng-phơngphápgiảiquyếtbàitoánmới -Chơng2:NhữngmởrộngcủaC++ -Chơng3:Đốitợngvàlớp -Chơng4:Địnhnghĩatoántửtrênlớp -Chơng5:Kỹthuậtthừakế -Chơng6:Khuônhình -Phụlục1:Cáckênhxuấtnhập -Phụlục2:Xửlýlỗi -Phụlục3:Bàitoánquanhệgiađình -Phụlục4:MÃchơngtrìnhbàitoánquanhệgiađình. T T T T µ µ µ µ i i i i li li li li Ö Ö Ö Ö u u u u tham tham tham tham kh kh kh kh ¶ ¶ ¶ ¶ o o o o [1]. ClaudeDelannoy,ProgrammerenlangageC++,EYROLLES. [2]. ScottRobertLadd,TurboC++TechniquesandApplications,M&TBooks. [3].H.M.Deitel&P.J.Deitel,CHowtoprogram. NhvậycuốnsáchbaotrùmđủcácvấnđềcầnđềcậpvàđÃđợccấutrúckhá hợplý.Mỗichơngđềukếtthúcbởiphầntómtắtvàcácbàitập,thuậntiệnchoviệc họcvàthựchành. NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminh hoạ. Cuốnsáchcóthểdùnglàm: -GiáotrìnhgiảngdạyvềlậptrìnhhớngđốitợngởcáctrờngĐạihọc. -SáchthamkhảovềC++chonhữngngờilậptrìnhchuyênnghiệp. Tôichorằngquyểnsáchlàrấtcóíchvàhyvọngsẽsớmđợcxuấtbảnđể phụcvụbạnđọc.XintrântrọnggiớithiệuvớibạnđọccuốnsáchLậptrìnhhớng đốitợngvớiC++,mộtsxảnphẩmlaođộngkhoahọcnghiêmtúccủatậpthểcán bộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaHànội. Hànội,ngày4tháng5năm1999 GS. GS. GS. GS. Nguy Nguy Nguy Nguy ễ ễ ễ ễ n n n n V V V V ă ă ă ă n n n n Ba Ba Ba Ba Khoa Khoa Khoa Khoa CNTT, CNTT, CNTT, CNTT, Đ Đ Đ Đ HBK HBK HBK HBK H H H H à à à à n n n n ộ ộ ộ ộ i i i i ... LậptrìnhhớngđốitợngvớiC++ Tácgiả:LêĐăngHng,TạTuấnAnh,NguyễnHữuĐức, NguyễnThanhThuỷ Chủbiên:NguyễnThanhThuỷ Biêntập: Chịutráchnhiệmxuấtbản: Giấyphépxuấtbảnsố: TrờngĐạihọcBáchkhoaHànội KhoaCôngnghệThôngtin ...

Ngày tải lên: 05/07/2014, 16:20

7 1,2K 20
Giáo trình C++ - Đại Học Bách Khoa (phần 2) ppsx

Giáo trình C++ - Đại Học Bách Khoa (phần 2) ppsx

... 60 Mục l ục -329- M M M M ụ ụ ụ ụ c c c c l l l l ụ ụ ụ ụ c c c c Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1. 1. 1. 1. L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng, ng, ng, ng, ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1.Phơngpháplậptrình 1 2.Bàitoánquanhệgiađình 2 3.Lậptrìnhhớngđốitợng 6 3.1Mộtsốkháiniệm 7 3.2CácuđiểmcủaLTHĐT 8 3.3NhữngứngdụngcủaLTHĐT 9 4.Cácngônngữlậptrìnhhớngđốitợng 9 5.NgônngữlậptrìnhC++ 10 Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 2. 2. 2. 2. C C C C á á á á c c c c m m m m ở ở ở ở r r r r ộ ộ ộ ộ ng ng ng ng c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ so so so so v v v v ớ ớ ớ ớ i i i i C C C C 1.CácđiểmkhôngtơngthíchgiữaC++vàANSIC ... 35 8.2Toántửgiảiphóngvùngnhớđộng delete 36 9.Tómtắt 38 9.1Ghinhớ 38 9.2Cáclỗithờnggặp 39 9.3Mộtsốthóiquenlậptrìnhtốt 39 10.Bàitập 39 Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 3. 3. 3. 3. Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng v v v v à à à à l l l l ớ ớ ớ ớ p p p p 1.Đốitợng ... 15 2.2Cáckhảnăngviếtratrên cout 16 2.3Đọcdữliệutừthiếtbịvàochuẩn(bànphím ) cin 18 3.Nhữngtiệníchchongờilậptrình 19 3.1Chúthíchcuốidòng 19 3.2Khaibáomọinơi 20 3.3Toántửphạmvi :: 20 4.Hàminline 21 5.Thamchiếu...

Ngày tải lên: 05/07/2014, 16:20

9 391 4
Giáo trình C++ - Đại Học Bách Khoa (phần 3) pps

Giáo trình C++ - Đại Học Bách Khoa (phần 3) pps

... Lậptr ì nhhớngđố it ợng -7- 2.Chơngtrìnhđợcchiathànhcácđốitợng. 3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng. 4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấu trúcdữliệuđó. 5. Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàm ngoạilaitruynhậptựdo. 6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm 7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođó khicầnthiết 8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up). SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT. 3.1 3.1 3.1 3.1 M M M M ộ ộ ộ ộ t t t t s s s s ố ố ố ố kh kh kh kh á á á á i i i i ni ni ni ni ệ ệ ệ ệ m m m m Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (object) (object) (object) (object) Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức -method)thaotáctrêndữliệuđó.Cóthểđaracôngthứcphảnánhbảnchấtkỹ thuậtcủaLTHĐTnhsau: Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng = = = = D D D D ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u + + + + Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng th th th th ứ ứ ứ ứ c c c c L L L L ớ ớ ớ ớ p p p p (class) (class) (class) (class) LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đó làmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynói cáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngta sẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớp đó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình, chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncó kiểucủalớp. Nguy Nguy Nguy Nguy ê ê ê ê n n n n t t t t ắ ắ ắ ắ c c c c đó đó đó đó ng ng ng ng g g g g ó ó ó ó i i i i d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u TrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcần biếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàm cũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđến nhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng. TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũng nhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthành phầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức) đểlàmviệcđó. Chúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữ LTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ -1- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1 1 1 1 L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1. 1. 1. 1. Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh TừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđối tợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểu đợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơng pháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcòn rấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâu lệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơng phápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh tuy tuy tuy tuy ế ế ế ế n n n n t t t t í í í í nh nh nh nh .Khoahọcmáytínhngàycàngpháttriển,cácphầnmềm đòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrình tuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthể kiểmsoátđợcchơngtrình.Thếlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c (LTCT)rađời. Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon. Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống. Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn. Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhận đợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcon tơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviết cácchơngtrìnhconkhácnhau.Ngônngữlậptrìnhthểhiệnrõnétnhấtphơng pháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplập trìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnào trongmáytính.BởivìtheoquanđiểmcủaLTCTthì Chơngtrình=Cấutrúcdữ liệu+Giảithuật .Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrất vữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrình phụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏở cấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềm rấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđó chínhlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (LTHĐT).Điểmcănbảncủa phơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩa làlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymột sựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliên quan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.Mộtu điểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivới thựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlà chúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêu Lậptr ì nhhớngđố it ợng -3- Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợc vấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽ phảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệu cũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình. Phơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccác vấnđềđÃnêura.Trongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubật đợccáchgiảiquyếtvấnđềnhờLTHĐT. TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigóc độquảnlýtậpcácđốitợngCon Con Con Con ng ng ng ng ờ ờ ờ ờ i i i i .Đểbiếtmốiquanhệgiađìnhcủamỗicá thể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủa cáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng, nóilênrằngchamẹ,anhem,v.v ... Lậptr ì nhhớngđố it ợng -7- 2.Chơngtrìnhđợcchiathànhcácđốitợng. 3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng. 4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấu trúcdữliệuđó. 5. Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàm ngoạilaitruynhậptựdo. 6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm 7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođó khicầnthiết 8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up). SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT. 3.1 3.1 3.1 3.1 M M M M ộ ộ ộ ộ t t t t s s s s ố ố ố ố kh kh kh kh á á á á i i i i ni ni ni ni ệ ệ ệ ệ m m m m Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (object) (object) (object) (object) Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức -method)thaotáctrêndữliệuđó.Cóthểđaracôngthứcphảnánhbảnchấtkỹ thuậtcủaLTHĐTnhsau: Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng = = = = D D D D ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u + + + + Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng th th th th ứ ứ ứ ứ c c c c L L L L ớ ớ ớ ớ p p p p (class) (class) (class) (class) LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đó làmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynói cáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngta sẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớp đó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình, chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncó kiểucủalớp. Nguy Nguy Nguy Nguy ê ê ê ê n n n n t t t t ắ ắ ắ ắ c c c c đó đó đó đó ng ng ng ng g g g g ó ó ó ó i i i i d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u TrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcần biếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàm cũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđến nhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng. TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũng nhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthành phầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức) đểlàmviệcđó. Chúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữ LTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ -1- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1 1 1 1 L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1. 1. 1. 1. Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh TừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđối tợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểu đợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơng pháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcòn rấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâu lệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơng phápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh tuy tuy tuy tuy ế ế ế ế n n n n t t t t í í í í nh nh nh nh .Khoahọcmáytínhngàycàngpháttriển,cácphầnmềm đòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrình tuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthể kiểmsoátđợcchơngtrình.Thếlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c (LTCT)rađời. Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon. Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống. Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn. Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhận đợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcon tơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviết cácchơngtrìnhconkhácnhau.Ngônngữlậptrìnhthểhiệnrõnétnhấtphơng pháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplập trìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnào trongmáytính.BởivìtheoquanđiểmcủaLTCTthì Chơngtrình=Cấutrúcdữ liệu+Giảithuật .Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrất vữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrình phụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏở cấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềm rấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđó chínhlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (LTHĐT).Điểmcănbảncủa phơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩa làlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymột sựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliên quan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.Mộtu điểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivới thựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlà chúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêu Lậptr ì nhhớngđố it ợng -3- Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợc vấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽ phảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệu cũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình. Phơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccác vấnđềđÃnêura.Trongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubật đợccáchgiảiquyếtvấnđềnhờLTHĐT. TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigóc độquảnlýtậpcácđốitợngCon Con Con Con ng ng ng ng ờ ờ ờ ờ i i i i .Đểbiếtmốiquanhệgiađìnhcủamỗicá thể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủa cáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng, nóilênrằngchamẹ,anhem,v.v ... Lậptr ì nhhớngđố it ợng -7- 2.Chơngtrìnhđợcchiathànhcácđốitợng. 3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng. 4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấu trúcdữliệuđó. 5. Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàm ngoạilaitruynhậptựdo. 6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm 7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođó khicầnthiết 8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up). SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT. 3.1 3.1 3.1 3.1 M M M M ộ ộ ộ ộ t t t t s s s s ố ố ố ố kh kh kh kh á á á á i i i i ni ni ni ni ệ ệ ệ ệ m m m m Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (object) (object) (object) (object) Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức -method)thaotáctrêndữliệuđó.Cóthểđaracôngthứcphảnánhbảnchấtkỹ thuậtcủaLTHĐTnhsau: Đố Đố Đố Đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng = = = = D D D D ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u + + + + Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng th th th th ứ ứ ứ ứ c c c c L L L L ớ ớ ớ ớ p p p p (class) (class) (class) (class) LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đó làmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynói cáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngta sẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớp đó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình, chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncó kiểucủalớp. Nguy Nguy Nguy Nguy ê ê ê ê n n n n t t t t ắ ắ ắ ắ c c c c đó đó đó đó ng ng ng ng g g g g ó ó ó ó i i i i d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u TrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcần biếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàm cũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđến nhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng. TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũng nhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthành phầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức) đểlàmviệcđó. Chúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữ LTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ -1- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1 1 1 1 L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1. 1. 1. 1. Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh TừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđối tợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểu đợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơng pháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcòn rấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâu lệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơng phápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh tuy tuy tuy tuy ế ế ế ế n n n n t t t t í í í í nh nh nh nh .Khoahọcmáytínhngàycàngpháttriển,cácphầnmềm đòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrình tuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthể kiểmsoátđợcchơngtrình.Thếlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c (LTCT)rađời. Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon. Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống. Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn. Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhận đợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcon tơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviết cácchơngtrìnhconkhácnhau.Ngônngữlậptrìnhthểhiệnrõnétnhấtphơng pháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplập trìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnào trongmáytính.BởivìtheoquanđiểmcủaLTCTthì Chơngtrình=Cấutrúcdữ liệu+Giảithuật .Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrất vữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrình phụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏở cấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềm rấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđó chínhlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (LTHĐT).Điểmcănbảncủa phơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩa làlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymột sựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliên quan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.Mộtu điểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivới thựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlà chúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêu Lậptr ì nhhớngđố it ợng -3- Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợc vấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽ phảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệu cũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình. Phơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccác vấnđềđÃnêura.Trongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubật đợccáchgiảiquyếtvấnđềnhờLTHĐT. TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigóc độquảnlýtậpcácđốitợngCon Con Con Con ng ng ng ng ờ ờ ờ ờ i i i i .Đểbiếtmốiquanhệgiađìnhcủamỗicá thể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủa cáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng, nóilênrằngchamẹ,anhem,v.v...

Ngày tải lên: 05/07/2014, 16:20

13 603 4
Giáo trình C++ - Đại Học Bách Khoa (phần 4) doc

Giáo trình C++ - Đại Học Bách Khoa (phần 4) doc

... q=m; //gángiátrịcủabiếnmchobiếnn. Nóimộtcáchđơngiản,thamchiếucủamộtbiếngiốngnhbídanhcủamột conngờinàođó.Cónghĩalàđểchỉđếnmộtconngờicụthểnàođó,tacóthể đồngthờisửdụngtêncủaanhtahoặcbídanh.Dovậy,đểtruynhậpđếnvùngnhớ tơngứngvớimộtbiến,chúngtacóthểsửdụnghoặclàtênbiếnhoặclàtêntham chiếutơngứng.Đốivớiconngời,bídanhbaogiờcũngnhằmnóiđếnmộtngời đÃtồntại,vànhvậythamchiếucũngphảiđợckhaibáovàkhởitạosaukhibiến đợckhaibáo.Chơngtrìnhsauđâysẽgâylỗibiêndịchdothamchiếuycha đợckhởitạo. V V V V í í í í d d d d ụ ụ ụ ụ 2.9 2.9 2.9 2.9 Chơngtrìnhsai #include <iostream.h> voidmain() { intx=3,&y; //lỗiv ì yphảiđợckhởi t ạo CácmởrộngcủaC++ -22- getch(); } /*Địnhnghĩahàminline*/ inlinedoublenorme(doublevec[3]) { int i;double s=0; for(i=0;i<3;i++) s+=vec[i]*vec[i]; return(sqrt(s)); } normecuav1:2.236068-normecuav2:3.316625 Hàm norme() nhằmmụcđíchtínhchuẩncủa vector vớibathànhphần. Từkhoáinline inline inline inline yêucầuchơngtrìnhbiêndịchxửlýhàmnormekhácvớicác hàmthôngthờng.Cụthểlà,mỗilầngọi norme() ,trìnhbiêndịchghéptrựctiếp cácchỉthịtơngứngcủahàmvàotrongchơngtrình(ởdạngngônngữmáy).Do đócơchếquảnlýlờigọivàtrởvềkhôngcầnnữa(khôngcầnlungữcảnh,sao chépcácthôngsố ... 40 CácmởrộngcủaC++ -15- TrongC++,chỉcóchuyểnđổikiểungầmđịnhtừmộtkiểutrỏtuỳýthành void* void* void* void* làchấpnhậnđợc,cònmuốnchuyểnđổingợclại,taphảithựchiệnchuyển kiểutờngminhnhcáchviếtsauđây: gen = adj; adj = (int*)gen; 2. 2. 2. 2. C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng v v v v à à à à o/ra o/ra o/ra o/ra m m m m ớ ớ ớ ớ i i i i c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Cáctiệníchvào/ra(hàmhoặcmacro)củathviệnCchuẩnđềucóthểsửdụng trongC++.Đểsửdụngcáchàmnàychúngtachỉcầnkhaibáotệptiêuđềtrongđó cóchứakhaibáohàmnguyênmẫucủacáctiệníchnày. Bêncạnhđó,C++còncàiđặtthêmcáckhảnăngvào/ramớidựatrênhaitoán tử<<(xuất)và>>(nhập)vớicácđặctínhsauđây: 6. đơngiảntrongsửdụng 7.cókhảnăngmởrộngđốivớicáckiểumớitheonhucầucủangờilập trình. Trongtệptiêuđề iostream.h ngờitađịnhnghĩahaiđốitợngcout cout cout cout vàcin cin cin cin tơngứngvớihaithiếtbịchuẩnra/vàođợcsửdụngcùngvới<<và>>.Thông thờngtahiểucout cout cout cout làmànhìnhcòncin cin cin cin làbànphím. 2.1 2.1 2.1 2.1 Ghi Ghi Ghi Ghi d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u l l l l ê ê ê ê n n n n thi thi thi thi ế ế ế ế t t t t b b b b ị ị ị ị ra ra ra ra chu chu chu chu ẩ ẩ ẩ ẩ n n n n (m (m (m (m à à à à n n n n h h h h ì ì ì ì nh) nh) nh) nh) cout cout cout cout Trongphầnnàytaxemxétmộtsốvídụminhhoạcáchsửdụngcout cout cout cout và<< đểđathôngtinramànhình. V V V V í í í í d d d d ụ ụ ụ ụ 2.2 2.2 2.2 2.2 Chơngtrìnhsauminhhoạcáchsửdụngcout cout cout cout đểđaramànhìnhmộtxâuký tự. #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ main() { cout << "Welcome C++"; } WelcomeC++ << làmộttoántửhaingôi,toánhạngởbêntráimôtảnơikếtxuấtthôngtin (cóthểlàmộtthiếtbịngoạivichuẩnhaylàmộttậptin),toánhạngbênphảicủa << làmộtbiểuthứcnàođó.Trongchơngtrìnhtrên,câulệnh cout <<"Welcome C++" đaramànhìnhxâukýtự Welcome C++ . CácmởrộngcủaC++ -31- return (min(min(a,b),c)); } double min(double a, double b) { return(a> b?a: b); } char min(char a, char b) { return(a> b?a: b); } intmin(int n, int*t) { intres = t[0]; for(inti=1;i<n;i++) res = min(res,t[i]); returnres; } Nh Nh Nh Nh ậ ậ ậ ậ n n n n x x x x é é é é t t t t 16. Mộthàmcóthểgọiđếnhàmcùngtênvớinó(vídụnhhàm4,5gọihàm1). 17. Trongtrờnghợpcócáchàmtrùngtêntrongchơngtrình,việcxácđịnh hàmnàođợcgọidochơngtrìnhdịchđảmnhiệmvàtuântheocác nguyêntắcsau: Trờnghợpcáchàmcómộ t thamsố Chơngtrìnhdịchtìmkiếmsựtơngứngnhiềunhấtcóthểđợc;cócác mứcđộtơngứngnhsau(theođộutiêngiảmdần): a)Tơngứngthậtsự:taphânbiệtcáckiểudữliệucơsởkhácnhauđồngthời luýđếncảdấu. b) Tơngứngdữliệusốnhngcósựchuyểnđổikiểudữliệutựđộng (numericpromotion): char char char char vàshort short short short ... > ( void void void void *) . Xétvídụsauđây: V V V V í í í í d d d d ụ ụ ụ ụ 2.4 2.4 2.4 2.4 #include <iostream.h> voidvoidmain(){ int n= 25; long p= 250000; unsigned q= 63000; char c= 'a'; float x= 12.3456789; double y= 12.3456789e16; char * ch = "Welcome C++"; int*ad = &n; cout <<"Value of n:" << n <<"\n"; cout <<"Value of p:" << p <<"\n"; cout <<"Value of c:" << c <<"\n"; cout <<"Value of q:" << q <<"\n"; cout <<"Value of x:" << x <<"\n"; cout <<"Value of y:" << y <<"\n"; cout <<"Value ofch :" <<ch <<"\n"; cout <<"Addrese of n:" <<ad <<"\n"; cout <<"Addrese dech :" << (void*)ch<<"\n"; } Valueofn:25 Valueofp:250000 Valueofc:a Valueofq:63000 Valueofx:12.345679 Valueofy:1.234567e+17 Valueofch:WelcomeC++ Addreseofn:0xfff2 Addresedech:0x00b2 CácmởrộngcủaC++ -29- int &fr(int *d,inti); voidmain() { clrscr(); cout<<"Nhap giatrichomanga:\n"; for(inti=0;i<5;i++) { cout<<"a["<<i<<"]= "; cin>>fr(a,i); } cout<<"Mang a saukhi nhap\n"; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<"\n"; getch(); } int &fr(int *d,int i){ returnd[i]; } Nhapgiatrichomanga: a[0]=6 a[1]=4 a[2]=3 a[3]=5 a[4]=6 Mangasaukhinhap 64356 BạnđọccóthểxemthêmphầnĐịnhnghĩachồngtoántửđểthấyđợclợi íchcủavấnđềtrảvềthamchiếuchohàm. 6. 6. 6. 6. Đị Đị Đị Đị nh nh nh nh ngh ngh ngh ngh ĩ ĩ ĩ ĩ a a a a ch ch ch ch ồ ồ ồ ồ ng ng ng ng h h h h à à à à m m m m ( ( ( ( Overloading Overloading Overloading Overloading functions functions functions functions ) ) ) ) C++chophépsửdụngmộttênchonhiềuhàmkhácnhautagọiđólàsự chồnghàm.Trongtrờnghợpđó,cáchàmsẽkhácnhauởgiátrịtrảvềvàdanh sáchkiểucácthamsố.Chẳnghạnchúngtamuốnđịnhnghĩacáchàmtrảvềsốnhỏ nhấttrong: CácmởrộngcủaC++ -33- khaibáo int =12 chỉrarằngtrongtrờnghợpvắngmặtthamsốthứhaiởlờigọihàmfct()thì thamsốhìnhthứctơngứngsẽđợcgángiátrịngầmđịnh12. Lờigọi fct(); khôngđợcchấpnhậnbởivìkhôngcógiátrịngầmđịnhchothamsốthứnhất. V V V V í í í í d d d d ụ ụ ụ ụ 2.14 2.14 2.14 2.14 #include <iostream.h> voidmain(){ int n=10,p=20; void fct(int =0, int = 12); //khaibáohàmvớ i haithamsốcógiátr ị ngầmđịnh fct(n,p); //lờigọithôngthờng,cóhaithamsố fct(n); //lờigọichỉvớ i mộtthamsố fct() ; //fct()đÃđợcchấpnhận } voidfct(int a, int b) //khaibáobìnhthờng { cout<<"tham so thunhat :" <<a<<"\n"; cout<<"tham so thuhai : "<<b<<"\n"; } thamsothunhat:10 thamsothuhai:20 thamsothunhat:10 thamsothuhai:12 thamsothunhat:0 thamsothuhai:12 Ch Ch Ch Ch ú ú ú ú ý ý ý ý 18.Cácthamsốvớigiátrịngầmđịnhphảiđợcđặtởcuốitrongdanhsáchcác thamsốcủahàmđểtránhnhầmlẫncácgiátrị. 19. Cácgiátrịngầmđịnhcủathamsốđợckhaibáokhisửdụngchứkhông phảitrongphầnđịnhnghĩahàm.Vídụsauđâygâyralỗibiêndịch: C¸cmëréngcñaC++ -37- deletemat[i]; deletemat; } void Nhap(int ** mat) { inti,j; for(i=0;i<10;i++) for(j=0;j<10;j++) { cout<<"Thanhphanthu ["<<i<<"]["<<j<<"]= "; cin>>mat[i][j]; } } voidIn(int ** mat) { inti,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) cout<<mat[i][j]<<" "; cout<<"\n"; } } V V V V Ý Ý Ý Ý d d d d ô ô ô ô 2.18 2.18 2.18 2.18 Qu¶nlýtrµnbénhí set_new_handler #include<iostream> main() { void outof(); set_new_handler(&outof); longtaille; int*adr; intnbloc; cout<<"Kich thuoccannhap? "; CácmởrộngcủaC++ -19- Tathamkhảochơngtrìnhsau: V V V V í í í í d d d d ụ ụ ụ ụ 2.6 2.6 2.6 2.6 #include<iostream.h> #include<conio.h> voidmain() { int n; float x; chart[81]; clrscr(); do{ cout << "Nhapvaomot so nguyen, mot xau, mot so thuc :"; cin >>n>>t>>x; cout << "Danhap "<<n<< "," <<t<< " va"<<x<< "\n"; } while(n); } Nhapvaomotsonguyen,motxau,motsothuc:3long3.4 Danhap3,longva3.4 Nhapvaomotsonguyen,motxau,motsothuc:5hung5.6 Danhap5,hungand5.6 Nhapvaomotsonguyen,motxau,motsothuc:04 3 Danhap0,4va3 3. 3. 3. 3. Nh Nh Nh Nh ữ ữ ữ ữ ng ng ng ng ti ti ti ti ệ ệ ệ ệ n n n n í í í í ch ch ch ch cho cho cho cho ng ng ng ng ờ ờ ờ ờ i i i i l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh 3.1 3.1 3.1 3.1 Ch Ch Ch Ch ú ú ú ú th th th th í í í í ch ch ch ch cu cu cu cu ố ố ố ố i i i i d d d d ò ò ò ò ng ng ng ng Mọikýhiệuđisau//chođếnhếtdòngđợccoilàchúthích,đợcchơng trìnhdịchbỏquakhibiêndịchchơngtrình. Xétvídụsau: cout << "Xin chao\n"; //lờ i chàohỏi Thờngtasửdụngchúthíchcuốidòngkhimuốngiảithíchýnghĩacủamột câulệnhgìđó.Đốivớimộtđoạnchơngtrìnhkiểuchúthíchgiớihạnbởi/*và */chophépmôtảđợcnhiềuthôngtinhơn. CácmởrộngcủaC++ -23- square(3) sẽgâylỗibiêndịchvìtakhôngthểthựchiệncácphéptoántănggiảmtrêncác toánhạnglàhằngsố. Việcsửdụnghàminline inline inline inline nhmộtgiảiphápthaythếsẽtránhđợccáctình huốngnhthế. Ngoàira,cáchàminline inline inline inline cóthểđợctốiubởichơngtrìnhbiêndịch. Điềuquantrọnglàđặctảinline inline inline inline chỉlàmộtyêucầu,chứkhôngphảilàmộtchỉ thịđốivớitrìnhbiêndịch.Nếuvìmộtlýdonàođótrìnhbiêndịchkhôngthểđáp ứngđợcyêucầu(chẳnghạnkhibêntrongđịnhnghĩahàminline inline inline inline cócáccấutrúc lặp)thìhàmsẽđợcbiêndịchnhmộthàmbìnhthờngvàyêucầuinline inline inline inline sẽbịbỏ qua. Hàminline inline inline inline phảiđợckhaibáobêntrongtệptinnguồnchứacáchàmsửdụng nó.Khôngthểdịchtáchbiệtcáchàminline inline inline inline . 1 5. 5. 5. 5. Tham Tham Tham Tham chi chi chi chi ế ế ế ế u u u u NgônngữC++giớithiệumộtkháiniệmmớireferencetạmdịchlàtham chiếu.Vềbảnchất,thamchiếulàbídanhcủamộtvùngnhớđợccấpphátcho mộtbiếnnàođó. Mộtthamchiếucóthểlàmộtbiến,thamsốhìnhthứccủahàmhaydùnglàm giátrịtrảvềcủamộthàm.Cácphầntiếpsaulầnlợtgiớithiệucáckhảnăngcủa thamchiếuđợcsửdụngtrongchơngtrìnhviếtbằngngônngữC++. 5.1 5.1 5.1 5.1 Tham Tham Tham Tham chi chi chi chi ế ế ế ế u u u u t t t t ớ ớ ớ ớ i i i i m m m m ộ ộ ộ ộ t t t t bi bi bi bi ế ế ế ế n n n n Xéthaichỉthị: int n; int &p=n; Trongchỉthịthứhai,dấu & đểxácđịnhplàmộtbiếnthamchiếucòndấu = vàtênbiến n đểxácđịnhvùngnhớmàpthamchiếutới.Lúcnàycảhaiđịnhdanh p và n cùngxácđịnhvùngnhớđợccấpphátchobiếnn.Nhvậycácchỉthịsau: n =3; cout<<p; 1 Biêndịchtáchbiệtchophépkhaibáohàmtrongmộttệptiêuđề,cònđịnhnghĩa hàmđólạiởtrongtậptinchơngtrìnhsửdụnghàm. CácmởrộngcủaC++ -21- Trongnhữngtrờnghợpcầnthiết,khimuốntruyxuấttớibiếntoàncụcphảisử dụngtoántử:: :: :: :: trớctênbiến: #include <iostream.h> int x; main() { int x= 10; //xcụcbộ ::x = 10; //xtoàncục cout<<x<< \n ; //xcụcbộ cout<<::x<< \n ; //xtoàncục } 4. 4. 4. 4. H H H H à à à à m m m m inline inline inline inline TrongC++cóthểđịnhnghĩacáchàmđợcthaythếtrựctiếpthànhmÃlệnh máytạichỗgọi(inline)mỗilầnđợcthamchiếu.Điểmnàyrấtgiốngvớicáchhoạt độngcủacácmacrocóthamsốtrongC.Ưuđiểmcủacáchàminline inline inline inline làchúng khôngđòihỏicácthủtụcbổsungkhigọihàmvàtrảgiátrịvề.Dovậyhàminline inline inline inline đợcthựchiệnnhanhhơnsovớicáchàmthôngthờng. Mộthàminline inline inline inline đợcđịnhnghĩavàđợcsửdụnggiốngnhbìnhthờng. Điểmkhácnhauduynhấtlàphảiđặtmôtảinline inline inline inline trớckhaibáohàm. Xétvídụsauđây: V V V V í í í í d d d d ụ ụ ụ ụ 2.7 2.7 2.7 2.7 #include <iostream.h> #include<math.h> #include<conio.h> inlinedoublenorme(double vec[3]); //khaibáohàminline voidmain(){ clrscr(); doublev1[3],v2[3]; int i; for(i=0;i<3;i++) { v1[i]=i;v2[i]=2*i-1;} cout <<"norme cua v1 : "<<norme(v1)<<" - norme cua v2 : "<<norme(v2); ...

Ngày tải lên: 05/07/2014, 19:20

29 760 5

Bạn có muốn tìm thêm với từ khóa:

w