0
  1. Trang chủ >
  2. Giáo Dục - Đào Tạo >
  3. Cao đẳng - Đại học >

Giáo trình triệu chứng học nội khoa pps

Triệu chứng học nội khoa.

Triệu chứng học nội khoa.

... về phương diện ghi chép các triệu chứng còn có nghĩa là không nhưng ghi chép các triệu chứng “có” mà cả các triệu chứng “ không” vì sự không có của một vài triệu chứng nào đó rất cần thiết cho ... viêm có thể gây ra những triệu chứng đau nhói vùng tim.II- CÁC TRIỆU CHỨNG CHỦ QUAN TRONG BỆNH TIMA- TRIỆU CHỨNG ĐẶC HIỆU1. Khó thở: Khó thở trong bệnh tim là một triệu chứng phổ biến có giá ... có trước, cái nào có sau và trước sau bao nhiêu lâu.- Hỏi các triệu chứng kèm theo các triệu chứng nói trên, thường là các triệu chứng thuộc bộ phận bị ốm.- Hỏi tình hình các bộ phận khác và...
  • 494
  • 4,051
  • 12
Triệu chứng học nội khoa

Triệu chứng học nội khoa

... đánh giá đúng mức các triệu chứng, nhất là các triệu chứng chủ quan của người bệnh: việc nhận định, phân tích, đánh giá các triệu chứng đó phải dựa trên một cơ sở khoa học. - Phải thận trong ... về phương diện ghi chép các triệu chứng còn có nghĩa là không nhưng ghi chép các triệu chứng “có” mà cả các triệu chứng “ không” vì sự không có của một vài triệu chứng nào đó rất cần thiết cho ... và phải căn cứ vào những triệu chứng đặc hiệu có giá trị chẩn đoán của bệnh đó.3. Nên cố gắng tìm một chẩn đoán bệnh có thể bao gồm được tất cả các hội chứng triệu chứng chính của người bệnh....
  • 497
  • 1,528
  • 15
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

