$SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR ¢&yPRVHGLVWULEX\HHOHVSDFLRHQODPHPRULDFRQXQDGHFODUDFLyQFRPROD 0DQHMRGH0HPRULD(VWiWLFD VLJXLHQWH" 9HFWRUHV var x,y:integer: a:array[1..6] of char; j:longint; ¢&yPRHVODPHPRULD" YDULDEOH[ /XJDUHVFRQVHFXWLYRV JXDUGDUVRORXQE\WH FDGDXQRGHHOORV &DGDE\WHWLHQHXQD DUUHJORD GLUHFFLyQ 6HDFRVWXPEUD HVFULELUODGLUHFFLyQ YDULDEOH\ FRQFDSDFLGDGSDUD /* Si lo desea puede probar con este programa C++ */ #include <iostream> using namespace std; int main() { short int x,y; char a[6]; // 0..5 int j; cout << "Direcciones\n"; cout << "de Memoria\n"; cout << "x " << &x << endl; cout << "y " << &y << endl; cout << "a " << &a << endl; cout << "j " << &j << endl; system("pause"); return 0; } $ HQKH[DGHFLPDO % $ YDULDEOHM & ' QHFHVDULRSDUDFDGD ) YDULDEOHGHDFXHUGRD ))) ))) )))$ VXWLSR 6HDVLJQDHOHVSDFLRGH DFXHUGRDORUGHQGHODV )))% 'XUDQWHODFRPSLODFLyQ VHUHVHUYDHOHVSDFLR ( YDULDEOHVGHQWURGHOD GHFODUDFLyQYDU )))& )))' 'XUDQWH HO SURFHVR GH SURGXFFLyQ GHO FyGLJR PiTXLQD HO FRPSLODGRU FUHD XQD )))( WDEODGHVtPERORV )))) 1RPEUH'LUHFFLyQ GHODYDULDEOH7LSRLQLFLDO [ , \ , $ FKDU>@ - / $ /DFRPSLODFLyQLPSOLFD ODFUHDFLyQWHPSRUDOGH HVWDWDEODSDUDVXVWLWXLU ORVQRPEUHVGH YDULDEOHVSRU GLUHFFLRQHVGHPHPRULD $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR ¢FyPRTXHGDUtDQHQFyGLJRREMHWRODLQVWUXFFLyQVLJXLHQWH" \ FRPSLODFLyQ A $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $UUHJORV%LGLPHQVLRQDOHV 6LODGHFODUDFLyQIXHUDFRPRODVLJXLHQWH¢FyPRVHDVLJQDUiODPHPRULD" var x,y:integer: a:array[1..3,1..2] of char; ¢FyPRTXHGDUtDVLHVXQRGHORVHOHPHQWRVGHXQYHFWRU" D>@ µ¶ FRPSLODFLyQ A j:longint; short int x,y; char a[3][2]; // 0..2,0..1 int j; µ¶ YDULDEOH[ YDULDEOH\ UHDGOQM D>M@ µ#¶ FRPSLODFLyQ AA$± µ#¶ Q~PHURGHOXJDUHV DUUHJORD (VWH³XQR´HVHOOtPLWH 'LUHFFLyQ LQIHULRUGHODUUHJOR $EVROXWD SDUDHODUUHJORDTXH HQHOFDVRDQWHULRUDOD YDULDEOH³M´VHOH DVLJQDUiODPLVPD $ GLUHFFLyQLQLFLDO % R(IHFWLYD (QHVWHHMHPSORDO UHTXHULUVHHOPLVPR UHDGOQA$ YDULDEOHM & ' 'LUHFFLyQHTXLYDOHQWHHQ0HPRULDGHXQHOHPHQWRGHFXDOTXLHUSRVLFLyQOyJLFDL ( ) (QHOFDVRGHDUULED E\WHVBSRUBHOHPHQWR 'LUHFFLyQ,QLFLDOGHO$UUHJORL±E\WHVBSRUBHOHPHQWR 'LUHFFLyQ %DVH 2IIVHWRGHVSOD]DPLHQWR D>@ µ¶ FRPSLODFLyQ GLUHFFLyQUHODWLYD ¢&RPR JXDUGDU ORV HOHPHQWRV GH XQ DUUHJOR ELGLPHQVLRQDO HQ OD PHPRULD HVWUXFWXUDXQLGLPHQVLRQDO" $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $SXQWHVGH(VWUXFWXUDGH'DWRV 3DUD VLPSOLILFDU HO UD]RQDPLHQWR D SDUWLU GH DKRUD HYLWDUHPRV HO PDQHMR GH GLUHFFLRQHV KH[DGHFLPDOHV GH PHPRULD \ WUDEDMDUHPRV FRQ XQ $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 'HWHUPLQDFLyQGHODIyUPXODSDUDODGLUHFFLyQHIHFWLYD DUUHJOR XQLGLPHQVLRQDOYHFWRUFRQGLUHFFLRQHVGHDQFRPRVHUHSUHVHQWDUHJXODUPHQWH HQHO$OJHEUD/LQHDOSDUDVLPXODUODPHPRULD 3RUUHQJORQHV (MHPSORPDWUL]>@ *4 $ $$$ %#= $ $$$ + .7; (OQ~PHURGH $ $$$ OXJDUHVRFXSDGRV <5:f SRUHVWRVGDWRVVH 3ULPHUDRSFLyQSRUUHQJORQHV 6HWRPDHOGDWRGHXQD SRVLFLyQFXDOTXLHUDGHOD SXHGHFDOFXODU IiFLOPHQWH /DGLVWDQFLD L±Q HQWUHHVWDV GLUHFFLRQHVHVM PDWUL]$LM 'LUHFFLyQHTXLYDOHQWH $$$$ $ $$ $$$ $$ HQHOYHFWRUS *4%#= +.7;<5:f HUUHQJOyQUHQJOyQHUUHQJOyQ UHQJOyQUHQJOyQUHQJOyQUHQJOyQ 1RPHQFODWXUD 'LUHFFLyQ DEVROXWD SRVLFLyQ HQ HO YHFWRU HTXLYDOHQWH GHO XQ HOHPHQWR S FXDOTXLHUDGHODPDWUL] LM 'LUHFFLyQUHQJOyQFROXPQDGHFXDOTXLHUDGHORVHOHPHQWRVGHODPDWUL] P 1~PHURGHUHQJORQHVGHODPDWUL] Q 1~PHURGHFROXPQDVGHODPDWUL] $SURYHFKDUHPRVQXHVWURFRQRFLPLHQWRGHOPDSHRGHXQYHFWRUHQODPHPRULDSDUD DSOLFDUOR D OD REWHQFLyQ GH OD IyUPXOD SDUD ORV HOHPHQWRV GH XQD PDWUL] TXH TXHUHPRVJXDUGDUHQXQYHFWRU (VH FRQRFLPLHQWR QRV GLFH TXH FXDOTXLHU GLUHFFLyQ VH SXHGH UHSUHVHQWDU FRPR OD XQLyQGHGRVGLUHFFLRQHV 3 ƒ LMPQ S S GLUHFFLyQEDVHGLUHFFLyQUHODWLYD LQM (QORVOHQJXDMHVGHSURJUDPDFLyQDUUHJORVDSDUWLUGHOtQGLFHFHUR S $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR LQM $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR (MHUFLFLRGH3URJUDPDFLyQ (VFULELUXQSURJUDPDTXHPXHVWUHHQODSDQWDOODODVLJXLHQWHLQIRUPDFLyQ 6HJXQGDRSFLyQSRUFROXPQDV 0DQHMRGHGDWRVHQXQDPDWUL] *XDUGDUXQGDWR &RQVXOWDUGDWRGHFLHUWDSRVLFLyQ 3RUFROXPQDV 7HUPLQDU 2EVHUYDFLRQHV *4 %#= 'HFODUDFLRQHV + .7; (OQ~PHURGH OXJDUHVRFXSDGRV <5:f IiFLOPHQWH /DGLVWDQFLD M±P HQWUHHVWDV PDWUL]$LM XVDQGRXQDPDWUL]SDUDJXDUGDUGDWRV 'H KHFKR VL HO XVXDULR WLHQH FRQRFLPLHQWRV GH SURJUDPDFLyQ SRGUtD VXSRQHU YDUGDWRVDUUD\>PQ@RIFKDU3DVFDO SRVLFLyQFXDOTXLHUDGHOD SXHGHFDOFXODU (O XVXDULR GHO SURJUDPD DVXPLUi KDFH XQD DEVWUDFFLyQ QDWXUDO TXH HVWi TXHKD\XQDGHFODUDFLyQHTXLYDOHQWHDORVLJXLHQWH 6HWRPDHOGDWRGHXQD SRUHVWRVGDWRVVH 'DWRVGHFXDOTXLHUWLSRVXJHUHQFLDFKDU FKDUGDWRV>P@>Q@& (QUHDOLGDGHQHOSURJUDPDODGHFODUDFLyQGHODUUHJORVHUtDODVLJXLHQWH YDUGDWRVDUUD\>PQ@RIFKDU3DVFDO GLUHFFLRQHVHVL 'LUHFFLyQHTXLYDOHQWH FKDUGDWRV>PQ@& HQHOYHFWRUS %.<*#=75 :4+;f FROXPQDFROXPQDFROXPQDFROXPQDFROXPQD *XDUGDUXQGDWR 7RPDUGHOWHFODGRODGLUHFFLyQUHQJOyQ\FROXPQDGRQGHVHJXDUGDUiHOGDWR 7RPDUGHOWHFODGRHOGDWR &DOFXODUODGLUHFFLyQHTXLYDOHQWHHQHOYHFWRUSXHGHXVDUFXDOTXLHUDGHODV IyUPXODVTXHKHPRVFRQRFLGR *XDUGDUHOGDWRHQHOYHFWRUHQODGLUHFFLyQHTXLYDOHQWH &RQVXOWDU S S GLUHFFLyQEDVHGLUHFFLyQUHODWLYD MPL ¢+DEUiPiVSRVLELOLGDGHV" &RPRHMHUFLFLRHQFXHQWUHDOPHQRVRWUDH[SUHVLyQ 7RPDUGHOWHFODGRGLUHFFLyQUHQJOyQ\FROXPQDTXHVHGHVHDFRQVXOWDU &DOFXODUODGLUHFFLyQHTXLYDOHQWHHQHOYHFWRUGHEHXVDUODPLVPDIyUPXODFRQ TXHJXDUGyHOGDWR 0RVWUDUHQODSDQWDOODHOGDWRHQFRQWUDGRHQODGLUHFFLyQHTXLYDOHQWHGHOYHFWRU $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 9DULDFLRQHVDORVSUREOHPDVDQWHULRUHV 3255(1*/21(69HUVLyQ 3255(1*/21(69HUVLyQ *4 'LUHFFLyQ%DVH $LM *4 GLUHFFLyQGHO~OWLPR %#= + HOHPHQWRGHHVWRV %#= + PLQ .7; .7; 'LUHFFLyQ%DVH GLUHFFLyQGHO~OWLPR <5:f L±Q <5:f $LM HOHPHQWRGHHVWRV 'LUHFFLyQ5HODWLYD 'LUHFFLyQ Q±M GLIHUHQFLDHQWUHHVWDV =#%;7.f:5< <5:f.7;%#= UHQJOyQUHQJOyQUHQJOyQUHQJOyQ S S +*4 UHQJOyQUHQJOyQUHQJOyQUHQJOyQ GLUHFFLyQEDVHGLUHFFLyQUHODWLYD S LQQ±M $SXQWHVGH(VWUXFWXUDGH'DWRV YHFWRUS SRVLFLRQHV 4*+ HTXLYDOHQWHHQHO 'LIHUHQFLDHQWUHHVWDV YHFWRUS SRVLFLRQHV 'LUHFFLyQ 'LUHFFLyQ5HODWLYDM HTXLYDOHQWHHQHO S $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR GLUHFFLyQEDVHGLUHFFLyQUHODWLYD PLQM $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $UUHJORVGHWUHVRPiVGLPHQVLRQHV $ 'LUHFFLyQ %DVH $OJXQRVSUREOHPDVVHUHVXHOYHQPiVIiFLOPHQWHXVDQGRDUUHJORVG 4567 $SR\pPRQRVXVDQGRXQ ,-./ 89:; DUUHJORGPiV 6H GHVHD JXDUGDU ORV UHVXOWDGRV GH WRGRV ORV DOXPQRV GH XQD HVFXHOD SHTXHxR $%&' 0123 VHFXQGDULD REWHQLGRV HQ WUHV H[iPHQHV LQGHSHQGLHQWHV FRQRFLPLHQWRV ()*+ VLFRPpWULFR\FXOWXUDJHQHUDOSDUDFDGDXQRGHORVPHVHVGHODxR (VWDVFROXPQDVVRQSDUDFXGHORVPHVHVGHODxR 5HVXOWDQWHHQHODUUHJOR $ XQLGLPHQVLRQDO 1 8QUHQJOyQ 2 3 4 5 6 7 8 9 10 11 12 'LUHFFLyQ 'LUHFFLyQ %DVH $EVROXWD 13 14 15 16 17 18 19 20 21 22 23 24 $%&'()*+,-./0123456789:; SDUDFDGD XQRGHORV $ HU WLSRVGH SODQRSODQR'LUHFFLyQ H[iPHQHV 5HODWLYD 7RGRVODVPDWULFHV SODQDVGTXHFRPSRQHQDXQD 'LUHFFLyQ%DVHN±PQ PDWUL]GWLHQHQODVPLVPDV GLPHQVLRQHVODPDWUL]VHUtDFRPRHVWD $ 'LUHFFLyQ5HODWLYDL±QM VLKXELHUDDOXPQRVHQODHVFXHOD /DGHFODUDFLyQVHUtD S NPQLQM YDUH[DPHQHVDUUD\>@RIVKRUWLQW3DVFDO FKDUH[DPHQHV>@>@>@& $UUHJORVGHPiVGH7UHV'LPHQVLRQHV )yUPXODSDUDHO,QGLFH(TXLYDOHQWH 6H SXHGH YHU D ORV DUUHJORV WULGLPHQVLRQDOHV FRPR XQD SUR\HFFLyQ GH DUUHJORVGHGRVGLPHQVLRQHVSDUDIDFLOLWDUODGHGXFFLyQGHODIyUPXOD $Vt FRPR XQ DUUHJOR G HV XQ YHFWRU GH G XQ DUUHJOR GH FXDWUR /DIyUPXODSDUDHOtQGLFHHTXLYDOHQWHGHXQDUUHJORGVHUtD GLPHQVLRQHVHVXQYHFWRUGHG &DGD HOHPHQWR VH LGHQWLILFD FRQ XQD H[SUHVLyQ GH VXEtQGLFHV FRQ WUHV FRPSRQHQWHV$LMN S O±PQRN±PQL±QM 1RPHQFODWXUD LUHQJOyQGRQGHVHHQFXHQWUDXQHOHPHQWRFXDOTXLHUD MFROXPQDGRQGHVHHQFXHQWUDXQHOHPHQWRFXDOTXLHUD NSODQRSURIXQGLGDGGRQGHVHHQFXHQWUDXQHOHPHQWRFXDOTXLHUD P1~PHURGHUHQJORQHVHQWRWDOGHFDGDSODQR Q1~PHURGHFROXPQDVHQWRWDOGHFDGDSODQR R1~PHURGHSODQRVGHODUUHJOR 6LHQGRHOHODSRVLFLyQGHFXDOTXLHUHOHPHQWRHQODGLPHQVLyQ /DV IyUPXODV SDUD ORV DUUHJORV GH PiV GLPHQVLRQHV VRQ REWHQLGDV SRU OD VHULH FRUUHVSRQGLHQWH $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 0DWULFHV7ULDQJXODUHV,QIHULRUHV 0DWULFHVSRFRGHQVDVUHJXODUHV • • 3UREOHPD 6RQPDWULFHVFXDGUDGDV 6RORORVGDWRVGHODVGLUHFFLRQHVL! MVRQVLJQLILFDWLYRV SHUVRQDVSDUWLFLSDQHQXQMXHJRGHODQ]DPLHQWR GH GDGRV HQ HO FXDO VH DVLJQD XQ Q~PHUR GHO DO D FDGD XQD GH HOODV HO RUGHQ GHO ODQ]DPLHQWR GH ORV /DPDWUL]TXHVHUHTXLHUHSDUDHOHMHUFLFLRHVXQD07,FRPRODVLJXLHQWH GDGRV VHUi GHVFHQGHQWH HV GHFLU HPSLH]D HO MXJDGRU Q~PHUR \ WHUPLQD HO Q~PHUR &DGD MXJDGRUODQ]DUi XQ SDU GH GDGRV WDQWDV YHFHV FRPR LQGLTXH HO Q~PHUR TXH OH KD\D WRFDGR HO MXJDGRU ODQ]DUi GLH] YHFHV \ HO VROR XQD YH] /RV UHVXOWDGRV GH FDGD ODQ]DPLHQWR GHEHUiQ FRQVHUYDUVH SDUD ILQHV HVWDGtVWLFRVHQXQDPDWUL] HQ ODFXDO ORV UHQJORQHV UHSUHVHQWDQ D ORV MXJDGRUHV \ ODVFROXPQDVDFDGDODQ]DPLHQWRSDUWLFXODU (OMXJDGRUTXHREWHQJDHOSURPHGLRPiVDOWRHVHOTXHJDQDUi (VWH MXHJR QR VH DQDOL]DUi GHVGH HO SXQWR GH YLVWD GH SUREDELOLGDGHV GH JDQDU VRORVHKDUiXQDVLPXODFLyQXVDQGRXQSURJUDPDGHFRPSXWDGRUD (MHUFLFLR (VFULED XQ SURJUDPD TXH KDJD XQD VLPXODFLyQ GH pVWH MXHJR LPSULPLHQGR DO PHQRV ORV UHVXOWDGRV SURPHGLR GH WRGRV ORV MXJDGRUHV 8WLOLFH XQD PDWUL] FRPSOHWDHQODTXHORVUHQJORQHVUHSUHVHQWHQDORVMXJDGRUHV\ODVFROXPQDVDORV ODQ]DPLHQWRVGHORVGDGRV • 8QD07,HVPDWUL]SRFRGHQVDSRUTXHHOQ~PHURGHHOHPHQWRVTXHFRQWLHQH HVPX\SHTXHxRFRQUHVSHFWRDOWRWDOVLIXHUDFRPSOHWD (MHUFLFLR • 8QD 07, HV XQD PDWUL] UHJXODU SRUTXH VH SXHGH SUHGHFLU VX IRUPD VLQ LPSRUWDUHOWDPDxR 0RGLILTXH HO SURJUDPD SDUD TXH VH KDJD XQD VLPXODFLyQ GH FXDOTXLHU Q~PHUR GH • MXHJRV KDVWD \ VH FRQVHUYHQ ORV UHVXOWDGRV GH WRGRV HOORV SDUD ILQHV 6L VH UHTXLHUH XQD 07, GH JUDQ WDPDxR FRQYLHQH JXDUGDU ORV GDWRV HQ XQ YHFWRUSDUDRSWLPL]DUHOXVRGHODPHPRULD HVWDGtVWLFRV8WLOLFHXQDPDWUL]WULGLPHQVLRQDO 'HWHUPLQDFLyQGHO7DPDxRGHO$UUHJOR8QLGLPHQVLRQDO (QODDSOLFDFLyQKD\TXHGHFODUDUHOYHFWRU 1~PHURGHHOHPHQWRVHQODGLDJRQDOSULQFLSDOHVQ 7RWDOGHHOHPHQWRVHQXQDPDWUL]FRPSOHWDGHRUGHQQHVQð 1~PHURGHOXJDUHVEDMRODGLDJRQDOSULQFLSDOHVQðQ $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 1~PHURWRWDOGHHOHPHQWRV17(HQXQD07HV QQL±L±L±L QðQ '% 17( Q (VGHFLU '5 M QQ 17( LL S M )yUPXODSDUDHO,QGLFH(TXLYDOHQWHGHXQD0DWUL]7ULDQJXODU ,QIHULRU (MHUFLFLR 2EWHQHU XQD IyUPXOD SDUD HO tQGLFH HTXLYDOHQWH SDUD OD PDWUL] WULDQJXODULQIHULRUWULGLPHQVLRQDOGHOSUREOHPDSODQWHDGROtQHDVDUULED 0DWULFHV7ULDQJXODUHV6XSHULRUHV = ; $ & 6 • • /DGLUHFFLyQEDVHSDUD ) ORVGDWRVGHOUHQJOyQ 9 ' * 4 % ( + (Q XQD 076 XQ HOHPHQWR HV VLJQLILFDWLYR VL VX GLUHFFLyQ FXPSOH FRQ OD GHVLJXDOGDGL M VHUiHOQ~PHURGH HOHPHQWRVGHXQD07, $OJXQDVDSOLFDFLRQHVUHTXLHUHQ0DWULFHV7ULDQJXODUHV6XSHULRUHV : ( (MHPSOR GHRUGHQ = ; $ & 6 ) 9 ' * 4 % ( + : ( HU HU UHQUHQ UHQJOyQUHQJOyQUHQJOyQ 'LUHFFLyQ%DVH (MHUFLFLR(QFRQWUDUODIyUPXODPiVVLPSOHSDUDODGLUHFFLyQHIHFWLYDGHXQD 076HQXQYHFWRU (QFLPDGHXQUHQJOyQLKD\XQD07,GHLSRUORWDQWR 6LQ HPEDUJR D FRQWLQXDFLyQ PRVWUDPRV XQD VROXFLyQ PiV FRPSOHMD SDUD ILQHV GLGiFWLFRV $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR (MHUFLFLR (QFRQWUDU XQD IyUPXOD SDUD JXDUGDU ORV HOHPHQWRV GH XQD 0DWUL] WULGLDJRQDOHQXQYHFWRU $QiOLVLVSDUDDOPDFHQDUXQD0DWUL]7ULDQJXODU6XSHULRU' HQXQDUUHJOR'SRUUHQJORQHV i-1 1 2 3 4 n-(i-1) 5 6 7 8 9 10 $ % & ' ( ) * + , - . / 0 1 2 3 i-1 4 5 6 7 i ; 8 1~PHURGHHOHPHQWRVHQOD'LDJRQDO3ULQFLSDOQ 9 10 1~PHURGHHOHPHQWRVHQFXGHODVGLDJRQDOHVDG\DFHQWHVQ n 1~PHURWRWDOGHHOHPHQWRVHQXQDPDWUL]WULGLDJRQDOQ 'LUHFFLyQ%DVH 0DWUL]&RPSOHWD LQL0DWUL]7ULDQJXODUL 'LUHFFLyQ L M $ % & ' ( ) * + , - . / 0 5HODWLYD 'LUHFFLyQ5HODWLYD HU HU UHQJOyQUHQJOyQ UHQJOyQUHQJOyQUHQJOyQ &iOFXORGHIyUPXODSDUDHOtQGLFHHTXLYDOHQWH (QFLPD GH FXDOTXLHU UHQJOyQ L HO Q~PHUR GH HOHPHQWRV TXH KD\ HV HO GH XQD PDWUL]WULGLDJRQDOGHRUGHQL\XQHOHPHQWRDGLFLRQDO ML '% L )yUPXODUHVXOWDQWHSDUDODGLUHFFLyQHIHFWLYD '5 3 LQLM S $SXQWHVGH(VWUXFWXUDGH'DWRV ML LM $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 9 0DWULFHVSRFRGHQVDVLUUHJXODUHV (O WDPDxR GHO DUUHJOR XQLGLPHQVLRQDO GHSHQGH GHO OD QDWXUDOH]D GH OD DSOLFDFLyQ(QHVWH FDVR HV OD VXPDWRULDGHO Q~PHURGH ODQ]DPLHQWRV GH WRGRV 9 6XSRQJDPRV TXH HO Q~PHUR GH ODQ]DPLHQWRV GH FDGD MXJDGRU GHO MXHJR 9 9 DQWHULRUVHGHWHUPLQDSRUHOODQ]DPLHQWRSUHYLRGHXQGDGR 9 9 (Q OD ILJXUD GH DEDMR D OD L]TXLHUGD VH YH XQ YHFWRU TXH FRQWHQGUtD ORV UHVXOWDGRVKLSRWpWLFRVGHOODQ]DPLHQWRLQLFLDO 9 'H DFXHUGR DO ODQ]DPLHQWR SUHYLR OD PDWUL] REWHQLGD VHUtD FRPR OD TXH VH PXHVWUDDEDMRDODGHUHFKD /DQ]DPLHQWRVGHOSDUGHGDGRV /DQ]DPLHQWR 3UHYLR ORVMXJDGRUHV &RPRODPDWUL]HVLUUHJXODUODVROXFLyQHVFUHDUXQYHFWRUGHGLUHFFLRQHVEDVH (VWH YHFWRU VH FUHD D SDUWLU GHO YHFWRU GH ODQ]DPLHQWRV SUHYLRV \ SDUD FDGD MXJDGRUVHUiODVXPDGHORVODQ]DPLHQWRVGHORVMXJDGRUHVDQWHULRUHV /DGLUHFFLyQEDVHGHOSULPHUUHQJOyQHVFHUR 9 /DIRUPXODVHUiS 9 $TXt DEDMR VH PXHVWUDQ ORV YHFWRUHV GHO ODQ]DPLHQWR LQLFLDO \ HO YHFWRU GH GLUEDVHLM GLUHFFLRQHVEDVHGHDFXHUGRDOHMHPSORGHDUULED - 8 * $ ' 2 5 ( (VWDPDWUL]DUULEDDODGHUHFKDHVXQDPDWUL]SRFRGHQVDLUUHJXODU $XQTXH HQ HVWH FDVR QR HV SRVLEOH ORV UHQJORQHV VLQ HOHPHQWRV VH SXHGHQ SUHVHQWDUHQHVWHWLSRGHPDWULFHV 9 9 6 $ , - ( 0 4 3 % < ; = 2 + : . & 5 ) / 9HFWRUGH ' 8 6 7 'LUHFFLyQEDVH SDUDWRGRVORV HOHPHQWRVGHO UHQJOyQ 1 9 * $ , - ( 0 4 3 % < ; ' 8 = 2 + : . & 5 6 7 1 9 ) / * UHQJORQHV 9HFWRUGH ODQ]DPLHQWRV 'LUHFFLRQHV SUHYLRV %DVH $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 9DULDQWH0DWULFHV'LVSHUVDV 9 $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 2SHUDFLRQHVHQ$UUHJORV /DV 0DWULFHV 'LVSHUVDV QR LQFOX\HQ UHQJORQHV RFXSDGRV HQ GLUHFFLRQHV 1RVLQWHUHVDQSRUDKRUDORVYHFWRUHV FRQVHFXWLYDVSRUORTXHHOGHVSHUGLFLRHVPD\RU $xDGLUXQHOHPHQWRDOILQDO < # ,QVHUWDUXQHOHPHQWRHQFXDOTXLHUSRVLFLyQ (OLPLQDUXQHOHPHQWR $ 0RGLILFDUHOWDPDxR : * . 9 9 9 9 ; 6HGHFODUDXQYHFWRUGHXQWDPDxRFRUUHVSRQGLHQWHDO Pi[LPRGH GHQVLGDG GHODPDWUL]VHHVWLPDGHSHQGLHQGRGHODDSOLFDFLyQ (QIRUPDOyJLFD &DGDHOHPHQWRGHOYHFWRUVHUiXQDWHUQDGHYDORUHV 9 9 /RVSULPHURVODGLUHFFLyQGHOHOHPHQWRHQODPDWUL] (OWHUFHURHOGDWRDOPDFHQDGR /RQJ9HFWRU (O DFFHVR D ORV GDWRV QR SXHGH VHU GLUHFWR FRPR HQ ORV FDVRV DQWHULRUHV \D TXHQRHVSRVLEOHHOFiOFXORGHXQDGLUHFFLyQEDVH 3RUORWDQWRWHQGUiTXHKDFHUVHXQDORFDOL]DFLyQGHODGLUHFFLyQEXVFDGDGHQWUR GHOYHFWRU [PU] L M GDWR $xDGLUµ#¶ $ < # : * . ; [PU]# $xDGLUXQQXHYRHOHPHQWRDOILQDOGHOYHFWRU $xDGLUGDWR $SXQWHVGH(VWUXFWXUDGH'DWRV YHFWRU>ORQJ@←GDWR ORQJ←ORQJ [PU]# ,QVHUWDUXQQXHYRHOHPHQWRHQFXDOTXLHUSRVLFLyQGHOYHFWRU ,QVHUWDUGDWRSRV &RSLDUFGDWRHQWUHSRV\ORQJDODVLJXLHQWHGLUHFFLyQFRUULPLHQWR YHFWRU>SRV@←GDWR ORQJ←ORQJ [PU]# (OLPLQDU [PU]## (OLPLQDUXQHOHPHQWRGHOYHFWRUGHFXDOTXLHUSRVLFLyQ (OLPLQDUSRV &RSLDUFDGDGDWRHQWUHSRV\ORQJDODGLUHFFLyQDQWHULRU ORQJ←ORQJ [PU]# 0RGLIWDP [PU]# 0RGLILFDUHOWDPDxRGHOYHFWRU 0RGLI7DPQXHYRWDP ORQJ←QXHYRWDP $SXQWHVGH(VWUXFWXUDGH'DWRV $SXQWDGRUHV ,QVHUWDUµ¶ 0DQHMRGH0HPRULD'LQiPLFD 24 [PU]# $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR #include <iostream> using namespace std; int main() { int Dias[]={31,28,31,30,31,30,31,31,30,31,30,31}; char NomMeses[][11]={"Enero","Febrero","Marzo","Abril","Mayo", "Junio","Julio","Agosto","Septiembre","Octubre", "Noviembre","Diciembre"}; int mes; cout << "Escriba un número entre 1 y 12: ";cin >> mes; int pos = mes-1; cout << "Número de días del mes de " << NomMeses[pos] << ": "<< Dias[pos] << endl; system("pause"); return 0; } $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 27 $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 25 $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 0DQHMRGH0HPRULD'LQiPLFD $SXQWDGRUHVDWLSRVVLPSOHV $SXQWDGRUHVXQFRQFHSWR /DVYDULDEOHVL\M #include <iostream> /DYDULDEOHS1232'5È*8$5'$5XQHQWHUR6,12/$',5(&&,Ï1GH 32'5È1*8$5'$5 using namespace std; XQOXJDUGRQGHVHSRGUiJXDUGDUXQHQWHUR(ODVWHULVFRHVXQRSHUDGRUGH HQWHURV int main() ,1',5(&&,Ï1/RTXHVHLQGLFDDOFRPSLODGRUHVTXHSHVGHWLSRLQW { short int i,j; short int *p; cout << "Dirección correspondiente a la variable \"p\": " << &p << endl; cout << "Dirección correspondiente a la variable \"j\": " << &j << endl; cout << "Dirección correspondiente a la variable \"i\": " << &i << endl; p=&i; 6HJXDUGDHQODYDULDEOH cout << "Dirección guardada en \"p\": " << p << endl; ³L´XQGDWRFXDOTXLHUD i=123; cout << "Dato guardado en i: " << i << endl; ([SUHVLyQ cout << "Dato guardado en *p: " << *p << endl; YiOLGDOD system("pause"); YDULDEOH³S´ return 0; FRQWHQGUiOD & } SVHOHHODGLUHFFLyQS GLUHFFLyQ /RGHPXHVWUDHVWHHMHPSOR 8VDPRVXQSDUGHDUUHJORVSDUD VDEHUHOQ~PHURGHGtDV\HOQRPEUH &DGDHOHPHQWRGHORVDUUHJORV S FRUUHVSRQGLHQWH D³L´ $ & M 0DQHMRGH0HPRULD'LQiPLFD $SXQWDGRUHV HTXLYDOHQWHVDFDGDPHVGHODxR L #include <iostream> WLHQHXQDGLUHFFLyQ~QLFD using namespace std; YDORUHVGHVGHD int main() { int Dias[]={31,28,31,30,31,30,31,31,30,31,30,31}; char NomMeses[][11]={"Enero","Febrero","Marzo","Abril","Mayo", "Junio","Julio","Agosto","Septiembre","Octubre", "Noviembre","Diciembre"}; int mes; cout << "Escriba un número entre 1 y 12: ";cin >> mes; int pos = mes-1; cout << "Número de días del mes de " << NomMeses[pos] << ": "<< Dias[pos] << endl; system("pause"); return 0; /DYDULDEOH³SRV´HVXQDSXQWDGRUHQHODPSOLR } VHQWLGRGHOFRQFHSWR$TXtVHXVDSDUDVHxDODUD XQDSRVLFLyQGHORVDUUHJORVFRQRFLHQGRHOYDORU GH³SRV´REWHQHPRVHOQ~PHURGHGtDV\HO ( QRPEUHGHFLHUWRPHVHOTXHHOXVXDULRLQGLFy 28 $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 0DQHMRGH0HPRULD'LQiPLFD 0DQHMRGH0HPRULD'LQiPLFD $SXQWDGRUHVDWLSRVVLPSOHV 5HVHUYDU\/LEHUDU(VSDFLR #include <iostream> using namespace std; int main() { int *i; i = new int; printf("Escribe un entero (se guardará en la dirección %x): ",i); cin >> *i; cout << "Dato guardado: " << *i << endl; delete i; system("pause"); return 0; } #include <iostream> using namespace std; int main() { short int i,j; short int *p; cout << "Dirección correspondiente a la variable \"p\": " << &p << endl; cout << "Dirección correspondiente a la variable \"j\": " << &j << endl; cout << "Dirección correspondiente a la variable \"i\": " << &i << endl; p=&i; cout << "Dirección guardada en \"p\": " << p << endl; i=123; cout << "Dato guardado en i: " << i << endl; cout << "Dato guardado en *p: " << *p << endl; system("pause"); return 0; } 26 31 $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 0DQHMRGH0HPRULD'LQiPLFD 0DQHMRGH0HPRULD'LQiPLFD 5HVHUYDU\/LEHUDU(VSDFLR $SXQWDGRUHVDPLHPEURVGHXQDHVWUXFWXUD Operador -> #include <iostream> using namespace std; SDGUHPDGUHKLMRQRVRQORV struct Persona { char nombre[41]; int edad; }; OXJDUHVGRQGHJXDUGDUODVHVWUXFWXUDV int main() 6RQODVYDULDEOHVTXH { FRQWHQGUiQODVGLUHFFLRQHV Persona *padre, *madre, *hijo; GHODVHVWUXFWXUDV padre = new Persona; madre = new Persona; hijo = new Persona; cout << "Nombre del Padre : ";gets(padre->nombre); cout << "Nombre de la Madre: ";gets(madre->nombre); cout << "Nombre del Hijo : ";gets(hijo->nombre); printf("Padre: %s\n",padre->nombre); printf("Madre: %s\n",madre->nombre); printf("Hijo : %s\n",hijo->nombre); (TXLYDOHDKLMRQRPEUH delete padre; 6LQHPEDUJR−!HVPiVVLPSOH\ delete madre; DGHPiVHVXQVtPERORIiFLOGH delete hijo; UHFRUGDUSRUVXVLJQLILFDGR system("pause"); return 0; } 29 $SXQWHVGH(VWUXFWXUDGH'DWRV QHZLQWUHVHUYDGXUDQWHODHMHFXFLyQ HVSDFLRSDUDXQHQWHUR iHVXQDYDULDEOHTXH /DGLUHFFLyQFRUUHVSRQGLHQWHHVDVLJQDGDDOD DSXQWDUiDXQHQWHUR #include <iostream> YDULDEOHL using namespace std; (O6LVWHPD2SHUDWLYRVHDVHJXUDTXHHVD GLUHFFLyQQRHVWpRFXSDGDSRURWURGDWR int main() { 6HOHHXQHQWHUR\VH int *i; (V JXDUGDHQODGLUHFFLyQi i = new int; LQGLVSHQVDEOH printf("Escribe un entero (se guardará en la dirección %x): ",i); OLEHUDUHO HVSDFLR cin >> *i; UHVHUYDGR cout << "Dato guardado: " << *i << endl; 3RUFDGD delete i; QHZKD\TXH system("pause"); HMHFXWDU return 0; GHOHWHDQWHV } GHOILQGHO SURJUDPD 3DUDTXHVHIDPLOLDULFHFRQORV 3DUDTXHVHIDPLOLDULFH PHQVDMHVGHHUURUGHOFRPSLODGRU FRQORVPHQVDMHVGH HMHFXWHVLQHORSHUDGRUGH HUURUGHHMHFXFLyQUHWLUH LQGLUHFFLyQDVWHULVFR QHZLQW 30 $SXQWHVGH(VWUXFWXUDGH'DWRV $XWRU,QJ)HOLSH$ODQtV*RQ]iOH],QVWLWXWR7HFQROyJLFRGH'XUDQJR 0DQHMRGH0HPRULD'LQiPLFD $SXQWDGRUHVDPLHPEURVGHXQDHVWUXFWXUD Operador -> #include <iostream> using namespace std; struct Persona { char nombre[41]; int edad; }; int main() { Persona *padre, *madre, *hijo; padre = new Persona; madre = new Persona; hijo = new Persona; cout << "Nombre del Padre : ";gets(padre->nombre); cout << "Nombre de la Madre: ";gets(madre->nombre); cout << "Nombre del Hijo : ";gets(hijo->nombre); printf("Padre: %s\n",padre->nombre); printf("Madre: %s\n",madre->nombre); printf("Hijo : %s\n",hijo->nombre); delete padre; delete madre; delete hijo; system("pause"); return 0; }