SlideShare a Scribd company logo
1 of 32
PPrrooggrraammaa MMiiccrroossoofftt 
DDeessaarrrroollllaaddoorr CCiinnccoo 
EEssttrreellllaass 
EEssttrreellllaa 00 -- 
FFuunnddaammeennttooss ddee llaa 
PPrrooggrraammaacciióónn
OObbjjeettiivvoo 
MMoossttrraarr llooss ffuunnddaammeennttooss ddee llaa pprrooggrraammaacciióónn aa 
ttrraavvééss ddee eejjeemmppllooss yy pprrááccttiiccaass uuttiilliizzaaddaass 
ccoottiiddiiaannaammeennttee eenn eell ddeessaarrrroolllloo ddee 
aapplliiccaacciioonneess
PPrreerrrreeqquuiissiittooss 
EEll pprreesseennttee ccuurrssoo aassuummiirráá ccoonnoocciimmiieennttooss 
bbáássiiccooss ddee 
 CCoommppuuttaaddoorraa 
 DDiissppoossiittiivvooss ddee EEnnttrraaddaa//SSaalliiddaa 
 OOrrggaanniizzaacciióónn FFííssiiccaa ddee uunnaa ccoommppuuttaaddoorraa ((CCPPUU,, 
MMeemmoorriiaa)) 
 SSiisstteemmaass OOppeerraattiivvooss
