... CácmởrộngcủaC++ -3 2- Trờnghợpcáchàmcónhiềuthamsốýtởngchunglàphảitìmmộthàmphùhợpnhấtsovớitấtcảnhữnghàmcònlại.Đểđạtmụcđíchnày,chơngtrìnhdịchchọnchomỗithamsốcáchàmphùhợp(ởtấtcảcácmứcđộ).Trongsốcáchàmđợclựachọn,chơngtrìnhdịchchọnra(nếutồntạivàtồntạiduynhất)hàmsaochođốivớimỗiđốisốnóđạtđợcsựphùhợphơncảsovớicáchàmkhác.TrongtrờnghợpvẫncónhiềuhàmthoảmÃn,lỗibiêndịchxảyradochơngtrìnhdịchkhôngbiếtchọnhàmnàotrongsốcáchàmthỏamÃn.Đặcbiệtluýkhisửdụngđịnhnghĩachồnghàmcùngvớiviệckhaibáocáchàmvớithamsốcógiátrịngầmđịnhsẽđợctrìnhbàytrongmụctiếptheo.7.7.7.7.ThamThamThamThamssssốốốốngngngngầầầầmmmmđịđịđịđịnhnhnhnhtrongtrongtrongtrongllllờờờờiiiiggggọọọọiiiihhhhààààmmmmTaxétvídụsau:VVVVííííddddụụụụ2.132.132.132.13#include<iostream.h>voidmain(){intn=10,p=20;voidfct(int,int=12);//khaibáohàmvớimộtgiátrịngầmđịnhfct(n,p);//lờigọithôngthờng,cóhaithamsốfct(n);//lờigọichỉvớimộtthamsố//fct()sẽkhôngđợcchấpnhận}//khaibáobìnhthờngvoidfct(inta,intb){cout<<"thamsothunhat:"<<a<<"\n";cout<<"thamsothuhai:"<<b<<"\n";}thamsothunhat:10thamsothuhai:20thamsothunhat:10thamsothuhai:12Trongkhaibáocủafct()bêntronghàmmain():voidfct(int,int=12); CácmởrộngcủaC++ -4 1- 9.1Ghinhớ 389.2Cáclỗithờnggặp 399.3Mộtsốthóiquenlậptrìnhtốt 3910.Bàitập 39Bàitập2.1 39Bàitập2.2 39Bàitập2.3 40 CácmởrộngcủaC++ -1 5- 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ủủủủaaaa C++ 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<<"Welcome C++& quot;;}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<<"Welcome C++& quot;đaramànhìnhxâukýtựWelcome C++ . ... CácmởrộngcủaC++ -1 5- 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ủủủủaaaa C++ 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<<"Welcome C++& quot;;}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<<"Welcome C++& quot;đaramànhìnhxâukýtựWelcome C++ . CácmởrộngcủaC++ -3 1- 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 ... >int.int.int.int.c)CácchuyểnđổikiểuchuẩnđợcCvàC++chấpnhận.d)Cácchuyểnđổikiểudongờisửdụngđịnhnghĩa.Quátrìnhtìmkiếmbắtđầutừmứccaonhấtvàdừnglạiởmứcđầutiênchophéptìmthấysựphùhợp.Nếucónhiềuhàmphùhợpởcùngmộtmức,chơngtrìnhdịchđarathôngbáolỗidokhôngbiếtchọnhàmnàogiữacáchàmphùhợp. -1 3- ChChChChơơơơngngngng2222NhNhNhNhữữữữngngngngmmmmởởởởrrrrộộộộngngngngccccủủủủaaaa C++ C++ C++ C++Mụcđíchchơngnày:1.GiớithiệunhữngđiểmkhácbiệtchủyếugiữaCv C++ 2.CácđiểmmớicủaC++sovớiC(nhữngvấnđềcơbảnnhất)1.1.1.1.CCCCááááccccđđđđiiiiểểểểmmmmkhkhkhkhôôôôngngngngttttơơơơngngngngththththííííchchchchgigigigiữữữữaaaa C++ C++ C++ C++vvvvààààANSIANSIANSIANSICCCC1.11.11.11.1ĐịĐịĐịĐịnhnhnhnhnghnghnghnghĩĩĩĩaaaahhhhààààmmmmTrongđịnhnghĩahàm,ANSICchophéphaikiểukhaibáodòngtiêuđềcủahàm,trongkhiđóC++chỉchấpnhậnmộtcách:1.21.21.21.2KhaiKhaiKhaiKhaibbbbááááoooohhhhààààmmmmnguynguynguynguyêêêênnnnmmmmẫẫẫẫuuuuTrongANSIC,khisửdụngmộthàmchađợcđịnhnghĩatrớcđótrongcùngmộttệp,tacóthể:3.khôngcầnkhaibáo(khiđóngầmđịnhgiátrịtrảvềcủahàmlàint)4.chỉcầnkhaibáotênhàmvàgiátrịtrảvề,khôngcầndanhsáchkiểucủacácthamsố.5.khaibáohàmnguyênmẫu.VớiC++,chỉcóphơngphápthứ3làchấpnhậnđợc.Nóicáchkhác,mộtlờigọihàmchỉđợcchấpnhậnkhitrìnhbiêndịchbiếtđợckiểucủacácthamsố,kiểucủagiátrịtrảvề.Mỗikhitrìnhbiêndịchgặpmộtlờigọihàm,nósẽsosánhcáckiểucủacácđốisốđợctruyềnvớicácthamsốhìnhthứctơngứng.Trongtrờnghợpcósựkhácnhau,cóthểthựchiệnmộtsốchuyểnkiểutựđộngđểchohàmnhậnđợccódanhsáchcácthamsốđúngvớikiểuđÃđợckhaibáocủahàm.Tuynhiênphảituântheonguyêntắcchuyểnkiểutựđộngsauđây:charcharcharchar...