... 60Mụclục-329-MMMMụụụụccccllllụụụụccccChChChChơơơơngngngng1.1.1.1.LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợng,ng,ng,ng,phphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.Phơngpháplậptrình 12.Bàitoánquanhệgiađình 23.Lậptrìnhhớngđốitợng 63.1Mộtsốkháiniệm 73.2CácuđiểmcủaLTHĐT 83.3NhữngứngdụngcủaLTHĐT 94.Cácngônngữlậptrìnhhớngđốitợng 95.NgônngữlậptrìnhC++ 10ChChChChơơơơngngngng2.2.2.2.CCCCááááccccmmmmởởởởrrrrộộộộngngngngccccủủủủaaaaC++C++C++C++sosososovvvvớớớớiiiiCCCC1.CácđiểmkhôngtơngthíchgiữaC++vàANSIC ... 358.2Toántửgiảiphóngvùngnhớđộngdelete 369.Tómtắt 389.1Ghinhớ 389.2Cáclỗithờnggặp 399.3Mộtsốthóiquenlậptrìnhtốt 3910.Bàitập 39ChChChChơơơơngngngng3.3.3.3.ĐốĐốĐốĐốiiiittttợợợợngngngngvvvvààààllllớớớớpppp1.Đốitợng ... 152.2Cáckhảnăngviếtratrêncout 162.3Đọcdữliệutừthiếtbịvàochuẩn(bànphím)cin 183.Nhữngtiệníchchongờilậptrình 193.1Chúthíchcuốidòng 193.2Khaibáomọinơi 203.3Toántửphạmvi:: 204.Hàminline 215.Thamchiếu...
  • 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ấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.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.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(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:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(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óicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽ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.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữ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ũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầ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-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợ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ơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.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ìnhtuyế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ápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(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ìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmá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ấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụ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ềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.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ớithự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êuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấ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ệucũ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ácvấ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ợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacá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ấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.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.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(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:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(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óicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽ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.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữ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ũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầ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-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợ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ơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.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ìnhtuyế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ápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(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ìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmá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ấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụ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ềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.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ớithự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êuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấ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ệucũ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ácvấ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ợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacá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ấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.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.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(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:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(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óicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽ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.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữ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ũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầ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-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợ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ơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.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ìnhtuyế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ápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(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ìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmá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ấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụ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ềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.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ớithự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êuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấ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ệucũ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ácvấ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ợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng,nóilênrằngchamẹ,anhem,v.v...
  • 13
  • 603
  • 4
Giáo trình C++ - Đại Học Bách Khoa (phần 6) pps

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

... Địnhnghĩatoántửtrênlớp-122-Tuynhiênviệcdùngthamchiếunhlàgiátrịtrảvềcủahàmtoántử,cónhiềuđiềuđángnói.Biểuthứcnằmtronglệnhreturnreturnreturnreturnbắtbuộcphảithamchiếuđếnmộtvùngnhớtồntạingaycảkhithựchiệnxongbiểuthứctứclàkhihàmtoántửkếtthúcthựchiện.Vùngnhớấycóthểlàmộtbiếnđợccấptĩnhstaticstaticstaticstatic(cácbiếntoàncụchaybiếncụcbộstatic),static),static),static),mộtbiếnthểhiện(mộtthànhphầndữliệu)củamộtđốitợngnàođóởngoàihàm.Bạnđọccóthểxemchơngtrìnhvecmat3.cpptrongchơng3đểhiểurõhơn.Vấnđềtơngtựcũngđợcđềcậpkhigiátrịtrảvềcủahàmtoántửlàđịachỉ;trongtrờnghợpnày,mộtđốitợngđợctạoranhờcấpphátđộngtrongvùngnhớheapdùngđộclậpvớivùngnhớngănxếpdùngđểcấpphátbiến,đốitợngcụcbộtrongchơngtrình,dovậyvẫncònlulạikhihàmtoántửkếtthúccôngviệc.Hàmtoántửcũngcóthểtrảvềkiểuvoidkhiảnhhởngchỉtácđộnglênmộttrongcáctoánhạngthamgiabiểuthức.Xemđịnhnghĩacủahàmđảodấusốphứctrongvídụsau:VVVVííííddddụụụụ4.54.54.54.5/*complex5.cpp*//*complex5.cpp*//*complex5.cpp*//*complex5.cpp*/#include<iostream.h>#include<conio.h>#include<math.h>classcomplex{floatreal,image;public:complex(floatr=0,floati=0){real=r;image=i;}voiddisplay(){cout<<real<<(image>=0?'+':'-')<<"j*"<<fabs(image)<<endl;}/*Hàmđảodấuchỉtácđộnglêntoánhạng,khôngsửdụngđợctrongcácbiểuthức*/voidoperator-(){Địnhnghĩatoántửtrênlớp-153-fct(6);//lờigọihàmthôngthờngfct(a);//lờigọihàmcóxảyrachuyểnđổikiểudữliệugetch();}Goifctvoithamso:6Goifloat()chocomplexGoifctvoithamso:3Trongchơngtrìnhnày,lờigọihàmfct(a)đÃđợcchơngtrìnhdịchchuyểnthànhcácthaotác:(xiii)chuyểnđổiđốitợngthànhfloatfloatfloatfloat,(xiv)lờigọihàmfct()vớithamsốlàgiátrịthuđợcsauchuyểnđổi.Sựchuyểnđổiđợcthựchiệnkhigọihàmdođókhôngxảyraviệcsaochéplạiđốitợnga.6.1.26.1.26.1.26.1.2HHHHààààmmmmtotototoáááánnnnttttửửửửchuychuychuychuyểểểểnnnnkikikikiểểểểuuuutrongtrongtrongtrongbibibibiểểểểuuuuththththứứứứccccChơngtrìnhdớiđâychotabiếtbiểuthứcdạnga+bhoặca+3đợctínhnhthếnàovớia,blàcácđốitợngkiểucomplex.VVVVííííddddụụụụ4.134.134.134.13/*complex8.cpp*//*complex8.cpp*//*complex8.cpp*//*complex8.cpp*/#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr,floati){real=r;image=i;}Địnhnghĩatoántửtrênlớp-139-}TaosophucaPhanthuc:3Phanao:4TaosophucbPhanthuc:5Phanao:3Inhaisophuca=3+j*4b=5+j*3NhNhNhNhậậậậnnnnxxxxéééétttt13.Trongchơngtrìnhtrên,takhôngthấycáchàmthiếtlậptờngminhđểgángiátrịchocácđốitợng.Thựctế,việcgáncácgiátrịchocácđốitợngđợcđảmnhiệmbởihàmtoántửoperatoroperatoroperatoroperator>>.14.Việchiểnthịnộidungcủacácđốitợngsốphứccótrớcđâydohàmthànhphầndisplay()đảmnhiệmthìnayđÃcóthểthaythếnhờhàmtoántửoperator<<.15.Haihàmoperator<<vàoperator>>chophépsửdụngcoutvàcincùnglúcvớinhiềuđốitợngkhácnhau:giátrịsốnguyên,sốthực,xâukýtự,kýtựvàcácđốitợngcủalớpcomplex.Cóthểthửnghiệmcáccáchkhácđểthấyđợcrằnggiảiphápđaratrongchơngtrìnhtrênlàtốtnhất.5.45.45.45.4ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngccccáááácccctotototoáááánnnnttttửửửửnewnewnewnewvvvvààààdeletedeletedeletedeleteCáctoántửnewnewnewnewvàdeletedeletedeletedeleteđợcđịnhnghĩachotừnglớpvàchúngchỉcóảnhhởngđốivớicáclớpliênquan,còncáclớpkhácvẫnsửdụngcáctoántửnewnewnewnewvàdeletedeletedeletedeletenhbìnhthờng.Địnhnghĩachồngtoántửnewnewnewnewbuộcphảisửdụnghàmthànhphầnvàđápứngcácràngbuộcsau:(ix)cómộtthamsốkiểusize_t(trongtệptiêuđềstddef.h).Thamsốnàytơngứngvớikíchthớc(tínhtheobyte)củađốitợngxincấpphát.Luýrằngđâylàthamsốgiả(dumpargument)vìnósẽkhôngĐịnhnghĩatoántửtrênlớp-112-c=a+b;trongvídụtrênđợcchơngtrìnhdịchhiểulà:c=a.operator+(b);NhNhNhNhậậậậnnnnxxxxéééétttt7.Thựcracáchviếta+bchỉlàmộtquyớccủachơngtrìnhdịchchophépngờisửdụngviếtgọnlại,nhờđócảmthấytựnhiênhơn.8.Hàmtoántửoperator+phảicóthuộctínhpublicpublicpublicpublicvìnếukhôngchơngtrìnhdịchkhôngthểthựchiệnđợcnóởngoàiphạmvilớp.9.Tronglờigọia.operator+(b),ađóngvaitròcủathamsốngầmđịnhcủahàmthànhphầnvàblàthamsốtờngminh.Sốthamsốtờngminhchohàmtoántửthànhphầnluôníthơnsốngôicủaphéptoánlà1vìcómộtthamsốngầmđịnhlàđốitợnggọihàmtoántử.10.Chơngtrìnhdịchsẽkhôngthểhiểuđợcbiểuthức3+avìcáchviếttơngứng3.operator(a)khôngcóýnghĩa.Đểgiảiquyếttìnhhuốngnàytadùnghàmbạnđểđịnhnghĩahàmtoántử.2.22.22.22.2HHHHààààmmmmtotototoáááánnnnttttửửửửllllààààhhhhààààmmmmbbbbạạạạnnnnChơngtrìnhcomplex2.cppđợcpháttriểntừcomplex1.cppbằngcáchthêmhàmtoántửcộngthêmmộtsốthựcfloatfloatfloatfloatvàophầnthựccủamộtđốitợngcomplex,đợcbiểuthịbởiphépcộngvớisốthựcfloatfloatfloatfloatlàtoánhạngthứnhất,cònđốitợngcomplexlàtoánhạngthứhai.Trongtrờnghợpnàykhôngthểdùngphépcộngnhhàmthànhphầnvìthamsốthứnhấtcủahàmtoántửkhôngcònlàmộtđốitợng.VVVVííííddddụụụụ4.24.24.24.2/*complex2.cpp*//*complex2.cpp*//*complex2.cpp*//*complex2.cpp*/#include<iostream.h>#include<conio.h>#include<math.h>classcomplex{floatreal,image;public:complex(floatr=0,floati=0){real=r;image=i;Địnhnghĩatoántửtrênlớp-140-đợcmôtảkhigọitớitoántửnew,new,new,new,màdochơngtrìnhbiêndịchtựđộngtínhdựatrênkíchthớccủađốitợngliênđới.(x)trảvềmộtgiátrịkiểuvoidvoidvoidvoid*tơngứngvớiđịachỉvùngnhớđộngđợccấpphát.Khiđịnhnghĩachồngtoándeletedeletedeletedeletetaphảisửdụnghàmthànhphần,tuântheocácquytắcsauđây:(xi)nhậnmộtthamsốkiểucontrỏtớilớptơngứng;contrỏnàymangđịachỉvùngnhớđộngđÃđợccấpphátcầngiảiphóng,(xii)khôngcógiátrịtrảvề(trảvềvoidvoidvoidvoid)NhNhNhNhậậậậnnnnxxxxééééttttCóthểgọiđợccáctoántửnewnewnewnewvàdeletedeletedeletedeletechuẩn(ngaycảkhichúngđÃđợcđịnhnghĩachồng)thôngquatoántửphạmvi.Cáctoántửnewnewnewnewvàdeletedeletedeletedeletelàcáchàmthànhphầnstaticstaticstaticstaticcủacáclớpbởivìchúngkhôngcóthamsốngầmđịnh.Sauđâygiớithiệuvídụđịnhnghĩachồngcáctoántửnewnewnewnewvàdeletedeletedeletedeletetrênlớppoint.Vídụcũngchỉracáchgọilạicáctoántửnewnewnewnewvàdeletedeletedeletedeletetruyềnthống.VVVVííííddddụụụụ4.94.94.94.9/*newdelete.cpp*//*newdelete.cpp*//*newdelete.cpp*//*newdelete.cpp*/#include<iostream.h>#include<stddef.h>#include<conio.h>classpoint{staticintnpt;/*sốđiểmtĩnh*/staticintnpt_dyn;/*sốđiểmđộng*/intx,y;public:point(intox=0,intoy=0){x=ox;y=oy;npt++;-109-ChChChChơơơơngngngng4444địđịđịđịnhnhnhnhnghnghnghnghĩĩĩĩaaaatotototoáááánnnnttttửửửửtrtrtrtrêêêênnnnllllớớớớpppp(class(class(class(classoperators)operators)operators)operators)Mụcđíchchơngnày:1.Cáchđịnhnghĩacácphéptoánchokiểudữliệulớpvàcấutrúc2.Cáctoántửchuyểnkiểuápdụngchokiểudữliệulớp1.1.1.1.GiGiGiGiớớớớiiiithithithithiệệệệuuuuchungchungchungchungThựcra,vấnđềđịnhnghĩachồngtoántửđÃtừngcótrongC,vídụtrongbiểuthức:a+bkýhiệu+tuỳtheokiểucủaavàbcóthểbiểuthị:3.phépcộnghaisốnguyên,4.phépcộnghaisốthựcđộchínhxácđơn(floatfloatfloatfloat)5.phépcộnghaisốthựcchínhxácđôi(doubledoubledoubledouble)6.phépcộngmộtsốnguyênvàomộtcontrỏ.TrongC++,cóthểđịnhnghĩachồngđốivớihầuhếtcácphéptoán(mộtngôihoặchaingôi)trêncáclớp,nghĩalàmộttrongsốcáctoánhạngthamgiaphéptoánlàcácđốitợng.Đâylàmộtkhảnăngmạnhvìnóchophépxâydựngtrêncáclớpcáctoántửcầnthiết,làmchochơngtrìnhđợcviếtngắngọndễđọchơnvàcóýnghĩahơn.Chẳnghạn,khiđịnhnghĩamộtlớpcomplexđểbiểudiễncácsốphức,cóthểviếttrongC++:a+b,a-b,a*b,a/bvớia,blàcácđốitợngcomplex.Đểcóđợcđiềunày,tađịnhnghĩachồngcácphéptoán+,-,*và/bằngcáchđịnhnghĩahoạtđộngcủatừngphéptoángiốngnhđịnhnghĩamộthàm,chỉkháclàđâylàhàmtoántử(operatorfunction).Hàmtoántửcótênđợcghépbởitừkhoáoperatoroperatoroperatoroperatorvàkýhiệucủaphéptoántơngứng.Bảng4.1đaramộtsốvídụvềtênhàmtoántử.Hàmtoántửcóthểdùngnhlàmộthàmthànhphầncủamộtlớphoặclàhàmtựdo;khiđóhàmtoántửphảiđợckhaibáolàbạncủacáclớpcócácđốitợngmàhàmthaotác.§ÞnhnghÜato¸ntötrªnlíp-156-#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr){cout<<"Hamthietlapdongvaitrocuahamtoantuchuyenkieungamdinh\n";real=r;image=0;}complex(floatr,floati){cout<<"Hamthietlap\n";real=r;image=i;}complex(complex&b){cout<<"Hamthietlapsaocheplai"<<&b<<"Sang"<<this<<endl;real=b.real;image=b.image;}};voidfct(complexp){cout<<"Goifct\n";}voidmain(){clrscr();complexa(3,4);a=complex(12);a=12;fct(4);Địnhnghĩatoántửtrênlớp-111-/*hàmoperator+địnhnghĩaphéptoán+haingôitrênlớpsốphứccomplex*/complexoperator+(complexb){complexc;c.real=a.real+b.real;c.image=a.image+b.image;returnc;}};voidmain(){clrscr();complexa(-2,5);complexb(3,4);cout<<"Haisophuc:\n";a.display();b.display();cout<<"Tonghaisophuc:\n";complexc;c=a+b;//a.operator+(b)c.display();getch();}Haisophuc:-2+j*53+j*4Tonghaisophuc:1+j*9ChỉthịĐịnhnghĩatoántửtrênlớp-114-cout<<"a=";a.display();cout<<"b=";b.display();cout<<"Tonghaisophuc:\n";complexc;c=a+b;//a.operator+(b);cout<<"c=";c.display();cout<<"Tangthemphanthuccuaa3donvi\n";complexd;d=3+a;//operator+(3,a);cout<<"d=";d.display();getch();}Haisophuc:a=-2+j*5b=3+j*4Tonghaisophuc:Goitoicomplex::operator+(complex)c=1+j*9Tangthemphanthuccuaa3donviGoitoioperator+(float,complex)d=1+j*5Trongchơngtrìnhtrên,biểuthứca+bđợcchơngtrìnhhiểulàlờigọihàmthànhphầna.operator+(b),trongkhiđóvớibiểuthức3+a,chơngtrìnhdịchsẽthựchiệnlờigọihàmtựdooperator+(3,a).§ÞnhnghÜato¸ntötrªnlíp-146-voidmain(){clrscr();intsize;cout<<"Kichthuoccuavector";cin>>size;vector::Size()=size;matrix::Size()=size;cout<<"Taomotvector\n";vectorv;cout<<"v=\n";v.display();cout<<"Taomotmatran\n";matrixm;cout<<"m=\n";m.display();cout<<"Tichm*v\n";vectoru=m*v;/*opertaor*(m,v)*/u.display();getch();}Kichthuoccuavector4TaomotvectorToadothu1:1Toadothu2:2Toadothu3:3Toadothu4:4v=1234TaomotmatranĐịnhnghĩatoántửtrênlớp-144-for(i=0;i<n;i++)v[i]=b.v[i];}vector::~vector(){deletev;}voidvector::display()//hiểnthịkếtqu{for(inti=0;i<n;i++)cout<<v[i]<<"";cout<<"\n";}/*lớpmatrix*/classmatrix{staticintn;//sốchiềucủavectorvector*m;//vùngnhớchứacáctoạđộpublic:matrix();matrix(matrix&);//hàmthiếtlậpsaochép~matrix();voiddisplay();staticint&Size(){returnn;}friendvectoroperator*(matrix&,vector&);};intmatrix::n=0;/*hàmthànhphầncủalớpmatrix*/matrix::matrix(){inti;Địnhnghĩatoántửtrênlớp-128-Docáctoántửgánđợcđịnhnghĩadớidạnghàmthànhphần,nênchỉcómộtthamsốtờngminhvàkhôngcóràngbuộcgìvềkiểuđốisốvàkiểugiátrịtrảvềcủacácphépgán.ToToToToáááánnnnttttửửửửtruytruytruytruynhnhnhnhậậậậppppththththàààànhnhnhnhphphphphầầầầnnnn->->->->Phéptoánnàyđợcdùngđểtruyxuấtcácthànhphầncủamộtcấutrúchaymộtlớpvàcầnphânbiệtvớinhữngcáchsửdụngkhácđểtránhdẫnđếnsựnhầmlẫn.Cóthểđịnhnghĩaphéptoánlấythànhphầngiốngnhđốivớicácphéptoánmộtngôi.ToToToToáááánnnnttttửửửửtruytruytruytruynhnhnhnhậậậậppppththththàààànhnhnhnhphphphphầầầầnnnntheotheotheotheochchchchỉỉỉỉssssốốốốToántửlấythànhphầntheochỉsốđợcdùngđểxácđịnhmộtthànhphầncụthểtrongmộtkhốidữliệu(cấpphátđộnghaytĩnh).Thôngthờngphéptoánnàyđợcdùngvớimảng,nhngcũngcóthểđịnhnghĩalạinókhilàmviệcvớicáckiểudữliệukhác.Chẳnghạnvớikiểudữliệuvectorcóthểđịnhnghĩaphéplấytheochỉsốđểtrảvềmộtthànhphầntoạđộnàođóvector.Vàphảiđợcđịnhnghĩanhhàmthànhphầncómộtđốisốtờngminh.ToToToToáááánnnnttttửửửửggggọọọọiiiihhhhààààmmmmĐâylàmộtphéptoánthúvịnhngnóichungrấtkhóđaramộtvídụcụthể.5.5.5.5.MMMMộộộộttttssssốốốốvvvvííííddddụụụụtitititiêêêêuuuubibibibiểểểểuuuu5.15.15.15.1ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngphphphphééééppppggggáááánnnn====Việcđịnhnghĩachồngphépgánchỉcầnkhicácđốitợngcócácthànhphầndữliệuđộng(chơng3đÃđềcậpvấnđềnày).Chúngtaxétvấnđềnàyquaphântíchđịnhnghĩachồngphépgán=ápdụngcholớpvector.Điểmđầutiêncầnluýlàhàmoperator=nhấtthiếtphảiđợcđịnhnghĩanhlàhàmthànhphầncủalớpvector.Nhvậyhàmoperator=sẽchỉcómộtthamsốtờngminh(toánhạngbênphảidấu=).Giảsửavàblàhaiđốitợngthuộclớpvector,khiđóa=b;đợchiểulàa.operator=(b);§ÞnhnghÜato¸ntötrªnlíp-152-#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr,floati){real=r;image=i;}complex(complex&b){cout<<”Hamthietlapsaochep\n”;real=b.r;image=b.i;}/*Hµmto¸ntöchuyÓnkiÓuÐpbuéc*/operatorfloat(){cout<<"Goifloat()chocomplex\n";returnreal;}voiddisplay(){cout<<real<<(image>=0?'+':'-')<<"j*"<<fabs(image)<<endl;}};voidfct(floatn){cout<<"Goifctvoithamso:"<<n<<endl;}voidmain(){clrscr();complexa(3,4);§ÞnhnghÜato¸ntötrªnlíp-136-}voidEnter_Vector(vector&s){for(inti=0;i<s.length();i++){cout<<"Toadothu"<<i+1<<":";cin>>s[i];}}voidDisplay_Vector(vector&s){cout<<"Sochieu:"<<s.length()<<endl;for(inti=0;i<s.length();i++)cout<<s[i]<<"";cout<<endl;}voidmain(){clrscr();cout<<"Taodoituongs1\n";vectors1;/*NhËpc¸cto¹®échovectors1*/cout<<"Nhapcactoadocuas1\n";Enter_Vector(s1);cout<<"Thongtinvevectors1\n";Display_Vector(s1);vectors2=s1;cout<<"Thongtinvevectors2\n";Display_Vector(s2);getch();}Taodoituongs1Địnhnghĩatoántửtrênlớp-132-v[i]=b.v[i];}vector::~vector(){cout<<"Giaiphong"<<v<<"cuadoituongtai"<<this<<endl;deletev;}vector&vector::operator=(vector&b){cout<<"Goioperator=()cho"<<this<<"va"<<&b<<endl;if(this!=&b){/*xoávùngnhớđộngđÃcótrongđốitợngvếtrái*/cout<<"xoavungnhodong"<<v<<"trong"<<this<<endl;deletev;/*cấpphátvùngnhớmớicókíchthớcnhtrongb*/v=newfloat[n=b.n];cout<<"capphatvungnhodongmoi"<<v<<"trong"<<this<<endl;for(inti=0;i<n;i++)v[i]=b.v[i];}/*khihaiđốitợnggiốngnhau,khônglàmgì*/elsecout<<"Haidoituonglamot\n";return*this;}voidvector::display(){inti;cout<<"Doituongtai:"<<this<<endl;cout<<"Sochieu:"<<n<<endl;for(i=0;i<n;i++)cout<<v[i]<<"";cout<<"\n";§ÞnhnghÜato¸ntötrªnlíp-120-clrscr();cout<<"sophuca\n";complexa(-2,5);cout<<"sophucb\n";complexb(3,4);cout<<"Haisophuc:\n";cout<<"a=";a.display();cout<<"b=";b.display();cout<<"sophucc\n";complexc;c=a+b;//a.operator+(b);cout<<"c=a+b:";c.display();cout<<"a=";a.display();cout<<"Conga+b+c\n";cout<<"sophucd\n";complexd;d=a+b+c;//a.operator+(b);a.operator+(c);cout<<"a=";a.display();cout<<"b=";b.display();cout<<"c=";c.display();cout<<"d=a+b+c:";d.display();getch();}§ÞnhnghÜato¸ntötrªnlíp-117-c.real=x+b.real;c.image=b.image;returnc;}voidmain(){clrscr();cout<<"sophuca\n";complexa(-2,5);cout<<"sophucb\n";complexb(3,4);cout<<"Haisophuc:\n";cout<<"a=";a.display();cout<<"b=";b.display();complexc(2,3);cout<<"Conga+b+c\n";cout<<"sophucd\n";complexd;d=a+b+c;cout<<"a=";a.display();cout<<"b=";b.display();cout<<"c=";c.display();cout<<"d=a+b+c:";d.display();getch();}sophucaĐịnhnghĩatoántửtrênlớp-134-Taodoituongtai0xffeaSochieu:0Xincapphatvungbonho0sothuctai0x14acGoioperator=()cho0xffeava0xfff2xoavungnhodong0x14actrong0xffeacapphatvungnhodongmoi0x14actrong0xffeaGoioperator=()cho0xfff2va0xfff2Haidoituonglamot5.25.25.25.2ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngphphphphéééépppp[][][][]"Xétchơngtrìnhsau:VVVVííííddddụụụụ4.74.74.74.7/*vector5.cpp*//*vector5.cpp*//*vector5.cpp*//*vector5.cpp*/#include<iostream.h>#include<conio.h>classvector{intn;//sốgiátrịfloat*v;//contrỏtớivùngnhớtoạđộpublic:vector();//hàmthiếtlậpkhôngthamsốvector(vector&);intlength(){returnn;}vector&operator=(vector&);float&operator[](inti){returnv[i];}~vector();};vector::vector(){Địnhnghĩatoántửtrênlớp-148-chuyểnkiểutờngminhxảyrakhisửdụngphépépkiểubắtbuộc.Phépépkiểuthờngđợcdùngtrongcáccâulệnhgọihàmđểgửicácthamsốcókiểukhácvớicácthamsốhìnhthứctơngứng.Cáckiểulớpkhôngthểthoảimáichuyểnsangcáckiểukhácđợcmàphảidongờitựlàmlấy.C++cũngcungcấpcáchthứcđịnhnghĩaphépchuyểnkiểungầmđịnhvàtờngminh.Phépchuyểnkiểungầmđịnhđợcđịnhnghĩabằngmộthàmthiếtlậpchuyểnkiểu(conversionconstructor),cònphépchuyểnkiểutờngminhđợcxácđịnhthôngquatoántửchuyểnkiểuhoặcépkiểu(castoperator).Phépchuyểnkiểungầmđịnhđợcđịnhnghĩathôngquamộthàmthiếtlậpchuyểnkiểucholớp.Vớiđốisốcókiểukiểucầnphảichuyểnthànhmộtđốitợngcủalớpđó.Thamsốnàycóthểcókiểucơsởhaylàmộtđốitợngthuộclớpkhác.Hàmthiếtlậpmộtthamsốtronglớppointtrongcácchơngtrìnhpoint?.cppởchơngtrớclàvídụchohàmthiếtlậpchuyểnkiểu.Trongchỉthịpointp=2;đÃchuyểnkiểutừgiátrịnguyên2sangmộtđốitợngpoint.Thựctếởđâychơngtrìnhdịchgọitớihàmthiếtlậpmộtthamsố.Đâylàsựchuyểnkiểumộtchiều,nhậngiátrịhoặcđốitợngnàođóvàchuyểnnóthànhđốitợngcủalớp.Cáchàmthiếtlậpchuyểnkiểukhôngthểsửdụngđểchuyểncácđốitợngcủalớpmìnhsangcáckiểukhácvàchúngchỉcóthểđợcsửdụngtrongcácphépgánvàphépkhởitạogiátrị.Tuynhiên,cáctoántửchuyểnkiểucóthểđợcdùngđểchuyểncácđốitợngsangcáckiểukhácvàcũngcóthểđợcdùngchocácmụcđíchkhácngoàiphépgánvàkhởitạogiátrị.C++quiđịnhrằngmộthàmtoántửchuyểnkiểunhthếbuộcphảilàhàmthànhphầncủalớpliênquanvàkhôngcóthamsốhoặckiểutrảvề.Têncủanóđợcchotheodạngnhsau:operatortype();trongđótypelàtêncủakiểudữliệumàmộtđốitợngsẽđợcchuyểnsang;cóthểlàkiểudữliệucơsở(khiđótaphảichuyểnkiểutừđốitợngsangkiểucơsở)haymộtkiểulớpkhác(khiđótaphảichuyểnkiểutừđốitợnglớpnàysanglớpkhác). ... Điềunàyđòihỏihaihàmtoántửkhácnhau.Cáctoántửđợcđịnhnghĩachồngphảibảotoànsốngôicủachínhtoántửđótheocáchhiểuthôngthờng,vídụ:cóthểđịnhnghĩatoántử-mộtngôivàhaingôitrênlớptơngứngvớiphépđảodấu(mộtngôi)vàphéptrừs học( haingôi),nhngkhôngthểđịnhnghĩatoántửgánmộtngôi,còn++lạichohaingôi.Nếulàmvậy,chơngtrìnhdịchsẽhiểulàtạoramộtkýhiệuphéptoánmới.Khiđịnhnghĩachồngtoántử,phảituântheonguyêntắclàMMMMộộộộtttttrongtrongtrongtrongssssốốốốccccáááácccctotototoáááánnnnhhhhạạạạngngngngphphphphảảảảiiiillllààààđốđốđốđốiiiittttợợợợng.ng.ng.ng.Nóicáchkhác,hàmtoántửphải:(iv)hoặclàhàmthànhphần,khiđó,hàmđÃcómộtthamsốngầmđịnhcókiểulớpchínhlàđốitợnggọihàm.Thamsốngầmđịnhnàyđóngvaitròtoánhạngđầutiên(đốivớiphéptoánhaingôi)haytoánhạngduynhất(đốivớiphéptoánmộtngôi).Dovậy,nếutoántửlàmộtngôithìhàmtoántửthànhphầnsẽkhôngchứamộtthamsốnàokhác.Ngợclạikhitoántửlàhaingôi,hàmsẽcóthêmmộtđốisốtờngminh.(v)hoặclàmộthàmtựdo.Trongtrờnghợpnày,ítnhấtthamsốthứnhấthoặcthamsốthứhai(nếucó)phảicókiểulớp.Hơnnữa,mỗihàmtoántửchỉcóthểápdụngvớikiểutoánhạngnhấtđịnh;cầnchúýrằngcáctínhchấtvốncó,chẳnghạntínhgiaohoáncủatoántửkhôngthểápdụngmộtcáchtuỳtiệnchocáctoántửđợcđịnhnghĩachồng.Vídụ:a+3.5khácvới3.5+aởđâyalàmộtđốitợngcomplexnàođó.Cầnluýrằngkhôngnênđịnhnghĩanhữnghàmhàmtoántửkhácnhaucùnglàmnhữngcôngviệcgiốngnhauvìdễxảyranhậpnhằng.Chẳnghạn,đÃcómộthàmoperator+làmộthàmthànhphầncóthamsốlàđốitợngcomplexthìkhôngđợcđịnhnghĩathêmmộthàmoperator+làmộthàmtựdocóhaithamsốlàđốitợngcomplex.TrTrTrTrờờờờngngngnghhhhợợợợppppccccáááácccctotototoáááánnnnttttửửửử++++++++vvvvàààà ... Địnhnghĩatoántửtrênlớp-122-Tuynhiênviệcdùngthamchiếunhlàgiátrịtrảvềcủahàmtoántử,cónhiềuđiềuđángnói.Biểuthứcnằmtronglệnhreturnreturnreturnreturnbắtbuộcphảithamchiếuđếnmộtvùngnhớtồntạingaycảkhithựchiệnxongbiểuthứctứclàkhihàmtoántửkếtthúcthựchiện.Vùngnhớấycóthểlàmộtbiếnđợccấptĩnhstaticstaticstaticstatic(cácbiếntoàncụchaybiếncụcbộstatic),static),static),static),mộtbiếnthểhiện(mộtthànhphầndữliệu)củamộtđốitợngnàođóởngoàihàm.Bạnđọccóthểxemchơngtrìnhvecmat3.cpptrongchơng3đểhiểurõhơn.Vấnđềtơngtựcũngđợcđềcậpkhigiátrịtrảvềcủahàmtoántửlàđịachỉ;trongtrờnghợpnày,mộtđốitợngđợctạoranhờcấpphátđộngtrongvùngnhớheapdùngđộclậpvớivùngnhớngănxếpdùngđểcấpphátbiến,đốitợngcụcbộtrongchơngtrình,dovậyvẫncònlulạikhihàmtoántửkếtthúccôngviệc.Hàmtoántửcũngcóthểtrảvềkiểuvoidkhiảnhhởngchỉtácđộnglênmộttrongcáctoánhạngthamgiabiểuthức.Xemđịnhnghĩacủahàmđảodấusốphứctrongvídụsau:VVVVííííddddụụụụ4.54.54.54.5/*complex5.cpp*//*complex5.cpp*//*complex5.cpp*//*complex5.cpp*/#include<iostream.h>#include<conio.h>#include<math.h>classcomplex{floatreal,image;public:complex(floatr=0,floati=0){real=r;image=i;}voiddisplay(){cout<<real<<(image>=0?'+':'-')<<"j*"<<fabs(image)<<endl;}/*Hàmđảodấuchỉtácđộnglêntoánhạng,khôngsửdụngđợctrongcácbiểuthức*/voidoperator-(){Địnhnghĩatoántửtrênlớp-153-fct(6);//lờigọihàmthôngthờngfct(a);//lờigọihàmcóxảyrachuyểnđổikiểudữliệugetch();}Goifctvoithamso:6Goifloat()chocomplexGoifctvoithamso:3Trongchơngtrìnhnày,lờigọihàmfct(a)đÃđợcchơngtrìnhdịchchuyểnthànhcácthaotác:(xiii)chuyểnđổiđốitợngthànhfloatfloatfloatfloat,(xiv)lờigọihàmfct()vớithamsốlàgiátrịthuđợcsauchuyểnđổi.Sựchuyểnđổiđợcthựchiệnkhigọihàmdođókhôngxảyraviệcsaochéplạiđốitợnga.6.1.26.1.26.1.26.1.2HHHHààààmmmmtotototoáááánnnnttttửửửửchuychuychuychuyểểểểnnnnkikikikiểểểểuuuutrongtrongtrongtrongbibibibiểểểểuuuuththththứứứứccccChơngtrìnhdớiđâychotabiếtbiểuthứcdạnga+bhoặca+3đợctínhnhthếnàovớia,blàcácđốitợngkiểucomplex.VVVVííííddddụụụụ4.134.134.134.13/*complex8.cpp*//*complex8.cpp*//*complex8.cpp*//*complex8.cpp*/#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr,floati){real=r;image=i;}Địnhnghĩatoántửtrênlớp-139-}TaosophucaPhanthuc:3Phanao:4TaosophucbPhanthuc:5Phanao:3Inhaisophuca=3+j*4b=5+j*3NhNhNhNhậậậậnnnnxxxxéééétttt13.Trongchơngtrìnhtrên,takhôngthấycáchàmthiếtlậptờngminhđểgángiátrịchocácđốitợng.Thựctế,việcgáncácgiátrịchocácđốitợngđợcđảmnhiệmbởihàmtoántửoperatoroperatoroperatoroperator>>.14.Việchiểnthịnộidungcủacácđốitợngsốphứccótrớcđâydohàmthànhphầndisplay()đảmnhiệmthìnayđÃcóthểthaythếnhờhàmtoántửoperator<<.15.Haihàmoperator<<vàoperator>>chophépsửdụngcoutvàcincùnglúcvớinhiềuđốitợngkhácnhau:giátrịsốnguyên,sốthực,xâukýtự,kýtựvàcácđốitợngcủalớpcomplex.Cóthểthửnghiệmcáccáchkhácđểthấyđợcrằnggiảiphápđaratrongchơngtrìnhtrênlàtốtnhất.5.45.45.45.4ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngccccáááácccctotototoáááánnnnttttửửửửnewnewnewnewvvvvààààdeletedeletedeletedeleteCáctoántửnewnewnewnewvàdeletedeletedeletedeleteđợcđịnhnghĩachotừnglớpvàchúngchỉcóảnhhởngđốivớicáclớpliênquan,còncáclớpkhácvẫnsửdụngcáctoántửnewnewnewnewvàdeletedeletedeletedeletenhbìnhthờng.Địnhnghĩachồngtoántửnewnewnewnewbuộcphảisửdụnghàmthànhphầnvàđápứngcácràngbuộcsau:(ix)cómộtthamsốkiểusize_t(trongtệptiêuđềstddef.h).Thamsốnàytơngứngvớikíchthớc(tínhtheobyte)củađốitợngxincấpphát.Luýrằngđâylàthamsốgiả(dumpargument)vìnósẽkhôngĐịnhnghĩatoántửtrênlớp-112-c=a+b;trongvídụtrênđợcchơngtrìnhdịchhiểulà:c=a.operator+(b);NhNhNhNhậậậậnnnnxxxxéééétttt7.Thựcracáchviếta+bchỉlàmộtquyớccủachơngtrìnhdịchchophépngờisửdụngviếtgọnlại,nhờđócảmthấytựnhiênhơn.8.Hàmtoántửoperator+phảicóthuộctínhpublicpublicpublicpublicvìnếukhôngchơngtrìnhdịchkhôngthểthựchiệnđợcnóởngoàiphạmvilớp.9.Tronglờigọia.operator+(b),ađóngvaitròcủathamsốngầmđịnhcủahàmthànhphầnvàblàthamsốtờngminh.Sốthamsốtờngminhchohàmtoántửthànhphầnluôníthơnsốngôicủaphéptoánlà1vìcómộtthamsốngầmđịnhlàđốitợnggọihàmtoántử.10.Chơngtrìnhdịchsẽkhôngthểhiểuđợcbiểuthức3+avìcáchviếttơngứng3.operator(a)khôngcóýnghĩa.Đểgiảiquyếttìnhhuốngnàytadùnghàmbạnđểđịnhnghĩahàmtoántử.2.22.22.22.2HHHHààààmmmmtotototoáááánnnnttttửửửửllllààààhhhhààààmmmmbbbbạạạạnnnnChơngtrìnhcomplex2.cppđợcpháttriểntừcomplex1.cppbằngcáchthêmhàmtoántửcộngthêmmộtsốthựcfloatfloatfloatfloatvàophầnthựccủamộtđốitợngcomplex,đợcbiểuthịbởiphépcộngvớisốthựcfloatfloatfloatfloatlàtoánhạngthứnhất,cònđốitợngcomplexlàtoánhạngthứhai.Trongtrờnghợpnàykhôngthểdùngphépcộngnhhàmthànhphầnvìthamsốthứnhấtcủahàmtoántửkhôngcònlàmộtđốitợng.VVVVííííddddụụụụ4.24.24.24.2/*complex2.cpp*//*complex2.cpp*//*complex2.cpp*//*complex2.cpp*/#include<iostream.h>#include<conio.h>#include<math.h>classcomplex{floatreal,image;public:complex(floatr=0,floati=0){real=r;image=i;Địnhnghĩatoántửtrênlớp-140-đợcmôtảkhigọitớitoántửnew,new,new,new,màdochơngtrìnhbiêndịchtựđộngtínhdựatrênkíchthớccủađốitợngliênđới.(x)trảvềmộtgiátrịkiểuvoidvoidvoidvoid*tơngứngvớiđịachỉvùngnhớđộngđợccấpphát.Khiđịnhnghĩachồngtoándeletedeletedeletedeletetaphảisửdụnghàmthànhphần,tuântheocácquytắcsauđây:(xi)nhậnmộtthamsốkiểucontrỏtớilớptơngứng;contrỏnàymangđịachỉvùngnhớđộngđÃđợccấpphátcầngiảiphóng,(xii)khôngcógiátrịtrảvề(trảvềvoidvoidvoidvoid)NhNhNhNhậậậậnnnnxxxxééééttttCóthểgọiđợccáctoántửnewnewnewnewvàdeletedeletedeletedeletechuẩn(ngaycảkhichúngđÃđợcđịnhnghĩachồng)thôngquatoántửphạmvi.Cáctoántửnewnewnewnewvàdeletedeletedeletedeletelàcáchàmthànhphầnstaticstaticstaticstaticcủacáclớpbởivìchúngkhôngcóthamsốngầmđịnh.Sauđâygiớithiệuvídụđịnhnghĩachồngcáctoántửnewnewnewnewvàdeletedeletedeletedeletetrênlớppoint.Vídụcũngchỉracáchgọilạicáctoántửnewnewnewnewvàdeletedeletedeletedeletetruyềnthống.VVVVííííddddụụụụ4.94.94.94.9/*newdelete.cpp*//*newdelete.cpp*//*newdelete.cpp*//*newdelete.cpp*/#include<iostream.h>#include<stddef.h>#include<conio.h>classpoint{staticintnpt;/*sốđiểmtĩnh*/staticintnpt_dyn;/*sốđiểmđộng*/intx,y;public:point(intox=0,intoy=0){x=ox;y=oy;npt++;-109-ChChChChơơơơngngngng4444địđịđịđịnhnhnhnhnghnghnghnghĩĩĩĩaaaatotototoáááánnnnttttửửửửtrtrtrtrêêêênnnnllllớớớớpppp(class(class(class(classoperators)operators)operators)operators)Mụcđíchchơngnày:1.Cáchđịnhnghĩacácphéptoánchokiểudữliệulớpvàcấutrúc2.Cáctoántửchuyểnkiểuápdụngchokiểudữliệulớp1.1.1.1.GiGiGiGiớớớớiiiithithithithiệệệệuuuuchungchungchungchungThựcra,vấnđềđịnhnghĩachồngtoántửđÃtừngcótrongC,vídụtrongbiểuthức:a+bkýhiệu+tuỳtheokiểucủaavàbcóthểbiểuthị:3.phépcộnghaisốnguyên,4.phépcộnghaisốthựcđộchínhxácđơn(floatfloatfloatfloat)5.phépcộnghaisốthựcchínhxácđôi(doubledoubledoubledouble)6.phépcộngmộtsốnguyênvàomộtcontrỏ.TrongC++,cóthểđịnhnghĩachồngđốivớihầuhếtcácphéptoán(mộtngôihoặchaingôi)trêncáclớp,nghĩalàmộttrongsốcáctoánhạngthamgiaphéptoánlàcácđốitợng.Đâylàmộtkhảnăngmạnhvìnóchophépxâydựngtrêncáclớpcáctoántửcầnthiết,làmchochơngtrìnhđợcviếtngắngọndễđọchơnvàcóýnghĩahơn.Chẳnghạn,khiđịnhnghĩamộtlớpcomplexđểbiểudiễncácsốphức,cóthểviếttrongC++:a+b,a-b,a*b,a/bvớia,blàcácđốitợngcomplex.Đểcóđợcđiềunày,tađịnhnghĩachồngcácphéptoán+,-,*và/bằngcáchđịnhnghĩahoạtđộngcủatừngphéptoángiốngnhđịnhnghĩamộthàm,chỉkháclàđâylàhàmtoántử(operatorfunction).Hàmtoántửcótênđợcghépbởitừkhoáoperatoroperatoroperatoroperatorvàkýhiệucủaphéptoántơngứng.Bảng4.1đaramộtsốvídụvềtênhàmtoántử.Hàmtoántửcóthểdùngnhlàmộthàmthànhphầncủamộtlớphoặclàhàmtựdo;khiđóhàmtoántửphảiđợckhaibáolàbạncủacáclớpcócácđốitợngmàhàmthaotác.§ÞnhnghÜato¸ntötrªnlíp-156-#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr){cout<<"Hamthietlapdongvaitrocuahamtoantuchuyenkieungamdinh\n";real=r;image=0;}complex(floatr,floati){cout<<"Hamthietlap\n";real=r;image=i;}complex(complex&b){cout<<"Hamthietlapsaocheplai"<<&b<<"Sang"<<this<<endl;real=b.real;image=b.image;}};voidfct(complexp){cout<<"Goifct\n";}voidmain(){clrscr();complexa(3,4);a=complex(12);a=12;fct(4);Địnhnghĩatoántửtrênlớp-111-/*hàmoperator+địnhnghĩaphéptoán+haingôitrênlớpsốphứccomplex*/complexoperator+(complexb){complexc;c.real=a.real+b.real;c.image=a.image+b.image;returnc;}};voidmain(){clrscr();complexa(-2,5);complexb(3,4);cout<<"Haisophuc:\n";a.display();b.display();cout<<"Tonghaisophuc:\n";complexc;c=a+b;//a.operator+(b)c.display();getch();}Haisophuc:-2+j*53+j*4Tonghaisophuc:1+j*9ChỉthịĐịnhnghĩatoántửtrênlớp-114-cout<<"a=";a.display();cout<<"b=";b.display();cout<<"Tonghaisophuc:\n";complexc;c=a+b;//a.operator+(b);cout<<"c=";c.display();cout<<"Tangthemphanthuccuaa3donvi\n";complexd;d=3+a;//operator+(3,a);cout<<"d=";d.display();getch();}Haisophuc:a=-2+j*5b=3+j*4Tonghaisophuc:Goitoicomplex::operator+(complex)c=1+j*9Tangthemphanthuccuaa3donviGoitoioperator+(float,complex)d=1+j*5Trongchơngtrìnhtrên,biểuthứca+bđợcchơngtrìnhhiểulàlờigọihàmthànhphầna.operator+(b),trongkhiđóvớibiểuthức3+a,chơngtrìnhdịchsẽthựchiệnlờigọihàmtựdooperator+(3,a).§ÞnhnghÜato¸ntötrªnlíp-146-voidmain(){clrscr();intsize;cout<<"Kichthuoccuavector";cin>>size;vector::Size()=size;matrix::Size()=size;cout<<"Taomotvector\n";vectorv;cout<<"v=\n";v.display();cout<<"Taomotmatran\n";matrixm;cout<<"m=\n";m.display();cout<<"Tichm*v\n";vectoru=m*v;/*opertaor*(m,v)*/u.display();getch();}Kichthuoccuavector4TaomotvectorToadothu1:1Toadothu2:2Toadothu3:3Toadothu4:4v=1234TaomotmatranĐịnhnghĩatoántửtrênlớp-144-for(i=0;i<n;i++)v[i]=b.v[i];}vector::~vector(){deletev;}voidvector::display()//hiểnthịkếtqu{for(inti=0;i<n;i++)cout<<v[i]<<"";cout<<"\n";}/*lớpmatrix*/classmatrix{staticintn;//sốchiềucủavectorvector*m;//vùngnhớchứacáctoạđộpublic:matrix();matrix(matrix&);//hàmthiếtlậpsaochép~matrix();voiddisplay();staticint&Size(){returnn;}friendvectoroperator*(matrix&,vector&);};intmatrix::n=0;/*hàmthànhphầncủalớpmatrix*/matrix::matrix(){inti;Địnhnghĩatoántửtrênlớp-128-Docáctoántửgánđợcđịnhnghĩadớidạnghàmthànhphần,nênchỉcómộtthamsốtờngminhvàkhôngcóràngbuộcgìvềkiểuđốisốvàkiểugiátrịtrảvềcủacácphépgán.ToToToToáááánnnnttttửửửửtruytruytruytruynhnhnhnhậậậậppppththththàààànhnhnhnhphphphphầầầầnnnn->->->->Phéptoánnàyđợcdùngđểtruyxuấtcácthànhphầncủamộtcấutrúchaymộtlớpvàcầnphânbiệtvớinhữngcáchsửdụngkhácđểtránhdẫnđếnsựnhầmlẫn.Cóthểđịnhnghĩaphéptoánlấythànhphầngiốngnhđốivớicácphéptoánmộtngôi.ToToToToáááánnnnttttửửửửtruytruytruytruynhnhnhnhậậậậppppththththàààànhnhnhnhphphphphầầầầnnnntheotheotheotheochchchchỉỉỉỉssssốốốốToántửlấythànhphầntheochỉsốđợcdùngđểxácđịnhmộtthànhphầncụthểtrongmộtkhốidữliệu(cấpphátđộnghaytĩnh).Thôngthờngphéptoánnàyđợcdùngvớimảng,nhngcũngcóthểđịnhnghĩalạinókhilàmviệcvớicáckiểudữliệukhác.Chẳnghạnvớikiểudữliệuvectorcóthểđịnhnghĩaphéplấytheochỉsốđểtrảvềmộtthànhphầntoạđộnàođóvector.Vàphảiđợcđịnhnghĩanhhàmthànhphầncómộtđốisốtờngminh.ToToToToáááánnnnttttửửửửggggọọọọiiiihhhhààààmmmmĐâylàmộtphéptoánthúvịnhngnóichungrấtkhóđaramộtvídụcụthể.5.5.5.5.MMMMộộộộttttssssốốốốvvvvííííddddụụụụtitititiêêêêuuuubibibibiểểểểuuuu5.15.15.15.1ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngphphphphééééppppggggáááánnnn====Việcđịnhnghĩachồngphépgánchỉcầnkhicácđốitợngcócácthànhphầndữliệuđộng(chơng3đÃđềcậpvấnđềnày).Chúngtaxétvấnđềnàyquaphântíchđịnhnghĩachồngphépgán=ápdụngcholớpvector.Điểmđầutiêncầnluýlàhàmoperator=nhấtthiếtphảiđợcđịnhnghĩanhlàhàmthànhphầncủalớpvector.Nhvậyhàmoperator=sẽchỉcómộtthamsốtờngminh(toánhạngbênphảidấu=).Giảsửavàblàhaiđốitợngthuộclớpvector,khiđóa=b;đợchiểulàa.operator=(b);§ÞnhnghÜato¸ntötrªnlíp-152-#include<iostream.h>#include<conio.h>classcomplex{floatreal,image;public:complex(floatr,floati){real=r;image=i;}complex(complex&b){cout<<”Hamthietlapsaochep\n”;real=b.r;image=b.i;}/*Hµmto¸ntöchuyÓnkiÓuÐpbuéc*/operatorfloat(){cout<<"Goifloat()chocomplex\n";returnreal;}voiddisplay(){cout<<real<<(image>=0?'+':'-')<<"j*"<<fabs(image)<<endl;}};voidfct(floatn){cout<<"Goifctvoithamso:"<<n<<endl;}voidmain(){clrscr();complexa(3,4);§ÞnhnghÜato¸ntötrªnlíp-136-}voidEnter_Vector(vector&s){for(inti=0;i<s.length();i++){cout<<"Toadothu"<<i+1<<":";cin>>s[i];}}voidDisplay_Vector(vector&s){cout<<"Sochieu:"<<s.length()<<endl;for(inti=0;i<s.length();i++)cout<<s[i]<<"";cout<<endl;}voidmain(){clrscr();cout<<"Taodoituongs1\n";vectors1;/*NhËpc¸cto¹®échovectors1*/cout<<"Nhapcactoadocuas1\n";Enter_Vector(s1);cout<<"Thongtinvevectors1\n";Display_Vector(s1);vectors2=s1;cout<<"Thongtinvevectors2\n";Display_Vector(s2);getch();}Taodoituongs1Địnhnghĩatoántửtrênlớp-132-v[i]=b.v[i];}vector::~vector(){cout<<"Giaiphong"<<v<<"cuadoituongtai"<<this<<endl;deletev;}vector&vector::operator=(vector&b){cout<<"Goioperator=()cho"<<this<<"va"<<&b<<endl;if(this!=&b){/*xoávùngnhớđộngđÃcótrongđốitợngvếtrái*/cout<<"xoavungnhodong"<<v<<"trong"<<this<<endl;deletev;/*cấpphátvùngnhớmớicókíchthớcnhtrongb*/v=newfloat[n=b.n];cout<<"capphatvungnhodongmoi"<<v<<"trong"<<this<<endl;for(inti=0;i<n;i++)v[i]=b.v[i];}/*khihaiđốitợnggiốngnhau,khônglàmgì*/elsecout<<"Haidoituonglamot\n";return*this;}voidvector::display(){inti;cout<<"Doituongtai:"<<this<<endl;cout<<"Sochieu:"<<n<<endl;for(i=0;i<n;i++)cout<<v[i]<<"";cout<<"\n";§ÞnhnghÜato¸ntötrªnlíp-120-clrscr();cout<<"sophuca\n";complexa(-2,5);cout<<"sophucb\n";complexb(3,4);cout<<"Haisophuc:\n";cout<<"a=";a.display();cout<<"b=";b.display();cout<<"sophucc\n";complexc;c=a+b;//a.operator+(b);cout<<"c=a+b:";c.display();cout<<"a=";a.display();cout<<"Conga+b+c\n";cout<<"sophucd\n";complexd;d=a+b+c;//a.operator+(b);a.operator+(c);cout<<"a=";a.display();cout<<"b=";b.display();cout<<"c=";c.display();cout<<"d=a+b+c:";d.display();getch();}§ÞnhnghÜato¸ntötrªnlíp-117-c.real=x+b.real;c.image=b.image;returnc;}voidmain(){clrscr();cout<<"sophuca\n";complexa(-2,5);cout<<"sophucb\n";complexb(3,4);cout<<"Haisophuc:\n";cout<<"a=";a.display();cout<<"b=";b.display();complexc(2,3);cout<<"Conga+b+c\n";cout<<"sophucd\n";complexd;d=a+b+c;cout<<"a=";a.display();cout<<"b=";b.display();cout<<"c=";c.display();cout<<"d=a+b+c:";d.display();getch();}sophucaĐịnhnghĩatoántửtrênlớp-134-Taodoituongtai0xffeaSochieu:0Xincapphatvungbonho0sothuctai0x14acGoioperator=()cho0xffeava0xfff2xoavungnhodong0x14actrong0xffeacapphatvungnhodongmoi0x14actrong0xffeaGoioperator=()cho0xfff2va0xfff2Haidoituonglamot5.25.25.25.2ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngngphphphphéééépppp[][][][]"Xétchơngtrìnhsau:VVVVííííddddụụụụ4.74.74.74.7/*vector5.cpp*//*vector5.cpp*//*vector5.cpp*//*vector5.cpp*/#include<iostream.h>#include<conio.h>classvector{intn;//sốgiátrịfloat*v;//contrỏtớivùngnhớtoạđộpublic:vector();//hàmthiếtlậpkhôngthamsốvector(vector&);intlength(){returnn;}vector&operator=(vector&);float&operator[](inti){returnv[i];}~vector();};vector::vector(){Địnhnghĩatoántửtrênlớp-148-chuyểnkiểutờngminhxảyrakhisửdụngphépépkiểubắtbuộc.Phépépkiểuthờngđợcdùngtrongcáccâulệnhgọihàmđểgửicácthamsốcókiểukhácvớicácthamsốhìnhthứctơngứng.Cáckiểulớpkhôngthểthoảimáichuyểnsangcáckiểukhácđợcmàphảidongờitựlàmlấy.C++cũngcungcấpcáchthứcđịnhnghĩaphépchuyểnkiểungầmđịnhvàtờngminh.Phépchuyểnkiểungầmđịnhđợcđịnhnghĩabằngmộthàmthiếtlậpchuyểnkiểu(conversionconstructor),cònphépchuyểnkiểutờngminhđợcxácđịnhthôngquatoántửchuyểnkiểuhoặcépkiểu(castoperator).Phépchuyểnkiểungầmđịnhđợcđịnhnghĩathôngquamộthàmthiếtlậpchuyểnkiểucholớp.Vớiđốisốcókiểukiểucầnphảichuyểnthànhmộtđốitợngcủalớpđó.Thamsốnàycóthểcókiểucơsởhaylàmộtđốitợngthuộclớpkhác.Hàmthiếtlậpmộtthamsốtronglớppointtrongcácchơngtrìnhpoint?.cppởchơngtrớclàvídụchohàmthiếtlậpchuyểnkiểu.Trongchỉthịpointp=2;đÃchuyểnkiểutừgiátrịnguyên2sangmộtđốitợngpoint.Thựctếởđâychơngtrìnhdịchgọitớihàmthiếtlậpmộtthamsố.Đâylàsựchuyểnkiểumộtchiều,nhậngiátrịhoặcđốitợngnàođóvàchuyểnnóthànhđốitợngcủalớp.Cáchàmthiếtlậpchuyểnkiểukhôngthểsửdụngđểchuyểncácđốitợngcủalớpmìnhsangcáckiểukhácvàchúngchỉcóthểđợcsửdụngtrongcácphépgánvàphépkhởitạogiátrị.Tuynhiên,cáctoántửchuyểnkiểucóthểđợcdùngđểchuyểncácđốitợngsangcáckiểukhácvàcũngcóthểđợcdùngchocácmụcđíchkhácngoàiphépgánvàkhởitạogiátrị.C++quiđịnhrằngmộthàmtoántửchuyểnkiểunhthếbuộcphảilàhàmthànhphầncủalớpliênquanvàkhôngcóthamsốhoặckiểutrảvề.Têncủanóđợcchotheodạngnhsau:operatortype();trongđótypelàtêncủakiểudữliệumàmộtđốitợngsẽđợcchuyểnsang;cóthểlàkiểudữliệucơsở(khiđótaphảichuyểnkiểutừđốitợngsangkiểucơsở)haymộtkiểulớpkhác(khiđótaphảichuyểnkiểutừđốitợnglớpnàysanglớpkhác)....
  • 62
  • 1,208
  • 0
Triệu chứng học ngoại khoa

Triệu chứng học ngoại khoa

... thường thấp67. Triệu chứng lâm sàngcó giá trị nhất trong chuẩn đoán tắc ruột cơ học: A. Đau bụng từng cơnB. Bí trung đại tiệnC. Nôn mửaD. Chướng bụngE. Dấu rắn bò68. Triệu chứng lâm sàng ... tarring38. Triệu chứng cơ năng chủ yếu của bệnh tró A. Chảy máu khi đi cầuB. Đau liên tục ở hậu mônC. Rát ở hậu môn khi đi cầuD. Chảy dịch mủ ở hậu mônE. Có một khối lồi ra ở hậu môn39. Triệu chứng ... Chống chỉ định chọc sinh thiết gan, NGOẠI TRỪ:A. Có rối loạn đông máuB. Gan ứ mật C. Ung thư ganD. Nang ganE. Dị dạng dãn nang đường mật31. Các triệu chứng sau thuộc hội chứng tăng áp lực...
  • 66
  • 3,810
  • 166
Giáo trình Triệu chứng Đau bụng – Nguyên nhân và hướng xử trí

Giáo trình Triệu chứng Đau bụng – Nguyên nhân và hướng xử trí

... sớm. 3. Nguyên nhân thường gặp Triệu chứng Đau bụng – Nguyên nhân và hướng xử trí Đau bụng là một triệu chứng rất thường gặp. Ổ bụng có nhiều cơ quan, nội tạng, do đó chẩn đoán một trường ... cấp do siêu vi) +Uống nước nhiều mỗi ngày. +Tập luyện thường xuyên. Để tránh các triệu chứng ợ nóng hoặc chứng trào ngược dạ dày thực quản: +Bỏ thuốc lá. +Giảm cân nếu cần thiết. +Ngưng ... có liên quan đến màng bụng (viêm phúc mạc). Nếu thấy có bằng chứng của viêm phúc mạc, tình trạng lúc đó sẽ đựơc gọi là “bụng ngoại khoa và đòi hỏi phải phẫu thuật khẩn cấp. Bác sĩ có thể hỏi...
  • 9
  • 509
  • 0
Tài liệu KHÁM VÀ TRIỆU CHỨNG HỌC NỘI TIẾT docx

Tài liệu KHÁM VÀ TRIỆU CHỨNG HỌC NỘI TIẾT docx

... TIÊU1 .Trình bày cách khai thác bệnh sử, tiền sử của 1 .Trình bày cách khai thác bệnh sử, tiền sử của bệnh nhân nội tiết. bệnh nhân nội tiết. 2 .Trình bày các triệu chứng cơ năng thường gặp 2 .Trình ... chày-……..BỆNH SỬ- TIỀN SỬBỆNH SỬ- TIỀN SỬ KHÁM VÀ TRIỆU CHỨNG KHÁM VÀ TRIỆU CHỨNG HỌC NỘI TIẾTHỌC NỘI TIẾTGV: Ths.Bs.Trần Thị Trúc LinhGV: Ths.Bs.Trần Thị Trúc LinhĐối ... tuyến. Bệnh nội tiết là Bệnh nội tiết là bệnh toàn thânbệnh toàn thân. Biến đổi ban đầu . Biến đổi ban đầu của các tuyến nội tiết phần lớn là biến đổi về thể của các tuyến nội tiết phần...
  • 29
  • 675
  • 3
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ếutrongcô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ìnhtruyềnthống,nayđivàolậptrìnhhớngđốitợng.Nhvậychủđềcủacuốnsáchlàhoàntoànthíchhợpvớinhucầugiảngdạylậptrìnhởcáctrờngđạihọc,cũngnhvớ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.TTTTµµµµiiiililililiÖÖÖÖuuuuthamthamthamthamkhkhkhkh¶¶¶¶oooo[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ệchọcvàthựchành.NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminhhoạ.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ánbộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaH nội. H nội, ngày4tháng5năm1999GS.GS.GS.GS.NguyNguyNguyNguyễễễễnnnnVVVVăăăănnnnBaBaBaBa Khoa Khoa Khoa KhoaCNTT,CNTT,CNTT,CNTT,ĐĐĐĐHBKHBKHBKHBKHHHHàààànnnnộộộộiiii ... -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ếutrongcô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ìnhtruyềnthống,nayđivàolậptrìnhhớngđốitợng.Nhvậychủđềcủacuốnsáchlàhoàntoànthíchhợpvớinhucầugiảngdạylậptrìnhởcáctrờngđạihọc,cũngnhvớ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.TTTTµµµµiiiililililiÖÖÖÖuuuuthamthamthamthamkhkhkhkh¶¶¶¶oooo[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ệchọcvàthựchành.NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminhhoạ.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ánbộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaH nội. H nội, ngày4tháng5năm1999GS.GS.GS.GS.NguyNguyNguyNguyễễễễnnnnVVVVăăăănnnnBaBaBaBa Khoa Khoa Khoa KhoaCNTT,CNTT,CNTT,CNTT,ĐĐĐĐHBKHBKHBKHBKHHHHàààànnnnộộộộiiii ... 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...
  • 7
  • 1,247
  • 20
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ộtconngờ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ênthamchiế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.VVVVííííddddụụụụ2.92.92.92.9Chơngtrìnhsai#include<iostream.h>voidmain(){intx=3,&y;//lỗivìyphảiđợckhởitạoCácmởrộngcủaC++-22-getch();}/*Địnhnghĩahàminline*/inlinedoublenorme(doublevec[3]){inti;doubles=0;for(i=0;i<3;i++)s+=vec[i]*vec[i];return(sqrt(s));}normecuav1:2.236068-normecuav2:3.316625Hàmnorme()nhằmmụcđíchtínhchuẩncủavectorvớibathànhphần.Từkhoáinlineinlineinlineinlineyêucầuchơngtrìnhbiêndịchxửlýhàmnormekhácvớicáchàmthôngthờng.Cụthểlà,mỗilầngọinorme(),trìnhbiêndịchghéptrựctiếpcá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,saochépcácthôngsố ... 40CácmởrộngcủaC++-15-TrongC++,chỉcóchuyểnđổikiểungầmđịnhtừmộtkiểutrỏtuỳýthànhvoid*void*void*void*làchấpnhậnđợc,cònmuốnchuyểnđổingợclại,taphảithựchiệnchuyểnkiểutờngminhnhcáchviếtsauđây:gen=adj;adj=(int*)gen;2.2.2.2.CCCCáááácccckhkhkhkhảảảảnnnnăăăăngngngngvvvvàààào/rao/rao/rao/rammmmớớớớiiiiccccủủủủaaaaC++C++C++C++Cáctiệníchvào/ra(hàmhoặcmacro)củathviệnCchuẩnđềucóthểsửdụngtrongC++.Để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ántử<<(xuất)và>>(nhập)vớicácđặctínhsauđây:6.đơngiảntrongsửdụng7.cókhảnăngmởrộngđốivớicáckiểumớitheonhucầucủangờilập trình. Trongtệptiêuđềiostream.hngờitađịnhnghĩahaiđốitợngcoutcoutcoutcoutvàcincincincintơngứngvớihaithiếtbịchuẩnra/vàođợcsửdụngcùngvới<<và>>.Thôngthờngtahiểucoutcoutcoutcoutlàmànhìnhcòncincincincinlàbànphím.2.12.12.12.1GhiGhiGhiGhiddddữữữữlilililiệệệệuuuullllêêêênnnnthithithithiếếếếttttbbbbịịịịrarararachuchuchuchuẩẩẩẩnnnn(m(m(m(màààànnnnhhhhìììình)nh)nh)nh)coutcoutcoutcoutTrongphầnnàytaxemxétmộtsốvídụminhhoạcáchsửdụngcoutcoutcoutcoutvà<<đểđathôngtinramànhình.VVVVííííddddụụụụ2.22.22.22.2Chơngtrìnhsauminhhoạcáchsửdụngcoutcoutcoutcoutđểđaramànhìnhmộtxâukýtự.#include<iostream.h>/*phảikhaibáokhimuốnsửdụngcout*/main(){cout<<"WelcomeC++";}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ệnhcout<<"WelcomeC++"đaramànhìnhxâukýtựWelcomeC++.CácmởrộngcủaC++-31-return(min(min(a,b),c));}doublemin(doublea,doubleb){return(a>b?a:b);}charmin(chara,charb){return(a>b?a:b);}intmin(intn,int*t){intres=t[0];for(inti=1;i<n;i++)res=min(res,t[i]);returnres;}NhNhNhNhậậậậnnnnxxxxéééétttt16.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địnhhàmnàođợcgọidochơngtrìnhdịchđảmnhiệmvàtuântheocácnguyêntắcsau:TrờnghợpcáchàmcómộtthamsốChơngtrìnhdịchtìmkiếmsựtơngứngnhiềunhấtcóthểđợc;cócácmứ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ờiluýđếncảdấu.b)Tơngứngdữliệusốnhngcósựchuyểnđổikiểudữliệutựđộng(numericpromotion):charcharcharcharvàshortshortshortshort ... >(voidvoidvoidvoid*).Xétvídụsauđây:VVVVííííddddụụụụ2.42.42.42.4#include<iostream.h>voidvoidmain(){intn=25;longp=250000;unsignedq=63000;charc='a';floatx=12.3456789;doubley=12.3456789e16;char*ch="WelcomeC++";int*ad=&n;cout<<"Valueofn:"<<n<<"\n";cout<<"Valueofp:"<<p<<"\n";cout<<"Valueofc:"<<c<<"\n";cout<<"Valueofq:"<<q<<"\n";cout<<"Valueofx:"<<x<<"\n";cout<<"Valueofy:"<<y<<"\n";cout<<"Valueofch:"<<ch<<"\n";cout<<"Addreseofn:"<<ad<<"\n";cout<<"Addresedech:"<<(void*)ch<<"\n";}Valueofn:25Valueofp:250000Valueofc:aValueofq:63000Valueofx:12.345679Valueofy:1.234567e+17Valueofch:WelcomeC++Addreseofn:0xfff2Addresedech:0x00b2CácmởrộngcủaC++-29-int&fr(int*d,inti);voidmain(){clrscr();cout<<"Nhapgiatrichomanga:\n";for(inti=0;i<5;i++){cout<<"a["<<i<<"]=";cin>>fr(a,i);}cout<<"Mangasaukhinhap\n";for(i=0;i<5;i++)cout<<a[i]<<"";cout<<"\n";getch();}int&fr(int*d,inti){returnd[i];}Nhapgiatrichomanga:a[0]=6a[1]=4a[2]=3a[3]=5a[4]=6Mangasaukhinhap64356Bạ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.ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaachchchchồồồồngngngnghhhhààààmmmm((((OverloadingOverloadingOverloadingOverloadingfunctionsfunctionsfunctionsfunctions))))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àdanhsáchkiểucácthamsố.Chẳnghạnchúngtamuốnđịnhnghĩacáchàmtrảvềsốnhỏnhấttrong:CácmởrộngcủaC++-33-khaibáoint=12chỉ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ọifct();khôngđợcchấpnhậnbởivìkhôngcógiátrịngầmđịnhchothamsốthứnhất.VVVVííííddddụụụụ2.142.142.142.14#include<iostream.h>voidmain(){intn=10,p=20;voidfct(int=0,int=12);//khaibáohàmvớihaithamsốcógiátrịngầmđịnhfct(n,p);//lờigọithôngthờng,cóhaithamsốfct(n);//lờigọichỉvớimộtthamsốfct();//fct()đÃđợcchấpnhận}voidfct(inta,intb)//khaibáobìnhthờng{cout<<"thamsothunhat:"<<a<<"\n";cout<<"thamsothuhai:"<<b<<"\n";}thamsothunhat:10thamsothuhai:20thamsothunhat:10thamsothuhai:12thamsothunhat:0thamsothuhai:12ChChChChúúúúýýýý18.Cácthamsốvớigiátrịngầmđịnhphảiđợcđặtởcuốitrongdanhsáchcácthamsốcủahàmđểtránhnhầmlẫncácgiátrị.19.Cácgiátrịngầmđịnhcủathamsốđợckhaibáokhisửdụngchứkhôngphảitrongphầnđịnhnghĩahàm.Vídụsauđâygâyralỗibiêndịch:C¸cmëréngcñaC++-37-deletemat[i];deletemat;}voidNhap(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";}}VVVVÝÝÝÝddddôôôô2.182.182.182.18Qu¶nlýtrµnbénhíset_new_handler#include<iostream>main(){voidoutof();set_new_handler(&outof);longtaille;int*adr;intnbloc;cout<<"Kichthuoccannhap?";CácmởrộngcủaC++-19-Tathamkhảochơngtrìnhsau:VVVVííííddddụụụụ2.62.62.62.6#include<iostream.h>#include<conio.h>voidmain(){intn;floatx;chart[81];clrscr();do{cout<<"Nhapvaomotsonguyen,motxau,motsothuc:";cin>>n>>t>>x;cout<<"Danhap"<<n<<","<<t<<"va"<<x<<"\n";}while(n);}Nhapvaomotsonguyen,motxau,motsothuc:3long3.4Danhap3,longva3.4Nhapvaomotsonguyen,motxau,motsothuc:5hung5.6Danhap5,hungand5.6Nhapvaomotsonguyen,motxau,motsothuc:043Danhap0,4va33.3.3.3.NhNhNhNhữữữữngngngngtitititiệệệệnnnnííííchchchchchochochochongngngngờờờờiiiillllậậậậpppptrtrtrtrììììnhnhnhnh3.13.13.13.1ChChChChúúúúththththííííchchchchcucucucuốốốốiiiiddddòòòòngngngngMọikýhiệuđisau//chođếnhếtdòngđợccoilàchúthích,đợcchơngtrìnhdịchbỏquakhibiêndịchchơngtrình.Xétvídụsau:cout<<"Xinchao\n";//lờichàohỏiThờngtasửdụngchúthíchcuốidòngkhimuốngiảithíchýnghĩacủamộtcâ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áctoánhạnglàhằngsố.Việcsửdụnghàminlineinlineinlineinlinenhmộtgiảiphápthaythếsẽtránhđợccáctìnhhuốngnhthế.Ngoàira,cáchàminlineinlineinlineinlinecóthểđợctốiubởichơngtrìnhbiêndịch.Điềuquantrọnglàđặctảinlineinlineinlineinlinechỉ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àminlineinlineinlineinlinecócáccấutrúclặp)thìhàmsẽđợcbiêndịchnhmộthàmbìnhthờngvàyêucầuinlineinlineinlineinlinesẽbịbỏqua.Hàminlineinlineinlineinlinephảiđợckhaibáobêntrongtệptinnguồnchứacáchàmsửdụngnó.Khôngthểdịchtáchbiệtcáchàminlineinlineinlineinline.15.5.5.5.ThamThamThamThamchichichichiếếếếuuuuNgônngữC++giớithiệumộtkháiniệmmớireferencetạmdịchlàthamchiếu.Vềbảnchất,thamchiếulàbídanhcủamộtvùngnhớđợccấpphátchomộtbiếnnàođó.Mộtthamchiếucóthểlàmộtbiến,thamsốhìnhthứccủahàmhaydùnglàmgiátrịtrảvềcủamộthàm.CácphầntiếpsaulầnlợtgiớithiệucáckhảnăngcủathamchiếuđợcsửdụngtrongchơngtrìnhviếtbằngngônngữC++.5.15.15.15.1ThamThamThamThamchichichichiếếếếuuuuttttớớớớiiiimmmmộộộộttttbibibibiếếếếnnnnXéthaichỉthị:intn;int&p=n;Trongchỉthịthứhai,dấu&đểxácđịnhplàmộtbiếnthamchiếucòndấu=vàtênbiếnnđểxácđịnhvùngnhớmàpthamchiếutới.Lúcnàycảhaiđịnhdanhpvàncùngxácđịnhvùngnhớđợccấpphátchobiếnn.Nhvậycácchỉthịsau:n=3;cout<<p;1Biêndịchtáchbiệtchophépkhaibáohàmtrongmộttệptiêuđề,cònđịnhnghĩahà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>intx;main(){intx=10;//xcụcbộ::x=10;//xtoàncụccout<<x<<\n;//xcụcbộcout<<::x<<\n;//xtoàncục}4.4.4.4.HHHHààààmmmminlineinlineinlineinlineTrongC++cóthểđịnhnghĩacáchàmđợcthaythếtrựctiếpthànhmÃlệnhmá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àminlineinlineinlineinlinelàchúngkhôngđòihỏicácthủtụcbổsungkhigọihàmvàtrảgiátrịvề.Dovậyhàminlineinlineinlineinlineđợcthựchiệnnhanhhơnsovớicáchàmthôngthờng.Mộthàminlineinlineinlineinlineđợcđịnhnghĩavàđợcsửdụnggiốngnhbìnhthờng.Điểmkhácnhauduynhấtlàphảiđặtmôtảinlineinlineinlineinlinetrớckhaibáohàm.Xétvídụsauđây:VVVVííííddddụụụụ2.72.72.72.7#include<iostream.h>#include<math.h>#include<conio.h>inlinedoublenorme(doublevec[3]);//khaibáohàminlinevoidmain(){clrscr();doublev1[3],v2[3];inti;for(i=0;i<3;i++){v1[i]=i;v2[i]=2*i-1;}cout<<"normecuav1:"<<norme(v1)<<"-normecuav2:"<<norme(v2);...
  • 29
  • 758
  • 5

Xem thêm

Từ khóa: tài liệu triệu chứng học nội khoagiáo trình bệnh lý học nội khoatrắc nghiệm triệu chứng học nội khoatriệu chứng học nội khoa y hà nộitriệu chứng học nội khoa pdftriệu chứng học nội khoa tập 1triệu chứng học nội khoa ebooktriệu chứng học nội khoa download ebooktriệu chứng học nội khoa đặng vạn phướctriệu chứng học nội khoa châu ngọc hoasách triệu chứng học nội khoa y hà nộitrieu chung hoc noi khoa tap 2giáo trình c đại học bách khoa hà nộigiáo trình java đại học bách khoa hà nộitriệu chứng học ngoại khoa y hà nộiNghiên cứu tổ chức pha chế, đánh giá chất lượng thuốc tiêm truyền trong điều kiện dã ngoạiNghiên cứu vật liệu biến hóa (metamaterials) hấp thụ sóng điện tử ở vùng tần số THzNghiên cứu tổ chức chạy tàu hàng cố định theo thời gian trên đường sắt việt namBiện pháp quản lý hoạt động dạy hát xoan trong trường trung học cơ sở huyện lâm thao, phú thọGiáo án Sinh học 11 bài 13: Thực hành phát hiện diệp lục và carôtenôitGiáo án Sinh học 11 bài 13: Thực hành phát hiện diệp lục và carôtenôitGiáo án Sinh học 11 bài 13: Thực hành phát hiện diệp lục và carôtenôitPhối hợp giữa phòng văn hóa và thông tin với phòng giáo dục và đào tạo trong việc tuyên truyền, giáo dục, vận động xây dựng nông thôn mới huyện thanh thủy, tỉnh phú thọPhát triển du lịch bền vững trên cơ sở bảo vệ môi trường tự nhiên vịnh hạ longThiết kế và chế tạo mô hình biến tần (inverter) cho máy điều hòa không khíChuong 2 nhận dạng rui roKiểm sát việc giải quyết tố giác, tin báo về tội phạm và kiến nghị khởi tố theo pháp luật tố tụng hình sự Việt Nam từ thực tiễn tỉnh Bình Định (Luận văn thạc sĩ)Giáo án Sinh học 11 bài 15: Tiêu hóa ở động vậtGiáo án Sinh học 11 bài 14: Thực hành phát hiện hô hấp ở thực vậtGiáo án Sinh học 11 bài 14: Thực hành phát hiện hô hấp ở thực vậtGiáo án Sinh học 11 bài 14: Thực hành phát hiện hô hấp ở thực vậtTrách nhiệm của người sử dụng lao động đối với lao động nữ theo pháp luật lao động Việt Nam từ thực tiễn các khu công nghiệp tại thành phố Hồ Chí Minh (Luận văn thạc sĩ)Chiến lược marketing tại ngân hàng Agribank chi nhánh Sài Gòn từ 2013-2015HIỆU QUẢ CỦA MÔ HÌNH XỬ LÝ BÙN HOẠT TÍNH BẰNG KIỀMMÔN TRUYỀN THÔNG MARKETING TÍCH HỢP