TTeemmaass aa TTrraattaarr ((11//22)) 
EEll SSooffttwwaarree 
LLeenngguuaajjeess ddee pprrooggrraammaacciióónn 
RReessoolluucciióónn ddee pprroobblleemmaass ccoonn ccoommppuuttaaddoorraa 
EEnnttoorrnnoo ddee pprrooggrraammaacciióónn 
TTiippooss ddee DDaattooss 
VVaarriiaabblleess yy CCoonnssttaanntteess 
SSeenntteenncciiaass 
OOppeerraaddoorreess yy EExxpprreessiioonneess
TTeemmaass aa TTrraattaarr ((22//22)) 
EEssttrruuccttuurraass BBáássiiccaass ddee CCoonnttrrooll 
PPrroocceeddiimmiieennttooss yy FFuunncciioonneess 
VViissiibbiilliiddaadd ddee vvaarriiaabblleess 
BBiibblliiootteeccaass 
AArrrraayyss 
EEll EEssttiilloo ddee PPrrooggrraammaacciióónn
EEll SSooffttwwaarree 
LLaass ooppeerraacciioonneess qquuee ddeebbee rreeaalliizzaarr eell 
hhaarrddwwaarree ssoonn eessppeecciiffiiccaaddaass ccoonn uunnaa lliissttaa 
ddee iinnssttrruucccciioonneess,, llllaammaaddaass pprrooggrraammaass oo 
ssooffttwwaarree.. 
DDooss ggrraannddeess ggrruuppooss ddee ssooffttwwaarree 
 SSooffttwwaarree ddeell SSiisstteemmaa 
 IInnddiissppeennssaabbllee ppaarraa qquuee llaa mmááqquuiinnaa ffuunncciioonnee 
yy ppooddeerr eessccrriibbiirr pprrooggrraammaass ddee aapplliiccaacciióónn 
 SSooffttwwaarree ddee AApplliiccaacciióónn 
 RReeaalliizzaann ttaarreeaass ccoonnccrreettaass qquuee ttiieenneenn 
uuttiilliiddaadd ppaarraa cciieerrttooss uussuuaarriiooss
LLeenngguuaajjeess ddee PPrrooggrraammaacciióónn ((11//22)) 
LLeenngguuaajjeess uuttiilliizzaaddooss ppaarraa eessccrriibbiirr 
pprrooggrraammaass ddee ccoommppuuttaaddoorraass qquuee ppuueeddaann 
sseerr eenntteennddiiddooss ppoorr eellllaass 
SSee ccllaassiiffiiccaann eenn ttrreess ggrraannddeess ccaatteeggoorrííaass 
 lleenngguuaajjeess ddee mmááqquuiinnaa 
 iinnssttrruucccciioonneess ddiirreeccttaammeennttee eenntteennddiibblleess ppoorr llaa 
ccoommppuuttaaddoorraa ((lleenngguuaajjee bbiinnaarriioo)) 
 lleenngguuaajjeess ddee bbaajjoo nniivveell 
 PPrroovveeeenn uunn jjuueeggoo ddee iinnssttrruucccciioonneess mmááss 
ccoommpprreennssiibblleess ppoorr llooss hhuummaannooss 
 lleenngguuaajjeess ddee aallttoo nniivveell
LLeenngguuaajjeess ddee PPrrooggrraammaacciióónn ((22//22)) 
LLeenngguuaajjeess ddee aallttoo nniivveell 
 UUttiilliizzaann iinnssttrruucccciioonneess eessccrriittaass ccoonn ppaallaabbrraass ssiimmiillaarreess aa 
llooss lleenngguuaajjeess hhuummaannooss 
 SSoonn iinnddeeppeennddiieenntteess ddee llaa mmááqquuiinnaa eenn llaa qquuee ssee 
eejjeeccuuttaann 
 NNeecceessiittaann sseerr ttrraadduucciiddooss aa iinnssttrruucccciioonneess eenn lleenngguuaajjee 
mmááqquuiinnaa ((CCoommppiillaacciióónn)) 
EExxiisstteenn ddiivveerrssooss ttiippooss 
 EEssttrruuccttuurraaddooss 
 OOrriieennttaaddooss aa OObbjjeettooss 
 DDeeccllaarraattiivvooss 
 FFuunncciioonnaalleess
RReessoolluucciióónn ddee pprroobblleemmaass ccoonn 
ccoommppuuttaaddoorraa 
EEll pprroocceessoo ddee ddiisseeññaarr uunn pprrooggrraammaa eess,, 
eesseenncciiaallmmeennttee,, uunn pprroocceessoo ccrreeaattiivvoo.. 
SSiinn eemmbbaarrggoo,, hhaayy uunnaa sseerriiee ddee ppaassooss 
ccoommuunneess aa sseegguuiirr:: 
 AAnnáálliissiiss ddeell pprroobblleemmaa 
 DDiisseeññoo ddeell aallggoorriittmmoo ssoolluucciióónn 
 CCooddiiffiiccaacciióónn 
 CCoommppiillaacciióónn yy EEjjeeccuucciióónn 
 VVeerriiffiiccaacciióónn 
 DDeeppuurraacciióónn 
 DDooccuummeennttaacciióónn
EEnnttoorrnnoo ddee PPrrooggrraammaacciióónn 
TTaammbbiiéénn ccoonnoocciiddooss ccoommoo IIDDEEss 
HHeerrrraammiieennttaa eesseenncciiaall aa llaa hhoorraa ddee 
ddeessaarrrroollllaarr ssooffttwwaarree 
IInncclluuyyee 
 EEddiittoorr 
 IInnttéérrpprreettee oo CCoommppiillaaddoorr 
 DDeeppuurraaddoorr 
 AAyyuuddaa eenn llíínneeaa
TTiippooss ddee DDaattooss 
DDaattooss:: ppiieezzaass ddee iinnffoorrmmaacciióónn ccoonn llaass qquuee 
uunn pprrooggrraammaa ttrraabbaajjaa 
CCaaddaa ddaattoo ttiieennee aassoocciiaaddoo uunn úúnniiccoo TTiippoo 
EEll TTiippoo ddee DDaattoo ddeetteerrmmiinnaa llaa nnaattuurraalleezzaa ddeell 
ccoonnjjuunnttoo ddee vvaalloorreess qquuee uunn ddaattoo ppuueeddee 
ttoommaarr 
EEjjeemmppllooss:: 
 NNúúmmeerroo EEnntteerroo 
 NNúúmmeerroo RReeaall 
 CCaaddeennaa ddee CCaarraacctteerreess 
 VVaalloorr LLóóggiiccoo ((VVeerrddaaddeerroo oo FFaallssoo))
VVaarriiaabblleess yy CCoonnssttaanntteess 
EExxiisstteenn ddooss ggrruuppooss pprriinncciippaalleess ddee ddaattooss 
 CCoonnssttaanntteess:: ssuu vvaalloorr nnoo ppuueeddee ccaammbbiiaarr 
dduurraannttee llaa eejjeeccuucciióónn ddee uunn pprrooggrraammaa 
 VVaarriiaabblleess:: ssuu vvaalloorr ppuueeddee ccaammbbiiaarr dduurraannttee llaa 
eejjeeccuucciióónn ddee uunn pprrooggrraammaa 
AAmmbbaass ttiieenneenn uunn nnoommbbrree yy uunn vvaalloorr 
AAmmbbaass ppeerrmmiitteenn rreepprreesseennttaarr mmeeddiiaannttee uunn 
nnoommbbrree aa uunnaa ppoossiicciióónn ddee mmeemmoorriiaa qquuee 
ccoonnttiieennee eell vvaalloorr
SSeenntteenncciiaass 
DDeessccrriibbeenn aacccciioonneess aallggoorrííttmmiiccaass qquuee 
ppuueeddeenn sseerr eejjeeccuuttaaddaass 
SSee ccllaassiiffiiccaann eenn 
 EEjjeeccuuttaabblleess // NNoo eejjeeccuuttaabblleess 
 SSiimmpplleess // EEssttrruuccttuurraaddaass
OOppeerraaddoorreess yy EExxpprreessiioonneess ((11//22)) 
SSiirrvveenn ppaarraa pprroocceessaarr vvaarriiaabblleess yy ccoonnssttaanntteess 
UUnnaa eexxpprreessiióónn eess uunn ccoonnjjuunnttoo ddee ddaattooss 
uunniiddooss ppoorr ooppeerraaddoorreess qquuee ttiieennee uunn úúnniiccoo 
rreessuullttaaddoo 
 EExxpprreessiioonneess aarriittmmééttiiccaass 
 EEll rreessuullttaaddoo eess uunn nnúúmmeerroo 
 aa == ((((22++66)) // 88)) ** 33 
 EExxpprreessiioonneess llóóggiiccaass 
 EEll rreessuullttaaddoo eess uunn vvaalloorr vveerrddaaddeerroo oo ffaallssoo 
 ((aa << 1100)) yy ((bb >> 5500))
OOppeerraaddoorreess yy EExxpprreessiioonneess ((22//22)) 
EExxiisstteenn ddiivveerrssooss ttiippooss 
 AArriittmmééttiiccooss:: ssuummaa,, rreessttaa,, mmuullttiipplliiccaacciióónn,, eettcc.. 
 DDee rreellaacciióónn:: iigguuaall,, mmaayyoorr,, mmeennoorr,, ddiissttiinnttoo,, eettcc.. 
 LLóóggiiccooss:: aanndd,, oorr,, nnoott,, eettcc..
EEssttrruuccttuurraass ddee CCoonnttrrooll 
EEll oorrddeenn ddee eejjeeccuucciióónn ddee llaass sseenntteenncciiaass ddee 
uunn pprrooggrraammaa ddeetteerrmmiinnaa ssuu fflluujjoo ddee ccoonnttrrooll 
LLaass eessttrruuccttuurraass ddee ccoonnttrrooll ppeerrmmiitteenn aalltteerraarr 
eell oorrddeenn ddeell fflluujjoo ddee ccoonnttrrooll 
EExxiisstteenn ddooss ttiippooss bbáássiiccooss 
 DDee SSeelleecccciióónn 
 DDee RReeppeettiicciióónn oo IItteerraacciióónn
EEssttrruuccttuurraass ddee CCoonnttrrooll SSeelleeccttiivvaass 
((11//22)) 
DDiirriiggeenn eell fflluujjoo ddee eejjeeccuucciióónn sseeggúúnn eell 
rreessuullttaaddoo ddee eevvaalluuaacciióónn ddee eexxpprreessiioonneess 
IIFF 
 ssii eexxpprreessiioonn__llooggiiccaa 
eennttoonncceess hhaacceerr aacccciióónn AA 
ssiinnoo hhaacceerr aacccciióónn BB 
ffiinn__ssii
EEssttrruuccttuurraass ddee CCoonnttrrooll SSeelleeccttiivvaass 
((22//22)) 
CCAASSEE 
 sseeggúúnn__sseeaa sseelleeccttoorr hhaacceerr 
CC1111,,CC1122,,……:: sseenntteenncciiaa 11 
CC2211,,CC2222,,……:: sseenntteenncciiaa 22 
…….... 
[[ssiinnoo sseenntteenncciiaa xx]] 
ffiinn__sseeggúúnn
EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass 
((11//33)) 
PPeerrmmiitteenn eejjeeccuuttaarr uunn ccoonnjjuunnttoo ddee 
sseenntteenncciiaass rreeppeettiiddaammeennttee uunnaa cciieerrttaa 
ccaannttiiddaadd ddee vveecceess oo hhaassttaa qquuee ssee ccuummppllaa 
uunnaa ddeetteerrmmiinnaaddaa ccoonnddiicciióónn 
EEll ccoonnjjuunnttoo ddee sseenntteenncciiaass ssee ddeennoommiinnaa 
bbuuccllee 
CCaaddaa rreeppeettiicciióónn ddeell ccuueerrppoo ddeell bbuuccllee ssee 
ddeennoommiinnaa iitteerraacciióónn
EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass 
((22//33)) 
WWHHIILLEE 
 mmiieennttrraass ccoonnddiicciióónn hhaacceerr 
sseenntteenncciiaa//ss 
…….... 
ffiinn__mmiieennttrraass
EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass 
((33//33)) 
FFOORR 
 ddeessddee variable  valor_inicial hhaassttaa 
valor_final hhaacceerr 
sseenntteenncciiaa//ss 
…….... 
ffiinn__ddeessddee
PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((11//4)) 
DDeessccoommppoossiicciióónn eenn ssuubbpprrooggrraammaass:: eessttrraatteeggiiaa 
ppaarraa rreessoollvveerr pprroobblleemmaass ccoommpplleejjooss 
LLooss ssuubbpprrooggrraammaass ssee iimmpplleemmeennttaann aa ttrraavvééss 
ddee pprroocceeddiimmiieennttooss yy ffuunncciioonneess 
 CCoommppuueessttooss ppoorr uunn ggrruuppoo ddee sseenntteenncciiaass 
 SSee lleess aassiiggnnaa uunn nnoommbbrree 
 PPuueeddeenn iinnvvooccaarrssee eennttrree ssíí uuttiilliizzaannddoo eessee nnoommbbrree 
 CCoonnssttiittuuyyeenn uunnaa uunniiddaadd ddee pprrooggrraammaa
PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((22//4)) 
LLooss pprroocceeddiimmiieennttooss yy ffuunncciioonneess ssee ccoommuunniiccaann 
ccoonn ssuu iinnvvooccaaddoorr aa ttrraavvééss ddee ppaarráámmeettrrooss.. 
LLooss ppaarráámmeettrrooss ssoonn uunn mmeeddiioo ppaarraa ppaassaarr 
iinnffoorrmmaacciióónn,, iimmpplleemmeennttaaddooss aa ttrraavvééss ddee 
vvaarriiaabblleess ccoonn vvaalloorr.. 
TTiippooss ddee ppaarráámmeettrroo 
 DDee EEnnttrraaddaa:: ssuu vvaalloorr eess pprrooppoorrcciioonnaaddoo ppoorr eell 
iinnvvooccaaddoorr aanntteess ddee llllaammaarr aall ssuubbpprrooggrraammaa 
 DDee SSaalliiddaa:: ssuu vvaalloorr eess ccaallccuullaaddoo ddeennttrroo ddee uunn 
ssuubbpprrooggrraammaa yy ddeevvuueellttoo aa ssuu iinnvvooccaaddoorr
PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((33//4)) 
EEjjeemmpplloo:: 
 DDeeffiinniicciióónn 
pprroocceeddiimmiieennttoo CCaallccuullaarrSSuummaa(( ppaarráámmeettrroo11 eenntteerroo,, 
ppaarráámmeettrroo22 eenntteerroo)) ddeevvuueellvvee eenntteerroo 
ddeevvoollvveerr ppaarráámmeettrroo11 ++ ppaarráámmeettrroo22 
ffiinn__pprroocceeddiimmiieennttoo 
 IInnvvooccaacciióónn ddeessddee eell pprrooggrraammaa pprriinncciippaall uu oottrroo 
ssuubbpprrooggrraammaa 
nnúúmmeerroo eenntteerroo aa == 22 
nnúúmmeerroo eenntteerroo bb == 33 
nnúúmmeerroo eenntteerroo cc == CCaallccuullaarrSSuummaa((aa,,bb)) 
ccaarráácctteerr dd == CCaallccuullaarrSSuummaa((aa,,bb))  EERRRROORR
PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((44//44)) 
VVeennttaajjaass ddee uuttiilliizzaarr pprroocceeddiimmiieennttooss 
 FFaacciilliittaa eell ddiisseeññoo ddeesscceennddiieennttee yy mmoodduullaarr 
 PPrroommuueevveenn llaa rreeuuttiilliizzaacciióónn ddee ccóóddiiggoo 
 FFaacciilliittaa llaa ddiivviissiióónn ddee ttaarreeaass 
 PPuueeddeenn ccoommpprroobbaarrssee iinnddiivviidduuaallmmeennttee 
 PPuueeddeenn eennccaappssuullaarrssee eenn bbiibblliiootteeccaass 
iinnddeeppeennddiieenntteess
VViissiibbiilliiddaadd ddee VVaarriiaabblleess 
VVaarriiaabbllee LLooccaall:: 
 DDeeccllaarraaddaa eenn uunn ssuubbpprrooggrraammaa 
 SSóólloo eessttáá ddiissppoonniibbllee dduurraannttee eell ffuunncciioonnaammiieennttoo 
ddeell ssuubbpprrooggrraammaa 
 SSuu vvaalloorr ssee ppiieerrddee uunnaa vveezz qquuee eell ssuubbpprrooggrraammaa 
tteerrmmiinnaa 
VVaarriiaabbllee GGlloobbaall:: 
 DDeeccllaarraaddaa eenn eell pprrooggrraammaa pprriinncciippaall 
 EEssttáá ddiissppoonniibbllee eenn eell pprrooggrraammaa pprriinncciippaall yy eenn 
ttooddooss llooss ssuubbpprrooggrraammaass 
 SSuu vvaalloorr ssee ppiieerrddee uunnaa vveezz qquuee eell pprrooggrraammaa 
pprriinncciippaall tteerrmmiinnaa
BBiibblliiootteeccaass 
AArrcchhiivvoo iinnddeeppeennddiieennttee qquuee ccoonnttiieennee uunn 
ccoonnjjuunnttoo ddee ssuubbpprrooggrraammaass 
PPuueeddeenn sseerr iinncclluuiiddaass yy rreeffeerreenncciiaaddaass eenn eell 
ddeessaarrrroolllloo ddee mmúúllttiipplleess pprrooggrraammaass 
FFaacciilliittaann llaa mmoodduullaarriizzaacciióónn ddee uunn pprrooggrraammaa 
DDeessaarrrroolllloo  PPrrooggrraammaa FFuueennttee 
CCoommppiillaacciióónn  PPrrooggrraammaa OObbjjeettoo 
LLiinnkk--EEddiicciióónn  PPrrooggrraammaa EEjjeeccuuttaabbllee
AArrrraayyss ((AArrrreeggllooss)) ((11//33)) 
SSoonn eessttrruuccttuurraass ddee ddaattooss eenn llaass qquuee ssee 
aallmmaacceennaann uunn ccoonnjjuunnttoo ddee ddaattooss ffiinniittooss ddeell 
mmiissmmoo ttiippoo 
 AAllmmaacceennaann ssuuss eelleemmeennttooss eenn ppoossiicciioonneess ddee 
mmeemmoorriiaa ccoonnttiigguuaass 
 TTiieenneenn uunn úúnniiccoo nnoommbbrree ddee vvaarriiaabbllee qquuee 
rreepprreesseennttaa aa ttooddooss llooss eelleemmeennttooss 
 PPeerrmmiitteenn aacccceessoo ddiirreeccttoo oo aalleeaattoorriioo aa ssuuss 
eelleemmeennttooss iinnddiivviidduuaalleess 
LLooss aarrrraayyss ssee ccllaassiiffiiccaann eenn uunniiddiimmeennssiioonnaalleess yy 
mmuullttiiddiimmeennssiioonnaalleess..
AArrrraayyss ((AArrrreeggllooss)) ((22//33)) 
AArrrraayyss uunniiddiimmeennssiioonnaalleess ((VVeeccttoorreess)) 
 NNúúmmeerroo ffiinniittoo ddee eelleemmeennttooss 
 TTaammaaññoo FFiijjoo 
 EElleemmeennttooss HHoommooggéénneeooss 
 SSee aacccceeddee aa llooss eelleemmeennttooss uuttiilliizzaannddoo eell nnoommbbrree 
ddeell aarrrraayy yy eell ssuubbíínnddiiccee eessppeeccííffiiccoo 
EEjjeemmpplloo:: 
 ssaallaarriiooss((33)) RReeaalleess  NNoommbbrree ddeell aarrrraayy,, ddee 33 
ppoossiicciioonneess qquuee ccoonntteennddrráánn nnúúmmeerroo rreeaalleess 
 ssaallaarriiooss[[11]] == 2233,,44  AAssiiggnnaacciióónn ddee uunn vvaalloorr 
aall pprriimmeerr eelleemmeennttoo ddeell aarrrraayy
AArrrraayyss ((AArrrreeggllooss)) ((33//33)) 
AArrrraayyss mmuullttiiddiimmeennssiioonnaalleess 
 AArrrraayyss bbiiddiimmeennssiioonnaalleess ((MMaattrriicceess oo TTaabbllaass)) 
 TTiieenneenn ddooss íínnddiicceess,, uunnoo ppaarraa ffiillaass yy oottrroo ppaarraa 
ccoolluummnnaass 
 EEjjeemmpplloo:: 
ttaabbllaa((33,,33)) eenntteerrooss  DDeeccllaarraacciióónn ddee uunnaa mmaattrriizz 
ddee 33 ppoorr 33 
ttaabbllaa [[11]][[11]] == 22  EElleemmeennttoo ddee llaa pprriimmeerr ffiillaa yy 
pprriimmeerr ccoolluummnnaa 
ttaabbllaa [[22]][[33]] == 55  EElleemmeennttoo ddee llaa sseegguunnddaa ffiillaa yy 
llaa tteerrcceerr ccoolluummnnaa
EEll eessttiilloo ddee PPrrooggrraammaacciióónn 
UUnnaa ddee llaass ccaarraacctteerrííssttiiccaass mmááss iimmppoorrttaanntteess 
ddee uunn bbuueenn pprrooggrraammaaddoorr 
UUnn bbuueenn eessttiilloo ffaacciilliittaa llaa ccoommpprreennssiióónn,, 
ccoorrrreecccciióónn yy mmaanntteenniimmiieennttoo ddee uunn pprrooggrraammaa 
AAllgguunnooss ppuunnttooss aa tteenneerr eenn ccuueennttaa 
 CCoommeennttaarriiooss 
 EElleecccciióónn ddee nnoommbbrreess ssiiggnniiffiiccaattiivvooss 
 IIddeennttaacciióónn 
 EEssppaacciiooss yy LLíínneeaass eenn BBllaannccoo 
 VVaalliiddaacciióónn uussaannddoo ddaattooss ddee pprruueebbaa
© 2005 Microsoft Corporation. All rights reserved. 
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

More Related Content

What's hot

Partes de una placa madre
Partes de una placa madrePartes de una placa madre
Partes de una placa madreferrerasmarlon
 
#6 digestive system general maintenance and disorders
#6 digestive system general maintenance and disorders#6 digestive system general maintenance and disorders
#6 digestive system general maintenance and disordersHome Makers
 
Lake Basin Thematic Sessions 1, 2, and 3
Lake Basin Thematic Sessions 1, 2, and 3Lake Basin Thematic Sessions 1, 2, and 3
Lake Basin Thematic Sessions 1, 2, and 3Iwl Pcu
 
Implant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyImplant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyIndian dental academy
 
#7 dysbiosis and leaky gut syndrome
#7 dysbiosis and leaky gut syndrome#7 dysbiosis and leaky gut syndrome
#7 dysbiosis and leaky gut syndromeHome Makers
 
#10 inflammatory bowel disease
#10 inflammatory bowel disease#10 inflammatory bowel disease
#10 inflammatory bowel diseaseHome Makers
 
evidence based management -Pyogenic meningitis in children
evidence based management -Pyogenic meningitis in childrenevidence based management -Pyogenic meningitis in children
evidence based management -Pyogenic meningitis in childrenKanimozhi Thandapani
 
Periodization+turner+kornspan
Periodization+turner+kornspanPeriodization+turner+kornspan
Periodization+turner+kornspanMarcos Grosche
 
#4 natural foods and supplement for gi health
#4  natural foods and supplement for gi health#4  natural foods and supplement for gi health
#4 natural foods and supplement for gi healthHome Makers
 
Metode & desain_kualitatif
Metode & desain_kualitatifMetode & desain_kualitatif
Metode & desain_kualitatifazisbustari
 
Slideshow mentoring 50
Slideshow mentoring 50Slideshow mentoring 50
Slideshow mentoring 50Paul Robere
 
Cyber Security Innovation IMHO v4
Cyber Security Innovation IMHO v4Cyber Security Innovation IMHO v4
Cyber Security Innovation IMHO v4W Fred Seigneur
 
Dermatitis del panal Lesiones Dermatologicas
Dermatitis del panal Lesiones DermatologicasDermatitis del panal Lesiones Dermatologicas
Dermatitis del panal Lesiones DermatologicasDr Renato Soares de Melo
 

What's hot (19)

Fichas ciencias políticas
Fichas ciencias políticasFichas ciencias políticas
Fichas ciencias políticas
 
Partes de una placa madre
Partes de una placa madrePartes de una placa madre
Partes de una placa madre
 
Vitamins water soluble
Vitamins water solubleVitamins water soluble
Vitamins water soluble
 
#6 digestive system general maintenance and disorders
#6 digestive system general maintenance and disorders#6 digestive system general maintenance and disorders
#6 digestive system general maintenance and disorders
 
Lake Basin Thematic Sessions 1, 2, and 3
Lake Basin Thematic Sessions 1, 2, and 3Lake Basin Thematic Sessions 1, 2, and 3
Lake Basin Thematic Sessions 1, 2, and 3
 
Implant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academyImplant parts/dental implant courses by Indian dental academy
Implant parts/dental implant courses by Indian dental academy
 
Cartilla ciencias políticas
Cartilla ciencias políticasCartilla ciencias políticas
Cartilla ciencias políticas
 
#7 dysbiosis and leaky gut syndrome
#7 dysbiosis and leaky gut syndrome#7 dysbiosis and leaky gut syndrome
#7 dysbiosis and leaky gut syndrome
 
#10 inflammatory bowel disease
#10 inflammatory bowel disease#10 inflammatory bowel disease
#10 inflammatory bowel disease
 
evidence based management -Pyogenic meningitis in children
evidence based management -Pyogenic meningitis in childrenevidence based management -Pyogenic meningitis in children
evidence based management -Pyogenic meningitis in children
 
Periodization+turner+kornspan
Periodization+turner+kornspanPeriodization+turner+kornspan
Periodization+turner+kornspan
 
#4 natural foods and supplement for gi health
#4  natural foods and supplement for gi health#4  natural foods and supplement for gi health
#4 natural foods and supplement for gi health
 
Ch13 lecture0
Ch13 lecture0Ch13 lecture0
Ch13 lecture0
 
Metode & desain_kualitatif
Metode & desain_kualitatifMetode & desain_kualitatif
Metode & desain_kualitatif
 
Synapseindia reviews
Synapseindia reviewsSynapseindia reviews
Synapseindia reviews
 
Slideshow mentoring 50
Slideshow mentoring 50Slideshow mentoring 50
Slideshow mentoring 50
 
Cyber Security Innovation IMHO v4
Cyber Security Innovation IMHO v4Cyber Security Innovation IMHO v4
Cyber Security Innovation IMHO v4
 
Dermatitis del panal Lesiones Dermatologicas
Dermatitis del panal Lesiones DermatologicasDermatitis del panal Lesiones Dermatologicas
Dermatitis del panal Lesiones Dermatologicas
 
Spinal cord injury
Spinal cord injurySpinal cord injury
Spinal cord injury
 

Viewers also liked (20)

תעודה NLP Master Practitioner
תעודה NLP Master Practitionerתעודה NLP Master Practitioner
תעודה NLP Master Practitioner
 
Mr. Ebron'srecommendationletter
Mr. Ebron'srecommendationletterMr. Ebron'srecommendationletter
Mr. Ebron'srecommendationletter
 
Cyberbullying
Cyberbullying Cyberbullying
Cyberbullying
 
Cdlcs
CdlcsCdlcs
Cdlcs
 
Recurso Digital da Atividade 2- Tema 4
Recurso Digital da Atividade 2- Tema 4Recurso Digital da Atividade 2- Tema 4
Recurso Digital da Atividade 2- Tema 4
 
G&H Catalogue
G&H CatalogueG&H Catalogue
G&H Catalogue
 
Seminário 1
Seminário 1Seminário 1
Seminário 1
 
Semana da leitura
Semana da leituraSemana da leitura
Semana da leitura
 
Lula sampaio processo em 07 fevereiro
Lula sampaio processo em 07 fevereiroLula sampaio processo em 07 fevereiro
Lula sampaio processo em 07 fevereiro
 
Power tic
Power ticPower tic
Power tic
 
Reviews about Chef Malgudi Kavitha
Reviews about Chef Malgudi KavithaReviews about Chef Malgudi Kavitha
Reviews about Chef Malgudi Kavitha
 
management express logo
management express logomanagement express logo
management express logo
 
15. Certificate K3
15. Certificate K315. Certificate K3
15. Certificate K3
 
Autoestima 2
Autoestima 2Autoestima 2
Autoestima 2
 
StoernerStudentResearcherAwards2011
StoernerStudentResearcherAwards2011StoernerStudentResearcherAwards2011
StoernerStudentResearcherAwards2011
 
Edição vídeos
Edição vídeosEdição vídeos
Edição vídeos
 
Curiosidades sobre la UEFA Champions League
Curiosidades sobre la UEFA Champions LeagueCuriosidades sobre la UEFA Champions League
Curiosidades sobre la UEFA Champions League
 
Customer logo list
Customer logo listCustomer logo list
Customer logo list
 
Degree certi.
Degree certi.Degree certi.
Degree certi.
 
2003_March - Key skills cert
2003_March - Key skills cert2003_March - Key skills cert
2003_March - Key skills cert
 

Similar to Fundamentos de programacion

Staging and management of genital prolapse
 Staging and management of genital    prolapse  Staging and management of genital    prolapse
Staging and management of genital prolapse Kawita Bapat
 
Segunda Revolução Industrial - Prof.Altair Aguilar.
 Segunda Revolução Industrial -  Prof.Altair Aguilar. Segunda Revolução Industrial -  Prof.Altair Aguilar.
Segunda Revolução Industrial - Prof.Altair Aguilar.Altair Moisés Aguilar
 
Sistemes Operatius
Sistemes OperatiusSistemes Operatius
Sistemes OperatiusCyntia99
 
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0DotNetMarche
 
Pc´s en crisis - reto de los 6000
Pc´s en crisis - reto de los 6000Pc´s en crisis - reto de los 6000
Pc´s en crisis - reto de los 6000Negry Walsh
 
Gdr pres[1]
Gdr pres[1]Gdr pres[1]
Gdr pres[1]ameeee
 
Enc c artes electroniques
Enc c artes electroniquesEnc c artes electroniques
Enc c artes electroniquesRabah HELAL
 
Enseñanza para la Comprensión
Enseñanza para la ComprensiónEnseñanza para la Comprensión
Enseñanza para la Comprensióndaabar
 
Venezuela precolombina wilmer prieto ciencia politica
Venezuela precolombina wilmer prieto ciencia politicaVenezuela precolombina wilmer prieto ciencia politica
Venezuela precolombina wilmer prieto ciencia politicaWilmer Prieto
 
Proyecto de aula flor de maria castillo gomez
Proyecto de aula  flor de maria castillo gomezProyecto de aula  flor de maria castillo gomez
Proyecto de aula flor de maria castillo gomezdcpe2014
 
Source control system
Source control systemSource control system
Source control systemDotNetMarche
 

Similar to Fundamentos de programacion (20)

Staging and management of genital prolapse
 Staging and management of genital    prolapse  Staging and management of genital    prolapse
Staging and management of genital prolapse
 
Segunda Revolução Industrial - Prof.Altair Aguilar.
 Segunda Revolução Industrial -  Prof.Altair Aguilar. Segunda Revolução Industrial -  Prof.Altair Aguilar.
Segunda Revolução Industrial - Prof.Altair Aguilar.
 
Sistemes Operatius
Sistemes OperatiusSistemes Operatius
Sistemes Operatius
 
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0
Adaptive rendering e ASP.NET 2.0 CSS Friendly Control Adapters 1.0
 
Biomedical Research
Biomedical ResearchBiomedical Research
Biomedical Research
 
debishis (3)
debishis (3)debishis (3)
debishis (3)
 
Cartilla ciencias políticas
Cartilla ciencias políticasCartilla ciencias políticas
Cartilla ciencias políticas
 
Pc´s en crisis - reto de los 6000
Pc´s en crisis - reto de los 6000Pc´s en crisis - reto de los 6000
Pc´s en crisis - reto de los 6000
 
Gdr pres[1]
Gdr pres[1]Gdr pres[1]
Gdr pres[1]
 
Untitled 1
Untitled 1Untitled 1
Untitled 1
 
Rudelvi software del sistema
Rudelvi software del sistemaRudelvi software del sistema
Rudelvi software del sistema
 
Rudelvi software del sistema
Rudelvi software del sistemaRudelvi software del sistema
Rudelvi software del sistema
 
Automação
Automação Automação
Automação
 
Enc c artes electroniques
Enc c artes electroniquesEnc c artes electroniques
Enc c artes electroniques
 
Clase dra.portunato Generalidades pie dbt
Clase dra.portunato  Generalidades pie dbtClase dra.portunato  Generalidades pie dbt
Clase dra.portunato Generalidades pie dbt
 
Enseñanza para la Comprensión
Enseñanza para la ComprensiónEnseñanza para la Comprensión
Enseñanza para la Comprensión
 
Venezuela precolombina wilmer prieto ciencia politica
Venezuela precolombina wilmer prieto ciencia politicaVenezuela precolombina wilmer prieto ciencia politica
Venezuela precolombina wilmer prieto ciencia politica
 
Proyecto de aula flor de maria castillo gomez
Proyecto de aula  flor de maria castillo gomezProyecto de aula  flor de maria castillo gomez
Proyecto de aula flor de maria castillo gomez
 
Imunisasi
ImunisasiImunisasi
Imunisasi
 
Source control system
Source control systemSource control system
Source control system
 

Fundamentos de programacion

  • 1. PPrrooggrraammaa MMiiccrroossoofftt DDeessaarrrroollllaaddoorr CCiinnccoo EEssttrreellllaass EEssttrreellllaa 00 -- FFuunnddaammeennttooss ddee llaa PPrrooggrraammaacciióónn
  • 2. OObbjjeettiivvoo MMoossttrraarr llooss ffuunnddaammeennttooss ddee llaa pprrooggrraammaacciióónn aa ttrraavvééss ddee eejjeemmppllooss yy pprrááccttiiccaass uuttiilliizzaaddaass ccoottiiddiiaannaammeennttee eenn eell ddeessaarrrroolllloo ddee aapplliiccaacciioonneess
  • 3. PPrreerrrreeqquuiissiittooss EEll pprreesseennttee ccuurrssoo aassuummiirráá ccoonnoocciimmiieennttooss bbáássiiccooss ddee  CCoommppuuttaaddoorraa  DDiissppoossiittiivvooss ddee EEnnttrraaddaa//SSaalliiddaa  OOrrggaanniizzaacciióónn FFííssiiccaa ddee uunnaa ccoommppuuttaaddoorraa ((CCPPUU,, MMeemmoorriiaa))  SSiisstteemmaass OOppeerraattiivvooss
  • 4. TTeemmaass aa TTrraattaarr ((11//22)) EEll SSooffttwwaarree LLeenngguuaajjeess ddee pprrooggrraammaacciióónn RReessoolluucciióónn ddee pprroobblleemmaass ccoonn ccoommppuuttaaddoorraa EEnnttoorrnnoo ddee pprrooggrraammaacciióónn TTiippooss ddee DDaattooss VVaarriiaabblleess yy CCoonnssttaanntteess SSeenntteenncciiaass OOppeerraaddoorreess yy EExxpprreessiioonneess
  • 5. TTeemmaass aa TTrraattaarr ((22//22)) EEssttrruuccttuurraass BBáássiiccaass ddee CCoonnttrrooll PPrroocceeddiimmiieennttooss yy FFuunncciioonneess VViissiibbiilliiddaadd ddee vvaarriiaabblleess BBiibblliiootteeccaass AArrrraayyss EEll EEssttiilloo ddee PPrrooggrraammaacciióónn
  • 6. EEll SSooffttwwaarree LLaass ooppeerraacciioonneess qquuee ddeebbee rreeaalliizzaarr eell hhaarrddwwaarree ssoonn eessppeecciiffiiccaaddaass ccoonn uunnaa lliissttaa ddee iinnssttrruucccciioonneess,, llllaammaaddaass pprrooggrraammaass oo ssooffttwwaarree.. DDooss ggrraannddeess ggrruuppooss ddee ssooffttwwaarree  SSooffttwwaarree ddeell SSiisstteemmaa  IInnddiissppeennssaabbllee ppaarraa qquuee llaa mmááqquuiinnaa ffuunncciioonnee yy ppooddeerr eessccrriibbiirr pprrooggrraammaass ddee aapplliiccaacciióónn  SSooffttwwaarree ddee AApplliiccaacciióónn  RReeaalliizzaann ttaarreeaass ccoonnccrreettaass qquuee ttiieenneenn uuttiilliiddaadd ppaarraa cciieerrttooss uussuuaarriiooss
  • 7. LLeenngguuaajjeess ddee PPrrooggrraammaacciióónn ((11//22)) LLeenngguuaajjeess uuttiilliizzaaddooss ppaarraa eessccrriibbiirr pprrooggrraammaass ddee ccoommppuuttaaddoorraass qquuee ppuueeddaann sseerr eenntteennddiiddooss ppoorr eellllaass SSee ccllaassiiffiiccaann eenn ttrreess ggrraannddeess ccaatteeggoorrííaass  lleenngguuaajjeess ddee mmááqquuiinnaa  iinnssttrruucccciioonneess ddiirreeccttaammeennttee eenntteennddiibblleess ppoorr llaa ccoommppuuttaaddoorraa ((lleenngguuaajjee bbiinnaarriioo))  lleenngguuaajjeess ddee bbaajjoo nniivveell  PPrroovveeeenn uunn jjuueeggoo ddee iinnssttrruucccciioonneess mmááss ccoommpprreennssiibblleess ppoorr llooss hhuummaannooss  lleenngguuaajjeess ddee aallttoo nniivveell
  • 8. LLeenngguuaajjeess ddee PPrrooggrraammaacciióónn ((22//22)) LLeenngguuaajjeess ddee aallttoo nniivveell  UUttiilliizzaann iinnssttrruucccciioonneess eessccrriittaass ccoonn ppaallaabbrraass ssiimmiillaarreess aa llooss lleenngguuaajjeess hhuummaannooss  SSoonn iinnddeeppeennddiieenntteess ddee llaa mmááqquuiinnaa eenn llaa qquuee ssee eejjeeccuuttaann  NNeecceessiittaann sseerr ttrraadduucciiddooss aa iinnssttrruucccciioonneess eenn lleenngguuaajjee mmááqquuiinnaa ((CCoommppiillaacciióónn)) EExxiisstteenn ddiivveerrssooss ttiippooss  EEssttrruuccttuurraaddooss  OOrriieennttaaddooss aa OObbjjeettooss  DDeeccllaarraattiivvooss  FFuunncciioonnaalleess
  • 9. RReessoolluucciióónn ddee pprroobblleemmaass ccoonn ccoommppuuttaaddoorraa EEll pprroocceessoo ddee ddiisseeññaarr uunn pprrooggrraammaa eess,, eesseenncciiaallmmeennttee,, uunn pprroocceessoo ccrreeaattiivvoo.. SSiinn eemmbbaarrggoo,, hhaayy uunnaa sseerriiee ddee ppaassooss ccoommuunneess aa sseegguuiirr::  AAnnáálliissiiss ddeell pprroobblleemmaa  DDiisseeññoo ddeell aallggoorriittmmoo ssoolluucciióónn  CCooddiiffiiccaacciióónn  CCoommppiillaacciióónn yy EEjjeeccuucciióónn  VVeerriiffiiccaacciióónn  DDeeppuurraacciióónn  DDooccuummeennttaacciióónn
  • 10. EEnnttoorrnnoo ddee PPrrooggrraammaacciióónn TTaammbbiiéénn ccoonnoocciiddooss ccoommoo IIDDEEss HHeerrrraammiieennttaa eesseenncciiaall aa llaa hhoorraa ddee ddeessaarrrroollllaarr ssooffttwwaarree IInncclluuyyee  EEddiittoorr  IInnttéérrpprreettee oo CCoommppiillaaddoorr  DDeeppuurraaddoorr  AAyyuuddaa eenn llíínneeaa
  • 11. TTiippooss ddee DDaattooss DDaattooss:: ppiieezzaass ddee iinnffoorrmmaacciióónn ccoonn llaass qquuee uunn pprrooggrraammaa ttrraabbaajjaa CCaaddaa ddaattoo ttiieennee aassoocciiaaddoo uunn úúnniiccoo TTiippoo EEll TTiippoo ddee DDaattoo ddeetteerrmmiinnaa llaa nnaattuurraalleezzaa ddeell ccoonnjjuunnttoo ddee vvaalloorreess qquuee uunn ddaattoo ppuueeddee ttoommaarr EEjjeemmppllooss::  NNúúmmeerroo EEnntteerroo  NNúúmmeerroo RReeaall  CCaaddeennaa ddee CCaarraacctteerreess  VVaalloorr LLóóggiiccoo ((VVeerrddaaddeerroo oo FFaallssoo))
  • 12. VVaarriiaabblleess yy CCoonnssttaanntteess EExxiisstteenn ddooss ggrruuppooss pprriinncciippaalleess ddee ddaattooss  CCoonnssttaanntteess:: ssuu vvaalloorr nnoo ppuueeddee ccaammbbiiaarr dduurraannttee llaa eejjeeccuucciióónn ddee uunn pprrooggrraammaa  VVaarriiaabblleess:: ssuu vvaalloorr ppuueeddee ccaammbbiiaarr dduurraannttee llaa eejjeeccuucciióónn ddee uunn pprrooggrraammaa AAmmbbaass ttiieenneenn uunn nnoommbbrree yy uunn vvaalloorr AAmmbbaass ppeerrmmiitteenn rreepprreesseennttaarr mmeeddiiaannttee uunn nnoommbbrree aa uunnaa ppoossiicciióónn ddee mmeemmoorriiaa qquuee ccoonnttiieennee eell vvaalloorr
  • 13. SSeenntteenncciiaass DDeessccrriibbeenn aacccciioonneess aallggoorrííttmmiiccaass qquuee ppuueeddeenn sseerr eejjeeccuuttaaddaass SSee ccllaassiiffiiccaann eenn  EEjjeeccuuttaabblleess // NNoo eejjeeccuuttaabblleess  SSiimmpplleess // EEssttrruuccttuurraaddaass
  • 14. OOppeerraaddoorreess yy EExxpprreessiioonneess ((11//22)) SSiirrvveenn ppaarraa pprroocceessaarr vvaarriiaabblleess yy ccoonnssttaanntteess UUnnaa eexxpprreessiióónn eess uunn ccoonnjjuunnttoo ddee ddaattooss uunniiddooss ppoorr ooppeerraaddoorreess qquuee ttiieennee uunn úúnniiccoo rreessuullttaaddoo  EExxpprreessiioonneess aarriittmmééttiiccaass  EEll rreessuullttaaddoo eess uunn nnúúmmeerroo  aa == ((((22++66)) // 88)) ** 33  EExxpprreessiioonneess llóóggiiccaass  EEll rreessuullttaaddoo eess uunn vvaalloorr vveerrddaaddeerroo oo ffaallssoo  ((aa << 1100)) yy ((bb >> 5500))
  • 15. OOppeerraaddoorreess yy EExxpprreessiioonneess ((22//22)) EExxiisstteenn ddiivveerrssooss ttiippooss  AArriittmmééttiiccooss:: ssuummaa,, rreessttaa,, mmuullttiipplliiccaacciióónn,, eettcc..  DDee rreellaacciióónn:: iigguuaall,, mmaayyoorr,, mmeennoorr,, ddiissttiinnttoo,, eettcc..  LLóóggiiccooss:: aanndd,, oorr,, nnoott,, eettcc..
  • 16. EEssttrruuccttuurraass ddee CCoonnttrrooll EEll oorrddeenn ddee eejjeeccuucciióónn ddee llaass sseenntteenncciiaass ddee uunn pprrooggrraammaa ddeetteerrmmiinnaa ssuu fflluujjoo ddee ccoonnttrrooll LLaass eessttrruuccttuurraass ddee ccoonnttrrooll ppeerrmmiitteenn aalltteerraarr eell oorrddeenn ddeell fflluujjoo ddee ccoonnttrrooll EExxiisstteenn ddooss ttiippooss bbáássiiccooss  DDee SSeelleecccciióónn  DDee RReeppeettiicciióónn oo IItteerraacciióónn
  • 17. EEssttrruuccttuurraass ddee CCoonnttrrooll SSeelleeccttiivvaass ((11//22)) DDiirriiggeenn eell fflluujjoo ddee eejjeeccuucciióónn sseeggúúnn eell rreessuullttaaddoo ddee eevvaalluuaacciióónn ddee eexxpprreessiioonneess IIFF  ssii eexxpprreessiioonn__llooggiiccaa eennttoonncceess hhaacceerr aacccciióónn AA ssiinnoo hhaacceerr aacccciióónn BB ffiinn__ssii
  • 18. EEssttrruuccttuurraass ddee CCoonnttrrooll SSeelleeccttiivvaass ((22//22)) CCAASSEE  sseeggúúnn__sseeaa sseelleeccttoorr hhaacceerr CC1111,,CC1122,,……:: sseenntteenncciiaa 11 CC2211,,CC2222,,……:: sseenntteenncciiaa 22 …….... [[ssiinnoo sseenntteenncciiaa xx]] ffiinn__sseeggúúnn
  • 19. EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass ((11//33)) PPeerrmmiitteenn eejjeeccuuttaarr uunn ccoonnjjuunnttoo ddee sseenntteenncciiaass rreeppeettiiddaammeennttee uunnaa cciieerrttaa ccaannttiiddaadd ddee vveecceess oo hhaassttaa qquuee ssee ccuummppllaa uunnaa ddeetteerrmmiinnaaddaa ccoonnddiicciióónn EEll ccoonnjjuunnttoo ddee sseenntteenncciiaass ssee ddeennoommiinnaa bbuuccllee CCaaddaa rreeppeettiicciióónn ddeell ccuueerrppoo ddeell bbuuccllee ssee ddeennoommiinnaa iitteerraacciióónn
  • 20. EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass ((22//33)) WWHHIILLEE  mmiieennttrraass ccoonnddiicciióónn hhaacceerr sseenntteenncciiaa//ss …….... ffiinn__mmiieennttrraass
  • 21. EEssttrruuccttuurraass ddee CCoonnttrrooll RReeppeettiittiivvaass ((33//33)) FFOORR  ddeessddee variable  valor_inicial hhaassttaa valor_final hhaacceerr sseenntteenncciiaa//ss …….... ffiinn__ddeessddee
  • 22. PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((11//4)) DDeessccoommppoossiicciióónn eenn ssuubbpprrooggrraammaass:: eessttrraatteeggiiaa ppaarraa rreessoollvveerr pprroobblleemmaass ccoommpplleejjooss LLooss ssuubbpprrooggrraammaass ssee iimmpplleemmeennttaann aa ttrraavvééss ddee pprroocceeddiimmiieennttooss yy ffuunncciioonneess  CCoommppuueessttooss ppoorr uunn ggrruuppoo ddee sseenntteenncciiaass  SSee lleess aassiiggnnaa uunn nnoommbbrree  PPuueeddeenn iinnvvooccaarrssee eennttrree ssíí uuttiilliizzaannddoo eessee nnoommbbrree  CCoonnssttiittuuyyeenn uunnaa uunniiddaadd ddee pprrooggrraammaa
  • 23. PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((22//4)) LLooss pprroocceeddiimmiieennttooss yy ffuunncciioonneess ssee ccoommuunniiccaann ccoonn ssuu iinnvvooccaaddoorr aa ttrraavvééss ddee ppaarráámmeettrrooss.. LLooss ppaarráámmeettrrooss ssoonn uunn mmeeddiioo ppaarraa ppaassaarr iinnffoorrmmaacciióónn,, iimmpplleemmeennttaaddooss aa ttrraavvééss ddee vvaarriiaabblleess ccoonn vvaalloorr.. TTiippooss ddee ppaarráámmeettrroo  DDee EEnnttrraaddaa:: ssuu vvaalloorr eess pprrooppoorrcciioonnaaddoo ppoorr eell iinnvvooccaaddoorr aanntteess ddee llllaammaarr aall ssuubbpprrooggrraammaa  DDee SSaalliiddaa:: ssuu vvaalloorr eess ccaallccuullaaddoo ddeennttrroo ddee uunn ssuubbpprrooggrraammaa yy ddeevvuueellttoo aa ssuu iinnvvooccaaddoorr
  • 24. PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((33//4)) EEjjeemmpplloo::  DDeeffiinniicciióónn pprroocceeddiimmiieennttoo CCaallccuullaarrSSuummaa(( ppaarráámmeettrroo11 eenntteerroo,, ppaarráámmeettrroo22 eenntteerroo)) ddeevvuueellvvee eenntteerroo ddeevvoollvveerr ppaarráámmeettrroo11 ++ ppaarráámmeettrroo22 ffiinn__pprroocceeddiimmiieennttoo  IInnvvooccaacciióónn ddeessddee eell pprrooggrraammaa pprriinncciippaall uu oottrroo ssuubbpprrooggrraammaa nnúúmmeerroo eenntteerroo aa == 22 nnúúmmeerroo eenntteerroo bb == 33 nnúúmmeerroo eenntteerroo cc == CCaallccuullaarrSSuummaa((aa,,bb)) ccaarráácctteerr dd == CCaallccuullaarrSSuummaa((aa,,bb))  EERRRROORR
  • 25. PPrroocceeddiimmiieennttooss yy FFuunncciioonneess ((44//44)) VVeennttaajjaass ddee uuttiilliizzaarr pprroocceeddiimmiieennttooss  FFaacciilliittaa eell ddiisseeññoo ddeesscceennddiieennttee yy mmoodduullaarr  PPrroommuueevveenn llaa rreeuuttiilliizzaacciióónn ddee ccóóddiiggoo  FFaacciilliittaa llaa ddiivviissiióónn ddee ttaarreeaass  PPuueeddeenn ccoommpprroobbaarrssee iinnddiivviidduuaallmmeennttee  PPuueeddeenn eennccaappssuullaarrssee eenn bbiibblliiootteeccaass iinnddeeppeennddiieenntteess
  • 26. VViissiibbiilliiddaadd ddee VVaarriiaabblleess VVaarriiaabbllee LLooccaall::  DDeeccllaarraaddaa eenn uunn ssuubbpprrooggrraammaa  SSóólloo eessttáá ddiissppoonniibbllee dduurraannttee eell ffuunncciioonnaammiieennttoo ddeell ssuubbpprrooggrraammaa  SSuu vvaalloorr ssee ppiieerrddee uunnaa vveezz qquuee eell ssuubbpprrooggrraammaa tteerrmmiinnaa VVaarriiaabbllee GGlloobbaall::  DDeeccllaarraaddaa eenn eell pprrooggrraammaa pprriinncciippaall  EEssttáá ddiissppoonniibbllee eenn eell pprrooggrraammaa pprriinncciippaall yy eenn ttooddooss llooss ssuubbpprrooggrraammaass  SSuu vvaalloorr ssee ppiieerrddee uunnaa vveezz qquuee eell pprrooggrraammaa pprriinncciippaall tteerrmmiinnaa
  • 27. BBiibblliiootteeccaass AArrcchhiivvoo iinnddeeppeennddiieennttee qquuee ccoonnttiieennee uunn ccoonnjjuunnttoo ddee ssuubbpprrooggrraammaass PPuueeddeenn sseerr iinncclluuiiddaass yy rreeffeerreenncciiaaddaass eenn eell ddeessaarrrroolllloo ddee mmúúllttiipplleess pprrooggrraammaass FFaacciilliittaann llaa mmoodduullaarriizzaacciióónn ddee uunn pprrooggrraammaa DDeessaarrrroolllloo  PPrrooggrraammaa FFuueennttee CCoommppiillaacciióónn  PPrrooggrraammaa OObbjjeettoo LLiinnkk--EEddiicciióónn  PPrrooggrraammaa EEjjeeccuuttaabbllee
  • 28. AArrrraayyss ((AArrrreeggllooss)) ((11//33)) SSoonn eessttrruuccttuurraass ddee ddaattooss eenn llaass qquuee ssee aallmmaacceennaann uunn ccoonnjjuunnttoo ddee ddaattooss ffiinniittooss ddeell mmiissmmoo ttiippoo  AAllmmaacceennaann ssuuss eelleemmeennttooss eenn ppoossiicciioonneess ddee mmeemmoorriiaa ccoonnttiigguuaass  TTiieenneenn uunn úúnniiccoo nnoommbbrree ddee vvaarriiaabbllee qquuee rreepprreesseennttaa aa ttooddooss llooss eelleemmeennttooss  PPeerrmmiitteenn aacccceessoo ddiirreeccttoo oo aalleeaattoorriioo aa ssuuss eelleemmeennttooss iinnddiivviidduuaalleess LLooss aarrrraayyss ssee ccllaassiiffiiccaann eenn uunniiddiimmeennssiioonnaalleess yy mmuullttiiddiimmeennssiioonnaalleess..
  • 29. AArrrraayyss ((AArrrreeggllooss)) ((22//33)) AArrrraayyss uunniiddiimmeennssiioonnaalleess ((VVeeccttoorreess))  NNúúmmeerroo ffiinniittoo ddee eelleemmeennttooss  TTaammaaññoo FFiijjoo  EElleemmeennttooss HHoommooggéénneeooss  SSee aacccceeddee aa llooss eelleemmeennttooss uuttiilliizzaannddoo eell nnoommbbrree ddeell aarrrraayy yy eell ssuubbíínnddiiccee eessppeeccííffiiccoo EEjjeemmpplloo::  ssaallaarriiooss((33)) RReeaalleess  NNoommbbrree ddeell aarrrraayy,, ddee 33 ppoossiicciioonneess qquuee ccoonntteennddrráánn nnúúmmeerroo rreeaalleess  ssaallaarriiooss[[11]] == 2233,,44  AAssiiggnnaacciióónn ddee uunn vvaalloorr aall pprriimmeerr eelleemmeennttoo ddeell aarrrraayy
  • 30. AArrrraayyss ((AArrrreeggllooss)) ((33//33)) AArrrraayyss mmuullttiiddiimmeennssiioonnaalleess  AArrrraayyss bbiiddiimmeennssiioonnaalleess ((MMaattrriicceess oo TTaabbllaass))  TTiieenneenn ddooss íínnddiicceess,, uunnoo ppaarraa ffiillaass yy oottrroo ppaarraa ccoolluummnnaass  EEjjeemmpplloo:: ttaabbllaa((33,,33)) eenntteerrooss  DDeeccllaarraacciióónn ddee uunnaa mmaattrriizz ddee 33 ppoorr 33 ttaabbllaa [[11]][[11]] == 22  EElleemmeennttoo ddee llaa pprriimmeerr ffiillaa yy pprriimmeerr ccoolluummnnaa ttaabbllaa [[22]][[33]] == 55  EElleemmeennttoo ddee llaa sseegguunnddaa ffiillaa yy llaa tteerrcceerr ccoolluummnnaa
  • 31. EEll eessttiilloo ddee PPrrooggrraammaacciióónn UUnnaa ddee llaass ccaarraacctteerrííssttiiccaass mmááss iimmppoorrttaanntteess ddee uunn bbuueenn pprrooggrraammaaddoorr UUnn bbuueenn eessttiilloo ffaacciilliittaa llaa ccoommpprreennssiióónn,, ccoorrrreecccciióónn yy mmaanntteenniimmiieennttoo ddee uunn pprrooggrraammaa AAllgguunnooss ppuunnttooss aa tteenneerr eenn ccuueennttaa  CCoommeennttaarriiooss  EElleecccciióónn ddee nnoommbbrreess ssiiggnniiffiiccaattiivvooss  IIddeennttaacciióónn  EEssppaacciiooss yy LLíínneeaass eenn BBllaannccoo  VVaalliiddaacciióónn uussaannddoo ddaattooss ddee pprruueebbaa
  • 32. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Editor's Notes

  1. Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas, o software. El software se divide en dos grandes grupos: Software del sistema, y Software de aplicaciones. El software del sistema es el conjunto de programas indispensables para que la máquina funcione. Estos programas son, básicamente, el Sistema Operativo, los editores de texto, los compiladores de lenguajes de programación y los utilitarios. El sistema operativo dirige las operaciones globales de la computadora, instruye a la computadora para ejecutar otros programas y controla el almacenamiento y recuperación de archivos de discos duros. Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevos programas, así como instruir a la computadora para que los ejecute. Ejemplos de sistemas operativos son: Microsoft Windows, MS-DOS, OS/2, Mac OS y UNIX. Los programas que realizan tareas concretas (por ejemplo facturación, contabilidad, análisis estadístico, gestión de negocios, etc.) se denominan programas de aplicación.
  2. Los lenguajes utilizados para escribir programas de computadoras que puedan ser entendidos por ellas se denominan Lenguajes de Programación. Éstos se clasifican en tres grandes categorías: máquina, bajo nivel (ensamblador, o assembler) y alto nivel. Los lenguajes de máquina son aquellos cuyas instrucciones son directamente entendibles por la computadora, y no necesitan traducción posterior para que el CPU pueda comprender y ejecutar el programa. La programación en lenguaje de máquina es difícil, ya que implica escribir directamente en un sistema binario (ceros y unos), por eso se necesitan lenguajes que permitan simplificar ese proceso. Los lenguajes de bajo nivel fueron diseñados con ese fin. Éstos son dependientes de la arquitectura física de la computadora y de un conjunto específico de instrucciones para el CPU, y los programas escritos en ellos deben ser traducidos a lenguaje máquina para poder ser ejecutados. Un lenguaje típico de bajo nivel es el lenguaje ensamblador (Assembler).
  3. Los lenguajes de programación de alto nivel son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos – en general lenguaje inglés – lo que facilita la escritura y comprensión por parte del programador. Una propiedad de los lenguajes de alto nivel es que son independientes de la máquina, esto es, las sentencias del programa no dependen del diseño de hardware de una computadora específica. Los programas escritos en lenguajes de alto nivel, al igual que los escritos en lenguajes de bajo nivel, no son entendibles directamente por la máquina, sino que necesitan ser traducidos a instrucciones en lenguaje máquina que entiendan las computadoras. Los programas que realizan esta traducción se llaman Compiladores, y los programas escritos en un lenguaje de alto nivel se llaman Programas Fuente. El compilador traduce el Programa Fuente en un programa llamado Programa Objeto. El proceso de traducción de un programa fuente a un programa objeto se denomina Compilación. Ejemplos de lenguajes de programación de alto nivel son: Basic, C, Pascal, C++, Cobol, Fortran, C#, Java y Visual Basic.NET. Existen diversos tipos de lenguajes de programación de alto nivel, según su evolución temporal y el uso que se les quiera dar. Algunos ejemplos de tipos de lenguajes de alto nivel son: Estructurados (Basic, C, Pascal) Orientados a Objetos (C#,Visual Basic.NET, C++, Java) Declarativos (Lisp, Prolog) Funcionales (AML, CAML)
  4. El proceso de resolución de un problema con una computadora conduce a la escritura de un programa, y a su ejecución en la misma. Aunque el proceso de diseñar programas es, esencialmente, un proceso creativo, se pueden considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores. Las fases de resolución de un problema con computadoras son: Análisis del problema Diseño del algoritmo solución Codificación Compilación y Ejecución Verificación Depuración Documentación Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo. Un algoritmo es un método para resolver un problema mediante una serie de pasos (instrucciones) precisos, definidos y finitos. Durante la tercer etapa (codificación) se implementa (poner en funcionamiento) el algoritmo en un código escrito en un lenguaje de programación, reflejando las ideas desarrolladas en la fase de análisis y diseño. La fase de compilación y ejecución traduce y ejecuta el programa. En las fases de verificación y depuración el programador busca errores de las etapas anteriores y los elimina. Cuanto más tiempo se invierta en la fase de análisis y diseño, menor será el tiempo necesario para depurar el programa. Por último, debe realizarse la documentación del mismo. Ejemplos de algoritmos son: instrucciones para andar en bicicleta, hacer una receta de cocina, obtener el máximo común divisor de dos números, etc. Los algoritmos se pueden expresar en fórmulas, diagramas de flujo y pseudocódigos.
  5. Un entorno de programación es un programa que contiene, además del compilador, utilitarios y herramientas. Estos elementos están integrados, de modo que pueden llamarse fácilmente unos a otros durante el proceso de programación. Por este motivo, a los entornos de programación frecuentemente se los identifica con la sigla IDE (en inglés, Integrated Development Envirnonment, o Entorno de programación integrado). Un entorno de programación típico contiene: Un editor, que proporciona el medio para introducir el texto y los símbolos que constituyen el código fuente Un intérprete o un compilador, que convierte el código fuente en instrucciones que la computadora puede comprender y ejecutar. Un depurador (o debugger), que ayuda a analizar y corregir errores en tiempo de ejecución. Ayuda (manuales, tutoriales, ejemplos, etc.) integrada El proceso de diseño, codificación, depuración y ejecución de un programa es mucho más fácil y rápido cuando se utiliza un buen entorno de programación. Un ejemplo de entorno de programación es Microsoft Visual Studio 2005.
  6. Las diferencias piezas de información con las que un programa trabaja se conocen colectivamente como “datos”. Todos los datos tienen un “tipo” asociado con ellos, que determina la naturaleza del conjunto de valores que aquel puede tomar. Por ejemplo, un dato puede ser un simple caracter, tal como ‘B’, un valor entero como 35, un número real como 1,4142 o una cadena de caracteres como “Hola Mundo”, entre otras cosas. Una operación de suma no tiene sentido con caracteres de texto, sólo con números. Por consiguiente, si el compilador detecta una operación de suma de dos caracteres normalmente producirá un error. Incluso entre tipos numéricos la operación de suma se almacena de modo distinto, ya que los números enteros y los reales se almacenan de formas distintas en memoria. A menos que el programa conozca los tipos de datos no puede ejecutar correctamente la operación de suma. La asignación de tipos a los datos tiene dos objetivos principales: 1- Detectar errores de operaciones en los programas durante la fase de codificación. 2- Determinar cómo se ejecutarán las operaciones entre datos. A los lenguajes que exigen que todos los datos utilizados deban tener sus tipos declarados explícitamente se los conoce como “fuertemente tipados”. El tipo de un dato puede ser convertido bajo ciertas condiciones a otro tipo. Este mecanismo explícito de conversión de tipos de datos se suele denominar “CAST”.
  7. Todos los programas necesitan almacenar datos temporalmente para poder procesarlos y generar asi la salida esperada. Estos datos, a grandes rasgos, pueden clasificarse en dos grupos: 1 - A un dato cuyo valor no puede cambiar durante la ejecución de un programa se lo denomina Constante. Las constantes deben ser declaradas antes de su utilización y se deben tener un valor ya asignado al momento de la compilación del programa. 2 - Por su parte, los datos de un programa cuyo valor puede cambiar durante la ejecución del mismo se conocen como Variables. Una variable es, en realidad, una posición de memoria con nombre (Nombre de la Variable), y que contiene un valor (Valor de la Variable). Las variables se asemejan a cajas o buzones, donde cada una de las cuales tiene un número y contiene un valor. Existen tantos tipos de variables como tipos de datos diferentes.
  8. Las sentencias describen acciones algorítmicas que pueden ser ejecutadas. En general, las sentencias se clasifican en ejecutables (especifican, por ejemplo, operaciones de cálculos aritméticos y entradas/salidas de datos) y no ejecutables (no realizan acciones concretas ni afectan a la ejecución del programa, sino que ayudan a su legibilidad). Cada sentencia ejecutable se traduce por el compilador en una o más instrucciones de lenguaje máquina, que se copian en el archivo objeto y posteriormente se ejecutan. Las declaraciones, por su parte, describen el propósito y el significado de cada identificador definido por el programador; no se traducen a instrucciones en lenguaje máquina y no aparecen en el archivo objeto. Las sentencias se clasifican, según su tipo y número, en: Sentencias Simples: son sentencias que no contiene ninguna otra sentencia. El ejemplo más típico de sentencia simple es la sentencia de asignación, la cual se utiliza para almacenar un valor en una variable. La operación de asignación se suele representar en pseudocódigo con el símbolo ‘’, para denotar que el valor situado a su derecha se almacena en la variable situada a la izquierda: Variable  Valor En la mayoría de los lenguajes, el operador  se sustituye por el “=”. Ej.: a = 2. (ATENCIÓN: la asignación sólo será válida si el valor es válido para el tipo de dato definido para la variable). Sentencias estructuradas: son sentencias compuestas de otras sentencias que se ejecutan en secuencia, condicionalmente o repetidamente.
  9. Las variables y constantes se pueden procesar utilizando operaciones y funciones adecuadas para sus tipos. Se denomina expresión a un conjunto de variables y / o constantes unidas por operadores. Si en una expresión existe más de una operación debe tenerse en cuenta que existen una serie de reglas para definir la prioridad en la que éstas se realizarán. Por este motivo es que se suelen utilizar los paréntesis para establecer la prioridad de aplicación de los operandos.
  10. Existen diversos tipos de operadores, por ejemplo: Aritméticos: son apropiados únicamente para tipos numéricos. Ejemplos de operadores aritméticos son “ + ”, “ - ”, “ * ” y “ / ”, los cuales permiten obtener el resultado de la suma, la resta, la multiplicación y la división de dos datos respectivamente. De relación: los operadores de relación ( o relacionales) se utilizan para expresar condiciones y describen una relación entre dos valores. Ejemplos de operadores relacionales son “ &amp;lt; ” (Menor que), “ &amp;gt;” (Mayor que), “ = ” (Igual a) y “ &amp;lt;&amp;gt; ” (Distinto a). Los operadores aritméticos y los relacionales se utilizan de la siguiente forma: variable o constante operador variable o constante. Por ejemplo: a + b, c/d, a&amp;lt;b, c&amp;lt;&amp;gt;d, etc. Lógicos: estos operadores se utilizan con constantes lógicas de forma similar al modo en que los operadores aritméticos se utilizan con las constantes numéricas. Estos operadores trabajan con operandos que son expresiones lógicas. La operación and (y) combina dos condiciones simples y produce un resultado verdadero sólo si los dos operandos son verdaderos. La operación or (o) es verdadera si uno de los dos operandos es verdadero. La operación not (no) actúa sobre una sola condición simple u operando y simplemente niega (o invierte) su valor. Existen otros operadores lógicos además de los mencionados.
  11. El concepto de flujo de control a través de un programa se refiere al orden en que se ejecutan las acciones individuales de un programa. Aunque un flujo normal de un programa estructurado es lineal, existen métodos que permiten salir del flujo lineal a través del uso de las llamadas estructuras de control. Las estructuras de control de un lenguaje de programación son métodos para especificar el orden en que las instrucciones de un algoritmo se ejecutarán. Estas estructuras son, por consiguiente, fundamentales en los lenguajes de programación y en los diseños de los algoritmos. Existen dos tipos básicos de estructuras de control, que se explicarán a continuación: De Selección De Repetición o Iteración
  12. Con frecuencia nos enfrentamos a situaciones en las que se deben proporcionar instrucciones alternativas que pueden o no ejecutarse dependiendo de los datos de entrada, reflejando el cumplimiento o no de una determinada condición. La realización de acciones alternativas o decisiones se especifican utilizando condiciones que son verdaderas o falsas. Estas condiciones se llaman expresiones lógicas, o booleanas. Dado que las expresiones lógicas toman el valor verdadero o falso, se necesita una sentencia de control que dirija a la computadora a ejecutar una sentencia si la expresión es verdadera, y otra sentencia en caso de que sea falsa. En la mayoría de los lenguajes de programación de alto nivel esta evaluación se realiza mediante el uso de la estructura de control “if ”. En la figura podemos ver el pseudocódigo de la estructura if, que funciona de la siguiente manera: 1 – Se evalúa la expresión lógica 2 – Si la expresión toma el valor true (verdadero), se ejecutará la sentencia A y el control pasará a la sentencia inmediatamente siguiente. 3- Si la expresión toma el valor false (falso), entonces sólo se ejecutará la sentencia B y el control pasa de nuevo inmediatamente a la siguiente sentencia del programa. La cláusula sino es optativa.
  13. La sentencia Case se utiliza para elegir entre diferentes alternativas. Una sentencia case se compone de varias sentencias simples. Cuando case se ejecuta, una (y sólo una) de las sentencias simples se selecciona y ejecuta. Reglas: La expresión selector se evalúa y se compara con las listas de constantes; las listas de constantes son listas de uno o más posibles valores de selector separados por comas. Sólo se ejecuta una sentencia. La cláusula sino es opcional, como en la sentencia if. Si el valor del selector no está comprendido en ninguna lista de constantes y no existe la cláusula sino, nada sucede y el programa sigue su flujo normal. Si el valor del selector no coincide con alguna constante se ejecutan las sentencias a continuación de la cláusula else. El selector debe ser un tipo ordinal (número entero, caracter, o booleano). Los números reales no pueden ser utilizados ya que no son ordinales. Todas las constantes Case deben ser únicas y de un tipo ordinal compatible con el tipo de selector.
  14. Las computadoras están especialmente preparadas para ejecutar tareas repetidamente. Los cálculos simples o la manipulación de pequeños conjuntos de datos se pueden realizar fácilmente a mano, pero las tareas grandes o repetitivas son realizadas con mayor eficiencia por una computadora. Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. Este conjunto de sentencias se denomina bucle, o loop. Las acciones que se repiten en un bucle constituyen el cuerpo del bucle, y cada repetición del cuerpo del bucle se denomina iteración.
  15. La estructura repetitiva while (mientras) es aquella en la que el número de iteraciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición. Por esta razón, a estos bucles se los conoce como bucles condicionales. Cuando la sentencia while se ejecuta, la primera cosa que sucede es la evaluación de la expresión lógica. Si se evalúa como falsa, ninguna acción se realiza y el programa sigue en la siguiente sentencia después del bucle. Si la expresión lógica se evalúa como verdadera, entonces se ejecuta el cuerpo del bucle y se evalúa de nuevo la expresión. Este proceso se repite mientras que la expresión lógica permanezca verdadera. Después de cada iteración la expresión lógica se evalúe y se verifica de nuevo; si cambia de verdadera a falsa la sentencia while finaliza. Mientras que la condición sea verdadera el bucle se ejecutará. Esto significa que el bucle se ejecutará indefinidamente a menos que algo en el interior del mismo modifique la condición haciendo que su valor pase a falso. Si la expresión nunca cambia de valor, entonces el bucle no termina nunca y se denomina bucle o loop infinito (en general, esta situación no es deseable).
  16. En numerosas ocasiones se puede necesitar un bucle que se ejecute un número determinado de veces, y cuyo número se conozca por anticipado. Para aplicaciones de este tipo se utiliza la sentencia for. Esta sentencia requiere que conozcamos por anticipado el número de veces que se ejecutarán las sentencias del interior del bucle. Si se desea que las sentencias controladas se ejecuten hasta que ocurra una determinada situación y no se conoce de antemano el número de repeticiones, entonces se deben utilizar sentencias del tipo while. Al ejecutarse la sentencia for la primera vez, el valor inicial se asigna a variable, denominada variable de control, y a continuación se ejecuta la sentencia del interior del bucle. Al llegar al final del bucle (fin_desde) se verifica si el valor final es mayor que el valor inicial; en caso negativo se incrementa el valor de la variable de control en una unidad y se vuelven a ejecutar todas las sentencias del interior del bucle hasta que la variable de control sea mayor que el valor final. Algunos lenguajes permite definir lo que se llama paso, que es la cantidad de unidades en las que se incrementará o decrementará la variable de control en cada iteración.
  17. Una estrategia para la resolución de problemas complejos con computadoras es la división o descomposición del problema en otros problemas más pequeños y fáciles de resolver. Estos subproblemas se implementan mediante módulos o subprogramas. Los subprogramas son una herramienta importante para el desarrollo de algoritmos y programas, de modo que normalmente un proyecto de programación se compone de un programa principal y un conjunto de subprogramas, con las llamadas a los mismos dentro del programa principal. Un subprograma realiza una tarea concreta que se describe con una serie de instrucciones y que, idealmente, debería ser independiente de otros subprogramas. Los subprogramas de clasifican en procedimientos y funciones, que son unidades de programas diseñados para ejecutar una tarea específica. Las funciones normalmente devuelven un solo valor a la unidad de programa (programa principal u otro subprograma) que los referencia. Los procedimientos pueden devolver cero, uno o varios valores. Ambos están compuestos por un grupo de sentencias a las que se asigna un nombre (identificador) y constituyen una unidad de programa a la que se puede invocar desde el programa principal u otra función o procedimiento.
  18. Una de las características importantes y diferenciadoras de los subprogramas es la posibilidad de comunicación entre el programa principal y los procedimientos (o entre dos procedimientos). Esta comunicación se realiza a través de una lista de parámetros. Un parámetro es un medio para pasar información – valores a variables – del programa principal a un subprograma y viceversa. No es obligatorio que un subprograma utilice parámetros, ya que éstos no siempre son necesarios. Un parámetro es, prácticamente, una variable cuyo valor debe ser o bien proporcionado por el programa principal al procedimiento o ser devuelto desde el procedimiento al programa principal. Por consiguiente, hay dos tipos de parámetros: parámetros de entrada y parámetros de salida. Los de entrada son aquellos cuyos valores deben ser proporcionados por el programa principal, mientras que los de salida son aquellos cuyos valores se calcularán en el procedimiento y se deben devolver al programa principal para su proceso posterior.
  19. En este ejemplo vemos la definición (declaración) de un procedimiento en pseudocódigo para calcular la suma de dos números enteros, los cuales son pasados al subprograma como parámetros de entrada. El procedimiento calcula la suma y la devuelve como un parámetro de salida. Luego vemos como podemos utilizar el procedimiento invocándolo desde el programa principal u otro procedimiento. Nótese que los nombres de los parámetros en la definición (parámetro1 y parámetro2) no necesariamente tienen que ser los mismos que los utilizados en la invocación (a y b). Nótese también que el compilador chequeará previamente que el tipo de dato del parámetro de salida del procedimiento (en este caso un número entero) pueda ser asignado a la variable c según su tipo. Al nombre del procedimiento junto con la lista ordenada de sus parámetros de entrada se la conoce como firma del procedimiento. En general, no puede haber dentro del mismo programa dos procedimientos con la misma firma.
  20. A primera vista, los procedimientos parecen dificultar la escritura de un programa. Sin embargo, no sólo no es así, sino que la organización de un programa en procedimientos lo hace más fácil de escribir y depurar. Las ventajas más sobresalientes de utilizar procedimientos son: El uso de procedimientos facilita el diseño descendente y modular, que permite descomponer un problema complejo en subproblemas hasta que éstos sean concretos y fáciles de resolver. Los procedimientos se pueden ejecutar más de una vez en un programa y en diferentes programas, ahorrando en consecuencia tiempo de programación. Un procedimiento, en esencia, se puede ver como una caja negra que ejecuta una tarea en particular en un programa, acepta entradas y produce ciertas salidas. Una vez que el procedimiento se ha escrito y comprobado, se puede utilizar en otros programas eliminando la duplicación innecesaria de código. El uso de procedimientos facilita la división de tareas de programación entre un equipo de programadores Los procedimientos pueden comprobarse individualmente y encapsularse en bibliotecas independientes.
  21. Las variables que intervienen en un programa con procedimientos pueden ser de dos tipos: variables locales y variables globales. Una variable local es una variable que está declarada dentro de un subprograma, y se dice que es local al subprograma. Una variable local sólo está disponible durante el funcionamiento del mismo, y su valor se pierde una vez que el subprograma termina. Las variables declaradas en el programa principal se denominan variables globales. A diferencia de las variables locales, cuyos valores se pueden utilizar solo dentro del subprograma en el que están declaradas, las variables globales pueden ser utilizadas en el programa principal y en todos los subprogramas. Hay que tener especial precaución al trabajar con variables globales, ya que al ser recursos compartidos todos los subprogramas pueden tener acceso simultáneo a ellas y se pueden producir errores lógicos debidos a la concurrencia. Por lo general, es una buena práctica evitar el uso de variables globales desde subprogramas a menos que sea estrictamente necesario. Las variables también pueden ser declaradas dentro de un bloque o estructura de control, y se comportarán como variables locales únicamente dentro de dicho bloque o estructura.
  22. En la mayoría de los lenguajes de programación de alto nivel es posible guardar un subprograma o un conjunto de subprogramas como un archivo independiente al cual se denomina genéricamente biblioteca (del inglés library). Las bibliotecas pueden luego ser referenciadas dentro de múltiples programas para que éstos puedan hacer uso de los subprogramas incluidos en aquella. La salida del proceso de compilación de un código fuente se denomina Programa Objeto, que es ni más ni menos que el código de máquina generado a partir del código fuente (SIN INCLUIR EL CODIGO DE LAS BIBLIOTECAS UTILIZADAS). El Programa Objeto es luego utilizado como entrada para que otro componente de software, llamado linker, lo asocie con los subprogramas que se encuentran en las bibliotecas referenciadas y produzca el llamado Programa Ejecutable. Este proceso se conoce comúnmente como Link-Edición.
  23. Una estructura de datos es una colección de datos organizados de un modo particular. Las estructuras de datos pueden ser de dos tipos: Estructuras de datos estáticas: son aquellas en las que se asigna una cantidad fija de memoria cuando se declara la variable. Estructuras de datos dinámicas: son aquellas cuya ocupación de memoria puede aumentar o disminuir en tiempo de ejecución. Un array (o arreglo) es una estructura de datos en la que se almacena una colección de datos del mismo tipo (por ejemplo, los sueldos de los empleados de una empresa). Dicho de otra forma, un array es una lista de un número finito n de elementos del mismo tipo que se caracteriza por: Almacenar sus elementos en posiciones de memoria contiguas Tener un único nombre de variable (por ejemplo salarios) que representa a todos los elementos Permitir acceso directo o aleatorio a sus elementos individuales Los arrays se clasifican en unidimensionales y multidimensionales.
  24. Un array de una dimensión (también conocido como vector) es un tipo de datos estructurado compuesto de un número de elementos finitos, tamaño fijo y elementos homogéneos. Finitos indica que hay un último elemento, tamaño fijo significa que el tamaño del array debe ser conocido en tiempo de compilación y homogéneo significa que todos sus elementos son del mismo tipo. Los elementos del array se almacenan en posiciones contiguas de memoria, a cada una de las cuales se puede acceder directamente mediante un número entero denominado índice del array, que identifica la posición del elemento dentro del conjunto. Ejemplo: Salarios  Nombre del Array Salarios[1]  primer elemento del array
  25. Hasta ahora hemos visto como se puede manipular información con una sola columna o lista de entrada con los llamados vectores, o arrays de una dimensión. Sin embargo, en numerosas ocasiones es necesario trabajar con datos que tengan más de una dimensión (se representan por ejemplo como tablas de doble entradas, cubos, etc.). Un array bidimensional (matriz o tabla) es un array con dos índices. Para localizar o almacenar un valor en el array se deben especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna.
  26. El buen estilo de programación es, sin lugar a dudas, una de las características más importantes que debe tener un buen programador. Un programa con buen estilo es más fácil de leer, de corregir y de mantener. Aunque la experiencia proporciona el estilo, existen una serie de reglas que se recomiendan seguir desde el principio del aprendizaje de la programación. Comentarios: la legibilidad de los programas aumenta considerablemente utilizando comentarios. Un comentario es un texto explicativo más o menos largo, situado en el programa e ignorado por el compilador. Los comentarios son considerados parte del código fuente por más que sean ignorados en las etapas de compilación y ejecución, y tienen importancia primordial en las fases de análisis, puesta a punto y mantenimiento. Los comentarios son una parte fundamental de la documentación de un programa, ya que ayudan al programador y a otras personas a la comprensión del mismo. No es raro encontrar programas en los cuales los comentarios ocupan más lugar, incluso, que las propias instrucciones. Elección de nombres significativos para variables y procedimientos: las variables, constantes, nombres de subprogramas y nombres de programas deben ser significativos para orientar al usuario o a otros programadores sobre lo que representan: X, AS, JJ no son identificadores significativos. Identación: aunque no suele ser requerido por los compiladores de los lenguajes de alto nivel, es una práctica habitual realizar una identación (o tabulación) en cada uno de los bloques y unidades de programas fundamentales para mejorar la legibilidad del código fuente. Espacios y Líneas en Blanco: con el mismo fin de mejorar le legibilidad y comprensibilidad del programa es recomendado utilizar espacios en blanco antes y después de un operador, así como también dejar una línea en blanco entre partes importantes o que estén lógicamente separadas. Validación: los programas no pueden considerarse correctos hasta que han sido validados utilizando un rango amplio de datos de prueba para contemplar todas las posibles direcciones que el flujo de control puede tomar en tiempo de ejecución.