ceballos: c/c++ - curso de programación 4ed

Upload: fco-javier-ceballos-sierra

Post on 11-Feb-2018

235 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    1/87

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    2/87

    F/F++Fursc bm Xrceronof`k

    2. mb`f`k

    Ifc. Lov`mr Fmjoaacs V`mrro

    Xrcimscr t`tuaor bm aoMsfumao Xca`tfk`fo Vupmr`cr

    ]k`vmrs`bob bm Oafoa

    dttp

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    3/87

    F/F++< Fursc bm prceronof`k. 2. mb`f`k

    Ifc. Lov`mr Fmjoaacs V`mrro

    Bm ao mb`f`k< ZO-NO :8?=

    NOZFOV FCNMZF@OAMV< aos norfos bm acs prcbuftcs f`tobcs mk ma fcktmk`bc bm mstm a`jrc

    (smok c kc norfos rme`strobos) pmrtmkmfmk o sus rmspmft`vcs prcp`mtor`cs. ZO-NO kc mst

    oscf`obo o k`kek prcbuftc c iojr`foktm nmkf`ckobc mk ao cjro, acs botcs y acs mlmnpacs

    ut`a`zobcs sck i`ft`f`cs soavc qum sm `kb`qum ac fcktror`c.

    ZO-NO ms uko norfo fcnmrf`oa rme`strobo.

    Vm do pumstc ma nx`nc mnpmc mk cirmfmr oa amftcr uko `kicrnof`k fcnpamto y prmf`so.

    V`k mnjorec, ZO-NO Mb`tcr`oa kc osunm k`keuko rmspcksoj`a`bob bmr`vobo bm su usc,

    k` tonpcfc pcr fuoaqu`mr v`caof`k bm potmktms k` ctrcs bmrmfdcs bm tmrfmros portms qum pub`mrok

    cfurr`r. Msto puja`fof`k t`mkm pcr cjlmtc prcpcrf`ckor ukcs fckcf`n`mktcs prmf`scs y ofrmb`tobcs

    scjrm ma tmno trotobc. Vu vmkto kc supckm poro ma mb`tcr k`keuko icrno bm os`stmkf`o ameoa,obn`k`strot`vo k` bm k`kek ctrc t`pc. Mk fosc bm prmf`sorsm osmscro ameoa u ctro icrno bm oyubo

    mxpmrto, bmjmk jusforsm acs smrv`f`cs bm uk prcims`ckoa fcnpmtmktm.

    Zmsmrvobcs tcbcs acs bmrmfdcs bm puja`fof`k mk fuoaqu`mr `b`cno.

    Vmek ac b`spumstc mk ma Fb`ec Xmkoa v`emktm, k`keuko portm bm mstm a`jrc pumbm smr

    rmprcbuf`bo, erojobo mk s`stmno bm oanofmkon`mktc c troksn`t`bo mk icrno oaeuko k`

    pcr fuoaqu`mr prcfmb`n`mktc, yo smo mamftrk`fc, nmfk`fc, rmprceri`fc, noekt`fc c

    fuoaqu`mr ctrc, s`k outcr`zof`k prmv`o y pcr msfr`tc bm ZO-NO7 su fcktmk`bc mst prctme`bc

    pcr ao amy v`emktm, qum mstojamfm pmkos bm pr`s`k y/c nuatos o qu`mkms `ktmkf`ckobonmktm

    rmprcbulmrmk c paoe`ormk, mk tcbc c mk portm, uko cjro a`tmror`o, ortst`fo c f`mkti`fo.

    Mb`tobc pcr " ? : 6 2 ="7fdor uk :W ^ > "?:62=95408?:62=95408?:62=95408?:62=95408?:62=95408"7fdor *pbmst 7` kt rmsu7

    pr ` kt i ( "Fobmko mk a o qum sm jusfo< Q k%sQ k" , fobmko ) 7pr ` kt i ( "%sQ k%sQ kQ k", bmf?, uk` : ) 7pr ` kt i ( "Jusfor ma for ftmr< %fQ kQ k", for ) 7

    / / Jusfor bm obma okt m dof` o ot r spbmst > st r fdr ( fobmko, for ) 7

    r msu > pbmst - fobmko7` i ( pbmst ! > K]AA )pr ` kt i ( "Ao %f pr ` nmr o mst mk a o pcs` f` k %bQ k" , for , r msu ) 7

    ma smpr ` kt i ( "%f kc sm mkfumkt r o mk a o fobmkoQ k" ) 7

    / / Jusfor bmsbm ot r s dof` o bma okt mpbmst > st r r fdr ( fobmko, for ) 7r msu > pbmst - fobmko7` i ( pbmst ! > K]AA )

    pr ` kt i ( "Ao a t ` no %f mst mk a o pcs` f` k %bQ kQ k", for , r msu ) 7ma sm

    pr ` kt i ( "%f kc sm mkfumkt r o mk a o fobmkoQ k" ) 7}

    Mlmfuf`k bma prcerono st r fnp( fobmko?, fobmko: ) 7` i ( r msu ; 8 )

    st r fpy( t mnp, "noycr qum" ) 7ma sm ` i ( r msu 1 8 )

    st r fpy( t mnp, "nmkcr qum" ) 7ma sm

    st r fpy( t mnp, "` euoa o" ) 7pr ` kt i ( "st r fnp< fobmko ? ms %s fobmko :Q k" , t mnp ) 7}

    Mlmfuf`k bma prcerono "]ko fobmko bm foroft mrms" 7

    Ma mlmnpac s`eu`mktm b`v`bm ao fobmko bm foroftmrms mspmf`i`fobo pcr fobmkomk acs mamnmktcs bmi`k`bcs pcr acs bma`n`tobcrms mspof`c mk jaokfc y fcno.

    / * s t r t cg. f*/

    # kfa ubm 1st b` c. d;# kfa ubm 1st r ` ke. d;

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    32/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 925

    no` k( vc` b){

    fdor fobmkoW ^ > "Mst o fobmko, mst i crnobo pcr vor ` os poa ojr os" 7

    fdor *ma mnmkt c7ma mnmkt c > st r t cg(fobmko, " , " ) 7wd` a m ( ma mnmkt c !> K]AA){

    pr ` kt i ( "%sQ k", ma mnmkt c) 7ma mnmkt c > st r t cg(K]AA, " , " ) 7

    }}

    Mlmfuf`k bma prcerono 87 ` kt ` > 87 a cke a > 87s > " - 6:84. ?=M- ?6"7 / / por o vmr fnc t r ojol o ot cix > ot ci ( s ) 7pr ` kt i ( "ot ci < fobmko OVF@ @ < %- ?5s i a cot < %mQ k", s, x ) 7s > "4. 5?0=92:665T?:8"7 / / poro vmr fnc t r ojol o otcix > ot ci ( s ) 7pr ` kt i ( "ot ci < fobmko OVF@ @ < %- ?5s i a cot < %mQ k", s, x ) 7

    s > " - 400= a ` jr cs" 7 / / por o vmr fnc t r ojol o ot c`` > ot c` ( s ) 7pr ` kt i ( " ot c` < fobmko OVF@ @ < %- ?5s ` kt < %bQ k", s, ` ) 7

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    34/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 920

    s > "400=2 mur cs" 7 / / por o vmr fnc t r ojol o ot caa > ot ca ( s ) 7pr ` kt i ( "ot ca < fobmko OVF@ @ < %- ?5s a cke < %a bQ k", s, a ) 7

    }

    Mlmfuf`k bma prcerono 28, l 7i a cot i > ?. 2?2:?2I7

    l > spr ` kt i ( jui i mr , " Q t Fobmko< %sQ k", s ) 7l +> spr ` kt i ( jui i mr + l , " Q t For ft mr < %fQ k", f ) 7

    l +> spr ` kt i ( jui i mr + l , " Q t Mkt mr c< %bQ k", ` ) 7l +> spr ` kt i ( jui i mr + l , " Q t Zmoa < %i Q k", i ) 7pr ` kt i ( "Voa ` bo< Q k%sQ kKnmr c bm for oft mr ms > %bQ k" , jui i mr , l ) 7

    }

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    35/87

    9=8 F/F++ 5:

    Iukf`ckms bm foroftmrms

    Aos iukf`ckms bm ao j`ja`ctmfo bm F qum sm mxpckmk o fckt`kuof`k oftok scjrm

    uk mktmrc poro bor fcnc rmsuatobc uk forftmr.

    tcosf``

    # kfa ubm 1ft ypm. d;` kt tcosf` ` ( ` kt f ) 7Fcnpot`j`a`bob< ]K@ T y U kbcws

    Ao iukf`k tcosf``pckm o 8 tcbcs acs j`ts bm f, mxfmptc acs s`mtm j`ts bm nmkcrcrbmk. B`fdc bm ctro icrno, fckv`mrtm f o uk forftmr OVF@@.

    tcacwmr

    # kfa ubm 1st ba ` j. d;` kt t ca cwmr( ` kt f ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    Ao iukf`k tcacwmr fckv`mrtm f o uko amtro n`ksfuao, s` prcfmbm.

    tcuppmr# kfa ubm 1st ba ` j. d;` kt t cuppmr ( ` kt f ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    Ao iukf`k tcuppmr fckv`mrtm f o uko amtro noysfuao, s` prcfmbm.

    / * t ca cwmr . f*/

    # kfa ubm 1st b` c. d;

    # kfa ubm 1st ba ` j. d;

    no` k( )

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    36/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 9=?

    {fdor for 7/ / . . .

    bc{pr ` kt i ( "Bmsmo fckt ` kuor 3 s/ k ") 7for > emt fdor ( ) 7i i a usd(s tb` k) 7

    }wd` a m ( t ca cwmr ( for ) ! > ' k' && t ca cwmr ( for ) ! > ' s' ) 7/ / . . .

    }

    Mstm mlmnpac obn`tm uko rmspumsto s c kc (s|V|k|K) mk n`ksfuaos c mk no-ysfuaos, pmrc ao fcnporof`k sm dofm mk n`ksfuaos.

    I]KF@CKMV NORMNR@FOV

    Aos bmfaorof`ckms poro aos iukf`ckms notmnt`fos qum o fckt`kuof`k sm bmsfr`jmkmstk mk ma i`fdmrc bm fojmfmro notd.d. _u`mrm mstc bmf`r qum, fuokbc sm ut`a`fmuko iukf`k notmnt`fo mk uk prcerono, bmjm mspmf`i`forsm ao b`rmftr`z 8. ?7

    }wd` a m (voa cr 1> ?. 8) 7

    }

    fcs

    Ao iukf`k fcs bo fcnc rmsuatobc ma fcsmkc bmx (x mk rob`okms).

    # kfa ubm 1not d. d;bcuja m fcs( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    s`k

    Ao iukf`k s`k bo fcnc rmsuatobc ma smkc bmx (x mk rob`okms).

    # kfa ubm 1not d. d;

    bcuja m s` k( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    tok

    Ao iukf`k tok bo fcnc rmsuatobc ao tokemktm bmx (x mk rob`okms).

    # kfa ubm 1not d. d;bcuja m t ok( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    fcsd

    Ao iukf`k fcsd bo fcnc rmsuatobc ma fcsmkc d`pmrja`fc bmx (x mk rob`okms).

    # kfa ubm 1not d. d;bcuja m fcsd( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    s`kd

    Ao iukf`k s`kd bo fcnc rmsuatobc ma smkc d`pmrja`fc bmx (x mk rob`okms).

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    39/87

    9=2 F/F++ :.5?4:4:).

    # kfa ubm 1not d. d;bcuja m mxp( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    ace

    Ao iukf`k ace bo fcnc rmsuatobc ma aceor`tnc koturoa bmx.

    # kfa ubm 1not d. d;bcuja m a ce( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    ace?8

    Ao iukf`k ace?8 bo fcnc rmsuatobc ma aceor`tnc mk josm ?8 bmx.

    # kfa ubm 1not d. d;bcuja m a ce?8( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    fm`a

    Ao iukf`k fm`a bo fcnc rmsuatobc uk voacr bcujam, qum rmprmsmkto ma mktmrc nspmqumc qum ms noycr c `euoa qumx.

    # kfa ubm 1not d. d;bcuja m fm` a ( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    40/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 9==

    bcuja m x > :. 4, y > - :. 47pr ` kt i ( "%e %eQ k", fm` a ( x) , fm` a ( y) ) 7 / / r msua t obc< 6 - :

    iojs

    Ao iukf`k iojs bo fcnc rmsuatobc ma voacr ojscautc bm x. Ma oreunmktc xms ukvoacr rmoa mk bcjam prmf`s`k. @euoanmktm, ojs y aojs bok ma voacr ojscautc bm uk`kt y uk acke,rmspmft`vonmktm.

    # kfa ubm 1not d. d;bcuja m i ojs( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    iaccr

    Ao iukf`k iaccr bo fcnc rmsuatobc uk voacr bcujam, qum rmprmsmkto ma mktmrc nserokbm qum ms nmkcr c `euoa qumx.

    # kfa ubm 1not d. d;bcuja m i a ccr ( bcuja m x ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    bcuja m x > :. 4, y > - :. 47pr ` kt i ( "%e %eQ k", i a ccr ( x) , i a ccr ( y) ) 7 / / r msua t obc< : - 6

    pcw

    Ao iukf`k pcw bo fcnc rmsuatobcxy. V`x ms 8 my kmeot`vc c s`x my sck 8 c s`xms kmeot`vc my kc ms mktmrc, sm cjt`mkm uk mrrcr (oreunmktc iumro bma bcn`k`c bmao iukf`k). V`xybo uk rmsuatobc supmr`cr oa voacr an`tm poro ma t`pc bcujam, ma rm-suatobc ms mstm voacr an`tm (?.50590m+684).

    # kfa ubm 1not d. d;bcuja m pcw( bcuja m x, bcuja m y) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    bcuja m x > :. 4, y > - :. 47pr ` kt i ( "%eQ k", pcw( x, y) ) 7 / / r msua t obc< 8. 8==0586

    sqrt

    Ao iukf`k sqrt bo fcnc rmsuatobc ao roz fuobrobo bm x. V`x ms kmeot`vc, cfurrm

    uk mrrcr (oreunmktc iumro bma bcn`k`c bm ao iukf`k).

    # kfa ubm 1not d. d;

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    41/87

    9=9 F/F++

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    42/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 9=5

    pc, ao iukf`k facfg bmvumavm ma voacr (facfgSt)?. Ma t`pc facfgSt mst bmfaorobcos 8).tnSyboy Bo bma oc (8 - 69=7 ? bm mkmrc > 8).

    Ma s`eu`mktm mlmnpac numstro fnc sm ut`a`zo msto iukf`k.

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    44/87

    OXKB@FM O< OAE]KOV I]KF@CKMV BM AO J@JA@CRMFO BM F 9=0

    / * a cfoa t ` nm. f*/

    # kfa ubm 1st b` c. d;

    # kfa ubm 1t ` nm. d;

    no` k( ){

    s t ruf t tn*id 7t ` nmSt smeukbcs7

    t ` nm(&smeukbcs) 7i d > a cfoa t ` nm(&smeukbcs) 7pr ` kt i ( "%b dcr os, %b n kut csQ k" , i d- ;t nSdcur , i d- ;t nSn k) 7

    }

    Ao iukf`k acfoat`nmut`a`zo uko vor`ojam bm t`pc stot`f struft tnporo rmoa`zorao fckvmrs`k y ac qum bmvumavm ms ao b`rmff`k bm mso vor`ojam.

    I]KF@CKMV XOZO NOK@X]AOZ JAC_]MV BM NMNCZ@O

    Ao j`ja`ctmfo bm F/F++ prcpcrf`cko uk fckluktc bm iukf`ckms poro nok`puaorjacqums bm jytmsfcksmfut`vcs mk nmncr`o. Fcnmktoncs o fckt`kuof`k aos nsut`a`zobos.

    nmnsmt

    Ao iukf`k nmnsmtpmrn`tm `k`f`or uk jacqum bm nmncr`o.

    # kfa ubm 1st r ` ke. d;vc` b *nmnsmt ( vc` b *bmst`kc, ` kt j, s` zmS t kjytms ) 7Fcnpot`j`a`bob< OKV@ , ]K@ T y U kbcws

    Ma oreunmktc bmst`kcms ao b`rmff`k bma jacqum bm nmncr`o qum sm bmsmo `k`-f`or, jms ma voacr mnpamobc poro `k`f`or fobo jytmbma jacqum y kjytmsms ma knm-

    rc bm jytmsbma jacqum qum sm `k`f`ork. Xcr mlmnpac, ma s`eu`mktm fb`ec `k`f`o o 8ao notr`z o 8 )

    pr ` kt i ( "Aos not r ` fms o y j fckt ` mkmk a cs n sncs bot csQ k" ) 7ma sm

    pr ` kt i ( "Aos not r ` fms o y j kc fckt ` mkmk a cs n sncs bot csQ k") 7

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    46/87

    OXKB@FM JI.L.Fmjoaacs/ZO-NO

    MKRCZKCV BM BMVOZZCAAC]k mktcrkc bm bmsorrcaac `ktmerobc (MB@, mk `keas @BM< @ktmerotmb BmvmacpnmktMkv`rcknmkt) ms uko opa`fof`k qum oerupo vor`os dmrron`mktos bm prceronof`k,js`fonmktm, aos kmfmsor`os poro msfr`j`r, fcnp aor y bmpuror uk prcerono. Ma MB@pumbm ut`a`zor uk scac amkeuolm bm prceronof`k, c j`mk pumbm smr fcnpot`jam fckvor`cs, toams fcnc F/F++, F#, Y`suoa Jos`f, Lovo, XDX, Xytdck, mtf. B`fdc MB@

    prmsmktor oa usuor`c uko `ktmrioz eri`fo qum am ojstromr bma nokmlc `kb`v`buoa, ok`vma bm akmo bm rbmkms, bm fobo uko bm msos dmrron`mktos bm prceronof`k.

    Xoro rmoa`zor acs mlmnpacs bm mstm a`jrc, ma outcr prcpckm ut`a`zor oaeukc bm acsmktcrkcs `kb`fobcs o fckt`kuof`k< N`frcscit Y`suoa Vtub`c Mxprmss poro U`k-bcws, KmtJmoks poro U`kbcws/A`kux/Nof CV T c Fcbm

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    47/87

    99: F/F++

  • 7/23/2019 Ceballos: C/C++ - Curso de programacin 4Ed.

    48/87

    OXKB@FM J< MKRCZKCV BM BMVOZZCAAC 996

    Msto vmktoko numstro mk su pokma `zqu`mrbc acs t`pcs bm prcymftcs qum sm pum-bmk frmor y o ao bmrmfdo bm mstm, aos paokt`aaos qum sm pumbmk ut`a`zor7 ao mamf-f`k bm uko c bm ctro bmpmkbmr bma t`pc bm opa`fof`k qum bmsmmncsfckstru`r. Xoro kumstrc mlmnpac, mame`ncs ma t`pc bm prcymftc Y`suoa F++U`k6:y ao paokt`aao Opa`fof`k bm fckscao U`k6:. Bmspus mspmf`i`foncs makcnjrm bma prcymftc y su uj`fof`k (kc dofm ioato qum norqum Frmor b`rmftc-r`c poro ao scauf`k)7 cjsmrvm qum ma prcymftc smr frmobc mk uko forpmto fckma n`snc kcnjrm. O fckt`kuof`k puasoncs ma jctk Ofmptor. Msto off`k v`-suoa`zor ao vmktoko ncstrobo mk ao i`euro s`eu`mktm, qum pmrn`t`r mstojamfmrao fcki`eurof`k bm ao opa`fof`k7 pcr mlmnpac, opa`fof`k bm fckscao,prcymf-tc vofc