Está en la página 1de 134

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

INICIANDO LA PROGRAMACIN
Tcnicas y Diseos de Algoritmos

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Autores PERCY ELIAS VIVANCO MUOZ NILO ELOY CARRASCO OR LUIS AMBICHO MEZA Derechos de Ed c !" Reser#$dos

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Derechos de Autores Reser#$dos

PERCY ELIAS VIVANCO MUOZ NILO ELOY CARRASCO OR LUIS AMBICHO MEZA Derechos de Ed c !" Reser#$dos IMPRESO EN PER% Derechos de Artes &r'( c$s Reser#$dos

Este ) *ro "o +uede ser e" +$rte o tot$),e"te re+roduc do,e,or .$do e" s ste,$ de $rch #o o tr$"s, t do e" cu$)/u er (or,$ o ,ed o e)ectr!" co0 ,ec'" co0

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

La formacin en informtica no puede convertir a nadie en experto programador, de la misma forma que estudiar pinceles y pigmentos puede hacer a alguien un experto pintor Eric Raymond

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN
TEMARIO GENERAL INDICE

TEMA 1..........................................................................................................................................................1 ALGORITMOS Y PROGRAMAS...................................................................................................................1 1. INTRODUCCIN A LOS ALGORITMOS 2. SISTEMAS DE PROCESAMIENTO DE LA INFORMACIN 3. DEFINICIN DE ALGORITMO 4. TIPOS DE ALGORITMOS 5. COMENZAMOS A PROGRAMAR 6. METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR MEDIO DE COMPUTADORA 7. PRIMITIVAS PARA EL DESARROLLO DE A LGORITMOS 8. CONSTANTES VARIABLES ! E"PRESIONES #. OPERADORES ! OPERANDOS 1$. T%CNICAS PARA LA FORMULACIN DE ALGORITMOS. 11. ENTRADA ! SALIDA DE LA INFORMACIN& E'ERCICIOS TEMA 2..........................................................................................................................................................9 RESOLUCIN DE PROBLEMAS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACIN .......................................................................................................................................................................9 1. RESOLUCIN DE PROBLEMAS 2. (NALISIS DEL PROBLEMA 3. DISE)O DEL ALGORITMO 4. RESOLUCIN EN LA COMPUTADORA 5. FLU'OGRAMAS 6. DIAGRAMAS NS O DE NASSI*SC+ERDERMAN 7. PSEUDOCDIGO E'ERCICIOS TEMA 3........................................................................................................................................................15 ESTRUCTURA GENERAL DE UN PROGRAMA.......................................................................................15 1. CONCEPTO DE PROGRAMA 2. INSTRUCCIONES ! TIPOS 3. ELEMENTOS B(SICOS DE UN PROGRAMA 4. ESTRUCTURAS DE ALGORITMOS ! PROGRAMAS E'ERCICIOS TEMA 4........................................................................................................................................................19 INTRODUCCIN A LA PROGRAMACIN ESTRUCTURADA...............................................................19 1. T%CNICAS DE PROGRAMACIN 2. PROGRAMACIN MODULAR 3. PROGRAMACIN CONSTRUCTORA 4. ESTRUCTURA SECUENCUAL 5. ESTRUCTURAS SELECTIVAS 6. ESTRUCTURAS REPETITIVAS 7. ANIDACIN DE BUCLES ! CONDICIONALES 8. CONTROL DE DATOS DE ENTRADA E'ERCICIOS TEMA 5........................................................................................................................................................28 SUBPROGRAMAS: PROCEDIMIENTOS Y FUNCIONES..................2Err r: R!"!r!#$! % &r$! # ' " &#( 1. INTRODUCCIN A LOS SUBPROGRAMAS O SUBALGORITMOS 2. FUNCIONES 3. PROCEDIMIENTOS

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN
4. 5. 6. 7. 8. AMBITOS& VARIABLES LOCALES ! GLOBALES COMUNICACIN ENTRE SUBPROGRAMAS& PASO DE PAR(METROS FUNCIONES ! PROCEDIMIENTOS COMO PAR(METROS EFECTOS LATERALES RECURSIVIDAD E'ERCICIOS

TEMA )........................................................................................................................................................43 ESTRUCTURA DE DATOS: ARRAYS........................................................................................................43 1. INTRODUCCIN A LAS ESTRUCTURAS DE DATOS 2. ARRA!S UNIDIMENSIONALES O VECTORES 3. OPERACIONES CON ARRA!S UNIDIMENSIONALES O VECTORES 4. ARRA!S BIDIMENSIONALES O MATRICES 5. ARRA!S MULTIDIMENSIONALES 6. ALMACENAMIENTO DE ARRA!S EN MEMORIA 7. ARRA!S COMO PAR(METROS DE SUBPROGRAMAS 8. ARRA!S DE ,PUNTEROSE'ERCICIOS TEMA *........................................................................................................................................................5* LAS CADENAS DE CARACTERES............................................................................................................5* 1. 'UEGO DE CARACTERES 2. CADENA DE CARACTERES 3. DATOS DE TIPO CAR(CTER 4. OPERACIONES CON CADENAS E'ERCICIOS TEMA 8........................................................................................................................................................)5 FICHEROS O ARCHI+OS..........................................................................................................................)5 1. EL TIPO DE REGISTRO DE DATOS 2. NOCIN DE ARC+IVO 3. TERMINOLOGA DE ARC+IVOS 4. TIPOS DE SOPORTE 5. TIPOS DE ORGANIZACIONES DE FIC+EROS 6. OPERACIONES SOBRE FIC+EROS 7. TRATAMIENTO DE FIC+EROS SECUENCIALES 8. FIC+EROS DE TE"TO E'ERCICIOS TEMA 9........................................................................................................................................................82 ORDENACIN, B-S.UEDA E INTERCALACIN INTERNA.................................................................82 1. INTRODUCCIN 2. ORDENACIN 3. B.S/UEDA 4. INTERCALACIN TEMA 1/......................................................................................................................................................8* ORDENACIN, B-S.UEDA Y FUSIN E0TERNA................................................................................8* 1. ARC+IVOS ORDENADOS 2. FUSIN O MEZCLA DE ARC+IVOS ORDENADOS 3. PARTICIN DE ARC+IVOS 4. CLASIFICACIN DE ARC+IVOS TEMA 11:....................................................................................................................................................9/ ALGORITMOS Y PROGRAMAS:...............................................................................................................9/ 1. EINTRODUCCIN A LAS ESTRUCTURAS DIN(MICAS DE DATOS 2. LISTAS 3. LISTAS ENLAZADAS 4. PROCEDIMIENTOS DE LISTAS ENLAZADAS

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN
5. 6. 7. 8. #. LISTAS CIRCULARES CON CABECERA LISTAS DOBLEMENTE ENLAZADAS PILAS COLAS DOBLES COLAS O BICOLAS E'ERCICIOS

BIBLIOGRAFIA

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 1
ALGORITMOS Y PROGRAMAS
1. INTRODUCCIN A LOS ALGORITMOS S tu# eses /ue esco1er u" +ro1r$,$ e"tre #$r os /ue resue)#e" u" , s,o +ro*)e,$0 2e" (u"c !" de /ue esco1er3$s45 2de su e)e1$"c $40 2de )$ )e1 * ) d$d40 2de) "ter($. de usu$r o40 2de su #e)oc d$d de e6ecuc !"40 2de )$ ,e,or $ /ue co"su,e4 No c$*e dud$ de /ue todos )os ($ctores "()u7e"8 Nosotros co"s der$re,os $/u3 cr ter os *$s$dos e" )$ e( c e"c $0 es dec r0 e" e) ,e6or $+ro#ech$, e"to de )os recursos co,+ut$c o"$)es8 Nuestro o*6eto de estud o ser $" )os ,9todos de reso)uc !" de +ro*)e,$s0 es dec r0 )os $)1or t,os0 7 "o )os +ro1r$,$s0 o se$0 sus ,+)e,e"t$c o"es co"cret$s us$"do d (ere"tes )e"1u$6es de +ro1r$,$c !"8 E) des$rro))o de $)1or t,os es u" te,$ (u"d$,e"t$) e ,+ort$"te e" e) d se:o de +ro1r$,$s0 $+) c$c o"es de c!,+uto 7 so)uc o"es "(or,'t c$s8 Por )o cu$)0 e) $)u,"o de*e te"er *ue"$s *$ses /ue )e s r#$" +$r$ +oder cre$r de ,$"er$ ('c ) 7 r'+ d$ e) des$rro))o de sus +ro1r$,$s8 2. SISTEMAS DE PROCESAMIENTO DE LA INFORMACIN U" orde"$dor es u"$ ,'/u "$ de +roces$, e"to de "(or,$c !"8 Es u"$ ,'/u "$ co" u" co"6u"to de e)e,e"tos /ue "ter$ct;$" e"tre s30 c$*)es0 ch +s0 +roces$dores0 etc80 <+roces$r "(or,$c !" es )$ c$+$c d$d de) S ste,$ de I"(or,$c !" +$r$ e(ectu$r c')cu)os de $cuerdo co" u"$ secue"c $ de o+er$c o"es +reest$*)ec d$8 Estos c')cu)os +uede" e(ectu$rse co" d$tos "troduc dos rec e"te,e"te e" e) s ste,$ o * e" co" d$tos /ue est'" $),$ce"$dos=8 P$r$ +roces$r )$ "(or,$c !" est' e) h$rd>$re <corres+o"de $ tod$s )$s +$rtes (3s c$s 7 t$"1 *)es de u"$ co,+ut$dor$5 sus co,+o"e"tes e)9ctr cos0 e)ectr!" cos0 e)ectro,ec'" cos 7 ,ec'" cos0 , cro+roces$dor0 RAM0 *uses0 ch +s0=0 7 e) so(t>$re </ue co,+re"de e) co"6u"to de )os co,+o"e"tes )!1 cos "eces$r os +$r$ h$cer +os *)e )$ re$) .$c !" de u"$ t$re$ es+ec3( c$0 e" co"tr$+os c !" $ )os co,+o"e"tes (3s cos de) s ste,$0 e) h$rd>$re=8 3. DEFINICIN DE ALGORITMO S * e" )os $))e1$dos $ )$ "(or,'t c$ s$*e" /ue u" $)1or t,o es u" co"6u"to de o+er$c o"es orde"$d$s de ,odo t$) e" /ue +ued$" reso)#er u" +ro*)e,$0 so" +ocos )os s$*e" /ue e) t9r, "o der #$ de) ,$te,'t co $str!"o,o 7 1e!1r$(o ,usu),'" $)?@>$r ., 8 Los $)1or t,os t e"e" $)1o e" co,;" co" )$s (u"c o"es ,$te,'t c$s5 rec *e" u"$ e"tr$d$ 7 +roduce" u"$ s$) d$0 +ero +$r$ /ue +ued$ ser co"s der$do co,o $)1or t,o de*e ser e( c e"te <e"co"tr$r u"$ so)uc !" e" e) ,e"or t e,+o +os *)e=0 ( " to <+osee u" ";,ero deter, "$do de +$sos= 7 de( " do <se ))e1$ $) , s,o resu)t$do s se s 1ue e) , s,o +roceso ,'s de u"$ #e.=8 E" co"c)us !" u" $)1or t,o es u"$ ser e de +$sos or1$" .$dos /ue descr *e e) +roceso /ue se de*e se1u r0 +$r$ d$r so)uc !" $ u" +ro*)e,$ es+ec3( co8 4. TIPOS DE ALGORITMOS EA ste" dos t +os 7 so" ))$,$dos $s3 +or su "$tur$)e.$5 Cualitati !"# So" $/ue))os e" )os /ue se descr *e" )os +$sos ut ) .$"do +$)$*r$s8

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Cua$titati !"# So" $/ue))os e" )os /ue se ut ) .$" c')cu)os "u,9r cos +$r$ de( " r )os +$sos de) +roceso8

Definicin de Lenguaje Es u"$ ser e de s3,*o)os /ue s r#e" +$r$ tr$"s, t r u"o o ,'s ,e"s$6es < de$s= e"tre dos e"t d$des d (ere"tes8 A )$ tr$"s, s !" de ,e"s$6es se )e co"oce co,;",e"te co,o co,u" c$c !"8 L$ co,u" c$c !" es u" +roceso co,+)e6o /ue re/u ere u"$ ser e de re1)$s s ,+)es0 +ero "d s+e"s$*)es +$r$ +oderse ))e#$r $ c$*o8 L$s dos +r "c +$)es so" )$s s 1u e"tes5 Lenguajes Algortmicos U" Le"1u$6e $)1or3t, co es u"$ ser e de s3,*o)os 7 re1)$s /ue se ut ) .$" +$r$ descr * r de ,$"er$ eA+)3c t$ u" +roceso8 Ti%!" &' L'$(ua)'" Al(!*+t,i-!" &r'( cos5 Es )$ re+rese"t$c !" 1r'( c$ de )$s o+er$c o"es /ue re$) .$ u" $)1or t,o <d $1r$,$ de ()u6o=8 No &r'( cos5 Re+rese"t$ e" (or,$ descr +t #$ )$s o+er$c o"es /ue de*e re$) .$r u" $)1or t,o <+seudoc!d 1o=8 INICIO E"tero5 Ed$d ESCRIBA Bcu') es tu ed$d4C Le$ Ed$d SI <Ed$d DEFG e"to"ces= ESCRIBA BEres ,$7or de Ed$dC SINO ESCRIBA BNo eres ,$7or de Ed$dC HINSI ESCRIBA B( " de) $)1or t,oC HIN .. COMEN/AMOS A PROGRAMAR U" co,+ut$dor es u" s ste,$ e)ectr!" co d se:$do +$r$ +roces$r 1r$"des c$"t d$des de d$tos $ $)t$ #e)oc d$d co" e) ( " de 1e"er$r "(or,$c !" ;t ) e" e) +roceso de to,$ de dec s o"es8 D ch$ "(or,$c !" co"t$r' co" )os $tr *utos de o+ortu" d$d0 #er$c d$d0 co"( $* ) d$d 7 eA$ct tud8 Pero est$s $ct # d$des "o se +uede" des$rro))$r +or s3 so)$0 +$r$ esto se re/u ere de ser +ro1r$,$d$0 "troduc r)e "strucc o"es u !rde"es /ue )e d 1$" )o /ue t e"e /ue h$cer8 U" +ro1r$,$ es )$ so)uc !" $ u" +ro*)e,$ " c $)0 $s3 /ue todo co, e".$ $))30 e" e) P*!0l',a8 E) +roceso de +ro1r$,$c !" es e) s 1u e"te5 D$do u" deter, "$do +ro*)e,$ e) +ro1r$,$dor de*e de$r u"$ so)uc !" 7 eA+res$r)$ us$"do u" $)1or t,o0 )ue1o de esto0 de*e cod ( c$r)o e" u" deter, "$do )e"1u$6e de +ro1r$,$c !" 7 +or ;)t ,o e6ecut$r e) +ro1r$,$ e" e) co,+ut$dor e) cu$) re()e6$ u"$ so)uc !" $) +ro*)e,$ " c $)8 Esto es $ 1r$"des r$s1os )o /ue h$ce e) +ro1r$,$dor de co,+ut$dores8 1. METODOLOG2A PARA LA SOLUCIN DE PRO3LEMAS POR MEDIO DE COMPUTADORA
DEHINICIIN DEL PROBLEMA

E" este +$so se deter, "$" )$ "(or,$c !" " c $) +$r$ )$ e)$*or$c !" de) +ro1r$,$8 Es do"de se deter, "$ /u9 es )o /ue

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

de*e reso)#erse co" e) co,+ut$dor0 e) cu$) re/u ere u"$ de( " c !" c)$r$ 7 +rec s$8 Es ,+ort$"te /ue se co"o.c$ )o /ue se dese$ /ue re$) ce )$ co,+ut$dor$- , e"tr$s esto "o se co"o.c$ de) todo "o t e"e ,ucho c$so co"t "u$r co" )$ s 1u e"te et$+$8

U"$ #e. /ue se h$ co,+re"d do )o /ue se dese$ de )$ co,+ut$dor$0 es "eces$r o de( " r5 Los d$tos de e"tr$d$8 Cu') es )$ "(or,$c !" /ue se dese$ +roduc r <s$) d$= Los ,9todos 7 (!r,u)$s /ue se "eces t$" +$r$ +roces$r )os d$tos8 U"$ reco,e"d$c !" ,u7 +r'ct c$ es e) de co)oc$rse e" e) )u1$r de )$ co,+ut$dor$ 7 $"$) .$r /u9 es )o /ue se "eces t$ /ue se orde"e 7 e" /u9 secue"c $ +$r$ +roduc r )os resu)t$dos es+er$dos8

ANJLISIS DEL PROBLEMA

DISEO DEL AL&ORIKMO

L$s c$r$cter3st c$s de u" *ue" $)1or t,o so"5 De*e te"er u" +u"to +$rt cu)$r de " c o8 De*e ser de( " do0 "o de*e +er, t r do*)es "ter+ret$c o"es8 De*e ser 1e"er$)0 es dec r0 so+ort$r )$ ,$7or3$ de )$s #$r $"tes /ue se +ued$" +rese"t$r e" )$ de( " c !" de) +ro*)e,$8 De*e ser ( " to e" t$,$:o 7 t e,+o de e6ecuc !"8 L$ cod ( c$c !" es )$ o+er$c !" de escr * r )$ so)uc !" de) +ro*)e,$ <de $cuerdo $ )$ )!1 c$ de) d $1r$,$ de ()u6o o +seudoc!d 1o=0 e" u"$ ser e de "strucc o"es det$))$d$s0 e" u" c!d 1o reco"oc *)e +or )$ co,+ut$dor$0 )$ ser e de "strucc o"es det$))$d$s se )e co"oce co,o c!d 1o (ue"te0 e) cu$) se escr *e e" u" )e"1u$6e de +ro1r$,$c !" o )e"1u$6e de $)to " #e)8 Se de"o, "$ +rue*$ de escr tor o $ )$ co,+ro*$c !" /ue se h$ce de u" $)1or t,o +$r$ s$*er s est' * e" hecho8 Est$ +rue*$ co"s ste e" to,$r d$tos es+ec3( cos co,o e"tr$d$ 7 se1u r )$ secue"c $ "d c$d$ e" e) $)1or t,o h$st$ o*te"er u" resu)t$do0 e) $"') s s de estos resu)t$dos "d c$r' s e) $)1or t,o est' correcto o s +or e) co"tr$r o h$7 "eces d$d de corre1 r)o o h$cer)e $6ustes8
PRUEBA Y DEPURACION CODIHICACIIN

4. PRIMITI5AS PARA EL DESARROLLO DE A LGORITMOS Kodos estos e)e,e"tos co" )os cu$)es se co"stru7e" d chos $)1or t,os se *$s$" e" u"$ d sc +) "$ ))$,$d$5 Pro1r$,$c !" Estructur$d$8 Dat! Es )$ eA+res !" 1e"er$) /ue descr *e )os o*6etos co" )os cu$)es o+er$ e) +ro1r$,$8 Por e6e,+)o0 )$ ed$d 7 e) do, c ) o de u"$ +erso"$0 (or,$" +$rte de sus d$tos8 Los d$tos se s t;$" e" o*6etos ))$,$dos #$r $*)es8 L$s #$r $*)es so" .o"$s de ,e,or $ cu7o co"te" do c$,* $ dur$"te )$ ($se de +roces$, e"to de "(or,$c !"8 So" o*6etos cu7o #$)or +uede

1$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

ser ,od ( c$do $ )o )$r1o de )$ e6ecuc !" de u" +ro1r$,$8 L$s #$r $*)es ))e#$" u" "o,*re ))$,$do de"t ( c$dor8 Este +uede ser u"$ c$de"$ de )etr$s 7 d31 tos0 e,+e.$"do s e,+re co" u"$ )etr$8 Por e6e,+)o5 P 0 cursoLL0 "o,M$)u,0 etc8 Ti%!" D' Dat!" Kodos )os d$tos t e"e" u" t +o $soc $do co" e))os8 U" d$to +uede ser u" s ,+)e c$r'cter0 t$) co,o N$O0 u" #$)or e"tero t$) co,o PQ8 E) t +o de d$to deter, "$ )$ "$tur$)e.$ de) co"6u"to de #$)ores /ue +uede to,$r u"$ #$r $*)e8 Estos d$tos Puede" ser5 S ,+)es Nu,9r cos L!1 cos A)($"u,9r cos <ch$r0 str "1= Estructur$dos Arre1)os <#ectores 7 ,$tr ces= Re1 stros Arch #os Pu"teros Ti%!" &' Dat!" Si,%l'" Datos Numricos: Per, te" re+rese"t$r #$)ores esc$)$res de (or,$ "u,9r c$0 esto "c)u7e $ )os ";,eros e"teros 7 )os re$)es8 Este t +o de d$tos +er, te" re$) .$r o+er$c o"es $r t,9t c$s co,u"es8 Datos lgicos: So" $/ue))os /ue so)o +uede" te"er dos #$)ores <c erto o ($)so= 7$ /ue re+rese"t$" e) resu)t$do de u"$ co,+$r$c !" e"tre otros d$tos <"u,9r cos o $)($"u,9r cos=8 Datos alfanumricos (string): Es u"$ secue"c $ de c$r$cteres $)($"u,9r cos /ue +er, te" re+rese"t$r #$)ores de"t ( c$*)es de (or,$ descr +t #$0 esto "c)u7e "o,*res de +erso"$s0 d recc o"es0 etc8 Es +os *)e re+rese"t$r ";,eros co,o $)($"u,9r cos0 +ero estos + erde" su +ro+ ed$d ,$te,'t c$0 es dec r "o es +os *)e h$cer o+er$c o"es co" e))os8 Este t +o de d$tos se re+rese"t$" e"cerr$dos e"tre co, ))$s8 Identificadores Los de"t ( c$dores re+rese"t$" )os d$tos de u" +ro1r$,$ <co"st$"tes0 #$r $*)es0 t +os de d$tos=8 U" de"t ( c$dor es u"$ secue"c $ de c$r$cteres /ue s r#e +$r$ de"t ( c$r u"$ +os c !" e" )$ ,e,or $ de )$ co,+ut$dor$0 /ue +er, te $cceder $ su co"te" do8 E6e,+)o5 "o,*re0 "u,Mhors0 c$) ( c$0 etc8 Reglas para formar un identificador De*e co,e".$r co" u"$ )etr$ <A $ Z0 ,$7;scu)$s o , ";scu)$s= 7 "o de*e" co"te"er es+$c os e" *)$"co8 Letr$s0 d31 tos 7 c$r$cteres co,o )$ su*r$7$ < M = est'" +er, t dos des+u9s de) +r ,er c$r'cter8 L$ )o"1 tud de de"t ( c$dores +uede ser de #$r os c$r$cteres8 Pero es reco,e"d$*)e u"$ )o"1 tud +ro,ed o de G c$r$cteres8 E) "o,*re de) de"t ( c$dor de*e d$r u"$ de$ de) #$)or /ue co"t e"e8

11

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

6. CONSTANTES7 5ARIA3LES Y E8PRESIONES C!$"ta$t'" U"$ co"st$"te es u" d$to "u,9r co o $)($"u,9r co /ue "o c$,* $ dur$"te )$ e6ecuc !" de) +ro1r$,$8 E6e,+)o5 + E P8FRFS 5a*ia0l' Es u" es+$c o e" )$ ,e,or $ de )$ co,+ut$dor$ /ue +er, te $),$ce"$r te,+or$),e"te u" d$to dur$"te )$ e6ecuc !" de u" +roceso0 su co"te" do +uede c$,* $r dur$"te )$ e6ecuc !" de) +ro1r$,$8 P$r$ +oder reco"ocer u"$ #$r $*)e e" )$ ,e,or $ de )$ co,+ut$dor$0 es "eces$r o d$r)e u" "o,*re co" e) cu$) +od$,os de"t ( c$r)$ de"tro de u" $)1or t,o8 E6e,+)o5 $re$ E + T r$d o U V L$s #$r $*)es so"5 e) r$d o0 e) $re$ 7 )$ co"st$te es + Cla"i9i-a-i:$ &' la" 5a*ia0l'" P!* "u -!$t'$i&! V$r $*)es Nu,9r c$s5 So" $/ue))$s e" )$s cu$)es se $),$ce"$" #$)ores "u,9r cos0 +os t #os o "e1$t #os0 es dec r $),$ce"$" ";,eros de) W $) L0 s 1"os <X 7 ?= 7 e) +u"to dec ,$)8 E6e,+)o5 #$ E W8FQ + E P8FRFS costo E VQWW V$r $*)es L!1 c$s5 So" $/ue))$s /ue so)o +uede" te"er dos #$)ores <c erto o ($)so= estos re+rese"t$" e) resu)t$do de u"$ co,+$r$c !" e"tre otros d$tos8 V$r $*)es A)($"u,9r c$s5 Est$ (or,$d$ +or c$r$cteres $)($"u,9r cos <)etr$s0 ";,eros 7 c$r$cteres es+ec $)es=8 E6e,+)o5 )etr$ E O$O $+e)) do E O)o+e.O d recc o" E OA#8 L *ert$d YFLWO P!* "u u"! V$r $*)es de Kr$*$6o5 V$r $*)es /ue rec *e" e) resu)t$do de u"$ o+er$c !" ,$te,'t c$ co,+)et$ 7 /ue se us$" "or,$),e"te de"tro de u" +ro1r$,$8 E6e,+)o5 Su,$ E $ X * Zc Co"t$dores5 Se ut ) .$" +$r$ ))e#$r e) co"tro) de) "u,ero de oc$s o"es e" /ue se re$) .$ u"$ o+er$c !" o se cu,+)e u"$ co"d c !"8 Co" )os "cre,e"tos 1e"er$),e"te de u"o e" u"o8 Acu,u)$dores5 Hor,$ /ue to,$ u"$ #$r $*)e 7 /ue s r#e +$r$ ))e#$r )$ su,$ $cu,u)$t #$ de u"$ ser e de #$)ores /ue se #$" )e7e"do o c$)cu)$"do +ro1res #$,e"te8 E;%*'"i!$'" L$s eA+res o"es so" co,* "$c o"es de co"st$"tes0 #$r $*)es0 s3,*o)os de o+er$c !"0 +$r9"tes s 7 "o,*res de (u"c o"es es+ec $)es8 Por e6e,+)o5 $ X <* X P= Z c C$d$ eA+res !" to,$ u" #$)or /ue se deter, "$ to,$"do )os #$)ores de )$s #$r $*)es 7 co"st$"tes ,+) c$d$s 7 )$ e6ecuc !" de )$s o+er$c o"es "d c$d$s8 U"$ eA+res !" co"st$ de o+er$dores 7 o+er$"dos8 Se1;" se$ e) t +o de d$tos /ue ,$" +u)$"0 se c)$s ( c$" )$s eA+res o"es e"5 Ar t,9t c$s Re)$c o"$)es

12

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

L!1 c$s <. OPERADORES Y OPERANDOS O%'*a&!*'" So" e)e,e"tos /ue re)$c o"$" de (or,$ d (ere"te0 )os #$)ores de u"$ o ,'s #$r $*)es 7Zo co"st$"tes8 Es dec r0 )os o+er$dores "os +er, te" ,$" +u)$r #$)ores8 O%'*a&!*'" A*it,=ti-!" Los o+er$dores $r t,9t cos +er, te" )$ re$) .$c !" de o+er$c o"es ,$te,'t c$s co" )os #$)ores <V$r $*)es 7 co"st$"tes=8 Los o+er$dores $r t,9t cos +uede" ser ut ) .$dos co" t +os de d$tos e"teros o re$)es8 S $,*os so" e"teros0 e) resu)t$do es e"tero- s $)1u"o de e))os es re$)0 e) resu)t$do es re$)8 Operadores ritm!ticos X Su,$ ? Rest$ T Mu)t +) c$c !" Z D # s !" ,od Modu)o <res duo de )$ d # s !" e"ter$= E6e,+)os5 EA+res !" [ Z V FV ,od [ R X V TQ Resu)t$do P8Q Q FR

P*i!*i&a& &' l!" O%'*a&!*'" A*it,=ti-!" Kod$s )$s eA+res o"es e"tre +$r9"tes s se e#$);$" +r ,ero8 L$s eA+res o"es co" +$r9"tes s $" d$dos se e#$);$" de de"tro $ (uer$0 e) +$r9"tes s ,'s "ter"o se e#$);$ +r ,ero8 De"tro de u"$ , s,$ eA+res !" )os o+er$dores se e#$);$" e" e) s 1u e"te orde"5 F8 U EA+o"e"c $c !" V8 T0 Z0 ,od Mu)t +) c$c !"0 d # s !"0 ,odu)o8 P8 X0 ? Su,$ 7 rest$8 Los o+er$dores e" u"$ , s,$ eA+res !" co" 1u$) " #e) de +r or d$d se e#$);$" de ./u erd$ $ derech$8 E6e,+)os5 R X V T Q E FR VP T V Z Q E L8V P X Q T <FW ? <V X R== E VP V8F X <F8Q X FV8P= E V8FT FP8G E VL8LG O%'*a&!*'" R'la-i!$al'" Se ut ) .$" +$r$ est$*)ecer u"$ re)$c !" e"tre dos #$)ores8 Lue1o co,+$r$ estos #$)ores e"tre s 7 est$ co,+$r$c !" +roduce u" resu)t$do de certe.$ o ($)sed$d <#erd$dero o ($)so=8

13

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Los o+er$dores re)$c o"$)es co,+$r$" #$)ores de) , s,o t +o <"u,9r cos o c$de"$s=8 Estos t e"e" e) , s,o " #e) de +r or d$d e" su e#$)u$c !"8 Los o+er$dores re)$c !"$)es t e"e ,e"or +r or d$d /ue )os $r t,9t cos8 K +os de o+er$dores Re)$c o"$)es D \ D \ \ E M$7or /ue Me"or /ue E M$7or o 1u$) /ue E Me"or o 1u$) /ue D D (ere"te I1u$) E VW0 c E PW H$)so Verd$dero $ ? * E c H$)so Verd$dero

E6e,+)os5 S $ E FW0 * $ X *D c $ ?* \c $ T *\ Dc

E6e,+)os "o )!1 cos5 $ \ *\ c FW \ VW \ PW K D Q \ PW <"o es )!1 co +or/ue t e"e d (ere"tes o+er$"dos= O%'*a&!*'" L:(i-!" Estos o+er$dores se ut ) .$" +$r$ est$*)ecer re)$c o"es e"tre #$)ores )!1 cos8 Estos #$)ores +uede" ser resu)t$do de u"$ eA+res !" re)$c o"$)8 K +os de o+er$dores L!1 cos A"d Y Or O Not Ne1$c !" E6e,+)o5 P$r$ )os s 1u e"tes e6e,+)os K s 1" ( c$ #erd$dero 7 H ($)so8 Operador Not Operador Not O+er$"do Resu)t$do K H H K O%'*a&!* A$& O%'*a&!* A$& O+er$"doF O+er$dor O+er$"doV Resu)t$do K AND K K K H H H K H H H H

Operador Or Operador Or O+er$"doF O+er$dor O+er$"doV Resu)t$do


14

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

K K H H

Or

K H K H

K K K H

Pr or d$d de )os O+er$dores L!1 cos F8 Not V8 A"d P8 Or Pr or d$d de )os O+er$dores e" &e"er$) F8 V8 P8 R8 Q8 <= U T0 Z0 Mod0 Not X0 ?0 A"d D0 \0 D E0 \ E0 \ D0 E0 Or

E6e,+)os5 Se$5 $ E FW * E FV c E FP d EFW 1>. TCNICAS PARA LA FORMULACIN DE ALGORITMOS.

Dia(*a,a &' Flu)! U" d $1r$,$ de ()u6o es )$ re+rese"t$c !" 1r'( c$ de u" $)1or t,o8 K$,* 9" se +uede dec r /ue es )$ re+rese"t$c !" det$))$d$ e" (or,$ 1r'( c$ de c!,o de*e" re$) .$rse )os +$sos e" )$ co,+ut$dor$ +$r$ +roduc r resu)t$dos8 Est$ re+rese"t$c !" 1r'( c$ se d$ cu$"do #$r os s3,*o)os </ue "d c$" d (ere"tes +rocesos e" )$ co,+ut$dor$=0 se re)$c o"$" e"tre s ,ed $"te )3"e$s /ue "d c$" e) orde" e" /ue se de*e" e6ecut$r )os +rocesos8 Los s3,*o)os ut ) .$dos h$" s do "or,$) .$dos +or e) "st tuto "orte$,er c$"o de "or,$) .$c !" <ANSI=5 11. ENTRADA Y SALIDA DE LA INFORMACIN# L$s dos o+er$c o"es *'s c$s de c$d$ s$) d$ so" )$s de )ectur$ 7 de escr tur$8 L$ )ectur$ es e/u #$)e"te $ )$ $s 1"$c !" e" cu$"to /ue #$ $ h$*er u"$ #$r $*)e /ue rec *e u" #$)or0 +ero este #$)or "o resu)t$ de e#$)u$r " "1u"$ eA+res !"0 s "o /ue e) #$)or )o #$,os $ )eer de u" d s+os t #o eAter"o de e"tr$d$8 Leer <"o,*re de )$ #$r $*)e= E) #$)or "troduc do +or e) d s+os t #o eAter"o0 t e"e /ue ser de) , s,o t +o de) /ue )$ #$r $*)e /ue se )e $s 1"e8 L$ o+er$c !" de escr tur$ )o /ue h$ce es ,ostr$r e) #$)or de u"$ #$r $*)e e" u" d s+os t #o eAter"o de s$) d$8 Escr * r <#$r $*)e= L$ o+er$c !" de escr tur$ "o es u"$ o+er$c !" destruct #o e" ,e,or $8 A) +ed r u" #$)or $) usu$r o h$7 /ue dec r)e /ue es )o /ue se )e /u ere +ed r escr * e"do u" ,e"s$6e8

15

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

! R"I"IO#: $ %A & 1. A A A A <PTVUQ ,od F X GT<P?Q= \ <VXG?F ,od F= <PTPV ,od F X <?FS== \ FW ?FS \ FW Verd$dero A o <PXQTG= \ P 7 <<?SZP d # R=TV \ V= Verd$dero o RP \ P 7 <WTV \ V= Verd$dero o H$)so 7 Verd$dero Verd$dero o H$)so Verd$dero

F8F8 A A A A A

2. B P ,od V d # P BFd#P BW 2.1. C C C C 2.2. A A A A <?BTV \D GTP ,od R= 7 <NAODOBO= <W \D VR ,od R= 7 H$)so H$)so 7 H$)so H$)so C o "o <PEQ= 7 <G \D PXB= H$)so o Verd$dero 7 Verd$dero H$)so o Verd$dero Verd$dero

16

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 2
RESOLUCIN DE PRO3LEMAS CON COMPUTADORA Y ?ERRAMIENTAS DE PROGRAMACIN
1. RESOLUCIN DE PRO3LEMAS# L$ reso)uc !" de u" +ro*)e,$ desde e) +u"to de # st$ $)1or3t, co t e"e P ($ses5 - A"') s s de) +ro*)e,$5 Co,+re"s !"8 - D se:o de) $)1or t,o5 Reso)uc !" $)1or3t, c$8 - Reso)uc !" e" co,+ut$dor$5 I,+)$"t$c !" de) $)1or t,o e" u" )e"1u$6e de +ro1r$,$c !"8 2. AN@LISIS DEL PRO3LEMA# E) o*6et #o de 9st$ ($se es co,+re"der e) +ro*)e,$ +$r$ )o cu$) co,o resu)t$do te"e,os /ue o*te"er )$ es+ec ( c$c !" de )$s e"tr$d$s 7 s$) d$s de) +ro*)e,$8 K e"e /ue /ued$r c)$ro /ue e"tr$ 7 /ue s$)e8 3. DISEO DEL ALGORITMO# U"$ #e. co,+re"d do e) +ro*)e,$ se tr$t$ de deter, "$r /ue +$sos o $cc o"es te"e,os /ue re$) .$r +$r$ reso)#er)o8 Co,o cr ter os $ se1u r $ )$ hor$ de d$r )$ so)uc !" $)1or3t, c$ h$7 /ue te"er e" cue"t$5 F8 S e) +ro*)e,$ es *$st$"te co,+) c$do )o ,e6or es d # d r)o e" +$rtes ,'s +e/ue:$s e "te"t$r d # d r)o e" +$rtes ,'s +e/ue:$s e "te"t$r reso)#er)$s +or se+$r$do8 Est$ ,etodo)o13$ de Bd # de 7 #e"cer'sC t$,* 9" se co"oce co" e) "o,*re de d se:o desce"de"te8 V8 L$s #e"t$6$s de $+) c$r esto so"5 - A) d # d r e) +ro*)e,$ e" ,!du)os o +$rtes se co,+re"de ,'s ('c ),e"te8 - A) h$cer ,od ( c$c o"es es ,'s ('c ) so*re u" ,!du)o e" +$rt cu)$r /ue e" todo e) $)1or t,o8 - E" cu$"to $ )os resu)t$dos0 se +ro*$r'" ,ucho ,e6or co,+ro*$"do s c$d$ ,!du)o d$ e) resu)t$do correcto /ue s "te"t$,os +ro*$r de u" 1o)+e todo e) +ro1r$,$ +or/ue s se +roduce u" error s$*e,os e" /ue ,!du)o h$ s do8 U"$ se1u"d$ ( )oso(3$ $ )$ hor$ de d se:$r $)1or t,os es e) re( "$, e"to +or +$sos0 7 es +$rt r de u"$ de$ 1e"er$) e r co"cret$"do c$d$ #e. ,'s es$ descr +c !" h$st$ /ue te"1$,os $)1o t$" co"creto +$r$ reso)#er8 P$s$,os de )o ,'s co,+)e6o $ )o ,'s s ,+)e8 La *'%*'"'$ta-i:$ &' l!" al(!*it,!"# U"$ #e. /ue te"e,os )$ so)uc !" h$7 /ue ,+)e,e"t$r)$ co" $)1u"$ re+rese"t$c !"8 L$s re+rese"t$c o"es ,'s us$d$s so" )os ()u6o1r$,$s0 )os d $1r$,$s NS 7 e) +seudoc!d 1o8 K$,* 9" )$ so)uc !" se +uede escr * r e" $)1u"os c$sos e" )e"1u$6e "$tur$) +ero "o se h$ce +or/ue es ,u7 $,* 1uo0 e "c)uso otr$s (or,$s de eA+res !" co,o (!r,u)$s ,$te,'t c$s8

17

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E"-*itu*a &'l al(!*it,!# A) escr * r e) $)1or t,o h$7 /ue te"er e" cue"t$5 - L$s $cc o"es o +$sos $ re$) .$r t e"e" /ue te"er u" deter, "$do orde"8 - E" c$d$ ,o,e"to so)o se +uede e6ecut$r u"$ $cc !"8 - De"tro de )$s se"te"c $s de) $)1or t,o +uede" eA st r +$)$*r$s reser#$d$s <+$)$*r$s +ro+ $s de) )e"1u$6e de +ro1r$,$c !" /ue t e"e" +$r$ e) co,+ )$dor u" deter, "$do s 1" ( c$do=8 - S est$,os ut ) .$"do +seudoc!d 1o te"e,os t$,* 9" /ue us$r )$ de"t$c !" <$u,e"t$ )$ )e1 * ) d$d de) +ro*)e,$ +$r$ /ue se +ued$ )eer ,e6or=8 4. RESOLUCIN EN LA COMPUTADORA# Es h$cer e"te"der "uestro $)1or t,o $ )$ co,+ut$dor$ +$r$ /ue )o +ued$ h$cer8 F8 Cod ( c$,os e) $)1or t,o e" u" )e1u$6e de +ro1r$,$c !"8 V8 E6ecut$r e) +ro1r$,$ $"tes co,+ )$do8 P8 Co,+ro*$r )os resu)t$dos 7 s "o (u"c o"$0 corre1 r)o8 .. FLUAOGRAMAS# Es u"$ "ot$c !" 1r'( c$ +$r$ ,+)e,e"t$r $)1or t,os8 Se *$s$ e" )$ ut ) .$c !" de u"os s3,*o)os 1r'( cos /ue de"o, "$,os c$6$s0 e" )$s /ue escr * ,os )$s $cc o"es /ue t e"e /ue re$) .$r e) $)1or t,o8 L$s c$6$s est'" co"ect$d$s e"tre s3 +or )3"e$s 7 eso "os "d c$ e) orde" e" e) /ue te"e,os /ue e6ecut$r )$s $cc o"es8 E" todo $)1or t,o s e,+re h$*r' u"$ c$6$ de " c o 7 otr$ de ( "0 +$r$ e) +r "c + o 7 ( "$) de) $)1or t,o8 L!" "+,0!l!"# L3"e$s de ()u6o5 U"$ )3"e$ co" u"$ ()ech$ /ue s r#e +$r$ co"ect$r )os s3,*o)os de) d $1r$,$ 7 )$ ()ech$ "d c$ )$ secue"c $ e" )$ /ue se #$" $ e6ecut$r )$s $cc o"es8 S3,*o)o de +roceso5 I"d c$ )$ $cc !" /ue t e"e /ue re$) .$r )$ co,+ut$dor$8 De"tro escr * ,os )$ $cc !"8 Re+rese"t$ )$s $cc o"es de e"tr$d$ 7 s$) d$8 De"tro co)oc$re,os )$s $cc o"es de )ectur$ 7 escr tur$8 Co"d c !"5 De"tro se #$ $ co)oc$r u"$ co"d c !"8 S r#e +$r$ re+rese"t$r estructur$s se)ect #$s 7 re+et t #$s 7 )o /ue se h$ce $) e"co"tr$r ese s 1"o es e#$)u$r )$ co"d c !" /ue h$7 de"tro t$) /ue se1;" )$ co"d c !" se$ #erd$der$ o ($)s$ re,os +or c$, "os d st "tos8 Pr "c + o 7 ( "5 De"tro de) s3,*o)o r$ )$ +$)$*r$ " c o o ( " de) $)1or t,o8 Su*+ro1r$,$5 De"tro se co)oc$ e) "o,*re de) su*+ro1r$,$ $) /ue se ))$,$8
18

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Co"ectores5 Nos s r#e" cu$"do u" ()u6o1r$,$ "o ,e c$*e e" u"$ co)u,"$ de )$ ho6$ 7 h$7 /ue se1u r e" otr$ co)u,"$5 S es e" )$ , s,$ ho6$5 S es e" ho6$ d st "t$5

Los co"ectores se +o"e" u"o do"de ter, "$ )$ co)u,"$ 7 otr$ do"de e,+ e.$8 Es u"$ $c)$r$c !" +$r$ e"te"der ,e6or e) c!d 1o0 +ero "o es +$rte de) c!d 1o0 "o se e6ecut$8 Ot*!" "+,0!l!"# ? P$"t$))$5 Cu$"do u"$ s$) d$ es +or +$"t$))$8

? Kec)$do5 P$r$ re+rese"t$r u"$ e"tr$d$ +or tec)$do8

? I,+resor$5

? E"tr$d$ZS$) d$ +or d sco5

TPro*)e,$5 ]uere,os h$))$r e) +roducto de #$r os ";,eros +os t #os "troduc dos +or tec)$do 7 e) +roceso ter, "$ cu$"do se ,et$ u" ";,ero "e1$t #o8 F8 I" c $r )$ #$r $*)e de) +roducto8 V8 Leer e) +r ,er ";,ero8 P8 Pre1u"t$r s es "e1$t #o o +os t #o8 R8 S es "e1$t #o "os s$) ,os 7 escr * ,os e) +roducto8 Q8 S es +os t #o0 ,u)t +) c$,os e) ";,ero )e3do 7 )ue1o )ee,os u" "ue#o ";,ero0 7 se #ue)#e $) +$so P8 I" c o

1#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

PF Leer "u,

Escr * r P

Nu, DE W

H" Leer "u,

P P T "u,

1. DIAGRAMAS NBS O DE NASSIBSC?EDERMAN# Es se,e6$"te $) ()u6o1r$,$0 +eor s " ()ech$s 7 c,$* $"do $)1o )os s3,*o)os de co"d c !" 7 re+et c !"8 L$s c$6$s #$" u" d$s8 \$cc !"D Co"d c o"es5 SI \$ccFD Re+et t #$s5 M e"t$s \co"dD Desde # E#F h$st$ #" \$cc o"esD \$cc o"esD Pro*)e,$ $"ter or5 I" c o PF Leer "u, M e"tr$s "u, DE W P +T"u, Leer "u,
2$

Co"d c !"

NO

\$ccVD

\$cc o"esD

Re+et r h$st$ \co"dD

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Escr * r P H"

4. PSEUDOCDIGO# Es u" )e"1u$6e de es+ec ( c$c !" de $)1or t,os0 +ero ,u7 +$rec do $ cu$)/u er )e"1u$6e de +ro1r$,$c !"0 +or )o /ue )ue1o su tr$ducc !" $) )e"1u$6e es ,u7 se"c ))o0 +ero co" )$ #e"t$6$ de /ue "o se r 1e +or )$s "or,$s de u" )e"1u$6e e" +$rt cu)$r8 Nos ce"tr$,os ,'s e" )$ )!1 c$ de) +ro*)e,$8 E) +seudoc!d 1o t$,* 9" #$ $ ut ) .$r u"$ ser e de +$)$*r$s c)$#e o +$)$*r$s es+ec $)es /ue #$ "d c$"do )o /ue s 1" ( c$ e) $)1or t,o8 F8 I" c o 7 H "5 Por do"de e,+ e.$ 7 $c$*$ e) $)1or t,o8 Be1 " Ze"d 5 P$c$)8 ^ _ 5 E" C8 V8 S3 \co"dD E"to"ces \$ccFD I( the" e)se S "o \$ccVD P8M e"tr$s \co"dD Zh$cer >h )e do R8 Re+et r Z h$st$ re+e$t u"t ) Q8 Desde Zh$st$ (or 88 to 6. Se1;" se$ C$se S> th Los co,e"t$r os #$" e"cerr$dos e"tre ))$#es8 H$7 /ue ut ) .$r )$ de"t$c !"8 A)1or t,o \"o,*re $)1D V$r \"o,*reD5 \t +oD I" c o \I"strucc o"esD H"

A)1or t,o Producto V$r P0 "u,5 e"tero I" c o PF Leer "u, M e"tr$s "u, DEW h$cer P +T"u, Leer "u, H " , e"tr$s Escr * r + H"

! R"I"IO#: $ %A '

21

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

F8 Re$) .$r u" +ro1r$,$ /ue co"# ert$ )os 1r$dos $ r$d $"es8 A)1or t,o co"#ert r V$r &r$dos0 r$d5 re$) I" c o Escr * r BI"troduce )os 1r$dosC Leer 1r$dos S 1r$dos DE PSW E"to"ces 1r$dos 1r$dos ,od PSW H"s R$d 1r$dos Z FGW Escr * r r$d B r$d $"tesC H" V8 Re$) .$r u" $)1or t,o /ue + d$ u" #$)or e"tero /ue e/u #$)e $ u" ";,ero de duros 7 ,e c$)cu)e $ cu$"tos * ))etes de QWWW0 FWWW0 ,o"ed$s de VWW0 VQ0 F8 A)1or t,o c$,* o V$r Duros5 re$) I" c o Escr * r BI"troduce )os durosC Leer duros Duros duros T Q Escr * r duros d # QWWW B* ))etes de QWWWC Duros duros ,od QWWW Escr * r duros d # FWWW B* ))etes de FWWWC Duros duros ,od FWWW Escr * r duros d # VWW B,o"ed$s de VWWC Duros duros ,od VWW Escr * r duros d # VQ B,o"ed$s de VQC Duros duros ,od VQ Escr * r duros B,o"ed$s de FC H" P8 Re$) .$r u" +ro1r$,$ /ue + d$ $) usu$r o )$ #e)oc d$d e" ,Zs 7 e) r$d o de )$ c rcu"(ere"c $ de )$ + st$0 7 resu)t$d$ e) +ro1r$,$ de#ue)#e e) t e,+o /ue t$rd$ e) $t)et$ e" d$r V #ue)t$s $ )$ + st$0 s$* e"do /ue e) $t)et$ desc$"s$ F , "uto c$d$ FWWW ,etros8 A)1or t,o recorr do V$r Ve)oc d$d0 r$d o0 t e,+o0 )o"1 tud5 e"tero I" c o Escr * r BI"troduce )$ #e)oc d$dC Leer #e)oc d$d Escr * r BI"troduce e) r$d oC Leer r$d o Lo"1 tud R T P8FRFS T r$d o Desc$"so )o"1 tud d # FWWW K e,+o )o"1 tud d # #e)oc d$d X desc$"so T SW Escr * r t e,+o H"
22

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

23

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 3
ESTRUCTURA GENERAL DE UN PROGRAMA
1. CONCEPTO DE PROGRAMA# U" +ro1r$,$ es u" co"6u"to de "strucc o"es /ue $) ser e6ecut$d$s resue)#e" u" +ro*)e,$8 U" +ro1r$,$ t e"e P +$rtes5 F8 E"tr$d$ de d$tos5 Nor,$),e"te se #$ $ e6ecut$r $ tr$#9s de "strucc o"es de )ectur$0 7 e" )o /ue se )e + de $) usu$r o )$ "(or,$c !" /ue e) +ro1r$,$ #$ $ "eces t$r +$r$ e6ecut$rse 7 se h$ce $ tr$#9s de )ectur$s8 V8 Acc o"es de u" $)1or t,o5 P$rte e" )$ /ue se resue)#e e) +ro*)e,$ us$"do )os d$tos de e"tr$d$8 P8 S$) d$5 Mostr$r e" u" d s+os t #o de s$) d$ )os resu)t$dos de )$s $cc o"es $"ter or,e"te re$) .$d$s8 So" $cc o"es de escr tur$8 E" )$ +$rte de )$s $cc o"es $ e6ecut$r se d st "1u r'" dos +$rtes5 - Dec)$r$c !" de #$r $*)es8 - I"strucc o"es de) +ro1r$,$8 2. INSTRUCCIONES Y TIPOS# P$r$ /ue u"$ "strucc !" se e6ecute t e"e /ue ser ))e#$d$ $ ,e,or $8 E" cu$"to $) orde" de e6ecuc !" de )$s "strucc o"es0 e) +ro1r$,$ +uede ser de dos t +os5 - Pro1r$,$s ) "e$)es5 Se #$ e6ecut$"do u"$ "strucc !" ,'s otr$ 7 e) orde" de e6ecuc !" es 1u$) $) orde" de escr tur$8 - Pro1r$,$s "o ) "e$)es5 L$s "strucc o"es "o se e6ecut$" e" e) , s,o orde" e" e) /ue $+$rece" escr t$s0 s "o /ue se re$) .$" s$)tos /ue "os ,$"d$" de u"$s "strucc o"es $ otr$s8 Nu"c$ se de*e" h$cer s$)tos "o ) "e$)es8 Ti%!" &' i$"t*u--i!$'"# F8 I" c o 7 ( "8 V8 As 1"$c !"5 D$r u" #$)or $ u"$ #$r $*)e8 P8 Lectur$ Z escr tur$5 I"troduc r o s$c$r "(or,$c !" +or d s+os t #os EZS8 R8 I"strucc o"es de * (urc$c !"5 A)ter"$" e) orde" de e6ecuc !" de) +ro1r$,$8 S$)to $ otr$ "strucc !" /ue "o es )$ s 1u e"te8 4.1. B (urc$c !" "co"d c o"$)5 E) s$)to se +roduce s e,+re /ue e) +ro1r$,$ #$7$ $ es$ "strucc !"5 &oto Ir $8 R8V8 B (urc$c !" co"d c o"$)5 Se e6ecut$" u" co"6u"to de "strucc o"es u otr$s de+e"d e"do de) #$)or de#ue)to $) e#$)u$r u"$ co"d c !"8 Es )$ /ue #$,os $ us$r8 3. ELEMENTOS 3@SICOS DE UN PROGRAMA# CDu= '" la "i$ta;i" &' u$ l'$(ua)'E# Co"6u"to de re1)$s /ue te"e,os /ue se1u r $ )$ hor$ de escr * r u" +ro1r$,$ e" ese )e"1u$6e t$) /ue s "o se1u ,os es$s re1)$s de s "t$A s e) co,+ )$dor d$ errores8 El','$t!" &'l l'$(ua)' &' %*!(*a,a-i:$#

24

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

F8 P$)$*r$s reser#$d$s5 So" u" co"6u"to de +$)$*r$s es+ec $)es /ue "os s r#e" +$r$ de( " r )$ estructur$ de) +ro1r$,$0 7 so)o se +uede" us$r +$r$ e) ( " +$r$ e) /ue est'" reser#$d$s8 V8 Ide"t ( c$dores5 So" )os "o,*res /ue $+$rece" e" e) +ro1r$,$ d$dos +or e) usu$r o8 So" +or t$"to )os "o,*res de #$r $*)es0 de co"st$"tes0 de su*+ro1r$,$s 7 "o,*res de t +os cre$dos +or e) usu$r o8 P8 C$r$cteres es+ec $)es5 S r#e" co,o se+$r$dores e"tre se"te"c $s0 +or e6e,+)o e) -8 R8 I"strucc o"es5 De P t +os0 secue"c $)es0 re+et t #$s 7 se)ect #$s0 7 +uede" $+$recer e)e,e"tos es+ec $)es <*uc)es0 co"t$dores0 "terru+tores 7 $cu,u)$dores=8 3u-l'5 U" co"6u"to de "strucc o"es /ue se re+ te" u" ";,ero ( " to de #eces8 L)e#$ $soc $do $+$rte de )$s "strucc o"es u"$ co"d c !" /ue es )$ /ue deter, "$ cu$"do se ter, "$ u" *uc)e8 E6ecuc !" de u" *uc)e < ter$c !"=8 Los *uc)es se +uede" $" d$r u"os de"tro de otros0 7 +uede h$*er #$r os *uc)es $) , s,o " #e)0 +ero "u"c$ se e"tre)$.$"8 C!$ta&!*5 U" e)e,e"to cu7o #$)or se "cre,e"t$ o decre,e"t$ e" u" #$)or co"st$"te e" c$d$ ter$c !" de u" *uc)e0 7 se ut ) .$ +$r$ co"tro)$r )$ co"d c !" de) *uc)e8 A-u,ula&!*5 Es u"$ #$r $*)e /ue t$,* 9" se sue)e us$r e" )os *uc)es 7 /ue se "cre,e"t$ o decre,e"t$ e" c$d$ ter$c !" de) *uc)e0 +ero "o e" u"$ c$"t d$d co"st$"te8 A)1or t,o e6e,+)o V$r co"t0 "u,0 su,5 e"tero I" c o Co"t W Su, W M e"tr$s co"t \D P Leer "u, Su, su, X "u, Co"t co"t XF H " , e"tr$s Escr * r su,$ E"d I$t'**u%t!* F,a*-a7 0a$&'*a ! 9la(G5 Es u"$ #$r $*)e /ue s r#e co,o "d c$dor de u"$ deter, "$d$ "(or,$c !" 7 /ue so)o +uede to,$r u"o de dos #$)ores8 E) #$)or de )$ #$r $*)e t e"e $soc $do u" s 1"o 7 +uede #$r $r $ )o )$r1o de )$ e6ecuc !"8

A)1or t,o e6e,+)o V$r co"t0 "u,0 su,$5 e"tero Ne15 *oo)e$" I" c o Co"t W Su, W Ne1 ($)so M e"tr$s co"t \DP Leer "u, S "u, \ W

25

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E"to"ces "e1 #erd$dero H"s Su, su, X "u, Co"t co"t X F H " , e"tr$s S "e1E#erd$dero E"to"ces escr * r <BSe h$ )e3do "e1$t #osC= S "o escr * r <BNo "e1$t #osC= H"s H" S es )eer u" ";,ero "e1$t #o o h$st$ P ";,eros5 M e"tr$s <co"t \D P= 7 <"e1 E #erd$dero= 4. ESCRITURA DE ALGORITMOS Y PROGRAMAS# E" +seudoc!d 1o e) +ro1r$,$ t e"e dos +$rtes0 )$ c$*ecer$ 7 e) cuer+o8 L$ c$*ecer$ co"t e"e e) "o,*re de) $)1or t,o0 7 e) cuer+o co"t e"e V +$rtes8 L$ +r ,er$ es )$ .o"$ de dec)$r$c o"es de #$r 7 co"st0 7 )$ se1u"d$ es )$ .o"$ de )$s "strucc o"es de) +ro1r$,$8 E" )$ .o"$ de "strucc o"es +$r$ /ue /uede ,'s )e1 *)e h$7 /ue us$r )$ de"t$c !" 7 s es "eces$r o h$7 /ue us$r co,e"t$r os e"tre ))$#es8 ! R"I"IO#: $ %A ( F8 2Cu')es 7 cu'"tos so" )os ";,eros +r ,os co,+re"d dos e"tre F 7 FWWW4 A)1or t,o "M+r ,os Co"st Pr ,eroEF L , teEFWWW V$r co"t0 0 65 e"tero +r ,o5 *oo)e$" I" c o Co"t W Desde E +r ,ero h$st$ ) , te +r ,o #erd$dero 6V , e"tr$s < D6= 7 <+r ,o E#erd$dero= S ,od 6 E W E"to"ces +r ,o ($)so S "o 6 6 X F H"s H " , e"tr$s S +r ,o E #erd$dero E"to"ces escr * r C B Co"t co"t X F H"s H " desde Escr * r BE"tre B+r ,eroC 7 B) , teC h$7 Bco"tC "` +r ,osC H" V8 C$)cu)$r e) ,'A ,o de ";,eros +os t #os "troduc dos +or tec)$do0 s$* e"do /ue ,ete,os ";,eros h$st$ /ue "trodu.c$,os u"o "e1$t #o8 E) "e1$t #o "o cue"t$8
26

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A)1or t,o ,$A ,o V$r Nu,0 ,$A5 e"tero I" c o M$A W Escr * r BI"trodu.c$ "` +os t #os 7 +$r$ $c$*$r "trodu.c$ u"o "e1$t #oC Leer "u, M e"tr$s "u, DEW S "u, D,$A E"to"ces ,$A "u, H"s Leer "u, H " , e"tr$s Escr * r BE) ,$7or ";,ero esC ,$A H" P8 Deter, "$r cu$)es so" )os ,;)t +)os de Q co,+re"d dos e"tre F 7 N8 A)1or t,o ,u)t +)os V$r 5 e"tero I" c o Desde EF h$st$ " S ,od Q EW E"to"ces escr * r H"s H " desde H"

27

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 4
INTRODUCCIN A LA PROGRAMACIN ESTRUCTURADA
1. TCNICAS DE PROGRAMACIN# E) +ro1r$,$r co" ()u6o1r$,$s o d $1r$,$s NS resu)t$ ,u7 ) oso e" e) ,o,e"to e" /ue e) +ro1r$,$ se co,+) c$0 +or eso #$,os $ ut ) .$r s e,+re e) +seudoc!d 1o0 e" e) /ue #$,os $ ut ) .$r dos t9c" c$s de +ro1r$,$c !" /ue "o se us$" +or se+$r$do0 s "o /ue so" co,+)e,e"t$r os8 Est$s t9c" c$s so"5 Pro1r$,$c !" ,odu)$r5 Co"s ste e" d # d r e) +ro1r$,$ e" +$rtes ))$,$d$s ,!du)os0 e ,+)e,e"t$r c$d$ u"o de esos ,!du)os +or se+$r$do8 Pro1r$,$c !" estructur$d$5 Cu7o o*6et #o es h$cer ,'s )e1 *)e 7 )!1 co )$ estructur$ de) +ro1r$,$ ut ) .$"do +$r$ e))o so)$,e"te tres t +os de estructur$s5 se)ect #$s0 secue"c $)es <co"d c o"$)es= 7 re+et t #$s8 2. PROGRAMACIN MODULAR# Se *$s$ e" d # d r e) +ro1r$,$ e" +$rtes ))$,$d$s ,!du)os0 /ue se $"$) .$" 7 cod ( c$" de (or,$ "de+e"d e"te 7 /ue re$) .$" u"$ deter, "$d$ t$re$ /ue ser' e" re$) d$d u"$ +$rte de) +ro*)e,$ tot$) $ reso)#er8 E" todo $)1or t,o o +ro1r$,$ eA st r' u" ,!du)o o +ro1r$,$ +r "c +$) /ue es $) /ue tr$"s( ere e) co"tro) cu$"do co, e".$ )$ e6ecuc !" de) +ro1r$,$0 7 )ue1o desde 9)0 se #$ ))$,$"do $) resto de )os su*+ro1r$,$s8 L)$,$r $ u" su*+ro1r$,$ /u ere dec r tr$"s(er r)e e) co"tro)0 es dec r /ue se co, e".$ $ e6ecut$r 7 )o h$r' desde e) co, e".o de) su*+ro1r$,$ h$st$ /ue se ter, "e 7 $) ter, "$r de#ue)#e e) co"tro) $) su*+ro1r$,$ /ue )o ))$,!8 De"tro de) su*+ro1r$,$ $ su #e. t$,* 9" +uedo ))$,$r $ otros +ero e" cu$)/u er c$so $) ( "$) se de#ue)#e e) co"tro) $) ,!du)o /ue h$ce )$ ))$,$d$8 E) co"tro) $) +ro1r$,$ ))$,$do se de#ue)#e $ )$ "strucc !" s 1u e"te $ )$ /ue se h .o )$ ))$,$d$8 U" ,!du)o so)o t e"e $cceso $ )os ,!du)os $ )os /ue ))$,$ 7 $ )os su*,!du)os $ )os /ue $ su #e. ))$,$" 9stos8 Los resu)t$dos +roduc dos +or u" ,!du)o +uede" ser ut ) .$dos +or otros8 No eA ste u" cr ter o ( 6o +$r$ deter, "$r e) t$,$:o0 " ,u7 1r$"des " ,u7 +e/ue:os0 )$ de$ (u"d$,e"t$) es /ue re$) ce" u"$ ;" c$ cos$ 7 ,u7 co"cret$8 Los ,!du)os o su*+ro1r$,$s rec *e" d (ere"tes "o,*res se1;" e) )e"1u$6e de +ro1r$,$c !" 7 se1;" su t +o8 Se ))$,$" +roced , e"tos 7 (u"c o"es <P$sc$)0 C=0 su*rut "$s <*$s c0 (ortr$"=0 secc o"es <co*o)=8 3. PROGRAMACIN ESTRUCTURADA# L$ c$r$cter3st c$ (u"d$,e"t$) es /ue se #$ $ *$s$r e" e) uso ;" c$,e"te de tres estructur$s de co"tro)8 P$r$ e))o se $+o7$ e" )$s s 1u e"tes ( )oso(3$s5 F8 Recursos $*str$ctos5 So" )os recursos co" )os /ue "o co"t$,os $ )$ hor$ de +ro1r$,$r0 +ero e" )os /ue "os

28

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

$+o7$,os $ )$ hor$ de so)uc o"$r)os8 Estos recursos se t e"e" /ue r tr$"s(or,$"do e" recursos co"cretos8 V8 D se:o desce"de"te <to+ do>"=5 Se tr$t$ de r desco,+o" e"do e) +ro*)e,$ e" " #e)es o +$sos c$d$ #e. ,'s se"c ))os0 t$) /ue )$ s$) d$ de u"$ et$+$ #$ $ ser# r co,o e"tr$d$ de )$ s 1u e"te8 E" )$s +r ,er$s et$+$s to,$,os e) +u"to de # st$ eAter"o0 es dec r0 /ue e"tr$d$s h$7 7 /ue s$) d$s h$70 7 $ ,ed d$ /ue #$,os *$6$"do de " #e)0 )o #$,os # e"do de ,odo "ter"o <co,o )o h$ce +or de"tro=8 P8 Estructur$s *'s c$s de co"tro)5 P$r$ h$cer cu$)/u er +ro1r$,$ s 1u e"do )os $"ter ores +$sos de r$.o"$, e"to0 $) ( "$) cod ( c$,os e) +ro1r$,$ us$"do tres t +os de secue"c $s <re+et t #$s0 $)ter"$t #$s 7 secue"c $)es=8 A) ( "$) todo +ro1r$,$ #$ $ te"er u"$ ;" c$ e"tr$d$ 7 u"$ ;" c$ s$) d$8 Desde )$ e"tr$d$ t e"e" /ue eA st r c$, "os /ue "os +er, te" +$s$r +or tod$s )$s +$rtes de) +ro1r$,$ 7 ))e#$r"os $ )$ s$) d$0 7 ( "$),e"te "o se #$" $ +er, t r )os *uc)es "( " tos8 4. ESTRUCTURA SECUENCIAL# Es cu$"do u"$ "strucc !" s 1ue $ otr$ e" secue"c $0 es dec r0 )$ s$) d$ de u"$ "strucc !" es )$ e"tr$d$ de )$ s 1u e"te8 HLU@O&RAMA5 DIA&RAMAS NS5 PSEUDOCIDI&O5 Leer "u, Nu, "u,TV Escr * r "u,

.. ESTRUCTURAS SELECTI5AS# Se e#$);$ )$ co"d c !" 7 e" (u"c !" de) resu)t$do se e6ecut$ u" co"6u"to de "strucc o"es u otro8 H$7 tres t +os de se)ect #$s <s ,+)e0 do*)e o ,;)t +)e=5 T S ,+)e5 Es )$ estructur$ 5 S3 \co"dD e"to"ces \$cc o"esD ( " s3 E#$)u$,os )$ co"d c !" 7 s es #erd$der$ e6ecut$,os e) co"6u"to de co"d c o"es $soc $d$s $) e"to"ces0 7 s es ($)so0 "o h$ce,os "$d$8 HLU@O&RAMA5 \Co"dFD \$cc o"esD DIA&RAMA NS5 Co"d c !" SI NO

\$cc o"esD \$cc o"esD

Do*)e5 Se e#$);$ )$ co"d c !" 7 s es #erd$d se e6ecut$" e) co"6u"to de $cc o"es $soc $d$s $ )$ +$rte e"to"ces0 7 s es ($)so se e6ecut$" e) co"6u"to de $cc o"es $soc $d$s $ )$ +$rte s "o8

2#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

HLU@O&RAMA5 S No Co"d \$cc o"esD AccF \$cc o"esD AccV

DIA&RAMAS NS5 S Co"d No

PSEUDOCIDI&O5 S3 \co"dD E"to"ces S "o

AccF

AccV

H"s

U"$ co"d c !" se e6ecut$ u"$ ;" c$ #e.8 T A)ter"$t #$ ,;)t +)e5 Se e#$);$ u"$ co"d c !" o eA+res !" /ue +uede to,$r " #$)ores8 Se1;" e) #$)or /ue )$ eA+res !" te"1$ e" c$d$ ,o,e"to se e6ecut$" )$s $cc o"es corres+o"d e"tes $) #$)or8 E" re$) d$d e/u #$)e $ u" co"6u"to de co"d c o"es $" d$d$s8 E" cu$)/u er )e"1u$6e0 es C$se o S> th8

PSEUDOCIDI&O5 Se1;" se$ \eA+res !"D \V$)orFD5 \$cc !"FD \#$)orVD5 \$cc !"VD 888888888888888888888888888888888 a\otroD5 \$cc o"esDb ( " se1;" Otro5 L$s $cc o"es $soc $d$s $) #$)or otro se e6ecut$" cu$"do )$ eA+res !" "o to,$ " "1u"o de )os #$)ores /ue $+$rece" $"tes8 Other> se0 E)se8 E) #$)or co" e) /ue se co,+$r$ )$ eA+res !"0 #$ $ de+e"der de )os )e"1u$6es0 de )o /ue se$ ese #$)or8 E" 1e"er$) ese #$)or +uede ser u" #$)or co"st$"te0 u" r$"1o de #$)ores o "c)uso otr$ co"d c !"8 HLU@O&RAMA5 EA+res !" Otro VF VV VP VR VQ VS DIA&RAMAS NS5 EA+r VF VV VP VR 8

H$cer u" +ro1r$,$ /ue +ued$ d *u6$r u"$ rect$0 u" +u"to o u" rect'"1u)o8 A)1or t,o d *u6o V$r o+5 c$r'cter Escr * r <BI"troduce u"$ o+c !"C F8 Pu"to V8 Rect$ P8 Rect'"1u)oC=
3$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Leer o+ Se1;" se$ o+ BFC5 )eer A 888888888 BVC5 )eer A 8888888888 BPC5 )eer A 8888888888 BotroC5 escr * r Bo+c !" err!"e$C ( " se1;" P$r$ u" r$"1o de #$)ores5 Leer u"$ "ot$ 7 escr * r e" +$"t$))$ )$ c$) ( c$c !"5 V$r "ot$5 e"tero Leer "ot$ Se1;" se$ "ot$ F88R5 escr * r Bsus+e"soC Q88S5 escr * r B$+ro*$doC [88G5 escr * r BNot$*)eC L5 escr * r BSo*res$) e"teC FW5 escr * r BM$tr cu)$ de ho"orC ( " se1;" E" $)1u"os )e"1u$6es se +er, te +o"er u"$ co"d c !"5 Se1;" se$ "ot$ Not$ DEF 7 "ot$ \ER5 escr * r Bsus+e"soC E" +seudoc!d 1o "o se +uede" +o"er co"d c o"es8 1. ESTRUCTURAS REPETITI5AS# E" $/ue))$ /ue co"t e"e u" *uc)e <co"6u"to de "strucc o"es /ue se re+ te" u" ";,ero ( " to de #eces=8 C$d$ re+et c !" de) *uc)e se ))$,$ ter$c !"8 Kodo *uc)e t e"e /ue ))e#$r $soc $d$ u"$ co"d c !"0 /ue es )$ /ue #$ $ deter, "$r cu$"do se re+ te e) *uc)e8 H$7 cu$tro t +os de *uc)es0 $u"/ue so)o se +uede" us$r tres5 1. M e"tr$s h$cer ch )e do 2. Re+et r h$st$ re+e$t u"t ) 3. Desde (or 4. Iter$r )oo+ 5 No se us$8 Mi'$t*a" Ha-'*# S "t$A s5 PSEUDOCIDI&O5 HLU@O&RAMA5 M e"tr$s \co"dD h$cer \$cc o"esD Co"d co"d ( " , e"tr$s S \$ccFD cc o"es

DIA&RAMAS NS5 No , e"tr$s

Hu"c o"$, e"to5 L$ co"d c !" de) *uc)e se e#$);$ $) +r "c + o0 $"tes de e"tr$r e" 9)8 S )$ co"d c !" es #erd$der$0 co,e".$,os $ e6ecut$r )$s $cc o"es de) *uc)e 7 des+u9s de )$ u)t ,$ #o)#e,os $ +re1u"t$r +ro )$ co"d c !"8 E" e) ,o,e"to e" e) /ue )$ co"d c !" se$ ($)s$ "os s$) ,os de) *uc)e 7 e6ecut$,os )$ s 1u e"te co"d c !" $) *uc)e8

31

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A) e#$)u$rse )$ co"d c !" $"tes de e"tr$r e" e) *uc)e $) +r "c + o0 s )$ co"d c !" $) ser e#$)u$d$ )$ +r ,er$ #e. es ($)s$0 "o e"tr$re,os "u"c$ e" e) *uc)e0 e) *uc)e +uede /ue se e6ecute W #eces0 +or t$"to us$re,os o*) 1$tor $,e"te este t +o de *uc)e e" e) c$so de /ue eA st$ )$ +os * ) d$d de /ue e) *uc)e +ued$ e6ecut$rse W #eces8 R'%'ti* Ha"ta# S "t$A s5 HLU@O&RAMA5 \$ccD \$cc o"esD \co"d c !"D No S Co"d

DIA&RAMAS NS5 $cc o"es

HLU@O&RAMA5 Re+et r h$st$

Re+et r \co"dD h$st$

Hu"c !"5 Se re+ te e) *uc)e h$st$ /ue )$ co"d c !" se$ #erd$der$8 Se re+ te , e"tr$s )$ co"d c !" se$ ($)s$8 L$ co"d c !" se e#$);$ s e,+re $) ( "$) de) *uc)e0 s es ($)s$ #o)#e,os $ e6ecut$r )$s $cc o"es0 s es #erd$d se s$)e de) *uc)e8 Co,o )$ co"d c !" se e#$);$ $) ( "$)0 "c)uso $u"/ue )$ +r ,er$ #e. 7$ se$ #erd$der$0 h$*re,os +$s$do $) ,e"os u"$ #e. +or e) *uc)e8 Es dec r /ue cu$"do u" *uc)e se te"1$ /ue e6ecut$r co,o ,3" ,o u"$ #e.0 +odre,os us$r u"$ estructur$ re+et r o , e"tr$s0 )$ ;" c$ d (ere"c $ /ue h$*r' e"tre )$s dos0 es /ue +$r$ h$cer )o , s,o0 )$s co"d c o"es t e"e" /ue ser co"tr$r $s8 Leer P ";,eros 7 d$r su su,$5 Co"t W Co"t W Su,$ W su,$ W M e"tr$s co"t \D P re+et r Su,$ su,$ X "u, )eer "u, Leer "u, su,$ su,$ X "u, Co"t co"t X F co"t co"t X F H " , e"tr$s h$st$ co"t E P D'"&'# Este t +o de *uc)es se ut ) .$ cu$"do se s$*e 7$ $"tes de e6ecut$r e) *uc)e e) ";,ero eA$cto de #eces /ue h$7 /ue e6ecut$r)o8 P$r$ e))o e) *uc)e ))e#$r$ $soc $do u"$ #$r $*)e /ue de"o, "$,os #$r $*)e 3"d ce0 $ )$ /ue )e $s 1"$,os u" #$)or " c $) 7 deter, "$,os cu$) #$ $ ser su #$)or ( "$) 7 $de,'s se #$ $ "cre,e"t$r o decre,e"t$r e" c$d$ ter$c !" de *uc)e e" u" #$)or co"st$"te0 +ero esto se #$ $ h$cer de ,$"er$ $uto,'t c$0 e) +ro1r$,$dor "o se t e"e /ue ocu+$r de "cre,e"t$r o decre,e"t$r est$ #$r $*)e e" c$d$ ter$c !"0 s "o /ue #$ $ ser u"$ o+er$c !" ,+)3c t$ <)o h$ce +or de(ecto=8 Por t$"to e" c$d$ ter$c !" de) *uc)e0 )$ #$r $*)e 3"d ce se $ctu$) .$ $uto,'t c$,e"te 7 cu$"do $)c$".$ e) #$)or /ue he,os +uesto co,o ( "$) se ter, "$ )$ e6ecuc !" de) *uc)e8 S "t$A s5 PSEUDOCIDI&O5

32

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Desde \#$r 3"d ceDE\#$)or " c $)D h$st$ \#$)or ( "$)D \$cc o"esD ( " desde HLU@O&RAMAS5 VV DIA&RAMAS NS5 Desde #E# h$st$ #F V \D VF

\se"te"c $sD se"te"c $s ##XF

3u-l' -!$ "ali&a i$t'*$a# l!!% it'*a*. Per, te )$ s$) d$ de) *uc)e desde u" +u"to "ter,ed o de) , s,o s e,+re /ue se cu,+)$ )$ co"d c o" /ue $+$rece0 e"to"ces "os s$) ,os $ )$ s 1u e"te "strucc !" de) *uc)e8 Iter$r \se"tFD s$) r s \co"dD NUNCA SE USA \se"tVD ( " ter$r

4. ESTRUCTURAS ANIDADAS# K$"to )$s estructur$s se)ect #$s co,o )os *uc)es se +uede" $" d$r u"os de"tro de otros8 A$i&a-i:$ &' -!$&i-i!$al'"# L$ #e"t$6$ de $" d$r se"te"c $s co"d c o"$)es0 es /ue cu$"do u"$ se cu,+)e "o h$7 +or /ue , r$r $ )$s /ue est$" de*$6o8 Ke"e,os /ue tr$t$r $" d$r )$ co"d c o" e" )$ +$rte s "o <e)se= e" #e. /ue e" )$ +$rte e"to"ces8 S \co"d c o"FD E"to"ces \se"te"c $FD S "o s \co"d c o"VD E"to"ces \se"te"c $VD S "o s \co"d c o"VD E"to"ces \se"te"c $PD H"s H"s H"s E) c$se s e,+re e/u #$)e $ u"$ $" d$c !" de co"d c o"$)es0 +ero "o $) re#es8 3u-l'" a$i&a&!"#

33

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A) 1u$) /ue +ode,os co)oc$r u"$s eA+res o"es de"tro de otr$s0 u"os *uc)es +uede" est$r de"tro de otros0 +ero "u"c$ +uede" cru.$rse8 A) $" d$r *uc)es h$7 /ue te"er e" cue"t$ /ue e) *uc)e ,$s "ter"o (u"c o"$ co,o u"$ se"te"c $ ,$s de) *)o/ue ,$s eAter"o 7 +or t$"to e" c$d$ ter$c !" de) *uc)e ,$s eAter"o se #$" $ e6ecut$r tod$s )$s ter$c o"es de) *uc)e ,$s "ter"o +or c$d$ ter$c !" de) ,$s eAter"o8 S e) *uc)e ,$s eAter"o se re+ te " #eces 7 e) ,$s "ter"o se re+ te , #eces0 s +or c$d$ ter$c !" de) ,$s eAter"o se re+ te e) ,$s "ter"o0 e) ";,ero tot$) de ter$c o"es ser' ,T"8 Los *uc)es /ue se $" d$" +uede" se de 1u$) o d st "to t +o8 Desde EF h$st$ G Desde 6EF h$st$ Q Escr * r BPro(esorC C "trodu.c$ su $s 1"$tur$ "`C6 Leer $s 1"$tur$ H " desde H " desde 6. CONTROL DE DATO DE ENTRADA# A. Cua$&! ';i"t' u$ al!* -'$ti$'la Iu' &'t'*,i$a 'l 9i$ &'l 0u-l'# E) *uc)e se #$ $ re+et r , e"tr$s "o se )e$ u" deter, "$do #$)or8 L$ +r ,er$ )ectur$ se #$ $ re$) .$r (uer$ de) *uc)e0 7 s )$ +r ,er$ #e. /ue )o )eo 7$ e"cue"tro ese #$)or ce"t "e)$ "o +ode,os e"tr$r e" e) *uc)e 7 se1u r' $ co"t "u$c !"0 s "o e"tr$,os e" e) *uc)e8 Se #$ ut ) .$r u"$ estructur$ Mi'$t*a"8 3. L'-tu*a "'-u'$-ial &' u$ 9i-H'*!# Ke"dre,os /ue )eer de) +r ,ero $) ;)t ,o re1 stro de) ( chero8 H$*r' /ue us$r u" Mi'$t*a"0 $u"/ue h$7 dos +os * ) d$des5 Leer (uer$ de) *uc)e 7 $) ( "$) de *uc)e0 o )eer de"tro $) +r "c + o de) *uc)e8 Se us$ u"$ u otr$ de+e"d e"do de) )e"1u$6e8 C. Cua$&! '$ u$ 0u-l' "a0',!" 'l $J,'*! ';a-t! &' Iu' "' *'%it' 'l 0u-l'# Us$,os e) D'"&'...?a"ta8 '-'"

D. C!$t*!l &' &at!" %a*a $! %'*,iti* &at!" '**!$'!"# No de6$r se1u r $) usu$r o h$st$ /ue "o "trodu.c$ d$tos correctos8 H$7 /ue us$r u" R'%'ti*...?a"ta8 Re+et r Leer d$tos H$st$ <d$tos correctos= Re+et r )eer o+ h$st$ <o+DEF= 7 <o+\EP=

! R"I"IO#: $ %A ) F8 A) ( "$) de curso dese$,os s$*er cu$) h$ s do e) $)u,"o de +r ,ero co" ,e6or "ot$ ,ed $8 Se s$*e /ue este $:o e"tr$ro" FQW $)u,"os 7 /ue e" +r ,ero todos t e"e" Q $s 1"$tur$s8 D$r e) "o,*re 7 )$ "ot$ ,ed $8 A)1or t,o "ot$M,ed $ Co"st

34

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A)u,"osEFQW As 1"$tur$sEQ V$r No,*re0 ,e6orM$)u,5 c$de"$ Not$0 su,$0 ,ed $0 $cu,5 re$) I0 65 e"tero I" c o Acu, W Desde EF h$st$ $)u,"os h$cer Su,$ W Escr * r BI"trodu.c$ e) "o,*re de) $)u,"oC Leer "o,*re Desde 6EF h$st$ $s 1"$tur$s h$cer Escr * r BI"trodu.c$ )$ "ot$ de )$ $s 1"$tur$C Leer "ot$ Su,$ su,$ X "ot$ H " desde Med $ su,$ Z $s 1"$tur$s S ,ed $ D $cu, E"to"ces $cu, ,ed $ Me6orM$)u, "o,*re H"s H " desde Escr * r BE) ,e6or $)u,"o es B,e6orM$)u, Escr * r BSu "ot$ ,ed $ es B$cu, H" V8 C$)cu)$r )$ su,$ de )os d # sores de c$d$ ";,ero "troduc do +or tec)$do8 Ker, "$re,os cu$"do e) ";,ero se$ "e1$t #o o W8 A)1or t,o d # sores V$r Nu,ero0 0 su,$ 5e"tero I" c o Escr * r BI"troduce u" ";,ero0 7 +$r$ $c$*$r u"o "e1$t #oC Leer ";,ero M e"tr$s "u,ero D W Su,$ W Desde EF h$st$ "u,ero ZV S "u,ero ,od EW E"to"ces su,$ su,$ X H"s H " desde Su,$ su,$ X "u,ero Escr * r BL$ su,$ de )os d # sores de) ";,ero es Bsu,$ Leer "u,ero H " , e"tr$s H" P8 Se co)oc$ u" c'+ t$) C0 $ u" "teres I0 dur$"te M $:os 7 se dese$ s$*er e" cu$"to se h$*r' co"#ert do ese c$+ t$) e" , $:os0 s$* e"do /ue es $cu,u)$t #o8 A)1or t,o "teres V$r I0 60 ,5 e"tero C0 te,+or$)5 re$) I" c o re+et r
35

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Escr * r BI"troduce e) c$+ t$)0 e) "teres 7 e) t e,+oC Leer c0 0 , H$st$ <cDW= 7 << \EW=7< \EFWW== 7 <, DEW= Desde 6EF h$st$ , C c T <FXIZFWW= H " desde Escr * r BK e"es BcC +tsC H" R8 D$d$ u"$ (ech$ e" (or,$to d $Z,esZ$:o deter, "$r e) ";,ero de d3$s 7 e) "o,*re de) ,es de d ch$ (ech$0 7 s$c$r +or +$"t$))$ )$ (ech$ co"#ert d$ $ (or,$to de d $ BdeC ,es BdeC $:o8 A)1or t,o (ech$ V$r D $0 ,es0 $:o0 "Md $s5 e"tero NM,es5 c$de"$ I" c o Re+et r Escr * r BI"troduce )$ (ech$ e" (or,$to d $ ,es $:oC Leer d $0 ,es0 $:o Se1;" se$ ,es F0WF5 "M,es Be"eroC "Md $s PF V0WV5 "M,es B(e*reroC s $:o ,od REW e"to"ces "Md $s VL e"to"ces "Md $s VG P0WP5 "M,es B,$r.oC "Md $s PF R0WR5 "M,es B$*r )C "Md $s PW Q0WQ5 "M,es B,$7oC "Md $s PF S0WS5 "M,es B6u" oC "Md $s PW [0W[5 "M,es B6u) oC "Md $s PF G0WG5 "M,es B$1ostoC "Md $s PF L0WL5 "M,es Bse+t e,*reC "Md $s PW FW5 "M,es Boctu*reC "Md $s PF FF5 "M,es B"o# e,*reC "Md $s PW FV5 "M,es Bd c e,*reC "Md $s PF ( " se1;" se$ h$st$ <d $ \E"Md $s= 7 <<,es DEF=7<,es \EFV== 7 <$:o DEW= escr * r BE) ,es de B"M,esCt e"e B"Md $sC d $sC escr * r BL$ (ech$ es5 B"Md $sC de B"M,esC de B$:o (" Q8 D$d$ )$ s 1u e"te (!r,u)$5

0 =

112 30
1 =1 # 1 1=2

30 + #
36

12 + 2 2 11 100

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A#er 1u$r e) #$)or de A + d e"do $) usu$r o )os #$)ores de "0 $0 *8 A)1or t,o ecu$c o" V$r N0 $0 *0 +r ,er0 se1;"0 0 65 e"tero d5 re$) I" c o Pr ,er W Se1;" F Re+et r Escr * r BI"troduce e) #$)or de "0 $0 *C Leer "0 $0 * H$st$ "DEW Desde EF h$st$ " Pr ,er <<<$?*=U eP=X"=X+r ,er H " desde Desde 6EV h$st$ "?F Se1;" <<VT$T< ?F==Tse1;"= H " desde d +r ,er Z se1;" Escr * r A H" S8 D$d$ )$ s 1u e"te ser e ,$te,'t c$5 $FEW $VEW $"E$"?F X <VT$"?V= +$r$ "DEP Deter, "$r cu$) es e) #$)or 7 e) r$"1o de) +r ,er t9r, "o cu7o #$)or se$ ,$7or o 1u$) $ VWWW8 A)1or t,o ser e V$r AF0 $V0 $"0 co"t5 e"tero I" c o AF F AV W A" $F X <VT$V= NP M e"tr$s $" \ VWWW AV $F AF $" A" $F X <VT$V= Co"t co"t X F H " , e"tr$s Escr * r BE) r$"1o es Bco"tC 7 e) resu)t$do esC$" ("

TEMA .
SU3PROGRAMAS# PROCEDIMIENTOS Y FUNCIONES
1. INTRODUCCIN A LOS SU3PROGRAMAS O SU3ALGORITMOS#

37

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

L$ +ro1r$,$c !" ,odu)$r es u"$ de )$s t9c" c$s (u"d$,e"t$)es de )$ +ro1r$,$c !"8 Se $+o7$ e" e) d se:o desce"de"te 7 e" )$ ( )oso(3$ de Bd # de 7 #e"cer'sC0 es dec r se tr$t$ de d # d r e) +ro*)e,$ d$do0 e" +ro*)e,$s ,'s s ,+)es e" /ue c$d$ u"o de )os cu$)es )o ,+)e,e"t$re,os e" u" ,!du)o "de+e"d e"te8 A c$d$ u"o de estos ,!du)os es $ )o /ue ))$,$,os su*$)1or t,os o su*+ro1r$,$s8 S e,+re eA st r' u" ,!du)o o +ro1r$,$ +r "c +$) /ue es co" e) /ue co, e".$ )$ e6ecuc !" de todo e) +ro1r$,$0 7 $ +$rt r de 9) re,os ))$,$"do $) resto8 C$d$ #e. /ue se ))$,$ $ u" su*+ro1r$,$ se )e +$s$ )$ "(or,$c !" /ue "eces t$ e" )$ ))$,$d$0 $ co"t "u$c !" co, e".$ $ e6ecut$rse e) su*+ro1r$,$ ))$,$do0 7 cu$"do ter, "e su e6ecuc !"0 de#ue)#e e) co"tro) $ )$ s 1u e"te "strucc !" $ )$ de ))$,$d$ e" e) +ro1r$,$ /ue )o ))$,!8 E" cu$"to $ )$ estructur$ de u" su*+ro1r$,$ es 1u$) $ )$ estructur$ de u" +ro1r$,$0 #$ $ te"er u"$ "(or,$c !" de e"tr$d$ /ue es )$ /ue )e +$s$,os $) h$cer )$ ))$,$d$ 7 /ue se co)oc$ 6u"to $) "o,*re de) su*+ro1r$,$8 Des+u9s #$ $ te"er u" co"6u"to de $cc o"es0 dec)$r$r otr$s #$r $*)es +ro+ $s de) su*+ro1r$,$0 7 $) ter, "$r )$ e6ecuc !" +uede /ue de#ue)#$ o "o resu)t$dos $) +ro1r$,$ /ue )o ))$,!8 H$7 dos t +os (u"d$,e"t$)es de su*+ro1r$,$s5 Hu"c o"es 7 +roced , e"tos8 2. FUNCIONES# Desde e) +u"to de # st$ ,$te,'t co0 u"$ (u"c !" es u"$ o+er$c !" /ue to,$ u"o o #$r os o+er$"dos0 7 de#ue)#e u" resu)t$do8 Y desde e) +u"to de # st$ $)1or3t, co0 es u" su*+ro1r$,$ /ue to,$ u"o o #$r os +$r',etros co,o e"tr$d$ 7 de#ue)#e $ )$ s$) d$ u" J$i-! resu)t$do8 P$sc$)5 E" )$s (u"c o"es se +uede de#o)#er ,'s de u" ;" co resu)t$do ,ed $"te +$r',etros8 C5 Se de#ue)#e todo +or +$r',etros8 Este ;" co resu)t$do r' $soc $do $) "o,*re de )$ (u"c !"8 H$7 dos t +os de (u"c o"es5 - I"ter"$s5 So" )$s /ue # e"e" de( " d$s +or de(ecto e" e) )e"1u$6e8 - EAter"$s5 L$s de( "e e) usu$r o 7 )es d$ u" "o,*re o de"t ( c$dor8 P$r$ ))$,$r $ u"$ (u"c !" se d$ su "o,*re0 7 e"tre +$r9"tes s #$" )os $r1u,e"tos o +$r',etros /ue se /u ere" +$s$r8 D'-la*a-i:$ &' u$a 9u$-i:$# L$ estructur$ de u"$ (u"c !" es se,e6$"te $ )$ de cu$)/u er su*+ro1r$,$8 Ke"dr' u"$ c$*ecer$ <co" e) "o,*re 7 )os +$r',etros= 7 u" cuer+o <co" )$ dec)$r$c !" de )os +$r',etros de )$ (u"c !" 7 )$s "strucc o"es=8 Si$ta;i"# Hu"c o" \"o,*reM(u"c o"D <"M+$r$,etro5 t +o0 "M+$r$,etro5 t +o=5 t +o (u"c o" V$r \#$r $*)es )oc$)es (u"c o"D I" c o \$cc o"esD retor"o \#$)orD ( " \"o,*reM(u"c o"D

38

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

L$ ) st$ de +$r',etros es )$ "(or,$c !" /ue se )e t e"e /ue +$s$r $ )$ (u"c !"8 Los +$r',etros )ue1o de"tro de )$ (u"c !" )os +ode,os ut ) .$r 1u$) /ue s (uer$" #$r $*)es )oc$)es de( " d$s e" )$ (u"c !" 7 +$r$ c$d$ +$r',etro h$7 /ue +o"er su "o,*re 7 t +o8 E) "o,*re de )$ (u"c !" )o d$ $) usu$r o 7 t e"e /ue ser s 1" ( c$t #o8 E" )$s #$r $*)es )oc$)es se dec)$r$" )$s #$r $*)es /ue se +uede" us$r de"tro de )$ (u"c !"8 E"tre )$s $cc o"es te"dr' /ue eA st r e"tre e))$s u"$ de) t +o retorno "valor#8 Est$ se"te"c $ +o"dr' ( " $ )$ e6ecuc !" de )$ (u"c !" 7 de#o)#er' e) #$)or de )$ (u"c !"0 es dec r0 co,o #$)or $soc $do $) "o,*re de , s,o t +o /ue e) t +o de d$tos /ue de#ue)#e $ )$ (u"c !"0 este #$)or +or t$"to t e"e /ue ser de) , s,o t +o /ue e) t +o de d$tos /ue de#ue)#e )$ (u"c !"0 /ue es e) /ue h$*re,os "d c$do $) dec)$r$r )$ (u"c !" e" )$ +$rte ( "$) de )$ c$*ecer$8 No se +er, te" (u"c o"es /ue "o de#ue)#$" "$d$8 Los +$r',etros /ue $+$rece" e" )$ dec)$r$c !" de )$ (u"c !" se de"o, "$" +$r',etros (or,$)es0 7 )os +$r',etros /ue 7o ut ) .o cu$"do ))$,o $ )$ (u"c !" se de"o, "$" +$r',etros $ctu$)es o re$)es8 I$ !-a-i:$ &' u$a 9u$-i:$# P$r$ ))$,$r $ u"$ (u"c !" se +o"e e) "o,*re de )$ (u"c !"0 7 e"tre +$r9"tes s )os +$r',etros re$)es0 /ue +odr'" ser #$r $*)es0 eA+res o"es0 co"st$"tes0888 +ero s e,+re de) , s,o t +o /ue )os +$r',etros "or,$)es $soc $dos8 \"o,*reM(u"c o"D <+$r',etros re$)es= L$ (u"c !" +uede ser ))$,$d$ desde e) +ro1r$,$ +r "c +$) o desde cu$)/u er otro su*+ro1r$,$8 P$r$ ))$,$r $ )$ (u"c !" desde cu$)/u er +$rte0 ,+) c$ e) co"oc , e"to +re# o de /ue 9st$ (u"c !" eA ste8 A tr$#9s de )os +$r',etros re$)es de )$ ))$,$d$ se +ro+orc o"$ $ )$ (u"c !" )$ "(or,$c !" /ue "eces t$0 +$r$ e))o0 $) h$cer )$ ))$,$d$ )o /ue se +roduce es u"$ $soc $c !" $uto,'t c$ e"tre +$r',etros re$)es 7 +$r',etros (or,$)es8 Est$ $soc $c !" se re$) .$ se1;" e) orde" de )$ $+$r c !" 7 de ./u erd$ 7 derech$8 S e) +$r',etro (or,$) 7 re$) "o so" de) , s,o t +o0 e" P$sc$) se +roduce u" error0 7 e" C se tr$"s(or,$" )os t +os s es +os *)e8 L$ ))$,$d$ $ u"$ (u"c !"0 "i',%*' a a 9!*,a* %a*t' &' u$a ';%*'"i:$0 de cu$)/u er eA+res !" e" )$ /ue e" e) +u"to e" )$ /ue se ))$,$ $ )$ (u"c !"0 +ud er$ r co)oc$do cu$)/u er #$)or de) t +o de d$tos /ue de#ue)#e )$ (u"c !"0 esto se de*e $ /ue e) #$)or /ue de#ue)#e u"$ (u"c !" est$ $soc $do $ su "o,*re8 Pa"!" %a*a Ha-'* la lla,a&a a u$a 9u$-i:$# F8 A) h$cer )$ ))$,$d$ 7 ceder e) co"tro) $ )$ (u"c !"0 se $soc $ <$s 1"$ e) #$)or= de c$d$ +$r',etro re$) $ c$d$ +$r',etro (or,$) $soc $do0 s e,+re +or orde" de $+$r c !" 7 de ./u erd$ $ derech$0 +or )o /ue s e,+re /ue "o co "c d$" )os t +os 7 e) ";,ero de +$r',etros (or,$)es 7 re$)es0 se +roduce u" error8 V8 S todo h$ do * e"0 se e6ecut$" )$s $cc o"es de )$ (u"c !" h$st$ /ue ))e1ue,os $ u"$ de t +o retorno "valor# /ue +o"dr' ( " $ )$ e6ecuc !"8 Puede" eA st r #$r $s se"te"c $s de retor"o e" )$ , s,$ (u"c !"0 +ero e" c$d$ ))$,$d$ so)o se +odr' e6ecut$r u"o8

3#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

P8 Se )e $soc $ $) "o,*re de )$ (u"c !" e) #$)or retor"$do 7 se de#ue)#e e) co"tro) $) su*+ro1r$,$ /ue h .o )$ ))$,$d$ +ero sust tu7e"do e) "o,*re de )$ (u"c !" +or e) #$)or de#ue)to8 Ot*a 9!*,a &' '"%'-i9i-a* 'l *'t!*$! &' u$a 9u$-i:$# Se )e $s 1"$ e) #$)or de#ue)to $) "o,*re de )$ (u"c !"8 NM(u"c o" #$)or E)',%l! &' 9u$-i:$# U"$ (u"c !" /ue c$)cu)e )$ , t$d de) #$)or /ue )e +$so +$r',etro8 Su+o"e,os /ue es u" #$)or e"tero8 Hu"c o" , t$d <"5 e"tero=5 re$) V$r ,5 re$) I" c o M "ZV Retor"o , H " , t$d A)1or t,o c$)cM, t$d V$r "u,5 e"tero I" c o Escr * r BI"troduce u" ";,ero +$r$ h$))$r su , t$dC Leer "u, Escr * r BL$ , t$d de B"u,C es B, t$d<"u,= H" * La funcin solo puede ser llamada desde una e+presin, 3. PROCEDIMIENTOS# E) "co"#e" e"te de u"$ (u"c !" es /ue so)o +uede de#o)#er u" ;" co #$)or0 +or )o /ue s3 "os "teres$ de#o)#er W o N #$)ores0 $u"/ue +uedo us$r)o +$r$ de#o)#er u" so)o #$)or0 de*o us$r u" +roced , e"to8 U" +roced , e"to es u" su*+ro1r$,$ o u" su*$)1or t,o /ue e6ecut$ u"$ deter, "$d$ t$re$0 +ero /ue tr$s e6ecut$r es$ t$re$ "o t e"e" " "1;" #$)or $soc $do $ su "o,*re co,o e" )$s (u"c o"es0 s "o /ue s de#ue)#e "(or,$c !"0 )o h$ce $ tr$#9s de +$r',etros8 A) ))$,$r $ u" +roced , e"to0 se )e cede e) co"tro)0 co, e".$ $ e6ecut$rse 7 cu$"do ter, "$ de#ue)#e e) co"tro) $ )$ s 1u e"te "strucc !" $ )$ de ))$,$d$8 Di9'*'$-ia" '$t*' 9u$-i!$'" K %*!-'&i,i'$t!"# F8 U"$ (u"c !" de#ue)#e u" ;" co #$)or 7 u" +roced , e"to +uede de#o)#er W0F o N8 V8 N "1u"o de )os resu)t$dos de#ue)tos +or e) +roced , e"to se $soc $" $ su "o,*re co,o ocurr3$ co" )$ (u"c !"8 P8 M e"tr$s /ue )$ ))$,$d$ $ u"$ (u"c !" (or,$ s e,+re +$rte de u"$ eA+res !"0 )$ ))$,$d$ $ u" +roced , e"to es u"$ "strucc !" /ue +or s3 so)$ "o "eces t$ "strucc o"es8 Est$ ))$,$d$ co"s ste e" e) "o,*re de) +roced , e"to 7 #$ e"tre +$r9"tes s #$" )os +$r',etros /ue se )e +$s$"8 E" $)1u"os )e"1u$6es <co,o e) C=0 se +o"e de)$"te )$ +$)$*r$ L)$,$r $ <C$))= +roced , e"to <+$r',etro=8 Si$ta;i"# Proced , e"to \"o,*reM+rocD <\t +oM+$soM+$rD \"o,*reM+$rD5 t +oM+$r0888= V$r \#$r $*)es )oc$)esD5 t +o I" c o \se"te"c $sD

4$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

( " \"o,*reM+rocD L$ c$*ecer$ #$ $ est$r (or,$d$ +or e) "o,*re de) +roced , e"to /ue ser' u" de"t ( c$dor 7 /ue de*e de ser s 1" ( c$t #o0 7 )ue1o e"tre +$r9"tes s )os +$r',etros o )$ "(or,$c !" /ue se )e +$s$ $) +roced , e"to8 P$r$ c$d$ +$r',etro h$7 /ue "d c$r e) t +o de +$so de +$r',etro8 H$7 dos t +os (u"d$,e"t$)es de +$so de +$r',etros0 +or #$)or 7 +or re(ere"c $0 s "o +o"e,os t +o de +$so de +$r',etros0 se to,$ e) t +o de +$so de +$r',etros +or #$)or8 E" e) cuer+o de) +roced , e"to do"de #$" )$s se"te"c $s 7$ "o h$*r' " "1u"$ de t +o \retor"o #$)orD0 $hor$ * e"0 s e) +roced , e"to de#ue)#e resu)t$dos $ tr$#9s de sus +$r',etros0 cos$ /ue so)o +odr' h$cer $ tr$#9s de )os +$r',etros /ue se +$s$" +or re(ere"c $0 te"dr'" /ue eA st r se"te"c $s de $s 1"$c !" de #$)ores $ estos +$r',etros +$s$dos +or re(ere"c $0 $ tr$#9s de )os cu$)es se #$" $ de#o)#er )os resu)t$dos8 C!,! "' lla,a a u$ %*!-'&i,i'$t!# a))$,$r $ <C$))=b "o,*reM+roc <+$rMre$)es= Pa"!" %a*a Ha-'* la lla,a&a a u$ %*!-'&i,i'$t!# F8 Se cede e) co"tro) $) +roced , e"to $) /ue se ))$,$ 7 )o +r ,ero /ue se h$ce $) ceder)e e) co"tro) es sust tu r c$d$ +$r',etro (or,$) de )$ de( " c !" +or e) +$r',etro $ctu$) o re$) de )$ ))$,$d$ $soc $do $ 9)8 Est$ $soc $c !" e"tre +$r',etros (or,$)es 7 re$)es se h$ce de ./u erd$ $ derech$ +or orde" de co)oc$c !" 7 +$r$ /ue se +ued$ +roduc r est$ $soc $c !" t e"e" /ue eA st r e) , s,o ";,ero de +$r',etros (or,$)es /ue re$)es0 7 $de,'s e) t +o t e"e /ue co "c d r co" e) de) +$r',etro (or,$) $soc $do0 s "o se cu,+)e $)1u"$ de est$s co"d c o"es h$7 u" error8 V8 S )$ $soc $c !" h$ s do correct$ co, e".$" $ e6ecut$rse )$s "strucc o"es de) +roced , e"to h$st$ ))e1$r $ )$ ;)t ,$ "strucc !"8 A) ))e1$r $ )$ "strucc !" se #ue)#e" $ $soc $r )os +$r',etros (or,$)es /ue de#ue)#e" )os resu)t$dos $ )os +$r',etros (or,$)es $soc $dos e" )$ ))$,$d$0 es dec r0 de est$ ,$"er$ $)1u"os de )os +$r',etros re$)es de )$ ))$,$d$ 7$ co"te"dr'" )os resu)t$dos de) +roced , e"to8 P8 H "$),e"te se cede e) co"tro) $ )$ s 1u e"te "strucc !" $ )$ /ue se h$ce )$ ))$,$d$0 +ero te" e"do e" cue"t$ /ue e" est$ "strucc !" 7 e" )$s s 1u e"tes +uedo us$r 7$ )os +$r',etros re$)es e" )os /ue se de#o)# ero" )os resu)t$dos de) +roced , e"to +$r$ tr$*$6$r co" e))os8 Proced , e"to , t$d <"u,5e"tero0e"t?s$) M5re$)= I" c o M "u,ZV H " , t$d A)1or t,o c$)cM, t$d V$r N5 e"tero M t5 re$) I" c o Escr * r BI"troduce u" ";,eroC Leer " M t$d <"0, t= Escr * r BL$ , t$d esC, t

41

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

(" 4. @M3ITOS# 5ARIA3LES LOCALES Y GLO3ALES# CDu= '" 'l L,0it! &' u$ i&'$ti9i-a&!*E# E) ',* to de u" de"t ( c$dor <#$r $*)es0 co"st$"tes0 (u"c o"es0888= es )$ +$rte de) +ro1r$,$ e" )$ /ue se co"oce 7 +or t$"to se +uede us$r u" de"t ( c$dor8 Se1;" e) ',* to h$7 V t +os de #$r $*)es0 )oc$)es 7 1)o*$)es5 F8 Loc$)5 A/ue))$ /ue est' dec)$r$d$ 7 de( " d$ de"tro de u" su*+ro1r$,$ )ue1o su ',* to co "c d r' co" e) ',* to de) su*+ro1r$,$ e" )$ /ue este de( " d$8 Esto /u ere dec r /ue )$ #$r $*)e "o t e"e " "1;" s 1" ( c$do0 "o se co"oce 7 "o se +uede $cceder $ e))$ desde (uer$ de) su*+ro1r$,$ 7 /ue t e"e u"$ +os c !" de ,e,or $ d st "t$ $ )$ de cu$)/u er otr$0 "c)uso s es de u"$ #$r $*)e /ue t e"e e) , s,o "o,*re +ero /ue est' de( " d$ (uer$ de) su*+ro1r$,$8 L$s #$r $*)es )oc$)es $ u" su*+ro1r$,$ se de( "e" e" )$ +$rte de )$ de( " c !" de #$r $*)es de) , s,o8 Los +$r',etros (or,$)es /ue se )e +o"e" $ u" su*+ro1r$,$ se co,+ort$" de"tro de 9) co,o s (uer$" t$,* 9" #$r $*)es )oc$)es $ 9)8 V8 &)o*$)es5 So" )$s /ue est'" de( " d$s $ " #e) de) +ro1r$,$0 es dec r0 su ',* to es e) +ro1r$,$ o $)1or t,o +r "c +$) 7 todos )os su*+ro1r$,$s /ue #$" 6u"to co" 9)8 A est$ #$r $*)e +ode,os $cceder desde cu$)/u er$ de )os su*+ro1r$,$s 7 e) +ro1r$,$ +r "c +$)0 s$)#o /ue $)1u"o de esos su*+ro1r$,$s te"1$ de( " d$ u"$ #$r $*)e )oc$) co" e) , s,o "o,*re /ue )$ #$r $*)e 1)o*$)0 e" este c$so s ut ) .o e) "o,*re de es$ #$r $*)e ,e re(er r9 $ )$ )oc$)0 "u"c$ $ )$ 1)o*$)<7$ /ue t e"e" V .o"$s de ,e,or $ d st "t$s=8 Lu(a* '$ 'l Iu' "' &'9i$'$ la" a*ia0l'" (l!0al'"# E" $)1u"os )e"1u$6es se de( "e e" e) +ro1r$,$ +r "c +$)0 7 es$ #$r $*)e ser' 1)o*$)0 e" otros )e"1u$6es se de( "e" (uer$ de) +ro1r$,$ +r "c +$) 7 (uer$ de cu$)/u er otro su*+ro1r$,$ <$"tes de e,+e.$r e) +ro1r$,$ +r "c +$)=8 M9todo /ue #$,os $ us$r8 E) +ro*)e,$ de us$r #$r $*)es 1)o*$)es es /ue co,o todos )os su*+ro1r$,$s )$s +uede" ,od ( c$r0 +uede ser +os *)e /ue h$7$ usos "de* dos cu$"do u" su*+ro1r$,$ ut ) .$ u"$ #$r $*)e 1)o*$) s " s$*er /ue otro )$ h$ ,od ( c$do0 +or es$ r$.!" "u"c$ us$re,os +$r$ +$s$r "(or,$c !" e"tre )os su*+ro1r$,$s #$r $*)es 1)o*$)es0 s "o /ue us$re,os #$r $*)es de e"tr$d$?s$) d$0 s$)#o /ue "o "os /uede ,'s re,ed o8 P*!-'&i,i'$t!" a$i&a&!"# L$ $" d$c !" de +roced , e"tos "o se +er, te e" todos )os )e"1u$6es 7 co"s ste e" /ue de"tro de u" +roced , e"to +od$,os de( " r o ,eter e) c!d 1o de otros8 S )$ $" d$c !" de +roced , e"tos est' +er, t d$0 se +)$"te$" ,'s +ro*)e,$s e" cu$"to $) ',* to0 desde este +u"to de # st$0 se d ce /ue u"$ #$r $*)e )oc$) se co"oce e" e) +roced , e"to e" e) /ue est' de( " d$ 7 e" todos )os +roced , e"tos $" d$dos $ 9) /ue so" )os /ue co,+o"e" e) ',* to de d cho +roced , e"to0 s$)#o /ue e" $)1u"o de esos +roced , e"tos $" d$dos este de( " d$ u"$ #$r $*)e )oc$) co" e) , s,o "o,*re e" cu7o c$so de"tro de ese +roced , e"to s e,+re

42

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

"os re(er re,os $ )$ #$r $*)e )oc$) de( " d$ e" 9) +or/ue s e,+re se co"s der$ e) ',* to ,'s restr "1 do8 PP V$r A0B PF A0C0D PV A PP D0E PR D0H PQ PS H0A

A de) PP B de) PP A de) PF C de) PF D de) PF A de) PV D de) PP E de) PP D de) PR H de) PR H de) PS A de) PS

VARIABLES

JMBIKO SUBPRO&RAMA PR0PQ PF0PV0PP0PR0PQ0PS PF0PP PF0PV0PP PF0PV0PP PV PP PP PR0PQ0PS PR0PQ PS PS

.. COMUNICACIN PAR@METROS.

ENTRE

SU3PROGRAMAS#

PASO

DE

L$ ,e6or (or,$ +$r$ ))e#$r $ c$*o )$ co,u" c$c !" e"te su*+ro1r$,$s0 es e) +$so de +$r',etros8 Kr$t$re,os de e# t$r s e,+re /ue se$ +os *)e e) uso de #$r $*)es 1)o*$)es8 Cu$"do ))$,$,os $ u"$ (u"c !" o +roced , e"to0 )e +$s$,os $ tr$#9s de )os +$r',etros )$ "(or,$c !" /ue "eces t$0 7 e" e) c$so de u" +roced , e"to t$,* 9" de#o)#e,os $ tr$#9s de sus +$r',etros )os resu)t$dos8 P$r$ e))o de( " re,os e) t +o de) +$r',etro $ +r "c + o de) su*+ro1r$,$0 /ue es )o /ue co"oce,os co,o +$r',etros (or,$)es0 7 $) h$cer )$ ))$,$d$ +$s$,os )$ "(or,$c !" $ tr$#9s de )os +$r',etros re$)es8 CC:,! "' '9'-tJa la -!**'"%!$&'$-ia '$t*' %a*L,'t*!" 9!*,al'" K *'al'"E# EA ste" V ,9todos5 F8 Corres+o"de"c $ +os c o"$)5 E" este c$so se e,+$re6$" )os +$r',etros (or,$)es 7 re$)es +or )$ +os c !" /ue ocu+$" <orde" de dec)$r$c !"= 7 de ./u erd$ $ derech$8 P$r$ /ue se
43

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

+ued$ re$) .$r est$ $soc $c !"0 t e"e /ue h$*er e) , s,o ";,ero de +$r',etros (or,$)es 7 re$)es0 7 co" e) , s,o t +o8 H <A5e"tero075re$)= V$r $5re$) H <P0A= V8 Corres+o"de"c $ +or "o,*re ,+)3c to5 Ahor$ e" )$ ))$,$d$ $) su*+ro1r$,$ se +o"e eA+)3c t$,e"te $ /ue +$r',etro (or,$) corres+o"de c$d$ re$)8 Ahor$ e" )$ ))$,$d$ +o"e,os e) "o,*re de) +$r',etro (or,$)0 se+$r$do +or dos +u"tos <5= 7 e) "o,*re de) +$r',etro re$) /ue )e +$s$,os0 co" )o cu$) 7$ "o ,+ort$ )$ +os c !" e" )$ /ue co)o/ue,os )$ "(or,$c !"8 H <A5P075A= H <75A0A5P= U" )e"1u$6e /ue +er, te esto es ADA8 Us$re,os s e,+re e) +r ,er ,9todo <+os c o"$)=8 Pa"! &' %a*L,'t*!"# De) ,odo de +$so de +$r',etros #$ $ de+e"der e) resu)t$do /ue se o*te"1$8 1. Ti%!" &' %a*L,'t*!"# Se1;" se use" +$r$ ,eter d$tos o +$r$ o*te"er resu)t$dos8 EA ste" P t +os5 F8 De e"tr$d$5 So" +$r',etros /ue so)o $+ort$" "(or,$c !" de e"tr$d$ $) su*+ro1$,$ e" e) /ue +erte"ece" co,o +$r',etros8 A+ort$ e) #$)or /ue t e"e" co,o e"tr$d$ $) su*+ro1r$,$8 E" e) c$so de u"$ (u"c !"0 todos sus +$r',etros so" de este t +o8 Co,o so)o s r#e" co,o e"tr$d$0 so)o +uede" ser )e3dos0 +ero "o ,od ( c$dos0 7 $u"/ue se ,od ( c$se" de"tro de u" su*+ro1r$,$0 (uer$ "o #$ $ te"er e(ecto es$ ,od ( c$c !"8 V8 De s$) d$5 Se us$" so)o 7 eAc)us #$,e"te +$r$ de#o)#er resu)t$dos $ tr$#9s de e))os8 Su #$)or $) h$cer )$ ))$,$d$ $) su*+ro1r$,$ "o "os ,+ort$0 s "o /ue ese #$)or so)o #$ $ te"er ,+ort$"c $ cu$"do ter, "$ )$ e6ecuc !" de) +ro1r$,$8 U" +$r',etro de este t +o te!r c$,e"te "u"c$ se +uede )eer0 so)o se #$ $ctu$) .$r8 P8 De e"tr$d$ 7 s$) d$5 E) #$)or de) +$r',etro t e"e ,+ort$"c $ t$"to $ )$ e"tr$d$ co,o $ )$ s$) d$ de) su*+ro1r$,$0 "os $+ort$ "(or,$c !" cu$"do ))$,$,os $) su*+ro1r$,$ 7 +or otr$ +$rte de#o)#e,os $ tr$#9s de 9) resu)t$dos cu$"do ter, "$,os e) su*+ro1r$,$0 e" este c$so0 t e"e se"t do t$"to )eer co,o $ctu$) .$r e) +$r',etro8 So)o ADA es u" )e"1u$6e /ue #$ $ so+ort$r )os P t +os de +$so de +$r',etro8 Se +o"e" co,o I"0 Out0 I"?Out8 E) resto de )os )e"1u$6es so)o +er, te" dos t +os de +$r',etros0 de e"tr$d$ <so)o +$r$ )eer d$tos= 7 de e"tr$d$?s$) d$ <+$r$ de#o)#er resu)t$dos0 $u"/ue t$,* 9" se +uede us$r +$r$ )eer d$tos=8

2. M=t!&!" &' %a"! &' %a*L,'t*!"# - P$so de +$r',etros +or co+ $5 - Por #$)or8 - Por resu)t$do8

44

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

- Por #$)or?resu)t$do8 - P$so de +$r',etros +or re(ere"c $8 - P$so de +$r',etros +or "o,*re o "o, "$)8 Pa"! &' %a*L,'t*!" %!* -!%ia# L$ c$r$cter3st c$ (u"d$,e"t$) de este ,9todo de +$so de +$r',etros es /ue e) +$r',etro (or,$) s e,+re se co"s der$ /ue t e"e $soc $d$ u"$ d recc !" de ,e,or $ e" )$ /ue est' $),$ce"$do 7 /ue +or t$"to se co,+ort$ 1u$) /ue u"$ #$r $*)e )oc$) de) su*+ro1r$,$ e" /ue $+$rece8 E" este ,9todo )o /ue ,+ort$ es e) #$)or de) +$r',etro $ctu$)8 1. P!* al!*# Nos "teres$ e) #$)or de) +$r',etro $ctu$) $ )$ e"tr$d$0 +$r$ e))o este #$)or se co+ $ e" )$ d recc !" de ,e,or $ de) +$r',etro (or,$) $soc $do8 E" este c$so e) +$r',etro re$) +uede se u"$ co"st$"te0 eA+res !" o #$r $*)e0 7 "u"c$ se #$ $ us$r +$r$ de#o)#er resu)t$do $ tr$#9s de 9)0 +or es$ r$.!" +rec s$,e"te +uede ser u"$ co"st$"te o u"$ eA+res !"0 +or/ue $) "o de#o)#er resu)t$dos $ tr$#9s de 9) "o "eces t$ to,$r " "1u"$ .o"$ de ,e,or $ e" )$ /ue este $),$ce"$do0 es ,'s0 "c)uso s e) +$r',etro $ctu$) (uer$ u"$ #$r $*)e 7 )$ ,od ( c'se,os de"tro de) su*+ro1r$,$ <$)1o /ue "o de*er3$,os h$cer=0 (uer$ de) su*+ro1r$,$ "o te"dr3$ " "1u"$ re+ercus !" est$ ,od ( c$c !"0 es dec r0 es$ #$r $*)e ser# r3$ #$) e"do )o , s,o e" e) +ro1r$,$ desde e) /ue se h$ce )$ ))$,$d$ des+u9s 7 $"tes de h$cer)$8 E) (u"c o"$, e"to ser3$ e) s 1u e"te5 - A) h$cer )$ ))$,$d$ $) su*+ro1r$,$ se e#$);$ e) #$)or de) +$r',etro re$)0 7 ese es e) /ue se $soc $0 es dec r0 e) /ue se 1u$rd$ o $s 1"$ $) +$r',etro (or,$) $soc $do8 - Co,e".$,os $ e6ecut$r e) su*+ro1r$,$ 7 s +or c$su$) d$d se +roduce $)1;" c$,* o e" e) +$r',etro (or,$)0 e) +$r',etro $ctu$) "o se #er' $(ect$do0 es dec r0 su #$)or se1u r' s e"do e) , s,o e" e) su*+ro1r$,$ desde do"de se ))$,$ /ue $"tes de h$cer )$ ))$,$d$ $) su*+ro1r$,$8 A)1or t,o E6 V$r A5e"tero P S I" c o d de P AP P <A= Escr * r A H" Proced , e"to P<A5e"tero= I" c o d ATV Escr * r A H"+ E) #$)or de A ser3$ P 7 e) de d ser3$ S8 P A de) PP

2. P!* al!*B*'"ulta&!# E" e) #$)or?resu)t$do "os "teres$ e) #$)or de) +$r',etro $ctu$) t$"to $ )$ e"tr$d$ co,o $ )$ s$) d$ de )$ e6ecuc !" de) su*+ro1r$,$8 Esto /u ere dec r /ue se c$,* $ e) #$)or de) +$r',etro (or,$) c$,* $r' t$,* 9" e) #$)or de su +$r',etro re$) $soc $do0 cos$ /ue "o ocurr3$ $"tes0 7 esto su+o"e +or t$"to /ue $hor$ e) +$r',etro

45

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

re$) t e"e /ue te"er $soc $d$ o*) 1$tor $,e"te u"$ d recc !" de ,e,or $0 +or )o /ue s e,+re te"dr' /ue ser u"$ #$r $*)e <"o u"$ co"st$"te " u"$ eA+res !"=8 E) +roceso ser3$ e) s 1u e"te5 ? A) h$cer )$ ))$,$d$ $) su*+ro1r$,$ se e#$);$ e) +$r',etro re$) 7 su #$)or se co+ $ e" e) +$r',etro (or,$) $soc $do 7 $) ter, "$r )$ e6ecuc !" e) #$)or de) +$r',etro (or,$) se #ue)#e $ co+ $r e" e) +$r',etro re$) $soc $do8 A)1or t,o E6 V$r A5e"tero I" c o AP P <A= P S Escr * r A P8Hor,$) H" Proced , e"to P<A5e"tero= I" c o d ATV Escr * r A H"+ E) #$)or de )$ A 7 )$ d ser3$ S8 Se co+ $ P S P8Re$)

Se de#ue)#e

3. P!* *'"ulta&!# Nos "teres$ e) #$)or de) +$r',etro re$) so)$,e"te $ )$ s$) d$ o ( " de )$ e6ecuc !" de) su*+ro1r$,$ e" /ue $+$rece8 Esto s 1" ( c$ /ue $) h$cer )$ ))$,$d$ "o se co+ $ e) #$)or de) +$r',etro re$) e" e) +$r',etro (or,$) $soc $do0 s " e,*$r1o $ )$ s$) d$ se co+ $ e) #$)or de) +$r',etro (or,$) e" )$ d recc !" de) +$r',etro re$) $soc $do0 esto s 1" ( c$ +or t$"to0 /ue e) +$r',etro re$) t e"e /ue te"er $soc $d$ u"$ eA+res !" /ue t e"e /ue ser u"$ #$r $*)e <"o +uede ser u"$ co"st$"te o u"$ eA+res !"=8

A)1or t,o e6 V$r A5e"tero I" c o A P P8Hor,$) P <A= Escr * r A H" Proced , e"to P<A5e"tero= s$) d$ I" c o dF d ATV Escr * r A H"+ E) #$)or de A 7 de d es V8

No se co+ $ P8Re$)

Se co+ $ $ )$

46

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E" )$ +r'ct c$ )$ ,$7or +$rte de )os )e"1u$6es de"tro de) t +o de +$so de +$r',etro +or co+ $ so)o #$" $ so+ort$r e) t +o de +$so de +$r',etro +or #$)or0 /ue se us$r' cu$"do u" +$r',etro so)o )o /u ero ut ) .$r co,o e"tr$d$ de "(or,$c !" $) su*+ro1r$,$0 +ero "o +$r$ de#o)#er resu)t$dos $ tr$#9s de 9)8 Los otros dos t +os de +$so de +$r',etros +or co+ $ <+or #$)or 7 +or #$)or?resu)t$do=0 "o se ,+)e,e"t$" "or,$),e"te +or/ue )os e(ectos so" +r'ct c$,e"te 1u$)es /ue e) +$so de +$r',etros +or re(ere"c $0 es dec r0 cu$"do /u ero us$r u" +$r',etro "o so)o +$r$ +$s$r "(or,$c !" $ tr$#9s de 9) s "o t$,* 9" +$r$ de#o)#er resu)t$dos o s )o #o7 $ us$r s!)o +$r$ de#o)#er resu)t$dos0 ut ) .$r9 e) +$so de +$r',etros +or re(ere"c $ /ue #$,os $ #er $ co"t "u$c !"8 P$r$ s ,*o) .$r /ue e) t +o de +$so de +$r',etros es +or #$)or0 e" )$ de( " c !" de) su*+ro1r$,$ "o +o"1o " "1;" t +o de +$so de +$r',etros +$r$ ese +$r',etro0 es dec r0 "o +o"er " "1;" t +o s 1" ( c$ /ue +or de(ecto e) t +o de +$so de +$r',etros es +or #$)or8 E" e) c$so de )$s (u"c o"es co,o so)$,e"te +uede" rec * r "(or,$c !" de e"tr$d$ +ero "u"c$ +uede" de#o)#er "(or,$c !" +or sus +$r',etros 7$ /ue )o de#ue)#e" $ tr$#9s de )$ se"te"c $ retor"o 7 $soc $do $ su "o,*re8 E) t +o de +$so de sus +$r',etros #$ $ ser s e,+re +or #$)or8 Pa"! &' %a*L,'t*!" %!* *'9'*'$-ia# Ahor$ )$ c$r$cter3st c$ +r "c +$) de este t +o de +$so de +$r',etros es /ue e) +$r',etro (or,$) #$ $ te"er t$,* 9" $s 1"$d$ u"$ d recc !" de ,e,or $ e" )$ /ue se $),$ce"$0 +ero e" es$ d recc !" NO SE GUARDA SU 5ALOR0 s "o /ue se $),$ce"$ )$ d recc !" de su +$r',etro re$) $soc $do0 es dec r0 e) +$r',etro (or,$) $+u"t$ $) +$r',etro re$) /ue t e"e $soc $do 7 cu$)/u er ,od ( c$c !" /ue se e(ect;e so*re e) +$r',etro (or,$) te"dr' u"$ re+ercus !" d rect$ e" e) +$r',etro re$) $soc $do 7$ /ue )o /ue ,od ( c$r' ser' e) #$)or $),$ce"$do e" )$ d recc !" /ue "d c$ e) +$r',etro (or,$) /ue es )$ de su +$r',etro (or,$) $soc $do8 E) +roceso ser' +or t$"to e) s 1u e"te5 - A) h$cer )$ ))$,$d$ $) +roced , e"to e" e) +$r',etro (or,$) /ue se +$s$ +or re(ere"c $0 se #$ $ 1u$rd$r )$ d recc !" de) +$r',etro re$) $soc $do +$r$ /ue $+u"te $ 9)8 - Dur$"te )$ e6ecuc !" cu$)/u er re(ere"c $ $) +$r',etro (or,$) se h$r' $cced e"do $ )$ d recc !" $+u"t$d$ +or d cho +$r',etro0 es dec r0 $cced e"do d rect$,e"te $) +$r',etro re$) $soc $do0 +or )o /ue cu$)/u er c$,* o e" e) +$r',etro (or,$) $(ect$r' d rect$,e"te $) +$r',etro re$) $soc $do8 De est$ ,$"er$ h$*re,os +$s$do e) resu)t$do8 P$r$ "d c$r /ue e) t +o de +$so de +$r',etro es +or re(ere"c $0 #$,os $ ut ) .$r )$ +$)$*r$ c)$#e e"t?s$) +reced e"do $) +$r',etro /ue se +$s$ +or re(ere"c $8 A estos +$r',etros t$,* 9" se )es ))$,$ +$r',etros #$r $*)es <+or/ue su #$)or #$r3$=0 +or eso e" P$sc$) se us$ )$ +$)$*r$ c)$#e V$r +$r$ "d c$r)o8 E" otros )e"1u$6es co,o C0 se us$" co,o +$r',etros +u"teros +$r$ "d c$r /ue so" d recc o"es8 A)1or t,o E@ V$r A $+u"t$ I" c o AP

47

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

PF<A= d recc !" A Escr * r <A= H" d de) PF Proced , e"to PF<e"t?s$) A5e"tero= I" c o d ATV H " PF Por #$)or e) +$r',etro $ctu$) "o c$,* $ de #$)or8 Por re(ere"c $ e) +$r',etro $ctu$) +uede c$,* $r8

P A de) PP

Pa"! &' %a*L,'t*!" %!* $!,0*'# E" este c$so0 e) +$r',etro (or,$) se sust tu7e ) ter$),e"te +or e) +$r',etro $ctu$) $soc $do8 Est$ sust tuc !" ) ter$) de) +$r',etro (or,$) +or e) +$r',etro $ctu$) "o se +roduce h$st$ /ue "o se us$ e) +$r',etro (or,$)8 L$ #e"t$6$ es /ue s "o us$,os e" " "1;" ,o,e"to e) +$r',etro (or,$) de"tro de) su*+ro1r$,$ ))$,$do <cos$ +oco +ro*$*)e=0 "o se te"dr' /ue h$cer " "1;" t +o de su*st tuc !"8 Pero e) 1r$" "co"#e" e"te es /ue s se us$ e) +$r',etro (or,$)0 h$7 /ue r $ *usc$r e" ese ,o,e"to )$ eA+res !" de) +$r',etro re$) $soc $do8 E) +$so de +$r',etro +or "o,*re es )o /ue se +$rece ,'s $ )$ su*st tuc !" de +$r',etros e" u"$ (u"c !" ,$te,'t c$8 H <A=E AXV H <$XF= E $XFTV H <A=E AXV H <$XF=E $ XF 2 MN <$XF=TV A)1or t,o E@ V$r A5 e"tero I" c o AP PF<AXF= Escr * r <A= H" Proced , e"to PF<e"t?s$) A5 e"tero= I" c o d ATV H " PF A) ( "$) so)o #$,os $ us$r V t +os de +$so de +$r',etros0 /ue so" )os /ue us$" c$s todos )os )e"1u$6es5 Por #$)or 7 +or re(ere"c $8 Por #$)or5 So)o )o us$,os cu$"do u" +$r',etro so)o s r#e +$r$ "(or,$c !" de e"tr$d$0 "o de#o)#e,os "$d$ co" 9)8 Por eso este +$so +uede ser u"$ co"st$"te0 #$r $*)e o eA+res !"8 P$r$ s ,*o) .$r)o e" )$ dec)$r$c !" de #$r $*)es "o +o"e,os "$d$8 Por re(ere"c $5 Lo us$,os cu$"do u" +$r',etro )o us$,os co,o e"tr$d$ de "(or,$c !" 7 co,o s$) d$ o so)o co,o s$) d$8 Por est$ r$.!" $hor$ s3 /ue se #$ $ #$r $r e) +$r',etro (or,$) 7 +or )o t$"to "o +ode,os us$r co"st$"tes " eA+res o"es0 so)o #$r $*)es8 Lo s ,*o) .$,os co" )$ +$)$*r$ e"t?s$)8 1. FUNCIONES Y PROCEDIMIENTOS COMO PAR@METROS#

48

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E" )$ ,$7or +$rte de )os )e"1u$6es se +er, te t$,* 9" /ue u"$ (u"c !" o +roced , e"to +ued$ ser +$s$do co,o +$r',etro de otro su*+ro1r$,$8 E" este c$so0 es dec r0 cu$"do e) +$r',etro (or,$) es de t +o (u"c !" o +roced , e"to0 +$s$re,os co,o +$r',etro re$) (u"c o"es o +roced , e"tos /ue te"1$" )$ , s,$ de( " c !" /ue e) /ue he,os +uesto co,o +$r',etro (or,$)0 7 e" "uestro c$so +$r$ "d c$r /ue se +$s$ co,o +$r',etro re$) u"$ (u"c !" o +roced , e"to0 *$st$ co" +o"er su "o,*re8 Desde e) su*+ro1r$,$ $) /ue se +$s$ co,o +$r',etro es$ (u"c !" o +roced , e"to +ode,os ))$,$r e" cu$)/u er ,o,e"to $ es$ (u"c !" +$s$d$ co,o +$r',etro /ue e" c$d$ ,o,e"to +odr' ser u"$ d st "t$ de+e"d e"do de) +$r',etro (or,$) $soc $do8 Hu"c o" \"o,*reM(D <+$r5t +o-(u"c o" \"M(D<A5e"tero075c$r'cter=5e"tero Proded , e"to \"o,*reM(D +roced , e"to <A5t +o0888=-888 A)1or t,o E@ V$r #F0#V5 e"tero I" c o VF F VV V P<#F0(F0#V= P<#F0(V0#V= H" Proced , e"to P<A5e"tero-(u"c o" H<A5e"tero-B5c$r'cter=5e"tero-e"t? s$) 75e"tero= I" c o dV Y H<A0O$O= H"P Hu"c o" HF<A5e"tero-75c$r'cter=5e"tero I" c o Escr * r 7 Retor"o <AXF= H" Hu"c o" HV<A5e"tero-B5c$r'cter=5e"tero I" c o Escr * r BHo)$C B Retor"o A H " HV E) +$so de (u"c o"es 7 +roced , e"tos co,o +$r',etros0 "os #$ $ +er, t r /ue desde u" su*+ro1r$,$ +od$,os ))$,$r $ otros0 +ero te" e"do e" cue"t$ /ue e) su*+ro1r$,$ ))$,$do "o #$ $ ser u"o deter, "$do0 s "o /ue #$ $ de+e"der e" c$d$ ,o,e"to de) su*+ro1r$,$ +$s$do co,o +$r',etro re$)0 de est$ ,$"er$ e) su*+ro1r$,$ +uede ))$,$r $ u" co"6u"to de " su*+ro1r$,$s /ue cu,+)$" u"$s deter, "$d$s c$r$cter3st c$s0 +ero so)o u"o e" c$d$ ,o,e"to8 No h$7 /ue co"(u"d r e) +$so de u"$ (u"c !" co,o +$r',etro co" )$ ))$,$d$ $ u"$ (u"c !" cu$"do $+$rece co,o +$r',etro re$) e" )$ ))$,$d$ $ u" su*+ro1r$,$8 P$r$ d (ere"c $r)o0 cu$"do +$so u"$ (u"c !" co,o +$r',etro so)o +o"dr9 su "o,*re0 e" c$,* o cu$"do ))$,o $ u"$ (u"c !" +$r$ +$s$r e) #$)or /ue de#ue)#e co,o +$r',etro +o"dr9 e) "o,*re de )$ (u"c !" 7 co" sus $r1u,e"tos +$r$ "d c$r /ue $h3 se +uede h$cer )$ ))$,$d$8 Esto se +uede h$cer +or/ue )$

4#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

))$,$d$ $ u"$ (u"c !" +uede $+$recer e" cu$)/u er eA+res !" e" )$ /ue $+$rec ese cu$)/u er #$)or de) t +o de d$tos /ue de#ue)#e8 Proced , e"to P<A5e"tero= I" c o Escr * r A H"P Hu"c o" H<A5e"tero=5e"tero I" c o Retor"o <ATV= H"H A)1or t,o E@ V$r I I" c o IV P<H<I== Esto "o es +$s$r u"$ (u"c !" co,o +$r',etro H" 4. EFECTOS LATERALES# U" e(ecto )$ter$) es cu$)/u er ,od ( c$c !" /ue u" su*+ro1r$,$ <se$ (u"c !" o +roced , e"to=0 re$) .$ e" e)e,e"tos s tu$dos (uer$ de 9) +ero s " h$cer es$s ,od ( c$c o"es $ tr$#9s de) +$so de +$r',etros8 Los e(ectos )$ter$)es s e,+re h$7 /ue e# t$r)os +or/ue "o so,os co"sc e"tes o "o co"tro)$,os /ue se h$" +roduc do8 P$r$ re$) .$r co,u" c$c !" e"tre su*+ro1r$,$s so)o se h$r' $ tr$#9s de) +$so de +$r',etro +$r$ e# t$r )os e(ectos )$ter$)es8 Los e(ectos )$ter$)es "or,$),e"te se +roduce" +or e) uso de #$r $*)es 1)o*$)es o #$r $*)es )oc$)es /ue $*$rc$" #$r os +roced , e"tos <esto so)o es +os *)e s h$7 $" d$c !" de su*+ro1r$,$s=8 Por )o t$"to e# t$re,os su uso eAce+to /ue se$ ,+resc "d *)e8 V$r A5e"tero A)1or t,o E@ V$r B5e"tero I" c o BF AV P<B= Escr * r A H" Proced , e"to P<A5e"tero= I" c o A AXV H"P 6. RECURSI5IDAD# Se d ce /ue u" su*+ro1r$,$ es recurs #o cu$"do se ))$,$ $ s3 , s,o8 L$ recurs # d$d se #$ $ +oder us$r e" su*+ro1r$,$s /ue +uede" de( " rse e" t9r, "os recurs #os0 es dec r0 e" ter, "o de s3 , s,o0 co,o +rocesos de $)1u"$ ,$"er$ re+et t #os8 L$ recurs # d$d tr$t$re,os de e# t$r)$ s e,+re /ue se$ +os *)e0 es dec r0 s e,+re /ue )o , s,o se +ued$ so)uc o"$r co" u" *uc)e0 7$ /ue c$d$ #e. /ue u" su*+ro1r$,$ se ))$,$ $ s3 , s,o h$7 /ue $),$ce"$r e" )$ + )$ de) s ste,$ )$ d recc !" de retor"o de ese su*+ro1r$,$0 co" )o cu$) s h$ce,os ,uch$s ))$,$d$s

5$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

recurs #$,e"te re,os ))e"$"do )$ + )$ de) s ste,$0 7 se des*ord$r$ $c$*$"do co" )$ ,e,or $8 Kodo +ro1r$,$ recurs #o t e"e /ue te"er $)1u"$ co"d c !" /ue +o"1$ ( " $ )$ recurs # d$d0 es dec r0 /ue e) +ro1r$,$ de6e de ))$,$rse $ s3 , s,o cu$"do se cu,+)$ )$ co"d c !"0 s "o se (or,$r3$ u" *uc)e "( " to8 Hu"c o" +ote"c $ <*$se5e"tero-eA+5e"tero=5re$) V$r P5re$) I5e"tero I" c o P F Desde EF h$st$ eA+ P PT*$se H " desde Retor"o P H" Hu"c o" +ote"c $ <*$se5e"tero-eA+5e"tero=5re$) I" c o S eA+EW e"to"ces retor"o F S "o Retor"o <*$seT+ote"c $<*$se0eA+?F= H " +ote"c $ ! R"I"IO#: $ %A F8 I,+)e,e"t$r u" su*+ro1r$,$ /ue re$) ce )$ ser e de H *o"$cc 0 /ue es5 H *o"$cc <F=E H *o"$cc <V=EF N D V H *o"$cc <"=E H *o"$cc <"?F= X H *o"$cc <"?V= A)1or t,o ser eM( *o"$cc V$r I0 "5 e"tero I" c o Escr * r BI"troduce u" ";,eroC Leer " Desde EF h$st$ " Escr * r BL$ ser e de ( *o"$cc de B C es B( *o"$cc < = H " desde H" Hu"c o" ( *o"$cc <"u,5 e"tero=5 e"tero I" c o S <"u,EF= o <"u,EV= E"to"ces retor"o F S "o Retor"o <( *o"$cc <"u,?F= X ( *o"$cc <"u,?V= H"s H " ( *o"$cc V8 I,+)e,e"t$r u" su*+ro1r$,$ $) /ue +$s'"do)e co,o +$r',etros V #$)ores e"teros M 7 N0 ,e c$)cu)e e) co,* "$tor o A)1or t,o co,* "$tor o V$r
51

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

M0"5 e"tero I" c o Re+et r Escr * r BI"troduce e) #$)or de M 7 NC Leer ,0" H$st$ , D" Escr * r BE) co,* "$tor o es B($ctor $) <,= d # <($ctor $)<"=T($ctor $)<,?"== H" Hu"c o" ($ctor $) <"u,5 e"tero=5 re$) I" c o S "u,EW E"to"ces retor"o F S "o Retor"o <"u, T ($ctor $) <"u,?F== H"s H " ($ctor $) P8 I,+)e,e"t$r u" su*+ro1r$,$ /ue ,e h$))e cu$) es )$ +r ,er$ +ote"c $ e" *$se V ,$7or /ue u" ";,ero /ue +$s$,os co,o +$r',etro0 de#o)# e"do e) #$)or de d ch$ +ote"c $ 7 e) eA+o"e"te $) /ue est' e)e#$do8 A)1or t,o e)e#$r V$r Nu,ero0 res+F0 res+V5 e"tero I" c o Escr * r BI"troduce u" ";,eroC Leer "u,ero Co,+rue*$ <"u,ero0 res+F0 res+V= Escr * r BVUCres+FCECres+VC DC"u,ero H" Proced , e"to co,+rue*$ <"u,5 e"tero- e"t?s$) "5 e"tero- e"t?s$) +ot5 e"tero= I" c o N F M e"tr$s +ot \ " Pot +ot TV N "XF H " , e"tr$s H " co,+rue*$ R8 I,+)e,e"t$r u" su*+ro1r$,$ /ue c$)cu)e recurs #$,e"te e" cu$"to se co"# erte u" c$+ t$) C $) ( "$) de N $:os 7 $ u" "ter9s I8 Hu"c o" c$)cu)o <c5 e"tero- 5 e"tero- "5 e"tero=5 re$) I" c o S ,EW E"to"ces retor"o C S "o Retor"o <cT<FX ZFWW=Xc$)cu)o <c0 0"?F= H"s H " c$)cu)o

52

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Q8 C$)cu)$r e) +r ,er t9r, "o de )$ s 1u e"te ser e /ue se$ ,$7or o 1u$) $ u" #$)or V /ue se )e +$s$ co,o +$r',etro 7 ,e de#ue)#$ e) )u1$r /ue ocu+$ e" )$ ser e 7 e) #$)or8 A EW A"E"X<A"?F=f Hu"c o" ($ctor $) <"u,5 e"tero=5 e"tero V$r I0 $cu,5 e"tero I" c o Acu, F Desde EF h$st$ "u, Acu, $cu, T H " desde Retor"o $cu, H " ($ctor $) Proced , e"to ser e <#5 e"tero- e"t?s$) $"5 e"tero- e"t?s$) "5 e"tero= V$r AF5 e"tero I" c o AF W A" W NF M e"tr$s $" \E V N "XF A" " X ($ctor $) <$F= AF $" H " , e"tr$s H " ser e S8 C$)cu)$r e) #$)or de )$ ser e do"de N es u" #$)or /ue se +$s$ co,o +$r',etro $) su*+ro1r$,$ /ue h$ce e) c')cu)o8
# 1 1 1 + 1 2 0 1 =$ 1 =$ # Hu"c o" su,$ <"5 e"tero=5 re$) V$r I0 65 e"tero d0 70 $cu,F0 $cu,V0 su,$F0 su,$V5 re$) I" c o Acu,F W Acu, V W Desde EW h$st$ " d FZ" Acu,F $cu,F X A H " desde Desde 6EW h$st$ "?F Y F X T$cu,F X 7 H " desde Retor"o $cu,V H " su,$ [8 2]u9 se escr *e e" +$"t$))$ tr$s )$ s 1u e"te e6ecuc !"4 A)1or t,o E@ V$r A0B0C5 e"tero I" c o # 1

53

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

AF BV C AXP PF <A0 B?C0 C= C C e H<A= PV <A0C= PF <C0 B0 A= Escr * r A0 B0 C H" Proced , e"to PF <e"t?s$) A5 e"tero- 75 e"tero- e"t?s$) .5 e"tero= I" c o d 7 X. Y A XF Z7TV H " PF Proced , e"to PV <e"t?s$) A5 e"tero- 75 e"tero= I" c o d A XF e7 YP H " PV Hu"c o" H <A5 e"tero=5 e"tero I" c o dAXP Retor"o <A e F= H"H L$ so)uc !" es AEG- BEV- CEP

54

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 1
ESTRUCTURAS DE DATOS# ARRAYS
1. INTRODUCCIN A LAS ESTRUCTURAS DE DATOS# C)$s ( c$c !" de )os t +os de d$tos se1;" su estructur$5 ? S ,+)es5 ? Est'"d$r <e"tero0 re$)0 c$r'cter0 *oo)e$"o= ? No est'"d$r <e"u,er$c !"0 su*r$"1o= ? Estructur$dos5 ? Est't cos <$rr$7s0 c$de"$0 re1 stros0 ( cheros0 co"6u"tos= P )$s ? D "', cos <+u"teros0 ) st$s e")$.$d$s0 'r*o)es0 1r$(os= Co)$s Los t +os s ,+)es so" cu$"do c$d$ d$to re+rese"t$ u" ;" co e)e,e"to5 ? Est'"d$r5 Est'" de( " dos +or de(ecto +or e) )e"1u$6e8 ? No est'"d$r5 K +os s ,+)es de( " dos +or e) usu$r o8 Los t +os de d$tos estructur$dos0 so" cu'"do u" d$to es u"$ estructur$ /ue se co"stru7e" $ +$rt r de otros co,+)e,e"tos8 - Est't cos5 Ocu+$" u" t$,$:o de ,e,or $ ( 6o0 /ue te"1o /ue de( " r $"tes de dec)$r$r)o8 - D "', cos5 L$ estructur$ "o ocu+$ u" t$,$:o ( 6o de ,e,or $0 s "o /ue ocu+$ )$ ,e,or $ /ue ocu+$ e" c$d$ ,o,e"to8 Se #$" $ ,$"e6$r $ tr$#9s de) t +o de d$to +u"tero8 Pu"tero5 Es u"$ #$r $*)e cu7o co"te" do es u"$ d recc !" de ,e,or $ 7 es$ d recc !" de ,e,or $ corres+o"de $ )$ d recc !" de ,e,or $ de otr$ #$r $*)e0 /ue es )$ #$r $*)e $+u"t$d$8 Se1;" e) t +o de d$tos de )$ #$r $*)e $+u"t$d$ #$r $r' e) t +o de +u"tero8 A tr$#9s de u"$ #$r $*)e de t +o +u"tero +ode,os est$*)ecer )$ co"eA !" o e")$ce e"tre )os e)e,e"tos /ue #$" $ (or,$r )$ estructur$0 7 se1;" se re$) .$" estos e")$ces #$,os $ te"er d (ere"tes t +os de estructur$s <) st$s e")$.$d$s0 'r*o)es0 1r$(os=8 L$s + )$s 7 )$s co)$s so" V estructur$s de d$tos co" u" (u"c o"$, e"to es+ec $)0 /ue +uede" ,+)e,e"t$rse co" ,e,or $ est't c$ o d "', c$8 2. ARRAYS UNIDIMENSIONALES# 5ECTORES. U" $rr$7 u" d ,e"s o"$)0 o ) "e$)0 o #ector0 es u" co"6u"to ( " to 7 orde"$do de e)e,e"tos ho,o19"eos8 Es ( " to +or/ue t e"e u" ";,ero deter, "$do de e)e,e"tos8 Ho,o19"eo +or/ue todos )os e)e,e"tos $),$ce"$dos #$" $ ser de) , s,o t +o8 Orde"$do +or/ue #$,os $ +oder $cceder $ c$d$ e)e,e"to de) $rr$7 de ,$"er$ "de+e"d e"te +or/ue #$ $ h$*er u"$ (or,$ de re(ere"c $r c$d$ e)e,e"to8 P$r$ re(ere"c $r c$d$ e)e,e"to de u" $rr$7 #$,os $ us$r 3"d ces <#$)or /ue d rect$ o "d rect$,e"te re(ere"c $ )$ +os c !" de) $rr$7=8 Los 3"d ces t e"e" /ue ser de cu$)/u er t +o de d$tos esc$)$r <e"tre )os /ue se +uede de( " r u" orde"0 7 /ue e"tre V e)e,e"tos co"secut #os "o +uede h$*er "( " tos e)e,e"tos=0 $u"/ue "or,$),e"te co,o 3"d ces se #$" $ ut ) .$r ";,eros e"teros8

55

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

P$r$ re(ere"c $r u" e)e,e"to de u" $rr$7 us$re,os e) "o,*re de) $rr$7 7 e"tre corchetes a b e) 3"d ce /ue deter, "$ )$ +os c !" de ese e)e,e"to e" e) $rr$78 E) r$"1o o )o"1 tud de u" #ector o $rr$7 ) "e$) es )$ d (ere"c $ e"tre e) 3"d ce de #$)or ,'A ,o 7 e) 3"d ce de #$)or ,3" ,o de ese $rr$7 X F8 Nor,$),e"te )os 3"d ces co, e".$" $ e"u,er$rse0 es dec r0 e) #$)or ,3" ,o de) 3"d ce es W ! F0 de+e"d e"do de) )e"1u$6e <e" P$sc$) co" F 7 e" C co" W=8

S " e,*$r1o "$d e ,+ de /ue co, e"ce" e" cu$)/u er otro #$)or8 Los $rr$7s se $),$ce"$" s e,+re e" +os c o"es co"secut #$s de ,e,or $ 7 +ode,os $cceder $ c$d$ e)e,e"to de) $rr$7 de ,$"er$ "de+e"d e"te $ tr$#9s de )os 3"d ces8 U" 3"d ce "o t e"e +or/ue ser u" #$)or co"st$"te0 s "o /ue +uede ser t$,* 9" u"$ #$r $*)e o u"$ eA+res !" /ue $) ser e#$)u$d$ de#ue)#$ ese 3"d ce8 A )$ hor$ de de( " r u" $rr$7 s e,+re h$*r' /ue d$r e) "o,*re de) $rr$70 e) r$"1o de sus 3"d ces 7 e) t +o de )os d$tos /ue co"t e"e0 7 +$r$ h$cer es$ dec)$r$c !"0 se ut ) .$ )$ s 1u e"te "o,e"c)$tur$8 \"o,M$rr$7D5 $rr$7 aLI 88 LSb de \t +oD sue)do5 $rr$7 aF 88 Gb de re$) sue)do5 $rr$7 aFLLW 88 FLL[b de re$) sue)do aFLLVb FWWWWW I5 e"tero I FLLV Sue)do aIb Sue)do aIXVb 3. OPERACIONES CON ARRAYS UNIDIMENSIONALES 5ECTORES# F8 As 1"$c !" de u" d$to $ u"$ +os c !" co"cret$ de) $rr$75 \"o,M$rr$7Da "d ceb #$)or F V P R Q Ve"t$s aPb GWWWWW S [ G L FW FF O

FV

V8 Lectur$ 7 escr tur$ de d$tos5 )eer \"o,M$rr$7Da "d ceb escr * r \"o,M$rr$7Da "d ceb desde EF h$st$ FV escr * r BI"troduce )$s #e"t$s de) ,esC )eer #e"t$s a b ( " desde desde EF h$st$ FV escr * r BVe"t$s de) ,esC CEC#e"t$s a b ( " desde P8 Recorr do o $cceso secue"c $) de u" $rr$75 ? Co"s ste e" +$s$r +or tod$s )$s +os c o"es de) $rr$7 +$r$ +roces$r su "(or,$c !"8 Desde EF h$st$ FV Ve"t$s a b #e"t$s a b X FWWWWWW H " desde R8 Actu$) .$c !" de u" $rr$75
56

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

F`= A:$d r d$tos5 Es u" c$so es+ec $) de )$ o+er$c !" de "sercc !" de u" e)e,e"to e" u" $rr$70 +ero e) e)e,e"to )o ,ete,os des+u9s de )$ ;)t ,$ +os c !" /ue co"t e"e "(or,$c !" #') d$ e" e) $rr$78 P$r$ /ue esto se +ued$ h$cer es "eces$r o /ue s $ctu$),e"te e) $rr$7 t e"e g +os c o"es de "(or,$c !" #') d$0 te"1$ u" t$,$:o de $) ,e"os gXF +$r$ /ue +ued$ $:$d r otro e)e,e"to $ co"t "u$c !" de g8 \"o,M$rr$7DagXFb #$)or V`= I"serc !" de d$tos5 Co"s ste e" "troduc r u" e)e,e"to e" e) "ter or de u" $rr$7 +$r$ )o cu$) ser' "eces$r o des+)$.$r todos )os e)e,e"tos s tu$dos $ )$ derech$ de) /ue #$,os $ "sert$r u"$ +os c !" $ )$ derech$ co" e) ( " de co"ser#$r e) orde" re)$t #o e"tre e))os8 P$r$ /ue se +ued$ "sert$r u" "ue#o e)e,e"to e" e) $rr$7 s 7$ eA ste" N e)e,e"tos co" "(or,$c !" e" e) $rr$70 e) $rr$7 te"dr' /ue te"er u" t$,$:o de c!,o ,3" ,o NXF +$r$ +oder "sert$r e) e)e,e"to8 C E H @ M O B&C S e"do g )$ +os c !" e" )$ /ue te"1o /ue "sert$r e) "ue#o e)e,e"to 7 N e) ";,ero de e)e,e"tos #') dos e" e) $rr$7 e" e) ,o,e"to de )$ "serc !" 7 s e,+re su+o" e"do de NXF0 e) $)1or t,o de "serc !" ser'5 Desde EN h$st$ g AaIXFb AaIb H " desde Aagb #$)or P`= Borr$r d$tos5 P$r$ e) , "$r u" e)e,e"to de u" $rr$7 s ese e)e,e"to est' +os c o"$do $) ( "$) de) $rr$70 "o h$7 " "1;" +ro*)e,$0 s ,+)e,e"te s e) t$,$:o de) $rr$7 er$ N0 $hor$ h$7 /ue co"s der$r /ue e) t$,$:o de) $rr$7 es N?F8 S e) e)e,e"to $ *orr$r ocu+$ cu$)/u er otr$ +os c !" e"to"ces te"dr9 /ue des+)$.$r todos )os e)e,e"tos s tu$dos $ )$ derech$ de) /ue /u ero *orr$r u"$ +os c !" h$c $ )$ ./u erd$ +$r$ /ue e) $rr$7 /uede or1$" .$do8 C E H @ M O Borr$r @8 Su+o" e"do /ue e) ";,ero de e)e,e"tos #$) dos $ctu$),e"te es N 7 /ue /u ero *orr$r e) e)e,e"to de )$ +os c !" g8 Desde Eg h$st$ N?F AaIb AaIXFb H " desde P$r$ "d c$r /ue e) ";,ero de e)e,e"tos #$) dos es N0 +odr3$,os "d c$r)o co,o N N?F8 4. ARRAYS 3IDIMENSIONALES O MATRICES# E" u" $rr$7 u" d ,e"s o"$) o #ector c$d$ e)e,e"to se re(ere"c $ +or u" 3"d ce0 e" u" $rr$7 * d ,e"s o"$) c$d$ e)e,e"to se #$ $ re(ere"c $r +or V 3"d ces0 7 $hor$ )$ re+rese"t$c !" )!1 c$ 7$ "o #$ $ ser u" #ector0 s "o u"$ ,$tr .8

57

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

U" $rr$7 * d ,e"s o"$) de MTN e)e,e"tos es u" co"6u"to de MTN e)e,e"tos0 todos de) , s,o t +o0 c$d$ u"o de )os cu$)es se re(ere"c $ $ tr$#9s de V su*3"d ces8 E) +r ,er su*3"d ce +odr' #$r $r e"tre F 7 M s he,os e,+e.$do $ "u,er$r )os 3"d ces +or F0 7 e) se1u"do 3"d ce #$r $r' e"tre F 7 N0 s he,os e,+e.$do $ "u,er$r )os 3"d ces +or e) F8 Y ,'s e" 1e"er$) +ode,os de( " r u" $rr$7 de V d ,e"s o"es de )$ s 1u e"te ,$"er$8 \"o,M$rr$7D5 $rr$7 aLIF88LSV0LIV88LSVb de \t +oD \#$rM$rr$7DaI 0 @b LIF \E I \E LSF LIV \E @ \E LSV E) t$,$:o de) $rr$7 ser' <LSF?LIF XF=T<LSV?LIV XF= Ve"t$s de c$d$ ,es de FLLW $ FLLQ5 Ve"t$s5 $rr$7 aFLLW88FLLQ0F88FVb de re$) STFVE[V L$ re+rese"t$c !" )!1 c$ de u" $rr$7 * d ,e"s o"$) es u"$ ,$tr . de d ,e"s o"es MTN do"de M es e) ";,ero de ( )$s de )$ ,$tr . 7 N es e) ";,ero de co)u,"$s0 es dec r0 )$ Fh d ,e"s !" "d c$r3$ )$s ( )$s 7 )$ Vh d ,e"s !" "d c$r3$ )$s co)u,"$s0 es dec r0 $) "te"t$r $cceder $ u" e)e,e"to I0@ est$r3$,os $cced e"do $) e)e,e"to /ue ocu+$ )$ ( )$ I 7 )$ co)u,"$ @8 E" ,e,or $0 s " e,*$r1o todos )os e)e,e"tos de) $rr$7 se $),$ce"$" e" +os c o"es co"t 1u$s +ero "osotros )o #e,os co,o u"$ ,$tr .8 FF FV FL LW FL LF FL LV FL LP FL LR FL LQ F V P R Q S [ G L FW

Ve"t$s aFLLP0Pb E" ,e,or $ est$r3$ $),$ce"$do todo se1u do5

Ma$')! &' ,at*i-'"# ? P$r$ +o"er $ W todos )os e)e,e"tos de )$ ,$tr .8 M5 $rr$7 aF88N0F88Mb de e"tero V$r 06 e"tero Desde EF h$st$ " Desde 6EF h$st$ M M a 06b W H " desde
58

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H " desde ? P$r$ +o"er $ W so)o )os e)e,e"tos de )$ ( )$ I5 Desde EF h$st$ N M a 06b W H " desde .. ARRAYS MULTIDIMENSIONALES# U" $rr$7 ,u)t d ,e"s o"$) es u" $rr$7 de P ! ,'s d ,e"s o"es8 S te"e,os u" $rr$7 de N d ,e"s o"es0 c$d$ d ,e"s !" de t$,$:o dF0dV0880dN0 e) ";,ero de e)e,e"tos de) $rr$7 ser' dFTdVT88TdN0 7 +$r$ $cceder $ u" e)e,e"to co"creto de) $rr$7 ut ) .$re,os N 3"d ces0 c$d$ u"o de )os cu$)es re(ere"c $r' $ u"$ +os c !" de"tro de u"$ d ,e"s !"0 s e,+re se1;" e) orde" de dec)$r$c !"8 E" ,e,or $0 e) $rr$7 se s 1ue $),$ce"$"do e" +os c o"es co"secut #$s8 L$ dec)$r$c !" de u" $rr$7 ,u)t d ,e"s o"$) ser3$5 No,M$rr$75 $rr$7 aLIF88LSF0LIV88LSV0LIP88LSP0LIN88LSNb de t +o No,M$rr$7 aIF0IV0IP0INb LIF \E IF \E LSV LIN \E IV \E LSN 1. ALMACENAMIENTO DE ARRAYS EN MEMORIA# U" $rr$7 e" ,e,or $ s e,+re se $),$ce"$ e" +os c o"es co"t 1u$s $ +$rt r de )$ d recc !" *$se de co, e".o de) $rr$7 /ue ,e )$ d$" cu$"do 7o dec)$ro u"$ #$r $*)e de) t +o $rr$78 E) t$,$:o /ue ocu+$ e) $rr$7 e" ,e,or $ es e) +roducto de) ";,ero de sus e)e,e"tos +or e) t$,$:o de c$d$ u"o de e))os8 Arr$7 aF88FWWb de c$r'cter F *7te T FWW e)e,e"tos E FWW *7tes E" e) c$so de u" $rr$7 * d ,e"s o"$)0 t$,* 9" se se1u r' $),$ce"$"do e" +os c o"es co"t 1u$s de ,e,or $0 7 su t$,$:o ser' e) +roducto de sus e)e,e"tos +ro e) t$,$:o8 Ahor$0 )$ (or,$ e" )$ /ue est'" $),$ce"$dos esos e)e,e"tos #$ $ de+e"der de /ue e) $rr$7 se $),$ce"e ( )$ $ ( )$ o co)u,"$ $ co)u,"$0 /ue t$,* 9" se co"oce co,o $),$ce"$, e"to +or orde" de ( )$ ,$7or o +or orde" de co)u,"$ ,$7or8 CF CV 88888 C, CF CV 888 C, HF HV HP A5 $rr$7 aF88N0F88Mb de \t +oD H )$ F0F F0V F0P 88888 F0M V0F V0V V0P 8888 V0M N0F N0V 888 N0 , Co,o h$))$r )$ d recc !" *$se e" )$ /ue co, e".$ $ $),$ce"$rse u" deter, "$do e)e,e"to de u" $rr$75 ? U" d ,e"s o"$)es5 DIR<AaIb=E D rMB$se X <I?F= T K$,$:o N;,ero e)e,e"to E P K$,$:o E Q D rMB$se E FWW AaPb co, e".$ e" )$ d recc !" FFW ? B d ,e"s o"$)es5 Orde" de ( )$ ,$7or D r<Aa 06b=E D rMB$se X a<<I?F=TM=X<@?F=bTK$,$:o Orde" de co)u,"$ ,$7or
5#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

D r<Aa 06b=E D rMB$se X a<<@?F=TN=X<I?F=bTK$,$:o 4. ARRAYS COMO PAR@METROS DE SU3PROGRAMAS# U" $rr$7 es t$,* 9" u" t +o de d$tos estructur$do0 7 se +uede +$s$r co,o +$r',etro $ u" su*+ro1r$,$0 +ero e) +ro*)e,$ es /ue "o s$*e,os co,o "d c$r s su +$so es +or #$)or o +or re(ere"c $8 E" +r "c + o0 e) +$so de u" $rr$7 s e,+re t e"e se"t do /ue se$ +or re(ere"c $ </ue se ,od ( /ue 7 te"1$ re+ercus !" e" e) eAter or=0 7 s es +or #$)or so)o ser# r3$ +$r$ )eer "(or,$c !"8 L$ ,$7or +$rte de )os )e"1u$6es de +ro1r$,$c !"0 +$s$" )os $rr$7s +or re(ere"c $ <s se ,od ( c$ e) $rr$7 se "ot$ e" e) eAter or=8 Nosotros t$,* 9" )o h$re,os $s38 S +$so e) $rr$7 7 "o /u ero ,od ( c$r)o0 co" "o ,od ( c$r)o *$st$8 Es d st "to +$s$r u" $rr$7 co,o +$r',etro $ +$s$r u"$ +os c !" de) $rr$70 s +$so e) $rr$7 e"tero co,o +$r',etro0 e) +$r',etro (or,$) $soc $do ser' u" $rr$7 co" )$ , s,$ estructur$ /ue e) +$r',etro re$)0 +ero s )o /ue /u ero +$s$r es u" e)e,e"to de u"$ +os c !" co"cret$ de) $rr$70 e) +$r',etro (or,$) $soc $do "o ser' de) t +o $rr$70 s "o /ue ser' de) t +o de d$tos /ue co"te"1$ e) $rr$70 +or/ue c$d$ e)e,e"to de u" $rr$7 es u" e)e,e"to "de+e"d e"te /ue se +uede us$r +or se+$r$do8 E" e) c$so de /ue +$se,os u" $rr$7 e"tero co,o +$r',etro0 e) +$r',etro (or,$) $soc $do0 te"dr' /ue ser u" $rr$7 de )$ , s,$ estructur$ /ue t e"e e) , s,o t +o de d$tos 7 e) , s,o t$,$:o8 E" C0 e) +$r',etro (or,$) $soc $do t e"e /ue ser de) , s,o t +o de d$tos0 +ero "o h$ce ($)t$ /ue se$ de) , s,o t$,$:o8 P$r$ +$s$r u" $rr$7 co,o +$r',etro re$)0 ut ) .$re e) "o,*re de) $rr$70 e" c$,* o s +$s$,os u"$ +os c !" co"cret$0 us$r9 e) "o,*re 7 e) 3"d ce8 E" C0 e) "o,*re de u" $rr$7 "d c$ su d recc !" de co, e".o e" ,e,or $0 7 +or eso s e,+re se +$s$ +or re(ere"c $8 S e,+re #$,os $ +$s$r )os $rr$7s +or re(ere"c $0 s " )$ +$)$*r$ c)$#e e"t?s$)8 Co,o e" )$s (u"c o"es "o se +$s$" )os +$r',etros +or re(ere"c $0 )o ,e6or es "o +$s$r )os $rr$7s co,o +$r',etros de )$s (u"c o"es8 Proced , e"to \"o,*reM+D <\"o,M+$rD5$rr$7 aLIF88LSFb de \t +oD- 888= V$r A5 $rr$7 aLIF88LSFb de \t +oD No,M+ <$rr$7= S!)o se +$s$ e) "o,*re8 6. ARRAYS DE OPUNTEROSP# E" re$) d$d )o /ue #$,os $ eA+) c$r co" este co"ce+to es )$ +os * ) d$d de /ue desde u" $rr$7 se $+u"te $ )$ +os c !" de otro $rr$78 ]ue u"os $rr$7s s r#$" +$r$ re(ere"c $r $ otros8 CDu= '" u$ %u$t'*!E U" +u"tero es u"$ #$r $*)e /ue co"t e"e u"$ d recc !" e" )$ /ue est' $),$ce"$do u" e)e,e"to /ue ))$,$,os $+u"t$do8 Desde este +u"to de # st$0 u" 3"d ce "d rect$,e"te t$,* 9" es u" +u"tero +or/ue "d rect$,e"te "d c$ u"$ +os c !" de) $rr$70 +ero "o )o es d rect$,e"te +or/ue "o $),$ce"$ u"$ d recc !"8 Desde este +u"to de # st$0 s u" $rr$7 co"t e"e #$)ores de 3"d ces0 es dec r0 /ue c$d$ +os c !" de ese $rr$7 )o /ue h$ce es $+u"t$r $ )$ +os c !" de otro $rr$70 e"to"ces dec ,os /ue es u" $rr$7 de

6$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

+u"teros0 $u"/ue e" re$) d$d )$ de( " c !" ,$s correct$ es /ue es u" $rr$7 de 3"d ces $ otro $rr$78 CCuL$&! '" Jtil u"a* u$ a**aK &' +$&i-'E I,$1 "e,os /ue te"e,os u"$ co,+$:3$ /ue /u ere te"er $),$ce"$dos )os d$tos de sus e,+)e$dos or1$" .$dos +or .o"$s8 I,$1 "e,os /ue h$7 R .o"$s8 ZF d A Y ZV c ZP H @ ZR C D g L

Pode,os $),$ce"$r est$ "(or,$c !" de d st "t$s (or,$s5 - U" $rr$7 * d ,e"s o"$) RTN0 e" do"de R so" )$s .o"$s 7 N es e) ";,ero ,'A ,o de e,+)e$dos /ue h$7 +or .o"$8 E) "co"#e" e"te es )$ +erd d$ de es+$c o8 - Us$r u" $rr$7 u" d ,e"s o"$) o #ector do"de est9" todos )os d$tos se1u dos8 E) "co"#e" e"te es /ue "o te"1o )os e,+)e$dos orde"$dos +or .o"$s8 - Us$r u" $rr$7 u" d ,e"s o"$)0 7 e"tre c$d$ V .o"$s ,eter e" )$ +os c !" /ue #$ e"tre e))$s u"$ ,$rc$ es+ec $) +$r$ "d c$r /ue +$so de .o"$8 E) "co"#e" e"te es /ue +$r$ +$s$r $ u"$ .o"$ te"1o /ue +$s$r +or tod$s )$s $"ter ores8 - Us$r u" $rr$7 de 3"d ces5 U" $rr$7 co" )$ "(or,$c !" de )os e,+)e$dos8 Otro $rr$7 de 3"d ces /ue co"te"dr' t$"t$s +os c o"es co,o .o"$s h$7$8 E" c$d$ +os c !" de c$d$ .o"$ $),$ce"$r9 e) 3"d ce e" do"de co, e".$ e) +r ,er e,+)e$do de es$ .o"$ e" e) $rr$7 de e,+)e$dos8 Zo"$s E,+)e$dos F d R A Q Y [ c H @ C D g L T L st$r todos )os e,+)e$dos de )$ .o"$ P5 Desde E.o"$aPb h$st$ .o"$aRb?F Escr * r E,+)e$dos a b H " desde T N;,ero de e,+)e$dos5 Zo"$ aRb e Zo"$ aPb ! R"I"IO#: $ %A .

61

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

F8 H$7 u"os ,u)t c "es co" Q s$)$s0 7 c$d$ s$)$ co" FWW +erso"$s d str *u d$s e" VW $s e"tos 7 Q ( )$s8 S 7o + do e"tr$d$ +$r$ u"$ s$)$0 ,+)e,e"t$r u" +ro1r$,$ /ue ,e d 1$ s h$7 s t o e" )$ s$)$8 A)1or t,o c "es Co"st S$)$sEQ As e"tosEVW H )$sEQ V$r NMs$)$s060i5 e"tero M$rc$5 *oo)e$" A5 $rr$7 aF88s$)$s0F88$s e"tos0F88( )$sb de e"tero I" c o Ped rMd$tos <"Ms$)$s= M e"tr$s "Ms$)$s \D W M$rc$ ($)so @W gF Re+et r S 6 D $s e"tos E"to"ces 6 F g iXF H"s S <6E$s e"tos= 7 <iDE( )$s= E"to"ces escr * r BS$)$ ))e"$C M$rc$ #erd$dero S "o s $ a"Ms$)$s060ibEW E"to"ces $a"Ms$)$s060ib F Escr * r BAs e"toC6C( )$Ci M$rc$ #erd$dero H"s H"s H$st$ <$a"Ms$)$s060ibEF= 7 <,$rc$E#erd$dero= Ped rMd$tos <"Ms$)$s= H " , e"tr$s H" Proced , e"to +ed rMd$tos <e"t?s$) s5 e"tero= I" c o Re+et r Escr * r B2E" /u9 s$)$ /u eres e"tr$r4C Leer s H$st$ <sDEW= 7 <s\Es$)$s= H " +ed rMd$tos V8 2]u9 escr *e este +ro1r$,$4 A)1or t,o Pr " V$r D$tos5 $rr$7 aF88FWb de e"tero 5 e"tero "co desde EF h$st$ FW d$tos a b ( " desde
62

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

PF <d$tos0d$tosaPb= Desde EF h$st$ FW Escr * r d$tos a b H " desde H" Proced , e"to PF <$5 $rr$7 aF88FWb de e"tero- e"t?s$) A5 e"tero= I" c o dW Desde EF h$st$ FW d A X $a b H " desde H " PF T So)uc !"5 F0 V0 QQ0 R0 Q0 S0 [0 G0 L0 FW8 P8 D$d$ u"$ ,$tr . A de MTN e)e,e"tos0 $ctu$) .$r)$ t$) /ue )$ ,$tr . resu)t$"te te"1$ d # d dos $ )os e)e,e"tos de )$ d $1o"$) +r "c +$) +or )$ su,$ de )os e)e,e"tos /ue "o (or,$" +$rte de e))$8 A)1or t,o d #M,$tr . V$r A5 $rr$7 aF88M0F88Nb de re$) Su,$5 re$) I" c o Ped rMd$tos <$= Su,$r <$0su,$= Escr * r <$= H" Proced , e"to +ed rMd$tos <,$tr .5 $rr$7 aF88M0F88Nb de re$)= V$r I065 e"tero I" c o Desde EF h$st$ M Desde 6EF h$st$ N Escr * r BI"troduce e) e)e,e"toC C0C6 Leer $a 06b H " desde H " desde H " +ed rMd$tos Proced , e"to su,$r <,$tr .5 $rr$7 aF88M0F88Nb de re$)- e"t?s$) s5 re$)= V$r I065 e"tero I" c o SW Desde EF h$st$ M Desde 6EF h$st$ N S \D6 E"to"ces s s X ,$tr . a 06b H"s H " desde H " desde H " su,$r Proced , e"to escr * r <,$tr .5 $rr$7 aF88M0F88Nb de re$)- s5 re$)=
63

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

V$r I065 e"tero I" c o Desde EF h$st$ M Desde 6EF h$st$ N S E6 E"to"ces escr * r $a 06bZs S "o escr * r $a 06b H"s H " desde H " desde H " escr * r R8 Ke"1o 1u$rd$do e" u"$ estructur$ )os $)u,"os de "uestr$ escue)$0 s$* e"do /ue h$7 P cursos0 M $)u,"os +or curso 7 N $s 1"$tur$s +or $)u,"o0 deter, "$r ,ed $"te su*+ro1r$,$s5 F8 Cu$) es )$ "ot$ ,ed $ de u" deter, "$do curso8 V8 Cu$"tos $+ro*$dos 7 sus+e"sos h$7 e" u"$ deter, "$d$ $s 1"$tur$8 P8 Cu$) es e) $)u,"o de )$ escue)$ co" ,e6or "ot$ ,ed $8 A)1or t,o escue)$ Co"st CursosEP A)u,"osEM As 1"$tur$sEN K +o D$toE$rr$7 aF88cursos0F88$)u,"os0F88$s 1"$tur$sb de re$) V$r Not$5 d$to I" c o Ped rMd$tos <"ot$= Med $Mcurso <"ot$= A+Msus+ <"ot$= Med $M$)u, <curso= H" Proced , e"to +ed rMd$tos <"5 d$tos= V$r I060i5 e"tero I" c o Desde EF h$st$ cursos Desde 6EF h$st$ $)u,"os Desde iEF h$st$ $s 1"$tur$s Re+et r Escr * r BNot$ de) $)u,"oC6C$s 1"$tur$CiCcursoC Leer "a 060ib H$st$ <"a 060iDEW= 7 <"a 060ib \EFW= H " desde H " desde H " desde H " +ed rMd$tos Proced , e"to ,ed $Mcurso <"5 d$to= V$r @0i0res+5 e"tero Med $0su,$5 e"tero I" c o
64

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Su,$ W8W Re+et r Escr * r B2De /u9 curso /u eres h$cer )$ ,ed $4C Leer res+ H$st$ <res+\EF= 7 <res+\Ecursos= Desde 6EF h$st$ $)u,"os Desde iEF h$st$ $s 1"$tur$s Su,$5Esu,$ X "ares+060ib H " desde H " desde Med $ su,$ Z$)u,"osT$s 1"$tur$ Escr * r BL$ "ot$ ,ed $ de) cursoCres+CesC,ed $ H " ,ed $Mcurso Proced , e"to $+Msus+ <"5d$to= V$r Sus+0$+0 065 e"tero I" c o Sus+ W A+ W Re+et r Escr * r B2]u9 $s 1"$tur$ /u eres #er4C Leer $s 1 H$st$ <$s 1DEF= 7 <$s 1\E$s 1"$tur$s= Desde EF h$st$ cursos Desde 6EF h$st$ $)u,"os S "a 060$s 1b DEQ E"to"ces $+ $+ X F S "o sus+ sus+ X F H"s H " desde H " desde Escr * r BE" )$ $s 1"$tur$C$s 1Ch$7C$+C$+ro*$dosC Escr * r BE" )$ $s 1"$tur$C$s 1Ch$7Csus+Csus+e"sosC H " $+Msus+ Proced , e"to ,ed $M$)u, <"5 d$to= V$r I060$)u,0curs5 e"tero Su,$0,ed $0,$7or5 re$) I" c o M$7or W8W Desde EF h$st$ cursos Desde 6EF h$st$ $)u,"os Su,$ W8W Desde iEF h$st$ $s 1"$tur$s Su,$ su,$ X "a 060ib H " desde Med $ su,$ Z $s 1"$tur$s S ,ed $ D ,$7or E"to"ces ,$7or ,ed $ Curs A)u, 6 H"s H " desde H " desde
65

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Escr * r BE) $)u,"o co" ,$7or ,ed $ es e)C$)u,Cde) cursoCcurs Escr * r B7 su "ot$ es deC,$7or H " ,ed $M$)u, Q8 Mu)t +) c$r V ,$tr ces de d ,e"s o"es MTN 7 PT]8 A)1or t,o ,u)t +) c$rM,$tr ces K +o M$tr .FE$rr$7 aF88M0F88Nb de e"tero M$tr .VE$rr$7 aF88P0FF88]b de e"tero Resu)t$doE$rr$7 aF88M0F88]b de e"tero V$r M$tF5 ,$tr .F M$tV5 ,$tr .V R5 resu)t$do I" c o Ped rMd$tos <,$tF0,$tV= Mu)t +) c$r <,$tF0,$tV0r= V su$) .$r <r= H" Proced , e"to +ed rMd$tos <,F5 ,$tr .F- ,V5 ,$tr .V= V$r I065 e"tero I" c o Desde EF h$st$ M Desde 6EF h$st$ N Escr * r BI"troduce e) e)e,e"toC C0C6Cde )$ ,$tr . FC Leer ,Fa 06b H " desde H " desde Desde EF h$st$ P Desde 6EF h$st$ ] Escr * r BI"troduce e) e)e,e"toC C0Cde )$ ,$tr . VC Leer ,Va 06b H " desde H " desde H " +ed rMd$tos Proced , e"to ,u)t +) c$r <,F5 ,$tr .F- ,V5 ,$tr .V- e"t?s$) resu)5 resu)t$do= V$r H )$0 060$cu,5 e"tero I" c o Desde ( )$EF h$st$ N Desde EF h$st$ P Resu)a( )$0 b W Desde 6EF h$st$ ] Resu)a( )$0 b resu)a( )$0 bX,Fa( )$06bT,Va60 b H " desde H " desde H " desde H " ,u)t +) c$r Proced , e"to # su$) .$r <resu)5 resu)t$do= V$r
66

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

I065 e"tero I" c o Desde EF h$st$ M Desde 6EF h$st$ ] Escr * r resu)a 06b H " desde H " desde H " # su$) .$r S8 Reso)#er )$ s 1u e"te ser e5 0 =

1 2 2[ 1 4 ] 2 4
1 =1 4 =1

3[ # 4 ]
4 =2

# 1

A)1or t,o ser e K +o M$tr .FE $rr$7 aF88M0F88Nb de e"tero M$tr .VE $rr$7 aF88N0F88Nb de e"tero V$r Su,$F0su,$V0su,$P5 e"tero d5 re$) I" c o Su,$s <su,$F0su,$V0su,$P= Resu)t$do <su,$F0su,$V0su,$P0A= Escr * r BE) resu)t$do esCA= H" Proced , e"to su,$s <sF5 e"tero-sV5 e"tero-sP5 e"tero= V$r I065 e"tero I" c o Desde EF h$st$ M SV W Desde 6EF h$st$ N SV sV X $a 06bT6 H " desde SF sF X ITsV H " desde SP W Desde 6EV h$st$ N?F SP sP X *a"06b H " desde H " su,$s Proced , e"to resu)t$do <sF5 e"tero- sV5 e"tero- sP5 e"tero- e"t?s$) 75 re$)= I" c o Y sFTsVZsP H " resu)t$do [8 U"$ e,+res$ co"st$ de Q de+$rt$,e"tos co" VW e,+)e$dos c$d$ de+$rt$,e"to0 s te"1o tod$s )$s #e"t$s e" u"$ estructur$0 deter, "$r5

67

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Ve"t$s de u" deter, "$do de+$rt$,e"to e" u" deter, "$do ,es8 Ve"t$s de u" deter, "$do e,+)e$do e" u" deter, "$do de+$rt$,e"to8 Cu$) es e) de+$rt$,e"to co" ,'s #e"t$s8

A)1or t,o e,+res$ Co"st DEQ EEVW MEFV K +o M$tr .E $rr$7 aF88d0F88e0F88,b de re$) V$r Ve"t$s5 ,$tr . C$"t d$d5 re$) De+$rt$,e"tos5 e"tero I" c o Ped rMd$tos <#e"t$s= De+M,es <#e"t$s= De+Me,+)e$do <#e"t$s= Me6orMde+ <#e"t$s= H" Proced , e"to +ed rMd$tos <$5 ,$tr .= V$r I060i5 e"tero I" c o Desde EF h$st$ D Desde 6EF h$st$ E Desde iEF h$st$ M Escr * r BVe"t$s de) de+$rt$,e"toC Ce,+)e$doC6C,esCiC Leer $a 060ib H " desde H " desde H " desde H " +ed rMd$tos Proced , e"to de+M,es <$5 ,$tr .= V$r De+060,es5 e"tero V5 re$) I" c o V W8W Re+et r Escr * r BDe+$rt$,e"toC Leer de+ H$st$ <de+ DEF= 7 <de+ \Ed= Re+et r Escr * r BMesC Leer ,es H$st$ <,es DEF= 7 <,es \EFV= Desde 6EF h$st$ E V V X $ade+060,esb H " desde Escr * r BL$s #e"t$s de) de+$rt$,e"toCde+Ce" e) ,esC,esCso"C# H " de+M,es
68

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Proced , e"to de+Me,+)e$do <$5 ,$tr .= V$r De+0e,+)e$do0i5 e"tero V5 re$) I" c o V W8W Re+et r Escr * r BE,+)e$doC Leer e,+)e$do H$st$ <e,+)e$do DEF= 7 <e,+)e$do \EE= Re+et r Escr * r BDe+$rt$,e"toC Leer de+ H$st$ <de+ DEF= 7 <de+ \Ed= Desde iEF h$st$ M V V X $ade+0e,+)e$do0ib H " desde Escr * r BL$s #e"t$s de) e,+)e$doCe,+)e$doCde) de+$rt$,e"toCde+Cso"C# H " de+Me,+)e$do Proced , e"to ,e6orMde+ <$5 ,$tr .= V$r I060i0de+5 e"tero M$7or0#5 re$) I" c o M$7or W8W Desde EF h$st$ D VW Desde 6EF h$st$ E Desde iEF h$st$ M V V X $a 060ib H " desde H " desde S # D ,$7or E"to"ces ,$7or # De+ H"s H " desde Escr * r BE) ,e6or de+$rt$,e"to es e)Cde+Cco"C,$7or H " ,e6orMde+ G8 D$do u" $rr$7 A de MTN e)e,e"tos do"de )os e)e,e"tos so" ";,eros e"teros0 h$))$r )$ d recc !" de co, e".o de) e)e,e"to R` de) $rr$7 s$* e"do /ue se $),$ce"$ $ +$rt r de )$ d recc !" FVWW 7 /ue e" "uestr$ ,'/u "$ )os e"teros ocu+$" V *7tes8 D r A<F0R=E FVWW X PTV EFVWS L8 D$do u" $rr$7 de R T Q e)e,e"tos /ue co"t e"e c$r$cteres0 s$* e"do /ue se $),$ce"$ $ +$rt r de )$ +os c !" QWW0 e" /ue +os c !" co, e".$ $ $),$ce"$rse e) e)e,e"to AaP0Qb8 D r AaP0Qb E QWW X <VTQXR=TF E QFR E" orde" de ( )$ ,$7or D r AaP0Qb E QWW X <RTRXV=TF E QFG E" orde" de co)u,"$ ,$7or

6#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 4
LAS CADENAS DE CARACTERES
1. AUEGO DE CARACTERES# E" +r "c + o se +ro1r$,$*$ todo co" W 7 F0 +ero co,o esto cost$*$ ,ucho0 $+$rec ! )$ "eces d$d de cre$r u" )e"1u$6e se,e6$"te $) hu,$"o +$r$ e"te"der"os ,'s ('c ),e"te co" )$ co,+ut$dor$0 7 +$r$ e))o $+$rece" )os 6ue1os de c$r$cteres8 E) 6ue1o de c$r$cteres es u"$ es+ec e de $)($*eto /ue us$ )$ ,'/u "$8 H$7 V 6ue1os de c$r$cteres +r "c +$)es5 - ASCII5 E) /ue ,'s se us$8 - EBCDIC5 Cre$do +or IBM8 H$7 V t +os de ASCII0 e) *'s co 7 e) eAte"d do8 E" e) ASCII *'s co0 c$d$ c$r'cter se cod ( c$ co" [ * ts0 +or )o /ue eA ste" VU[EFVG c$r$cteres8 E" e) ASCII eAte"d do0 c$d$ c$r'cter ocu+$ G * ts <F *7te= +or )o /ue eA st r'" VUGE VQS c$r$cteres0 "u,er$dos de) W $) VQQ8 E" e) EBCDIC0 c$d$ c$r'cter ocu+$ t$,* 9" G * ts8 E" cu$)/u er$ de )os V 6ue1os0 eA ste" R t +os de c$r$cteres5 - A)($*9t cos5 Letr$s ,$7;scu)$s 7 , ";scu)$s8 - Nu,9r cos5 N;,eros8 - Es+ec $)es5 Kodos )os /ue "o so" )etr$s 7 ";,eros0 /ue # e"e" e" e) tec)$do8 - Co"tro)5 No so" ,+r , *)es 7 t e"e" $s 1"$dos c$r$cteres es+ec $)es8 S r#e" +$r$ de ter, "$r e) ( " de )3"e$0 ( " de teAto8 V$" de) FVG $) VQQ8 U" 6ue1o de c$r$cteres es u"$ t$*)$ /ue $ c$d$ ";,ero t e"e $soc $do u" ";,ero8 2. CADENA DE CARACTERES# Es u" co"6u"to de W ! ,'s c$r$cteres8 E"tre estos c$r$cteres +uede est$r "c)u do e) *)$"co8 E" +seudoc!d 1o0 e) *)$"co es e) *8 L$s c$de"$s de c$r$cteres se de) , t$" co" do*)es co, ))$s B B0 +ero e" $)1u"os )e"1u$6es se de) , t$" co" N N8 L$s c$de"$s de c$r$cteres se $),$ce"$" e" +os c o"es co"t 1u$s de ,e,or $8 L$ )o"1 tud de u"$ c$de"$ es e) ";,ero de c$r$cteres de )$ , s,$8 S hu* ese $)1;" c$r'cter /ue se ut ) .$r$ co,o es+ec $) +$r$ se:$)$r e) ( " de c$de"$0 "o se co"s der$r3$ e" )$ )o"1 tud8 S u"$ c$de"$ t e"e )o"1 tud W0 )$ ))$,$,os c$de"$ "u)$ +or )o /ue "o t e"e " "1;" c$r'cter0 +ero esto "o /u ere dec r /ue "o te"1$ " "1;" c$r'cter #') do0 +or /ue +uede h$*er $)1;" c$r'cter es+ec $) "o ,+r , *)e /ue (or,e +$rte de )$ c$de"$8 U"$ su*c$de"$ es u"$ c$de"$ eAtr$3d$ de otr$8 3. DATOS DE TIPO CAR@CTER# F8 Co"st$"tes5 U"$ co"st$"te de t +o c$de"$ es u" co"6u"to de W o ,'s c$r$cteres e"cerr$dos e"tre B B8 S de"tro de )$ c$de"$ /u ero +o"er co,o +$rte de )$ c$de"$ )$s B0 )$s +o"1o V #eces8 Esto de+e"de de) )e"1u$6e8

7$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

BHo)$CCAd osC Ho)$CAd os E" $)1u"os )e"1u$6es h$7 u" c$r'cter de esc$+e8 E" C0 e) c$r'cter de esc$+e es )$ j8 U"$ co"st$"te de t +o c$r'cter es u" so)o c$r'cter e"cerr$do e"tre co, ))$s s ,+)es8 V8 V$r $*)es5 H$7 /ue d st "1u r e"tre u"$ #$r $*)e de t +o c$r'cter 7 u"$ #$r $*)e de t +o c$de"$0 e) co"te" do de u"$ #$r $*)e de t +o c$de"$ es u" co"6u"to de W ! ,'s c$r$cteres e"cerr$dos e"tre B B0 , e"tr$s /ue u"$ #$r $*)e de t +o c$r'cter es u" so)o c$r'cter e"cerr$do e"tre N N8 F!*,a" &' al,a-'$a,i'$t! &' -a&'$a" '$ ,',!*ia# F8 A),$ce"$, e"to est't co5 L$ )o"1 tud de )$ c$de"$ se t e"e /ue de( " r $"tes de ser us$d$ 7 s e,+re #$ $ te"er es$ )o"1 tud0 $),$ce"'"dose e" +os c o"es co"t 1u$s de ,e,or $8 S )$ c$de"$ "o ocu+$ todo e) es+$c o0 e) resto se re))e"$ co" *)$"cos0 7 esos *)$"cos se co"s der$" +$rte de )$ c$de"$8 Esto es ,u7 de( c e"te 7 "o se us$ c$s e" " "1;" )e"1u$6e8 V8 A),$ce"$, e"to se, est't co5 A"tes de us$r )$ c$de"$0 h$7 /ue dec)$r$r )$ )o"1 tud ,'A ,$ /ue +uede te"er 7 ese es e) es+$c o /ue se reser#$ e" ,e,or $ +$r$ $),$ce"$r )$ c$de"$0 s e,+re e" +os c o"es co"t 1u$s8 L$ )o"1 tud re$) de )$ c$de"$ dur$"te )$ e6ecuc !" +uede #$r $r $u"/ue s e,+re t e"e /ue ser ,e"or /ue e) ,'A ,o de )$ c$de"$8 Puesto /ue )$ c$de"$ "o t e"e +or/ue ocu+$r )$ )o"1 tud ,'A ,$0 +$r$ deter, "$r /ue +$rte ocu+$ re$),e"te es$ c$de"$0 se +uede" ut ) .$r d (ere"tes ,9todos8 P$sc$) )o /ue h$ce es reser#$r )os V +r ,eros *7tes de )$ .o"$ de ,e,or $ e" /ue 1u$rd$,os )$ c$de"$ +$r$ "d c$r e) +r ,ero )$ )o"1 tud ,'A ,$ /ue +uede te"er )$ c$de"$ 7 e) se1u"do )$ )o"1 tud $ctu$)8 F W R H O L F V A P R Q S [ G L FW

Otros )e"1u$6es co,o C0 ut ) .$" u" c$r'cter es+ec $) /ue "d c$ e) ( " de c$de"$ t$) /ue )os c$r$cteres /ue ut ) .$" +$rte de )$ c$de"$ so" todos )os $),$ce"$dos h$st$ e"co"tr$r ese c$r'cter es+ec $)8 H O L A j O W F V P R Q S [ G L L$ d (ere"c $ e"tre $),$ce"$r u" so)o c$r'cter e" u" t +o c$r'cter o e" u" t +o c$de"$0 ser3$ )$ s 1u e"te5 C N$O C B$C P8 A),$ce"$, e"to d "', co5 No h$7 /ue de( " r )$ )o"1 tud de )$ c$de"$ $"tes de us$r)$0 " s /u er$ )$ ,'A ,$8 P$r$ esto0 se ut ) .$ )$ ,e,or $ d "', c$0 7 +$r$ est$*)ecer e) ";,ero de e)e,e"tos de )$ c$de"$ us$re,os ) st$s e")$.$d$s e" )$s /ue c$d$ "odo de )$ ) st$

71

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

co"t$r$ u" c$r'cter de )$ c$de"$ 7 se e")$.$r3$ ,ed $"te +u"teros8 L$ "(or,$c !" "o t e"e /ue est$r $),$ce"$d$ e" +os c o"es co"t 1u$s de ,e,or $8 H O L A

4. OPERACIONES CON CADENAS# A) 1u$) /ue co" cu$)/u er t +o de d$tos0 +ode,os h$cer o+er$c o"es de e"tr$d$ 7 s$) d$ <)eer 7 escr * r=8 V$r c$d5 c$de"$ Leer <c$d= Escr * r <c$d= A+$rte de est$s "strucc o"es0 )$ ,$7or +$rte de )os )e"1u$6es +er, te" re$) .$r o+er$c o"es es+ec $)es co" )$s #$r $*)es de t +o c$de"$8 L$ ,$7or +$rte de )os )e"1u$6es t e"e" o+er$c o"es de tr$t$, e"to de c$de"$s0 7 es$s o+er$c o"es # e"e" e" ) *rer3$s eAter"$s8

La" !%'*a-i!$'" ,L" u"a&a" "!$# L!$(itu& &' u$a -a&'$a# Es u"$ (u"c !" $ )$ /ue se )e +$s$ u"$ c$de"$ co,o +$r',etro 7 co,o resu)t$do de#ue)#e su )o"1 tud8 Hu"c o" )o"1 tud <c5c$de"$=5 e"tero C!,%a*a-i:$ &' -a&'$a"# L$s c$de"$s se +uede" co,+$r$r e"tre s us$"do )os s3,*o)os de co,+$r$c !"8 Esto se +uede re$) .$r +or/ue )o /ue #o7 $ co,+$r$r so" )os #$)ores ASCII $soc $dos $ c$d$ c$r'cter8 E" e) c$so de /ue se co,+$re" V c$de"$s de d (ere"te )o"1 tud t$) /ue )$ c$de"$ de ,e"or )o"1 tud t e"e N c$r$cteres 7 estos N c$r$cteres co "c de" co" )os N +r ,eros c$r$cteres de )$ c$de"$ ,'s )$r1$0 se co"s der$ ,$7or )$ c$de"$ ,'s )$r1$8 PEPE D PAPA PEPES D PEPE E" )$ ,$7or +$rte de )os )e"1u$6es0 h$7 u"$ (u"c !" /ue h$ce )$ co,+$r$c !"8 E" C es )$ (u"c !" strc,+ <CF0CV=8 Hu"c o" co,+$r$c o" <CF5c$de"$-CV5c$de"$=5 e"tero Est$ (u"c !" de#ue)#e5 - W s CFECV - U" +os t #o s CF D CV - U" "e1$t #o s CF \ CV C!$-at'$a-i:$# Lo /ue +er, te es u" r #$r $s c$de"$s e" u"$ so)$0 ,$"te" e"do e) orde" de )os c$r$cteres /ue se u"e"8 E" +seudoc!d 1o se us$ e) s3,*o)o k5 CFkCV CFECHo)$C CVECAd osC CPECFkCVECHo)$Ad osC Proced , e"to co"c$te"$c o" <e"t?s$) CF5c$de"$-CV5c$de"$= - Se de#ue)#e e" CF )$ co"c$te"$c !" CFkCV8

72

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Su0-a&'$a"# EAtr$e +$rte de u"$ c$de"$8 Se +uede" us$r P +roced , e"tos5 Proced , e"to su*c$de"$ <c5c$de"$- " c o5e"tero-)o"1 tud5e"tero-e"t? s$) s5c$de"$= - S " c o es "e1$t #o0 o es ,$7or /ue )o"1 tud0 se de#ue)#e )$ c$de"$ "u)$8 - S " c oX)o"1 tud es ,$7or /ue e) t$,$:o de )$ c$de"$0 de#ue)#o desde " c o h$st$ de ( " de )$ c$de"$8 Proced , e"to su*c$de"$ <c5c$de"$- " c o5e"tero-( "5e"tero-e"t?s$) s5c$de"$= - S ( " es ,e"or /ue " c o0 de#ue)#e )$ c$de"$ "u)$8 - S ( " es ,$7or /ue )$ )o"1 tud de )$ c$de"$0 se de#ue)#e desde " c o h$st$ e) ( " de )$ c$de"$8 Proced , e"to su*c$de"$ <c5c$de"$- " c o5e"tero-e"t?s$) s5c$de"$= - S #$ desde e) " c o h$st$ e) ( "$) de )$ c$de"$8 I$"'*-i:$# Co"s ste e" ,eter u"$ c$de"$ de"tro de otr$ $ +$rt r de u"$ deter, "$d$ +os c !"8 Proced , e"to "sert$r <e"t?s$) CF5c$de"$-CV5c$de"$- " c o5e"tero= CFECPe+eC CVECNur $C I"sert$r <CF0CV0P=E PeNur $+e - S " c o es ,$7or /ue )$ )o"1 tud de CF o " c o es ,e"or /ue W0 "o se "sert$ "$d$8 3!**a&!# Co"s ste e" *orr$r de u"$ c$de"$ u"$ su*c$de"$ /ue (or,$ +$rte de e))$8 H$7 /ue d$r )$ +os c !" de " c o 7 ( "$) de )$ su*c$de"$ /ue /u ero *orr$r8 Proced , e"to *orr$r <e"t?s$) CF5c$de"$- " c o5e"tero-( "5e"tero= - S ( " es ,e"or /ue " c o0 o " c o es ,$7or /ue )$ )o"1 tud de )$ c$de"$0 "o se *orr$ "$d$8 Proced , e"to *orr$r <e"t?s$) CF5c$de"$- " c o5e"tero-( "5e"tero= CFECC$s$ $.u)C Borr$r <CF0P0Q= CFECC$$.u)C I$t'*-a,0i!# Co"s ste e" su*st tu r )$ $+$r c !" de u"$ su*c$de"$ de"tro de u"$ c$de"$0 +or otr$ su*c$de"$8 P$r$ eso )$ +r ,er$ su*c$de"$ t e"e /ue $+$recer e" )$ otr$8 Proced , e"to "terc$,* o <e"t?s$) CF5c$de"$-SF5c$de"$-SV5c$de"$= CFECC$s$ $.u)C SFEC$s$C SVEC$s t$C CFECC$s t$ $.u)C S SF "o est' e" CF0 "o se c$,* $ "$d$8 C!$ '*"i:$ &' -a&'$a" a $J,'*!"# Es u"$ (u"c !" /ue se )e +$s$ u"$ c$de"$ c$r$cteres "u,9r cos 7 de#ue)#e e) ";,ero $soc $do8 Hu"c o" #$)or <c5c$de"$=5 e"tero IECVPRC V$r 5 e"tero

73

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

IE #$)or <CF= de#ue)#e VPR8 C!$ '*"i:$ &' $J,'*!" a -a&'$a"# Es u" +roced , e"to $) /ue se )e +$s$ u" ";,ero 7 )o co"# erte $ u"$ c$de"$8 Proced , e"to co"#Mc$d <"5e"tero-e"t?s$) c5c$de"$= IEVPR Co"#Mc$d < 0CF= de#ue)#e BVPRC Fu$-i:$ Iu' &' u'l ' 'l -a*L-t'* ASCII &' u$ $J,'*!# Hu"c o" co"#Mc$r <"5e"tero=5 c$r'cter Fu$-i:$ Iu' &' u'l ' 'l $J,'*! a"!-ia&! &' u$ -a*L-t'* ASCII# Hu"c o" ASCII <c5c$r'cter=5 e"tero L$s c$de"$s #$" $ est$r $),$ce"$d$s e" $rr$7s de c$r$cteres do"de e) c$r'cter de ( " de c$de"$ es e) l8

! R"I"IO#: $ %A / Los e6erc c os de este te,$ #$" $ co"s st r e" ,+)e,e"t$r (u"c o"es 7 +roced , e"tos re)$c o"$dos co" e) ,$"e6o de )$s su*c$de"$s8

Hu"c o" "u,ero <c5c$r'cter=5e"tero I" c o Se1;" se$ C NWO5 retor"o W NFO5 retor"o F NVO5 retor"o V NPO5 retor"o P NRO5 retor"o R NQO5 retor"o Q NSO5 retor"o S N[O5 retor"o [ NGO5 retor"o G NLO5 retor"o L ( " se1;" se$ ( " "u,ero Hu"c o" c$r$ct <"5 e"tero=5c$r'cter I" c o Se1;" se$ C
74

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

W5 retor"o NWO F5 retor"o NFO V5 retor"o NVO P5 retor"o NPO R5 retor"o NRO Q5 retor"o NQO S5 retor"o NSO [5 retor"o N[O G5 retor"o NGO L5 retor"o NLO ( " se1;" se$ ( " c$r$ct Hu"c o" )o"1 tud <c5c$de"$=5 e"tero #$r )5 e"tero I" c o LW M e"tr$s caLXFb \ D NlO L LXF H " , e"tr$s Retor"o L H " )o"1 tud Hu"c o" V$)or <c5c$de"$=5 e"tero V$r C (0"u,0 5 e"tero I" c o C ( )o"1 tud <c= S c(DW E"to"ces "u, W Desde EF h$st$ C ( Nu, "u,X"u,ero <ca bTFWU<c (? = H " desde Retor"o <"u,= S "o retor"o <?F= H"s H " #$)or Proced , e"to co"#Mc$d <"5 e"tero- e"t?s$) c5 c$de"$= V$r C (0$uA5 e"tero I" c o C(F AuA N M e"tr$s <$uA DFW= AuA $uA d # FW C(c(XF H " , e"tr$s Desde Ec ( h$st$ F Ca b c$r$ct<" ,od FW= N " d # FW H " desde Cac (XFb NlO H " co"#Mc$d

75

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Proced , e"to *orr$r <e"t?s$) c5c$de"$- " c o5e"tero-( "5e"tero= V$r I0(5 e"tero I" c o S < " c o DW= 7 < " c o \E ( "= 7 < " c o \E )o"1 tud<c== E"to"ces " c o H ( " XF M e"tr$s < \E( "= 7 <ca(b \ D NlO= Ca b ca(b I XF H (XF H " , e"tr$s Ca b NlO H"s H " *orr$do Proced , e"to su*c$de"$ <cF5c$de"$- " c o5e"tero-)o"1 tud5e"tero-e"t?s$) cV5 c$de"$= V$r I0i5 e"tero I" c o S < " c o \EW= o < " c o D )o"1 tud <cF== E"to"ces cVaFb NlO S "o " c o gF M e"tr$s < \E " c o X )o"1 tud= 7 <cFa b \ D NlO= CVaib cFa b g iXF I XF H " , e"tr$s CVaib NlO H"s H " su*c$de"$ Hu"c o" co,+$r$c o" <cF5c$de"$-cV5c$de"$=5e"tero V$r I5 e"tero I" c o IF M e"tr$s <cFa bEcVa b= 7 <cFa b\ D NlO= 7 <cVa b \ D NlO= I IXF H " , e"tr$s S cFa bEcVa b E"to"ces retor"o <W= S "o retor"o<$sc <cFa b=? $sc <cVa b== H"s H " co,+$r$c o"

Hu"c o" *us/ued$ <c5 c$de"$-sF5 c$de"$=5 e"tero V$r I0+os0i5 e"tero E"co"tr$do5 *oo)e$"o I" c o IF
76

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E"co"tr$do ($)so M e"tr$s <ca b \ DOlO= 7 <e"co"tr$doE($)so= S ca b E sa b E"to"ces +os gF M e"tr$s <ca bEsaib= 7 <ca b \DOlO= 7 <saib\ DOlO I IXF g iXF H " , e"tr$s S saibEOlO E"to"ces e"co"tr$do #erd$dero S "o I +os XF Pos W H"s S "o I IXF H"s H " , e"tr$s Retor"o <+os= H " *us/ued$ Proced , e"to *orr$r <e"t?s$) c5c$de"$- " 5e"tero-( "5e"tero= V$r I065 e"tero I" c o I " H("XF M e"tr$s ca(b \DOlO Ca b ca(b I XF H " , e"tr$s C a b NlO H " *orr$r Procedure "sert$r <e"t?s$) c5c$de"$-s5c$de"$-+os5e"tero= V$r P060 5 e"tero I" c o P +os @F M e"tr$s sa6b\DOlO Desde )o"1 tud <c= XF h$st$ P Ca XFb ca b H " desde Ca+b sa6b @ 6XF P +XF H " , e"tr$s H " "sert$r Proced , e"to "terc$,* o <e"t?s$) c5c$de"$-cV5c$de"$-cP5c$de"$= V$r I0+os5 e"tero I" c o IF M e"tr$s cFa b \DOlO S cFa bEcVa b E"to"ces +os *usc$r<cF0cV=
77

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

S +os \D W E"to"ces *orr$r <cF0+os0+osX)o"1 tud<cV=?F= I"sert$r <cF0cP0+os= I +os X )o"1 tud<cP= S "o I XF H"s S "o I IXF H"s H " , e"tr$s H " "terc$,* o

78

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 6
FIC?EROS O ARC?I5OS
1. EL TIPO REGISTRO DE DATOS# E) t +o re1 stro de d$tos es u" t +o estructur$do de d$tos8 U" t +o re1 stro #$ $ est$r (or,$do +or d$tos /ue +uede" ser de d (ere"tes t +os8 A c$d$ u"o de esos d$tos )o de"o, "$,os c$,+os0 7 e) t +o de estos c$,+os +uede" ser u"o est$"d$r o u"o de( " do +or e) usu$r o0 /ue +uede ser cu$)/u er cos$8 L$ s "t$A s /ue us$re,os +$r$ de( " r u" t +o re1 stro es )$ s 1u e"te5 K +o \"o,Mt +oMre1 stroD E re1 stro \c$,+oFD5 \t +oD \c$,+oVD5 \t +oD \c$,+oPD5 \t +oD ( " re1 stro U"$ #e. de( " d$ u"$ estructur$ de t +o re1 stro0 7$ +uede +$s$r $ dec)$r$r #$r $*)es de ese t +o8 V$r \"o,M#$rD5 \"o,Mt +oMre1 stroD t +o $)u,"o E re1 stro DNI5 $rr$7 aF88Gb de c$r$cteres No,*re5 $rr$7 aF88FWWb de c$r$cteres Not$5 re$) H " re1 stro V$r AF0AV5 $)u,"o P$r$ dec)$r$r u"$ #$r $*)e de u" t +o re1 stro0 *$st$ co" +o"er5 V$r \"o,M#$rD 5 \"o,Mt +oMre1D P$r$ $cceder $ u" c$,+o co"creto de u"$ #$r $*)e de t +o re1 stro0 ut ) .$,os e) o+er$dor +u"to8 \"o,M#$rD8\"o,Mc$,+oD c8"o,*re Pe+e Y co" ese #$)or +uedo tr$*$6$r 1u$) /ue tr$*$6$r3$ co" cu$)/u er #$)or de) , s,o t +o /ue ese c$,+o8 K +o c) e"te E re1 stro DNI5 $rr$7 aF88Gb de c$r$cteres No,*re5 C$de"$ S$)do5 Re$) H " re1 stro V$r C5 c) e"te Borr$r <c8"o,*re0P0Q= C8s$)do QXPTGWWW Al,a-'$a,i'$t! &' *'(i"t*!" '$ ,',!*ia# E) t$,$:o /ue ocu+$ u"$ #$r $*)e de t +o re1 stro e" ,e,or $ es e) /ue resu)t$ de )$ su,$ de) t$,$:o de c$d$ u"o de sus c$,+os0 7 es$

7#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

"(or,$c !" t$,* 9" est$r' $),$ce"$d$ de ,$"er$ co"t 1u$ 7 se1;" e) orde" e" /ue h$7$,os dec)$r$do )os c$,+os8

2. NOCIN DE ARC?I5O# L$s estructur$s $"ter ores se $),$ce"$*$" e" ,e,or $ +r "c +$)0 7 e) +ro*)e,$ es /ue )$ "(or,$c !" se + erde $) $+$1$r e) orde"$dor8 L$ #e"t$6$ es /ue )os $ccesos so" ,'s r'+ dos8 P$r$ reso)#er esto est'" )os d s+os t #os de $),$ce"$, e"to secu"d$r o8 Fi-H'*!# Es u" co"6u"to de d$tos estructur$dos e" u"$ co)ecc !" de u" d$des e)e,e"t$)es de"o, "$d$s re1 stros0 /ue so" de 1u$) t +o 7 /ue $ su #e. est'" (or,$dos +or otr$s u" d$des de " #e) ,'s *$6o de"o, "$dos c$,+os8 Kodos so" de) , s,o t +o8 3. TERMINOLOG2A CON FIC?EROS# - Ca,%!# Es u"$ u" d$d e)e,e"t$) de "(or,$c !" /ue re+rese"t$ u" $tr *uto de u"$ e"t d$d8 Se de( "e co" u" "o,*re0 u" t$,$:o 7 u" t +o de d$tos8 - R'(i"t*! l:(i-!# Es u" co"6u"to de c$,+os re)$c o"$dos )!1 c$,e"te /ue +uede" ser tr$t$dos co,o u" d$d e" e) +ro1r$,$8 Desde e) +u"to de # st$ de +ro1r$,$c !" s ,+)e,e"te es u"$ estructur$ de t +o re1 stro8 - A*-Hi ! ! 9i-H'*!# Es u" co"6u"to de re1 stros de) , s,o t +o 7 or1$" .$dos de t$) (or,$ /ue esos d$tos +uede" ser $cced dos +$r$ $:$d r0 *orr$r o $ctu$) .$r8 - Cla ' &' u$ 9i-H'*!# Es u" c$,+o o co"6u"to de c$,+os /ue s r#e +$r$ de"t ( c$r u" re1 stro 7 d st "1u r)$ de) resto de) ( chero8 - R'(i"t*! 9+"i-! ! 0l!Iu'# Es )$ c$"t d$d de d$tos /ue se tr$"s( ere" e" u"$ o+er$c !" de EZS e"tre e) d s+os t #o eAter"o 7 )$ ,e,or $8 Desde este +u"to de # st$0 u" re1 stro (3s co +uede est$r co,+uesto +or W0F0V0888 re1 stros )!1 cos8 E) ";,ero de re1 stros )!1 cos /ue h$7 +or c$d$ re1 stro (3s co0 es dec r0 /ue se tr$"s( ere e" u"$ o+er$c !" de EZS0 es )o /ue se de"o, "$ ($ctor de *)o/ueo8 Ese ($ctor de *)o/ueo +uede ser \F0EF0DF5 - S es \F0 /u ere dec r /ue e) re1 stro )!1 co ocu+$ ,'s /ue e) (3s co0 se tr$"s( ere ,e"os de u" re1 stro )!1 co e" c$d$ o+er$c !" de EZS8 - S es EF0 s 1" ( c$ /ue e) t$,$:o de) re1 stro )!1 co 7 e) (3s co es e) , s,o0 7 se tr$"s( ere u" re1 stro )!1 co e" c$d$ o+er$c !" de EZS8 - S es DF0 )o ,'s "or,$)0 e" c$d$ o+er$c !" de EZS se tr$"s( ere ,'s de u" re1 stro )!1 co8 CC:,! $!" i$t'*'"a Iu' "'a 'l 9a-t!* &' 0l!Iu'!E# Desde u" +u"to de # st$0 cu$"to ,$7or se$ e) ($ctor de *)o/ueo ,'s re1 stros )!1 cos se tr$"s(er r'"0 ,e"os o+er$c o"es h$*r' /ue h$cer 7 se t$rd$r' ,e"os e" +roces$r e) ( chero8 Se1;" esto cu$"to ,$7or se$ ,e6or8 Por otr$ +$rte0 c$d$ #e. /ue se tr$"s( ere "(or,$c !" de EZS0 se de6$ e" u"$ .o"$ de ,e,or $ es+ec $) ))$,$d$ $uffer8 Cu$"to ,$7or se$ e) t$,$:o de *)o/ueo0 ,$7or ser' e) *u((er 7 ,e"os ,e,or $ ,e /ued$r' +$r$ e) resto de )$ "(or,$c !"8

8$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

A) ( "$) h$7 /ue )o1r$r u" e/u ) *r o +$r$ deter, "$r e) t$,$:o d!"eo8 3a"'" &' &at!"# Es u" co"6u"to de d$tos re)$c o"$dos $),$ce"$dos "ter"$,e"te e" u" co"6u"to de ( cheros8

4. TIPOS DE SOPORTE# Los so+ortes de $),$ce"$, e"to secu"d$r o so" e" )os /ue $),$ce"o )$ "(or,$c !"0 7 +uede" ser de V t +os5 - Secue"c $)es5 P$r$ $cceder $ u" re1 stro o d$to co"creto de"tro de 9)0 te"1o /ue +$s$r +re# $,e"te +or todos )os re1 stros $"ter ores $ 9)8 E) e6e,+)o es u"$ c "t$ ,$1"9t c$8 - D recc o"$*)es5 Es +os *)e $cceder d rect$,e"te $ u"$ d recc !" co"cret$ de so+orte8 E) e6e,+)o es u" d sco8

.. TIPOS DE ORGANI/ACIONES DE FIC?EROS# O*(a$iQa-i:$ &' a*-Hi !"# V e"e deter, "$d$ +or V c$r$cter3st c$s5 - M9todo de or1$" .$c !"5 K9c" c$ /ue ut ) .o +$r$ co)oc$r )$ "(or,$c !" de )os re1 stros de"tro de) d s+os t #o8 - M9todo de $cceso5 Co"6u"to de +ro1r$,$s /ue ,e +er, te" $cceder $ )$ "(or,$c !" /ue +re# $,e"te he $),$ce"$do 7 #$" $ de+e"der ,ucho de) ,9todo de or1$" .$c !"5 - Acceso d recto5 P$r$ $cceder $ u" $cceso co"creto "o h$7 /ue +$s$r +or )os $"ter ores8 E) so+orte t e"e /ue ser d recc o"$*)e8 - Acceso secue"c $)5 P$r$ $cceder $ u" re1 stro h$7 /ue +$s$r +or todos )os $"ter ores0 7 esto es +os *)e s e) so+orte es secue"c $)0 $u"/ue t$,* 9" +uedo h$cer)o e" u"o d recc o"$*)e8 M=t!&!" &' !*(a$iQa-i:$# H$7 P t +os de or1$" .$c !"5 - Secue"c $) - D rect$ - Secue"c $) "deA$d$ ? Secue"c $)5 Los re1 stros se #$" 1r$*$"do e" u" d s+os t #o u"os detr's de otros co"secut #$,e"te0 s " de6$r huecos 7 se1;" e) orde" e" /ue so" 1r$*$dos o 1u$rd$dos8 A) ( "$) +$r$ deter, "$r e) ( " de ( chero se us$ )$ ,$rc$ EOH <E"d O( H )e=8 ? D rect$5 Se +uede $cceder $ u" re1 stro d rect$,e"te8 P$r$ e))o so" "eces$r $s V cos$s5 F`= ]ue c$d$ re1 stro te"1$ $soc $d$ u"$ c)$#e /ue )o de"t ( /ue8 V`= K e"e /ue eA st r u"$ (u"c !" es+ec $) ))$,$d$ (u"c !" de d recc o"$, e"to /ue se$ c$+$. de co"#et r )$ c)$#e $ u"$ d recc !" (3s c$ re$) e" e) d s+os t #o0 /ue es $ )$ /ue $ccedere,os +$r$ )oc$) .$r )$ "(or,$c !" *usc$d$8 E" )$ +r'ct c$ e" re$) d$d h$7 u" +$so "ter,ed o e"tre )$ c)$#e 7 )$ d recc !" (3s c$ /ue es )$ d recc !" re)$t #$ $ re1 stro8

81

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Su+o" e"do u" ( chero de " re1 stros )!1 cos "u,er$dos de W $ "?F0 este #$)or $soc $do $) re1 stro es )o /ue ser3$ su d recc !" re)$t #$ $ re1 stro0 es dec r0 /ue )o /ue t e"e /ue eA st r es u"$ (u"c !" /ue co"# ert$ )$ c)$#e $ d recc !" re)$t #$ $ re1 stro0 7 )ue1o u"$ (u"c !" /ue co"# ert$ )$ d recc !" re)$t #$ $ re1 stro $ d recc !" (3s c$0 do"de )$ d recc !" (3s c$ te"dr' Vo)u,e"0 C ) "dro0 P st$ 7 Re1 stro0 7 est$ (u"c !" +uede ser +or e6e,+)o e) +roced , e"to de d # s o"es suces #$s8 P$r$ re$) .$r este +roced , e"to0 +r ,ero h$7 /ue dec r e) ";,ero de #o);,e"es0 e) ";,ero de c ) "dros0 e) ";,ero de + st$s 7 e) ";,ero de re1 stros /ue h$78 Des+u9s h$7 /ue re$) .$r suces #$s d # s o"es5 DRR "` re1 stros "` + st$s CV RP "` c ) "dros Vo)u,e"

RF CF Re1 stros RV P st$s

CP C ) "dros

Vo)u,e" 5 CP C ) "dro5 RP P st$5 RV E,+e.$"do $ co"t$r desde W8 Re1 stros5 RF Ke"e,os u" d s+os t #o co" Q #o);,e"es0 P c ) "dros +or #o)u,e"0 R + st$s +or c ) "dro 7 VW re1 stros +or + st$8 2D!"de est' e) re1 stro FWWF4 FWWF F VW QW V R FV W

P R

So)uc !" RWVF ! RWVV0 se1;" e,+ece,os $ "u,er$r +or W o +or F8 E) +ro*)e,$ est' e" co,o co"#ert r )$ c)$#e de u" re1 stro $ d recc !" re)$t #$ $ re1 stro0 s e" u" so+orte co,o ,'A ,o +ode,os $),$ce"$r " re1 stros )$ d recc !" re)$t #$ $ re1 stro r' de W $ "?F )ue1o h$*r' /ue co"#ert r )$ c)$#e $ u"o de estos #$)ores8 E" cu$)/u er c$so sue)e ocurr r /ue e) r$"1o de c)$#es <co"6u"to de tod$s )$s c)$#es +os *)es /ue se +uede" d$r= es ,e"or /ue "0 7$ /ue e" )$ +r'ct c$ e) es+$c o reser#$do es ,e"or /ue e) r$"1o de " +or/ue "o us$,os todo e) es+$c o8 Se1;" esto +uede ocurr r /ue $ d (ere"tes c)$#es )es corres+o"d$" )$ , s,$ d recc !" re)$t #$ $ re1 stro 7 +or t$"to )$ , s,$ d recc !" (3s c$ +$r$ $),$ce"$rse8 A estos re1 stros se )es de"o, "$ s "!" ,os0 7 cu$"do esto ocurre h$*r' /ue $),$ce"$r $ )os re1 stros /ue t e"e" )$ , s,$ +os c !" e" u" )u1$r $+$rte reser#$do +$r$ 1u$rd$r )os s "!" ,os8 E) 're$ reser#$d$ se +uede co)oc$r e" #$r os s t os de"tro de u" d s+os t #o8

82

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Por e6e,+)o s e) r$"1o de c)$#es #$ de W $ LLL0 7 )$ c)$#e es FFLFLLRP u"$ (or,$ de $),$ce"$r)$0 ser3$ co1 e"do )os P ;)t ,os ";,eros LRP8 E" cu$)/u er c$so )$ (u"c !" /ue co"# ert$ u"$ c)$#e $ d recc !" re)$t #$ $ re1 stro ser' t$) /ue +rodu.c$ e) ,e"or ";,ero de co) s o"es de s "!" ,os +os *)es8 ? Secue"c $) "deA$d$5 E" est$ or1$" .$c !" t$,* 9" se +uede $cceder $ u" re1 stro d rect$,e"te0 +ero $hor$ )o h$r9 ,ed $"te "#est 1$c !" 6er'r/u c$ de 3"d ces8 P$r$ /ue se +ued$ $+) c$r est$ or1$" .$c !"0 o*) 1$tor $,e"te )os re1 stros t e"e" /ue te"er $soc $dos u"$ c)$#e8 E" u" $rch #o co" est$ or1$" .$c !" se d st "1ue" P 're$s5 - Are$ de d$tos - Are$ de 3"d ces - Are$ de eAcede"tes Cu$"do se cre$ e) ( chero )$ "(or,$c !" se #$ 1u$rd$"do e" e) 're$ de d$tos 7 $) , s,o t e,+o se #$" cre$"do 3"d ces e" e) 're$ de 3"d ces +$r$ +oder )ue1o )oc$) .$r esos d$tos8 Des+u9s de )$ cre$c !" de) ( chero )$ "(or,$c !" se $),$ce"$ e" e) 're$ de eAcede"tes 7 se #$ $ctu$) .$"do t$,* 9" e) 're$ de 3"d ces8 Ti%!" &' +$&i-'"# - I"d ce de + st$5 Es e) de ,'s *$6o " #e) 7 es o*) 1$tor o8 H$7 u" 3"d ce de + st$ +or c$d$ + st$ de) c ) "dro0 7 este 3"d ce co"t e"e V e"tr$d$s o #$)ores8 E) +r ,ero deter, "$ cu$) es e) #$)or de )$ c)$#e ,'s $)t$ $),$ce"$d$ e" es$ + st$0 7 e) se1u"do deter, "$ cu$) es )$ c)$#e de) +r ,er re1 stro de eAcede"te de es$ + st$8 - I"d ce de c ) "dro5 Es e) de s 1u e"te " #e) 7 t$,* 9" es o*) 1$tor o8 K e"e u"$ e"tr$d$ +or c$d$ c ) "dro 7 e" es$ e"tr$d$ co"te"dr' )$ c)$#e ,'s $)t$ de )os re1 stros $),$ce"$dos e" ese c ) "dro8 - I"d ce ,$estro5 No es o*) 1$tor o8 So)o se us$ cu$"do e) 3"d ce de c ) "dro ocu+$ ,'s de R + st$s8 K e"e u"$ e"tr$d$ +or c$d$ + st$ de) 3"d ce de c ) "dros 7 co"te"dr' )$ c)$#e ,'s $)t$ de )os re1 stros $ )os /ue re(ere"c $" todos )os c ) "dros de es$ + st$8

E65 V + st$s Z c ) "dro 7 V re1 stros Z + st$ P st$ V Are$ de 3"d ces SW FV P st$ F PQ

RV

SW

FV FQ

VW

PQ

83

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Are$ de d$tos V PG RV QW SW CP

FW CF

FV

FR

VW

PW

PQ CV

Are$ de eAcede"tes

FQ

F[

FS

P$r$ *usc$r e) re1 stro PW0 h$7 /ue r , r$"do s PW es \E /ue e) re1 stro co" e) /ue )o co,+$r$,os8 S ))e1$ e) FQ0 )o ,ete,os e" e) 're$ de eAcede"tes +or/ue "o c$*e8 1. OPERACIONES CON FIC?EROS# 1. C*'a-i:$ ! -a*(a &' u$ 9i-H'*!# Co"s ste e" ,eter )os d$tos +or +r ,er$ #e. e" u" ( chero /ue "o eA ste8 P$r$ e))o h$7 /ue deter, "$r e) es+$c o /ue h$7 /ue reser#$r +$r$ e) ( chero 7 e) ,9todo de $cceso8 2. R'!*(a$iQa-i:$ &' u$ 9i-H'*!# Co"s ste e" cre$r u" ( chero "ue#o $ +$rt r de u"o /ue 7$ eA ste8 Co"# e"e reor1$" .$r)o cu$"do 7$ resu)t$ "e( c e"te su uso +or/ue h$7 de,$s $d$s co) s o"es de s "!" ,os o ,uchos re1 stros /ue 7$ "o eA ste"8 3. Cla"i9i-a-i:$ &' u$ 9i-H'*!# Co"s ste e" orde"$r )os re1 stros +or u"o o #$r os c$,+os8 E" )os s ste,$s 1r$"des0 e) +ro+ o s ste,$ o+er$t #o 7$ so+ort$ o+er$c o"es /ue re$) .$" )$ or1$" .$c !" <SORK=8 4. D'"t*u--i:$ &' u$ 9i-H'*!# Destrucc !" de u" ( chero5 S 1" ( c$ e) , "$r tod$ )$ "(or,$c !" /ue co"t e"e e) ( chero8 .. R'u$i:$ ! 9u"i:$ &' u$ 9i-H'*!# Cre$r u" ( chero $ +$rt r de #$r os8 1. R!tu*a ! '"talli&! &' u$ 9i-H'*!# A +$rt r de u" ( chero cre$r #$r os8 4. G'"ti:$ &' u$ 9i-H'*!# P$r$ tr$*$6$r co" u" ( chero )o +r ,ero /ue te"1o /ue h$cer es cre$r)o8 P$r$ cre$r u" ( chero te"1o /ue d$r u" "o,*re /ue es co" e) /ue )e #$ $ 1u$rd$r e" e) d s+os t #o8 Pero +$r$ ,$"e6$r ese ( chero de"tro de u" +ro1r$,$ te"dr9 /ue $s 1"$r)e u"$ #$r $*)e de t +o de ( chero /ue )ue1o te"dr9 /ue $soc $r co" e) "o,*re (3s co de) ( chero +$r$ +oder tr$*$6$r co" 9)8 A +$rte de esto0 t$,* 9" +uedo d$r e) t$,$:o de) ( chero0 su or1$" .$c !" 7 e) t$,$:o de su *)o/ue o re1 stro (3s co0 $u"/ue estos P ;)t ,os +$r',etros0 so)o ser' "eces$r o d$r)os +$r$ s ste,$s 1r$"des8 A"tes de cre$r e) ( chero te"1o /ue de( " r )$ estructur$ de su re1 stro +$r$ )ue1o $) de( " r )$ #$r $*)e /ue #$ $ re(ere"c $r e) ( chero deter, "$r /ue ( chero #$ $ co"te"er ese t +o de re1 stro8 U" ( chero se cre$ cu$"do re$) .$,os )$ o+er$c !" de $+ertur$ de) , s,o0 $u"/ue h$7 )e"1u$6es e" )os /ue h$7 /ue es+ec ( c$r V cos$s <cre$c !" 7 $+ertur$=0 7 e" otros s $) $*r r)o eA ste se cre$8 A) cre$r u" ( chero s 7$ eA ste0 #$ $ de+e"der de) )e"1u$6e0 e" u"os d$ error 7 e" otros se ,$ch$c$ )o /ue 7$ eA ste8

84

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E" )$ o+er$c !" de $+ertur$ s 7$ eA ste de ( chero0 de+e"de de )$ (or,$ de $+ertur$ /ue ese ( chero /ue 7$ eA st3$ se$ ,$ch$c$do o +er,$"e.c$8 De cu$)/u er (or,$ e" )$ o+er$c !" de $*r r te"e,os /ue "d c$r )$ #$r $*)e de t +o ( chero /ue "os #$ $ ser# r +$r$ tr$*$6$r co" ese ( chero e" e) +ro1r$,$0 $ co"t "u$c !" 7 e"tre B B e) "o,*re re$) de ese ( chero e" e) d s+os t #o0 7 ( "$),e"te e) ,odo de $+ertur$ de) ( chero8 A*r r <\"o,M( chD0C"o,Mre$)C0\,odoM$+ertD= Los ,odos de $+ertur$0 de+e"de" de) )e"1u$6e de +ro1r$,$c !" 7 de) ,odo de or1$" .$c !"8 Se d st "1ue" P ,odos de $+ertur$5 - Modo de e"tr$d$ o )ectur$8 - Modo de s$) d$ o escr tur$8 - Modo de e"tr$d$Zs$) d$ o )ectur$Zescr tur$8 APPEND5 EA ste e" $)1u"os )e"1u$6es8 P$r$ dec)$r$r u"$ #$r $*)e de t +o ( chero0 h$7 /ue us$r u"$ #$r $*)e de t +o ( chero /ue es5 H chero de \t +oMre1D8 K +o $)u,"o5 re1 stro CodM$)u,5 e"tero D recc o"5 c$de"$aPWb Not$5 re$) H " re1 stro V$r (5 ( chero de $)u,"o A*r r <H0Cc5jestud $"tes8d$tC0\,odoD= - Modo de e"tr$d$5 Ese ( chero )o #o7 $ us$r +$r$ )eer "(or,$c !" de 9) +ero "o )o #o7 $ ,od ( c$r8 P$r$ /ue u" ( chero se $*r$ e" este ,odo +re# $,e"te t e"e /ue eA st r 7 s "o es $s30 "os d$r' u" error8 - Modo de escr tur$5 Ut ) .o u" ( chero +$r$ escr * r "(or,$c !" e" 9)8 A) $*r r)o "o h$ce ($)t$ /ue eA st$0 s 7$ eA st ese0 de+e"de de) )e"1u$6e0 +ero "or,$),e"te se ,$ch$c$ )o /ue h$7 <)o /ue #$,os $ h$cer=8 - Modo de e"tr$d$Zs$) d$5 Vo7 $ h$cer o+er$c o"es de co"su)t$ 7 $ctu$) .$c !" de )$ "(or,$c !"8 - Modo APPEND5 E" +seudoc!d 1o "o )o #$,os $ us$r8 A++e"d s 1" ( c$ $:$d r0 7 se ut ) .$ +$r$ escr * r e" u" ( chero +ero $:$d e"do )$ "(or,$c !" $) ( "$) de) , s,o8 E" $)1u"os )e"1u$6es t$,* 9" eA ste )$ o+er$c !" RESEK0 /ue )o /ue ,e h$ce es +os c o"$r,e $) +r "c + o de) ( chero8 Reset <\#$rM( chD= E" todo ,o,e"to0 eA st r' u" +u"tero /ue ,e "d c$ e" /ue +os c !" de) ( chero esto7 s tu$do8 A) $*r r u" ( chero "or,$),e"te se$ cu$) se$ e) ,odo de $+ertur$ ,e #o7 $ /ued$r s tu$do $) co, e".o de) ( chero0 s$)#o /ue use e) ,odo de $+ertur$ A++e"d0 /u ,e +os c o"$r3$ $) ( "$) de) ( chero8 A ,ed d$ /ue #o7 h$c e"do o+er$c o"es e" e) ( chero0 este #$)or se #$ $ctu$) .$"do8 Cerr$r u" ( chero5 ]u ere dec r desh$cer )$ co"eA !" e"tre )$ #$r $*)e de) +ro1r$,$ /ue esto7 us$"do +$r$ ,$"e6$r e) ( chero 7 e) ( chero re$) /ue est' e" e) d s+os t #o8 Cerr$r <\#$rM( chD= S e,+re /ue se $c$*e de tr$*$6$r co" u" ( chero o /ue /uer$,os c$,* $r e) ,odo de tr$*$6$r co" ese ( chero0 +r ,ero )o cerr$re,os 7 s /uere,os #o)#er $ tr$*$6$r co" 9)0 )o #o)#e,os $ $*r r8

85

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

NUNCA ?AY DUE DEAAR UN FIC?ERO A3IERTO. E" $)1u"os )e"1u$6es eA ste )$ o+er$c !" *orr$r u" ( chero 7 )o /ue h$ce es e) , "$r (3s c$,e"te e) ( chero8 A+$rte de todo esto t$,* 9" eA ste" otr$s re)$c o"$d$s co" su $ctu$) .$c !"0 /ue so" )$s $)t$s0 )$s *$6$s 7 )$s ,od ( c$c o"es8 L$s co"su)t$s so" u"$ o+er$c !" de ,$"te" , e"to de) ( chero8 Alta# Co"s ste e" $:$d r u" re1 stro $) ( chero8 S e" e) ( chero )os re1 stros t e"e" $)1;" c$,+o c)$#e0 )o +r ,ero /ue h$7 /ue co,+ro*$r $) d$r u"$ $)t$ es /ue "o eA st$ 7$ otro re1 stro co" )$ , s,$ c)$#e8 3a)a# Co"s ste e" e) , "$r u" re1 stro de) ( chero8 L$ *$6$ +uede ser (3s c$ o )!1 c$8 - H3s c$5 Cu$"do e) , "o (3s c$,e"te e) re1 stro de) ( chero8 - L!1 c$5 Cu$"do $) re1 stro )o ,$rc! de u"$ ,$"er$ es+ec $) +$r$ "d c$r /ue 7$ "o es #') do +ero "o )o e) , "o (3s c$,e"te8 A r$s1os de) tr$t$, e"to de )$ "(or,$c !" es co,o s 7$ "o eA st er$8 E" ( cheros secue"c $)es "o se +er, te )$ ,od ( c$c !" de )$ "(or,$c !" t$) /ue +$r$ d$r de *$6$ $ u" re1 stro de u" ( chero0 )o /ue h$7 /ue h$cer es cre$r otro ( chero co" todos )os re1 stros ,e"os e) /ue /uere,os e) , "$r8 E" e) resto de )$s or1$" .$c o"es "or,$),e"te se d$ )$ *$6$ )!1 c$ <co" u"$ ,$rc$= 7 cu$"do te"1o ,uchos re1 stros ,$rc$dos co,o *$6$ )!1 c$ reor1$" .o e) ( chero <*$6$ (3s c$=8 S )os re1 stros co"t e"e" c)$#e +$r$ d$r de *$6$ $ u" re1 stro te"dr9 /ue d$r su c)$#e , r$r )o +r ,ero s eA ste 7 so)o e" ese c$so )o +odr9 *orr$r8 R'(la" i,%!*ta$ti"i,a"# - P$r$ d$r )$ $)t$ $ u" re1 stro co" c)$#e0 +r ,ero h$7 /ue #er s "o h$7 " "1;" re1 stro co" es$ c)$#e8 - Pa*a &a* la 0a)a a u$ *'(i"t*!# 1. ?aK Iu' 0u"-a* "i 'l *'(i"t*! ';i"t'. 2. M!"t*a* la i$9!*,a-i:$ %!* %a$talla K %'&i* la -!$9i*,a-i:$ &'l u"ua*i!. M!&i9i-a-i:$# Mod ( c$r u" re1 stro co"s ste e" c$,* $r )$ "(or,$c !" /ue co"t e"e0 es dec r0 c$,* $r e) #$)or de u"o o ,'s de sus c$,+os8 E" e) c$so de )$ or1$" .$c !" secue"c $) co,o "o se +uede" ,od ( c$r d rect$,e"te0 )o /ue h$7 /ue h$cer es $ +$rt r de )$ "(or,$c !" /ue 7$ eA ste cre$r otro ( chero co" todos )os re1 stros ,e"os e) /ue /u ero ,od ( c$r0 /ue )o 1r$*$r9 co" )$ "(or,$c !" /ue /u er$8 A)1u"os )e"1u$6es /ue so+ort$" )$ or1$" .$c !" secue"c $) s3 +er, te" h$cer )$ ,od ( c$c !" de) re1 stro e" e) , s,o ( chero <co,o e) C=8 Cu$"do se ,od ( c$" re1 stros de u" ( chero co" c$,+os c)$#e e" e) re1 stro0 h$7 /ue te"er e" cue"t$ /ue )o /ue 6$,$s se +uede ,od ( c$r es e) #$)or de) c$,+o c)$#e0 +or/ue h$cer eso es co,o h$cer u" $)t$8 C!$"ulta"#

86

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

L$s co"su)t$s )o ;" co /ue h$ce es )eer "(or,$c !" de) ( chero 7 ,ostr$r,e )$ "(or,$c !"8 P$r$ h$cer u"$ co"su)t$ h$7 /ue d$r V cos$s5 - Cr ter o co" e) /ue co"su)to5 Co"te"dr' e) c$,+o o c$,+os +or )os /ue /u ero co"su)t$r 7 e) #$)or /ue t e"e" /ue te"er esos c$,+os8 - I"(or,$c !" /ue /u ero ,ostr$r5 A )$ hor$ de ,ostr$r )$ "(or,$c !"0 dec r /ue c$,+os /u ero ,ostr$r8

4. TRATAMIENTO DE FIC?EROS SECUENCIALES# O%'*a-i!$'" 0L"i-a"# F8 De( " r )$ estructur$ de) ( chero8 V8 A+ertur$ de) ( chero8 P8 Kr$t$, e"to de )os re1 stros8 - Escr * r <\#$rM( chD0\#$rMre1D= - Leer <\#$rM( chD0\#$rMre1D= Los ( cheros secue"c $)es "o se +uede" ,od ( c$r e" u"$ +os c !" co"cret$0 +or es$ r$.!" c$d$ #e. /ue se /u ere d$r u" $)t$0 *$6$ o ,od ( c$c !" de u" re1 stro0 co,o "o se +uede h$cer d rect$,e"te0 te"dr9 /ue us$r u" ( chero $uA ) $r t$) /ue s es u" $)t$0 e" e) "ue#o ( chero te"dr9 tod$ )$ "(or,$c !" de) ( chero $"t 1uo ,'s e) "ue#o re1 stro0 s es d$r de *$6$0 co+ o e" e) "ue#o ( chero todo )o /ue h$*3$ e" e) $"ter or ( chero ,e"os e) re1 stro /ue /u ero *orr$r0 7 s /u ero ,od ( c$r u" re1 stro0 co+ o tod$ )$ "(or,$c !" 7 $) ))e1$r $) re1 stro $ ,od ( c$r0 )o co+ o 7$ ,od ( c$do8 C!$"ulta"# Kodo tr$t$, e"to de ( cheros0 )o #o7 $ h$cer e" u" *uc)e0 7 e) ( "$) de ( chero )o se:$)$ )$ ,$rc$ EOH8 L$ +r ,er$ )ectur$ )$ #o7 $ h$cer (uer$ de) *uc)e0 7 )$s s 1u e"tes $) ( "$) de) *uc)e0 7 e) *uc)e ter, "$r' cu$"do se )ee )$ ,$rc$ EOH8 Nor,$),e"te0 e" cu$)/u er )e"1u$6e eA ste 7$ ,+)e,e"t$d$ u"$ (u"c !" /ue d ce s3 he,os ))e1$do $) ( "$) de) ( chero +ero /ue )o /ue h$ce es *usc$r )$ ,$rc$ EOH8 A*r r <\#$rM( chD0C"o,C0e"tr$d$ZS$) d$= Leer <\#$rM( chD0\#$rMre1D= M e"tr$s "o eo( <\#$rM( chD= \+roceso co" re1 stroD )eer <\#$rM( chD0\#$rMre1D= H " , e"tr$s E" P$sc$) )$ ,$rc$ de ( " de ( chero est' (3s c$,e"te e" e) ( chero0 , e"tr$s /ue e" C0 se co,+$r$ e) t$,$:o de) ( chero co" )$ de) +u"tero de) ( chero0 7 s co "c de" /u ere dec r /ue es e) ( " de) ( chero8 P*!0l',a" Iu' %!&',!" '$-!$t*a*# F8 S e) ( chero est' c)$s ( c$do +or V c$,+os 7 #o7 $ h$cer u" tr$t$, e"to de 9)0 "or,$),e"te te"dr9 /ue h$cer V *uc)es $" d$dos 7 $+ro#ech$r /ue est9" c)$s ( c$dos +or c$,+os8 V8 S e) ( chero est' c)$s ( c$do +or u" c$,+o0 +$r$ *usc$r )os ( cheros +or ese c$,+o0 h$ce,os u" so)o *uc)e $+ro#ech$"do /ue est'" c)$s ( c$dos +or ese c$,+o8

87

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

P8 S e"(re"to V ( cheros0 s u"o est' c)$s ( c$do 7 otro "o0 )eer9 e" e) *uc)e ,'s eAter"o e) /ue "o est' c)$s ( c$do0 7 e" e) ,'s "ter"o e) /ue est' c)$s ( c$do0 $+ro#ech$"do /ue est9" orde"$dos8 R8 S " "1u"o est' c)$s ( c$do0 d$ 1u$) e) orde" de )os *uc)es0 +or/ue e" )os V te"dr9 /ue *usc$r h$st$ e) ( "$)8 Q8 S )o /ue ,e + de" es s$c$r "(or,$c !" $ tr$#9s de u" c$,+o /ue "o es e) c$,+o de c)$s ( c$c !" +ero /ue se s$*e e) ";,ero de #$)ores co"cretos /ue +uede to,$r ese c$,+o0 ut ) .$re,os u"$ estructur$ de) t +o $rr$78 Ke"e,os u" ( chero co" d$tos de $)u,"os -la"i9i-a&!" %!* -u*"! K $J,'*! &' alu,$!0 te" e"do e" cue"t$ /ue )os $)u,"os se e,+ e.$" $ "u,er$r +or F8

L$ "(or,$c !" +or $)u,"o es curso0 ";,ero0 "o,*re 7 "ot$8 Deter, "$r cu$"tos $)u,"os $+ro*$dos h$7 e" c$d$ curso8 K +o $)u,"o 5 re1 stro Curso5 e"tero Nu,M$)5 e"tero No,5 c$de"$ Not$5 re$) H " re1 stro A)1or t,o c)$se V$r HM$)5 ( chero de $)u,"o RM$)5 $)u,"o A+ro*5 e"tero Cur5 e"tero I" c o A*r r <(M$)0C$)u,"os8d$tC0e"tr$d$= Leer <(M$)0rM$)= M e"tr$s "o eo( <(M$)= A+ro* W Cur rM$)8curso M e"tr$s cur E rM$)8curso S <rM$)8"ot$ DE Q= 7 <"o eo(<(M$)== E"to"ces $+ro* $+ro* X F H"s Leer <(M$)0rM$)= H " , e"tr$s Escr * r BE" e) cursoCcurCh$" $+ro*$doC$+ro* H " , e"tr$s Cerr$r <(M$)= H" Ke"e,os u" ( chero de e,+)e$dos c)$s ( c$do +or e) ";,ero de e,+)e$do 7 u" ( chero de *$6$s "o c)$s ( c$do /ue co"t e"e )os ";,eros de )os e,+)e$dos /ue se h$" d$do de *$6$8 O*te"er u" tercer ( chero /ue co"te"1$ $ )os e,+)e$dos /ue re$),e"te h$7 e" )$ e,+res$8 K +o e,+)e$do5 re1 stro Nu,Me,+5 e"tero

88

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

No,*re5 c$de"$ Sue)do5 re$) H " re1 stro A)1or t,o *$6$ V$r HMeM " 0(MeM( "5 ( chero de e,+)e$do HM*$6$5 ( chero de e"tero RMeM " 0rMeM( "5 e,+)e$do RM*5 e"tero I" c o A*r r <(MeM " 0CE,+)e$doF8d$tC0e"tr$d$= A*r r <(MeM( "0CE,+)e$doV8d$tC0s$) d$= Leer <(MeM " 0rMeM " = M e"tr$s "o eo( <(MeM " = A*r r <(M*0CB$6$s8d$tC0e"tr$d$= Leer <(M*0rM*= M e"tr$s rM* \D rMeM " 8"u,Me,+= 7 "o eo( <(M*= Leer <(M*0rM*= H " , e"tr$s S eo( <(M*= E"to"ces escr * r <(MeM( "0rMeM( "= H"s Cerr$r <(M*= Leer <(MeM " 0rMeM " = H " , e"tr$s Cerr$r <(MeM " = Cerr$r <(MeM( "= H" Ke"e,os u" ( chero de c) e"tes "o c)$s ( c$dos 7 )$ c)$#e de) ( chero de c) e"tes es e) D8N8I8 7 u" ( chero de ,orosos /ue co"t e"e e) D8N8I8 7 /ue est' c)$s ( c$do8 ]uere,os o*te"er u" ) st$do de )os c) e"tes "o ,orosos8 Leer <(Mc0rMc= M e"tr$s "o eo( <(c= A*r r <(,0CMorosos8d$tC0e"tr$d$= Leer <(M,0rM,= M e"tr$s rMc8DNI D rM, 7 "o eo( <(M,= Leer <(M,0rM,= H " , e"tr$s S rMc8DNI \D rM, E"to"ces escr * r rMc8"o,*re H"s Cerr$r <(M,= Leer <(Mc0rM,= H " , e"tr$s Ke"e,os u" ( chero de #e"t$s /ue t e"e e) ";,ero de #e"t$0 tot$) de #e"t$ 7 ";,ero de #e"dedor0 s$*e,os /ue e" "uestr$ e,+res$ tr$*$6$" Q #e"dedores "u,er$dos de) F $) Q8 ]uere,os s$*er e) tot$) #e"d do +or c$d$ #e"dedor8 K +o #e"t$5 re1 stro CodM#e"t$5 e"tero Kot$)5 re$) Ve"dedor5 e"tero H " re1 stro A)1or t,o #e"t$s V$r
8#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

HM#5 ( chero de #e"t$ RM#5 #e"t$ Ve"d5 $rr$7 aF88Qb de re$) I5 e"tero I" c o Desde EF h$st$ Q Ve"da b W H " desde A*r r <(M#0C#e"t$s8d$tC0e"tr$d$= Leer <(M#0rM#= M e"tr$s "o eo( <(M#= Ve"darM#8#e"dedorb #e"darM#8#e"dedorb X rM#8tot$) Leer <(M#0rM#= H " , e"tr$s Cerr$r <(M#= Desde EF h$st$ Q Escr * r BE) #e"dedorC Ch$ #e"d doC#e"da b H " desde H" OA--'"! &i*'-t!P '$ a*-Hi !" "'-u'$-ial'"# EA ste" )e"1u$6es /ue t e"e" (u"c o"es /ue s ,u)$" e) $cceso d recto $ u" re1 stro de"tro de u" ( chero secue"c $) <e" P$sc$) Seei- e" C (seei=0 $ est$s (u"c o"es )e "d c$,os e) ";,ero de re1 stro <e" P$sc$)= o e) ";,ero de *7tes <e" C=0 7 "os $ccede" d rect$,e"te $ es$ +os c !"8 S " e,*$r1o es s ,u)$do0 +or/ue "ter"$,e"te es$ (u"c !" #$ $ h$cer u"$ *;s/ued$ secue"c $) h$st$ /ue h$7$ ))e1$do $) ";,ero de re1 stro o $) ";,ero de *7tes8 Ma$t'$i,i'$t! &' 9i-H'*!" -!$ !*(a$iQa-i:$ &i*'-ta# - A)t$5 Pr ,ero h$7 /ue #er /ue "o eA ste e) re1 stro0 7 s "o eA ste se d$ de $)t$8 P$r$ #er s eA ste o "o eA ste0 $ +$rt r de )$ c)$#e de) re1 stro /ue /u ero d$r de $)t$0 c$)cu)o co" )$ (u"c !" de d recc o"$, e"to )$ +os c !" e" )$ /ue te"dr3$ /ue ,eter ese re1 stro8 S es$ +os c !" est' ocu+$d$0 "o )o do7 de $)t$ 7 s "o )o ,eto $))38 - B$6$5 P$r$ #er s eA ste0 h$1o 1u$) /ue $"tes8 S eA ste )o ,$rco co,o *$6$ )!1 c$0 7 cu$"do se reor1$" ce e) ( chero0 )o do7 co,o *$6$ (3s c$ re$)8 - Mod ( c$c !"5 P$r$ #er s eA ste0 h$1o 1u$) /ue $"tes8 S eA ste )o ,od ( co 7 )o #ue)#o $ 1r$*$r e" )$ , s,$ +os c !"8 - Co"su)t$s5 K e"e" se"t do )$s co"su)t$s de re1 stros e" +$rt cu)$r co" u"$ deter, "$d$ c)$#e <$ tr$#9s de )$ (u"c !" de d recc o"$, e"to=0 +ero "o )$s *;s/ued$s secue"c $)es8 Ma$t'$i,i'$t! &' 9i-H'*!" -!$ !*(a$iQa-i:$ "'-u'$-ial i$&';a&a# Es 1u$) /ue e" or1$" .$c !" d rect$0 +ero $ )$ hor$ de )oc$) .$r u" re1 stro0 e" #e. de $+) c$r u"$ (u"c !" de d recc o"$, e"to $ su c)$#e0 ut ) .$,os su c)$#e +$r$ "#est 1$r $ tr$#9s de )os 3"d ces e" do"de #$ $ est$r s tu$do8 L$s $)t$s s )$s do7 cu$"do e) ( chero se cre$0 se 1r$*$" e" e) 're$ de d$tos0 7 s e) ( chero 7$ eA st3$ se 1r$*$" e" e) 're$ de eAcede"tes8

#$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E" )$s co"su)t$s t e"e" se"t do t$"to )$s co"su)t$s de u" re1 stro e" +$rt cu)$r co,o )$s co"su)t$s secue"c $)es $ tr$#9s de u"$ c)$#e +or/ue #$" $ est$r tod$s se1u d$s8 No h$7 /ue co"(u"d r or1$" .$c !" secue"c $) "deA$d$0 co" ( cheros "deA$dos o de 3"d ces0 /ue so" u" t +o es+ec $) de ( cheros $soc $dos $ u" ( chero secue"c $) +ero "de+e"d e"te de 9)0 /ue ,e $1 ) .$" )$s *;s/ued$s e" e) ( chero secue"c $) e" e) /ue est'" "deA$dos8 Sue)e" ut ) .$rse e" *$ses de d$tos do,9st c$s8 6. FIC?EROS DE TE8TO# So" u" t +o de ( cheros es+ec $)es0 e" cu$"to $ )o /ue +ode,os )eer de e))os 7 escr * r so" c$de"$s de c$r$cteres8 S " e,*$r1o t e"e" s 1" ( c$dos d st "tos se1;" e) )e"1u$6e0 7 su o*6et #o es /ue +ode,os tr$*$6$r co" c$de"$s de c$r$cteres8 H 5 H chero de teAto C 5 C$de"$ escr * r <H0 C= )eer <H0 C= ! R"I"IO#: $ %A 0 F8 Ke"e,os u" $rr$7 co" )$ "(or,$c !" de "uestros +roductos0 +or c$d$ +roducto $),$ce"$,os su c!d 1o0 descr +c !"0 stoci $ctu$) 7 stoci ,3" ,o8 Se tr$t$ de o*te"er otro $rr$7 /ue co"te"1$ )os +roductos de )os /ue h$))$ /ue h$cer +ed dos +or/ue su stoci se$ "(er or $) ,3" ,o0 t$) /ue $) +ro#eedor )e te"e,os /ue d$r co,o d$tos )$ de"t ( c$c !" de) +roducto 7 )$ c$"t d$d /ue +ed ,os0 /ue co "c d r' co" e) stoci ,3" ,o8 Nor,$),e"te tr$*$6$,os co" FWW +roductos8

K +o +roducto E re1 stro Cod 1o5 e"tero Descr +c !"5 c$de"$ Stoci5 e"tero StociM, "5 e"tero H " re1 stro Ped do E re1 stro Cod 1o5 e"tero C$"t d$d5 e"tero H " re1 stro L st$M+roducto E $rr$7 aF88FWWb de +roducto L st$M+ed do E $rr$7 aF88FWWb de +ed do A)1or t,o $),$ce" V$r Prod5 ) st$M+roducto Ped5 ) st$M+ed do I065 e"tero I" c o @F Desde EF h$st$ FWW S +roda b8stoci \ +roda b8stociM, "

#1

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E"to"ces +eda6b8cod 1o +roda b8cod 1o Peda6b8c$"t d$d +roda b8stociM, " @ 6XF H"s H " desde H" V8 D$do u" $rr$7 /ue co"t e"e )$ "(or,$c !" de )os $)u,"os de u"$ c)$se de FWW $)u,"os0 7 te" e"do e" cue"t$ /ue de c$d$ u"o de e))os $),$ce"$,os su ";,ero de eA+ed e"te0 "o,*re 7 "ot$ ,ed $8 H$))$r )$ ,ed $ de todos )os $)u,"os de es$ c)$se 7 d$r otr$ o+c !" /ue + d$ e) "o,*re de u" $)u,"o 7 ,e de su "ot$ s este $)u,"o eA ste8 K +o $)u,"o E re1 stro EA+ed e"te5 e"tero No,*re5 c$de"$ Med $5 re$) H " re1 stro L st$ E $rr$7aF88FWWb de $)u,"o A)1or t,o "ot$s V$r A)u,5 ) st$ O+0 5 e"tero M$rc$5 *oo)e$"o I" c o Prese"t$r <o+= M e"tr$s <o+ \DW= Se1;" se$ o+ F5 escr * r BL$ ,ed $ de )$ c)$se esC"ot$M,ed $ <$)u,= V5 escr * r BI"troduce u" "o,*reC )eer "o,*re ,$rc$ ($)so F re+et r s co,+$r$r <$)u,a b8"o,*re0"o,*re= E #erd$dero e"to"ces ,$rc$ E #erd$dero s "o XF ("s h$st$ < D FWW= o <,$rc$E#erd$dero= s ,$rc$ E #erd$dero e"to"ces escr * r BL$ "ot$ deC"o,*reCesC$)u,a b8,ed $ s "o escr * r BE) $)u,"o "o eA steC ("s ( " se1;" se$ +rese"t$r <o+= ( " , e"tr$s (" P8 Ke"e,os u" $rr$7 co" )$ "d c$c !" de c$d$ +roducto0 stoci0 descr +c !" 7 (ech$8 H$))$r u"$ o+c !" /ue "os s r#$ ter$t #$,e"te +$r$ h$cer +ed dos de +roductos 7 /ue ter, "$ cu$"do + d$,os e) +roducto W8 Por c$d$ +ed do se d$ e) de"t ( c$dor de +roducto /ue se + de0 7 )$ c$"t d$d de +roducto0 7 )o /ue "os d ce es s h$7 c$"t d$d su( c e"te0 res+o"d e"do BPed do su, " str$doC 7 $ctu$) .$"do e)

#2

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

stoci0 7 s e) +roducto so) c t$do "o eA ste o "o h$7 su( c e"te c$"t d$d0 ,ostr$r' u" ,e"s$6e de error eA+) c$"do )$ c$us$8 K +o tM(ech$ E re1 stro D $5 e"tero Mes5 e"tero A""o5 e"tero H " re1 stro Producto E re1 stro Cod 1o5 e"tero Descr + c o"5 c$de"$ Stoci5 e"tero Hech$5 tM(ech$ H " +roducto L st$ E $rr$7aF88FWb de +roducto A)1or t,o +ed dos V$r Prod5 ) st$ Cod 1o0c$"t d$d0 5 e"tero M$rc$5 *oo)e$"o I" c o Escr * r BI"troduce e) cod 1oC Leer cod 1o Escr * r BI"troduce )$ c$"t d$dC Leer c$"t d$d M e"tr$s cod 1o \D W IF M$rc$ ($)so Re+et r S cod 1o E +roda b8cod 1o E"to"ces ,$rc$ #erd$dero S "o XF H"s H$st$ <,$rc$ E #erd$dero= o < D FWW= S ,$rc$ E ($)so E"to"ces escr * r BNo eA ste e) +roductoC S "o s +roda b8stoci \ c$"t d$d E"to"ces escr * r BNo h$7 c$"t d$d su( c e"teC S "o +roda b8stoci +roda b8stoci e c$"t d$d Escr * r B+ed do su, " str$doC H"s H"s H " , e"tr$s H" (u"c o" "ot$M,ed $ <$5 ) st$=5 re$) #$r 5 e"tero $cu,5 re$) "co $cu, W desde EF h$st$ FWW $cu, $cu, X $a b8"ot$ ( " desde retor"o <$cu,ZFWW= ( " "ot$M,ed $

#3

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

(u"c o" co,+$r$c o" <cF5c$de"$0cV5c$de"$=5 *oo)e$"o #$r 5 e"tero "co F , e"tr$s <cFa bEcVa b= 7 <cFa b\DOlO= 7 <cVa b\DOlO= XF ( " , e"tr$s s cFa bEcVa b e"to"ces retor"o #erd$dero s "o retor"o ($)so ("s ( " co,+$r$c o" Proced , e"to +rese"t$r <e"t?s$) o+c o"5 e"tero= I" c o Re+et r Escr * r BW8 S$) rC Escr * r BF8 H$))$r "ot$ ,ed $C Escr * r BV8 H$))$r )$ "ot$ de u" $)u,"oC Escr * r BI"troduce u"$ o+c !"C Leer o+c o" H$st$ <o+c o" DEW= 7 <o+c o" \EV= H " +rese"t$r R8 Ke"e,os u" ( chero de ($ctur$s8 E" )$ ($ctur$ # e"e e) ";,ero de c) e"te $) /ue +erte"ece )$ ($ctur$0 e) ";,ero de ($ctur$0 e) ,+orte de )$ ($ctur$ 7 u" c$,+o +$1$do /ue ser' *oo)e$"o8 E) ( chero est' c)$s ( c$do +ro ";,ero de c) e"te 7 de ($ctur$8 D se:$r u" +ro1r$,$ /ue o*te"1$ +or +$"t$))$ +$r$ c$d$ c) e"te e) tot$) /ue "os de*e0 7 $) ( "$) ,e d9 e) tot$) de )o /ue )$ e,+res$ "o h$ co*r$do8 K +o ($ctur$5 re1 stro Nu,Mc)5 e"tero Nu,M($ct5 e"tero I,+orte5 re$) P$1$do5 *oo)e$" H " re1 stro A)1or t,o ($ctur$s V$r H ch5 ( chero de ($ctur$ H$ct5 ($ctur$ Kot$)0deud$5 re$) C) e"te5 e"tero I" c o A*r r <( ch0C($ctur$s8d$tC0e"tr$d$= Leer <( ch0($ct= Kot$) W M e"t$s "o eo( <( ch= Deud$ W C) e"te ($ct8"u,Mc) M e"tr$s <c) e"te E ($ct8"u,Mc)= 7 "o eo( <( ch= S ($ct8+$1$do E ($)so E"to"ces deud$ deud$ X ($ct8 ,+orte Kot$) tot$) X ($ct8 ,+orte H"s Leer <( ch0($ct=
#4

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H " , e"tr$s Escr * r BE) c) e"teCc) e"teCde*eCdeud$ H " , e"tr$s Escr * r BL$ e,+res$ "o h$ co*r$doCtot$) H" Q8 Ke"e,os u" ( chero de e,+)e$dos /ue co"t e"e e) de+$rt$,e"to0 c!d 1o de e,+)e$do0 "o,*re0 c$te1or3$ 7 sue)do8 H$7 FV c$te1or3$s "u,er$d$s de) W $) FF8 Por c$d$ de+$rt$,e"to s$c$r e) ";,ero tot$) de e,+)e$dos /ue t e"e 7 e) sue)do ,ed o +or de+$rt$,e"to8 Lo , s,o h$cer)o +or c$te1or3$s8 E) ( chero est' c)$s ( c$do +or c!d 1o de de+$rt$,e"to 7 e,+)e$do8 K +o e,+5 re1 stro CodMde+5 e"tero CodMe,+5 e"tero No,*Me,+5 c$de"$ C$te1or $5 e"tero Sue)do5 re$) H " re1 stro C$t5 re1 stro Sue)do5 re$) E,+5 e"tero H " re1 stro A)1or t,o e,+)e$dos V$r HMe,+5 ( chero de e,+ RMe,+5 e,+ KMde+5 re$) NMde+0 0d5 e"tero C5 $rr$7 aW88FFb de c$t I" c o Desde EW h$st$ FF Ca b8sue)do W Ca b8e,+)e$do W H " desde A*r r <(Me,+0Ce,+)e$dos8d$tC0e"tr$d$= Leer <(Me,+0rMe,+= M e"tr$s "o eo( <(Me,+= D rMe,+8codMde+ KMde+ W NMde+ W M e"tr$s <dErMe,+8codMde+= 7 "o eo( <(Me,+= KMde+ tMde+ X rMe,+8sue)do NMde+ "Mde+ X F CarMe,+8c$te1or $b8sue)do carMe,+8c$te1or $b8sue)do X rMe,+8sue)do CarMe,+8c$te1or $b8e,+ carMe,+8c$te1or $b8e,+ X F Leer <(Me,+0rMe,+= H " , e"tr$s Escr * r BE) sue)do ,ed o de) de+$rt$,e"toC d B esC tMde+ Z "Mde+ H " , e"t$s Desde E W h$st$ FF Escr * r BE) sue)do de )$ c$te1or3$C CesCca b8sue)doZca b8e,+ H " desde
#5

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Cerr$r <(Me,+= H" S8 P$r$ co"tro)$r )os stocis de u" $),$c9" te"e,os5 - U" ( chero B$),$c9"C0 "o c)$s ( c$do /ue co"t e"e )$s eA ste"c $s de c$d$ +roducto e" $),$c9"0 7 s$*e,os /ue h$7 u" ,'A ,o de [QW +roductos8 C$d$ re1 stro t e"e e) c!d 1o de +roducto<F88[QW=0 )$ c$"t d$d e" stoci de ese +roducto 7 e) "o,*re de) +roducto - U" ( chero B+ed dosC /ue co"t e"e todos )os +ed dos /ue se so) c t$" $) $),$c9"8 C$d$ +ed do co"t e"e e) ";,ero de +ed do0 e) c!d 1o de +roducto /ue se + de 7 )$ c$"t d$d /ue se + de8 Este ( chero est' c)$s ( c$do +or ";,ero de +ed do8 O*te"er u" ( chero de stoci $ctu$) .$do $ +$rt r de )os +ed dos0 +ud 9"dose d$r5 F8 E) +roducto /ue se + de eA ste e" e) $),$c9" 7 /ue )$ c$"t d$d /ue se + de se$ ,e"or o 1u$) $ )$ /ue h$78 S!)o se $ctu$) .$ e) ( chero8 V8 E) +roducto eA ste0 +ero )$ c$"t d$d /ue "os + de" es ,$7or /ue )$ /ue h$78 &u$rd$re,os )$ "(or,$c !" de) +ed do e" e) ( chero Bde"e1$dosC /ue t e"e e) c!d 1o de) +roducto0 )$ c$"t d$d +ed d$ 7 )$ c$"t d$d /ue h$*3$ e" stoci8 P8 E) c!d 1o de +roducto "o eA ste8 Mostr$,os +or +$"t$))$ u" ,e"s$6e /ue +o"1$ BC!d 1o de +roducto erro"eoC8 C$d$ +roducto $+$rece co,o ,'A ,o u"$ #e.8 K +o $),5 re1 stro Prod5 e"tero Stoci5 e"tero H " re1 stro Ped5 re1 stro NM+ed5 e"tero Prod5 e"tero C$"t5 e"tero H " re1 stro De"5 re1 stro Prod5 e"tero Stoci5 e"tero C$"t5 e"tero H " re1 stro A)1or t,o $),$c9" V$r HM$0(M$)5 ( chero de $)u, HMd5 ( chero de de" HM+5 ( chero de +ed dos RM$5 $), RM+5 +ed RMd5 de" I" c o A*r r <(M+0C+ed dos8d$tC0e"tr$d$= A*r r <(M"0C$),$ce"M"8d$tC0s$) d$= A*r r <(Md0Cde"e1$dos8d$tC0s$) d$= Leer <(M+0rM+= M e"tr$s "o eo( <(M+= A*r r <(M$0C$),$ce"8d$tC0e"tr$d$= Leer <(M$0rM$= M e"tr$s <rM+8+rod \D rM$8+rod= 7 "o eo( <(M$= Leer <(M$0rM$=

#6

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H " , e"tr$s S rM+8+rod E rM$8+rod E"to"ces s rM+8c$"t d$d \ rM$8stoci E"to"ces rM$"8+rod rM$8+rod RM$"8stoci rM$8stoci e rM+8c$"t d$d Escr * r <(M$"0rM$"= S "o rMd8+rod rM$8+rod RMd8c$"t rM+8c$"t RMd8stoci rM$8stoci Escr * r <(Md0rMd= H"s S "o escr * r BError8 No eA ste e) +roductoCrM+8+roducto H"s Cerr$r <(M$= Leer <(M+0rM+= H " , e"tr$s Cerr$r <(M+= Cerr$r <(Md= Cerr$r <(M$"= Actu$) .$rM$),$ce" <(M$0(M$"= H" Proced , e"to $ctu$) .$rM$),$ce" <(F5 ( chero de $),$ce"- (V5 ( chero de $),$ce"= V$r RF0rV5 $), HP5 ( chero de $), I" c o A*r r <(F0C$),$ce"8d$tC0e"tr$d$= A*r r <(P0C$),8$ctC0s$) d$= Leer <(F0rF= M e"tr$s "o eo( <(F= A*r r <(V0C$),$ce"M"8d$tC0e"tr$d$= Leer <(V0rV= M e"tr$s <rF8+rod \D rV8+rod= 7 "o eo( <(V= Leer <(V0rV= H " , e"tr$s S rF8+rod E rV8+rod E"to"ces escr * r <(P0rV= S "o escr * r <(P0rF= H"s Cerr$r <(V= H " , e"tr$s Cerr$r <(F= Cerr$r <(P= H"

#7

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA <
ORDENACIN7 3RSDUEDA E INTERCALACIN INTERNA
1. INTRODUCCIN# A )$ hor$ de tr$t$r d$tos0 ,uch$s #eces "os co"# e"e /ue est9" orde"$dos8 Estos ,9todos "os +uede" resu)t$r e( c e"tes cu$"do h$ce,os )$s *;s/ued$s8 2. ORDENACIN# Co"s ste e" or1$" .$r u" co"6u"to de d$tos e" u" orde" deter, "$do se1;" u" cr ter o8 L$ orde"$c !" +uede ser "ter"$ o eAter"$5 - I"ter"$5 L$ h$ce,os e" ,e,or $ co" $rr7$s8 Es ,u7 r'+ d$8 - EAter"$5 L$ h$ce,os e" d s+os t #os de $),$ce"$, e"to eAter"o co" ( cheros8 P$r$ deter, "$r )o *ue"o /ue es u" $)1or t,o de orde"$c !" h$7 /ue #er )$ co,+)e6 d$d de) $)1or t,o <c$"t d$d de tr$*$6o de ese $)1or t,o=0 se , de e" e) ";,ero de o+er$c o"es *'s c$s /ue re$) .$ u" $)1or t,o8 L$ o+er$c !" *'s c$ de u" $)1or t,o es )$ o+er$c !" (u"d$,e"t$)0 /ue es )$ co,+$r$c !"8 M=t!&! &' la 0u*0u)a# L$ ( )oso(3$ de este ,9todo es r co,+$r$"do )os e)e,e"tos de) $rr$7 de V e" V 7 s "o est'" co)oc$dos correct$,e"te "terc$,* $r)os0 $s3 h$st$ /ue te"1$,os e) $rr$7 orde"$do8 H$7 /ue co,+$r$r )$ +os c !" F 7 )$ V 7 s "o est'" orde"$d$s )$s "terc$,* o8 Lue1o )$ V 7 )$ P 7 $s3 suces #$,e"te h$st$ /ue co,+$ro )$s ;)t ,$s +os c o"es8 Co" est$ +r ,er$ +$s$d$ )o1r$re,os /ue /uede orde"$do e) ;)t ,o e)e,e"to de) $rr$78 Ke!r c$,e"te0 e" c$d$ +$s$d$ re,os co)oc$"do u" e)e,e"to0 7 te"dr3$,os /ue h$cer " eF +$s$d$s8 S e" u"$ +$s$d$ "o se h$ce" c$,* os0 e) $rr$7 7$ est' orde"$do8 Proced , e"to *ur*u6$ <d$tos5 $rr$7 aF88Nb de \t +oD= V$r Orde"$do5 *oo)e$"o I0 @5 e"tero AuA5 \t +oD I" c o Orde"$do ($)so IF M e"tr$s <orde"$do E ($)so= 7 < \D " e F= Orde"$do #erd$dero @I Desde 6 E F h$st$ " e F S d$tos a6b D d$tos a6 X Fb E"to"ces $uA d$tos a6b D$tos a6b d$tos a6 X Fb D$tos a6b $uA Orde"$do ($)so H"s H " desde IIXF

#8

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H " , e"tr$s H" M=t!&! &' i$"'*-i:$# Se su+o"e /ue se t e"e u" se1,e"to " c $) de) $rr$7 orde"$do0 7 h$7 /ue r $u,e"t$"do )$ )o"1 tud de se1,e"to h$st$ /ue co "c de co" )$ )o"1 tud de) $rr$78 P$r$ e))o "sert$re,os e) s 1u e"te e)e,e"to e" e) )u1$r $decu$do de"tro de) se1,e"to orde"$do8 Esto se h$ce ,o# e"do c$d$ e)e,e"to de) se1,e"to orde"$do $ )$ derech$ h$st$ /ue se e"cue"tre u"o ,e"or o 1u$) $) e)e,e"to /ue /uere,os co)oc$r e" e) se1,e"to o h$st$ /ue "o te"e,os e)e,e"tos0 7 )o co)oco e" es$ +os c !"8 P$r$ $rr$"c$r este ,9todo se +$rte de /ue e) se1,e"to orde"$do " c $) este es )$ +r ,er$ +os c !"8 Proced , e"to "serc o" <d$tos5 $rr$7 aF88Nb de \t +oD= V$r I0 @5 e"tero AuA5 \t +oD I" c o Desde E V h$st$ N AuA d$tos a b @ eF M e"tr$s <6 D W= 7 <$uA \ d$tosa6b= D$tosa6 X Fb d$tosa6b @6eF H " , e"tr$s D$tos a6 X Fb $uA H " desde H" M=t!&! &' la "'l'--i:$# Se tr$t$ de *usc$r e) e)e,e"to ,'s +e/ue:o 7 co)oc$r)o e" )$ +r ,er$ +os c !"0 des+u9s e) se1u"do ,'s +e/ue:o 7 co)oc$r)o e" )$ se1u"d$ +os c !"0 7 $s3 suces #$,e"te h$st$ /ue e) $rr$7 este orde"$do8 P$r$ e))o #$,os $ recorrer e) $rr$70 7 +or c$d$ e)e,e"to *usc$,os $ )$ derech$ de es$ +os c !" cu$) es e) ,'s +e/ue:o0 7 )o "terc$,* o co" e) e)e,e"to /ue esto7 eA$, "$"do8 Proced , e"to se)eccc o" <d$tos5 $rr$7aF88Nb de \t +oD= V$r I060+os5 e"tero AuA5 \t +oD I" c o Desde E F h$st$ N?F AuA d$tosa b Pos Desde 6 E XF h$st$ N S d$tosa6b \ $uA E"to"ces +os 6 AuA d$tosa6b H"s H " desde D$tosa+osb d$tosa b D$tosa b $uA H " desde

##

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H" M=t!&! &' !*&'$a-i:$ *L%i&a ! Dui-SSH!*t# Co"s ste e" d # d r )$ ) st$ " c $) e" otr$s dos /ue orde"$,os +or se+$r$do recurs #$,e"te8 P$r$ e))o0 se e) 1e u" e)e,e"to de )$ ) st$ $) /ue ))$,$,os + #ote0 t$) /ue $ )$ derech$ de) + #ote #$ $ /ued$r )o ,'s 1r$"de0 7 $ )$ ./u erd$ )o ,'s +e/ue:o0 es dec r0 /ue e) + #ote /ued$r' co)oc$do e" su +os c !"8 Proced , e"to ]u ciShort < " 5 e"tero- ( "5 e"tero- d$tos5 $rr$7aF88Nb de \t +oD= I" c o S " \(" E"to"ces su*) st$s < " 0( "0+ #ote0d$tos= ]u cishort < " 0+ #ote?F0d$tos= ]u cishort <+ #oteXF0( "0d$tos= H"s H" Proced , e"to su*) st$s < " 5e"tero-( "5e"tero-e"t?s$) + #ote5e"terod$tos5$rr$7aF88Nbde \t +oD= I" c o P #ote " AuA d$tosa " b Desde E + #oteXF h$st$ ( " S d$tosa b \ $uA E"to"ces + #ote + #ote X F AuAV d$tosa b D$tosa b d$tosa+ #oteb D$tosa+ #oteb $uAV H"s H " desde D$tosa " b d$tosa+ #oteb D$tosa+ #oteb $uA H" 3. 3RSDUEDAS# H$7 V t +os de *;s/ued$s0 "ter"$s /ue se h$ce" e" ,e,or $ 7 eAter"$s /ue se h$ce" e" ( cheros8 Cu$"do *usc$,os e" u" ( chero0 "or,$),e"te )o h$ce,os $ tr$#9s de u"$ c)$#e8 D$do u" deter, "$do #$)or0 se tr$t$ de #er s eA ste u" e)e,e"to co" ese #$)or e" e) $rr$7 de ( cheros do"de se *usc$0 t$) /ue se de#ue)#e s est' o "o8 EA ste" P ,9todos de *;s/ued$5 - Secue"c $)8 - B "$r $ o d cot!" c$8 - Por tr$"s(or,$c !" de c)$#es o H$sh "18 3J"Iu'&a "'-u'$-ial# Se +uede $+) c$r +$r$ *;s/ued$s "ter"$s 7 eAter"$s0 7 h$7 /ue r +$s$"do secue"c $),e"te +or todos )os e)e,e"tos de )$ estructur$ h$st$ e"co"tr$r e) e)e,e"to o $c$*$r )$ ) st$8 Proced , e"to *Msecue"c $) <d$tos5 $rr$7aF88Nb de \t +oD- e)e,5 \t +oD= V$r I5 e"tero I" c o
1$$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

IF M e"tr$s < \E N= 7 <d$tosa b \D e)e,= IIXF H " , e"tr$s S d$tosa b E e)e, E"to"ces escr * r BE)e,e"to e"co"tr$do e" )$ +os c !"C S "o escr * r BE)e,e"to "o e"co"tr$doC H"s H" 3J"Iu'&a "'-u'$-ial -!$ -'$ti$'la# Se tr$t$ de o+t , .$r e" c erto ,odo )$ *;s/ued$ secue"c $) "or,$)0 )o /ue h$ce,os es $:$d r $) ( "$) de) $rr$7 e) e)e,e"to /ue /u ero *usc$r +or )o /ue s e,+re )o e"co"tr$re8 S e"cue"tro e) e)e,e"to e" u"$ +os c !" d st "t$ de NXF s 1" ( c$ /ue "o est' e" )$ estructur$8 L$ #e"t$6$ es /ue e" )$ co"d c !" de) , e"tr$s "o te"1o /ue +re1u"t$r s se $c$*$ )$ estructur$0 ,e $horro u"$ co"d c !"0 e) "co"#e" e"te es /ue t e"e /ue so*r$r es+$c o $) ( "$) de) $rr$78 Proced , e"to *MsecMce"t "e$) <d$tos5 $rr$7aF88NXFb de \t +oDe)e,5 \t +oD= V$r I5 e"tero I" c o D$tosa"XFb e)e, IF M e"tr$s d$tosa b \D e)e, I XF H " , e"tr$s S \D "XF E"to"ces escr * r BE)e,e"to e"co"tr$do e" )$ +os c !"C S "o escr * r BE)e,e"to "o e"co"tr$doC H"s H" 3J"Iu'&a 0i$a*ia ! &i-!t:$i-a# P$r$ /ue se +ued$ $+) c$r es /ue )$ ) st$ e" )$ /ue /uere,os *usc$r e) e)e,e"to este +re# $,e"te orde"$d$8 Se tr$t$ de d # d r e) es+$c o de *;s/ued$ e" suces #$s , t$des h$st$ e"co"tr$r e) e)e,e"to *usc$do o h$st$ /ue 7$ "o +ued$ h$cer ,'s , t$des8 Pr ,ero h$))$,os e) 3"d ce de )$ , t$d de) $rr$7 7 , r$,os s e) e)e,e"to co "c de co" 9)0 s "o co "c de $#er 1u$,os do"de de*er3$ est$r e) e)e,e"to *usc$do0 s e" )$ ) st$ de )$ derech$ o de )$ ./u erd$0 7 de"tro de es$ , t$d h$1o )o , s,o suces #$,e"te8 Proced , e"to *M* "$r $ <d$tos5$rr$7 aF88Nb de \t +oD- e)e,5\t +oD" 5e"tero( "5 e"tero= V$r , t5 e"tero I" c o , t < " X( "= d # V , e"tr$s < " \ ( "= 7 <e)e, \D d$tosa, tb= s e)e, \ d$tosa, tb e"to"ces ( " , t e F s "o " , t X F

1$1

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

("s ( " , e"tr$s s " \(" e"to"ces escr * r BE)e,e"to e"co"tr$do e" )$ +os c !"C , t s "o escr * r BE)e,e"to "o e"co"tr$doC ("s (" 3J"Iu'&a %!* t*a$"9!*,a-i:$ &' -la '" ! ?a"Hi$(# Es "eces$r o /ue )o /ue se *us/ue se$ +or u" deter, "$do c$,+o c)$#e8 Se tr$t$ de co"#ert r ese c$,+o c)$#e e" u"$ d recc !" re$)0 s est$,os e" u" $rr$70 e" u" +os c !" de) $rr$7 7 s est$,os e" u" ( chero0 e" u" re1 stro de) ( chero8 Lo /ue h$ce /ue se co"# ert$ )$ c)$#e e" u"$ d recc !" re$) es )$ (u"c !" de d recc o"$, e"to8 EA ste" d (ere"tes t +os de (u"c o"es de d recc o"$, e"to5 - L$ ,'s us$d$ es )$ (u"c !" ,!du)o0 /ue co"s ste e" d # d r )$ c)$#e e"tre e) ";,ero de e)e,e"tos ,'A ,os de )$ estructur$ 7 co1er e) resto co,o d recc !" re$) de $),$ce"$, e"to <e) 3"d ce s es u" $rr$70 o u"$ d recc !" re)$t #$ s es u" ( chero=8 - E"tru"c$, e"to5 Es )$ +$rte de )$ c)$#e co,o 3"d ce8 - P)e1$, e"to5 D # d r )$ c)$#e e" +$rtes 1u$)es de t$,$:o0 /ue #$ $ ser 1u$) $) ";,ero de c (r$s de) t$,$:o de) $rr$70 )ue1o su,$r)$s 7 co1er )$s ;)t ,$s c (r$s de )$ su,$8 - M t$d de) cu$dr$do5 Es e) cu$dr$do de )$ c)$#e 7 des+u9s co1er )$s c (r$s ce"tr$)es8 E) +ro*)e,$ de estos c$sos0 es /ue cu$"do e) r$"1o de c)$#es es ,$7or /ue e) ";,ero de +os c o"es de )$ estructur$0 est' e) +ro*)e,$ de /ue $ d (ere"tes c)$#es )es corres+o"de )$ , s,$ +os c !"0 $s3 /ue cu$"do se +roduce e) se1u"do s "!" ,o h$7 /ue #er do"de se ,$"d$8 P$r$ e# t$r esto0 tr$t$r /ue )$ (u"c !" de d recc o"$, e"to +rodu.c$ e) ,e"or ";,ero de co) s o"es +os *)es8 P$r$ so)uc o"$r e) +ro*)e,$ de )os s "!" ,os5 - De6$r t$"to es+$c o co,o r$"1o de c)$#es8 Es )!1 co8 - S se tr$t$ de u" $rr$70 /ue +or c$d$ +os c !" de6e,os u"$ +os c !" ,'s8 - L$ ,e6or so)uc !" es )$ t9c" c$ de e"c$de"$, e"to0 /ue co"s ste e" /ue de c$d$ +os c !" de) $rr$7 s$)1$ u" +u"tero $ u"$ ) st$ e")$.$d$ /ue e")$ce $ todos )os e)e,e"tos /ue de*er3$" r +os c o"$dos e" es$ +os c !" o 3"d ce de) $rr$78 4. INTERCALACIN# Co"s ste e" 6u"t$r #$r $s ) st$s orde"$d$s e" u"$ so)$ ) st$ /ue /uede orde"$d$8 Proced , e"to (us o" <$F5 KF- $V5 KV- $P5 KP= V$r I060i0)5 e"tero I" c o IF @F gF M e"tr$s < \E"= 7 <6\E,= S $Fa b \ $Va6b E"to"ces $Paib $Fa b

1$2

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

IIXF S "o $Paib $Va6b @@XF H"s ggXF H " , e"tr$s S \" E"to"ces desde LE h$st$ , g i XF APaib $Va)b H " desde S "o desde LE6 h$st$ " g iXF APaib $Fa)b H " desde H"s H"

1$3

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 1>
ORDENACIN7 3RSDUEDA Y FUSIN E8TERNA
1. ARC?I5OS ORDENADOS# U" $rch #o se +uede orde"$r +or u" c$,+o o u" co"6u"to de c$,+os8 L$ ,$7or +$rte de )os s ste,$s d s+o"e" de u"$ (u"c !" SORK +$r$ orde"$r8 2. FUSIN O ME/CLA DE ARC?I5OS ORDENADOS# D$dos V $rch #os A 7 B /ue t e"e" )$ , s,$ estructur$ 7 c)$s ( c$dos +or e) , s,o c$,+o o c$,+os0 se tr$t$ de o*te"er otro $rch #o C /ue te"1$ )$ , s,$ estructur$ de )os V $"ter ores 7 /ue t$,* 9" /ued$ c)$s ( c$do +or e) , s,o cr ter o8 Proced , e"to (us o" <A5 tM( ch- B5 tM( ch- C5 tM( ch= V$r RF0 rV5 \t +oD I" c o A*r r <C0C( ch8s$)C0s$) d$= A*r r <A0C( chFC0e"tr$d$= A*r r <B0C( chVC0e"tr$d$= Leer <A0rF= Leer <B0rV= M e"tr$s "o eo( <A= 7 "o eo( <B= S rF8 "(o \ rV8 "(o E"to"ces escr * r <C0rF= Leer <A0rF= S "o escr * r <C0rV= Leer <B0rV= H"s H " , e"tr$s S eo( <A= E"to"ces )eer <B0rV= , e"tr$s "o eo( <B= Escr * r <C0rV= Leer <B0rV= H " , e"tr$s S "o )eer <A0rF= , e"tr$s "o eo( <A= Escr * r <C0rF= Leer <A0rF= H " , e"tr$s H"s Cerr$r <A= Cerr$r <B= Cerr$r <C= H" 3. FUSIN DE ARC?I5OS# Se tr$t$ de d # d r u" $rch #o e" #$r os8 H$7 d (ere"tes cr ter os de +$rt c !"5 Pa*ti-i:$ %!* -!$t'$i&!#

1$4

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Se re+$rte" )os re1 stros e"tre #$r os re1 stros se1;" e) #$)or de u"o o ,'s c$,+os8 \ VF HF E VF HV D VF HP Proced , e"to +$rtMco"t <( ch5 tM( ch- e"t?s$) ( chF0 ( chV0 ( chP5 tM( ch= V$r R5 \t +oD I" c o A*r r <( ch0CHC0e"tr$d$= A*r r <( chF0CHFC0s$) d$= A*r r <( chV0CHVC0s$) d$= A*r r <( chP0CHPC0s$) d$= Leer <( ch0r= M e"tr$s "o eo( <( ch= S r8 "(o \ VF E"to"ces escr * r <(F0r= S "o s r8 "(o D VF E"to"ces escr * r <(P0r= S "o escr * r <(V0r= H"s H"s Leer <( ch0r= H " , e"tr$s Cerr$r <( ch= Cerr$r <(F= Cerr$r <(V= Cerr$r <(P= H" Pa*ti-i:$ %!* $J,'*! 9i)! &' *'(i"t*!" ! %!* "'-u'$-ia" -!$ -la"i9i-a-i:$ i$t'*$a# Se tr$t$ de o*te"er $ +$rt r de u" ( chero #$r os0 t$) /ue todos te"1$" u" ";,ero ( 6o de re1 stros eAce+to e) ;)t ,o8 S e) ( chero " c $) t e"e d re1 stros 7 /u ero o*te"er co,o resu)t$do Y ( cheros0 c$d$ ( chero te"dr' dZY re1 stros8 Se tr$t$ de r )e7e"do secue"c $s de dZY re1 stros de) ( chero H 7 se #ue)c$" $ u" $rr$70 c)$s ( c$r es$s secue"c $s "ter"$,e"te0 7 cu$"do est9" c)$s ( c$d$s0 )$s #ue)co $ otro ( chero8 E) +ro*)e,$ es /ue se us$ $rr$7s +$r$ )$ orde"$c !" "ter"$0 7 $ #eces e) ";,ero de ( cheros de+e"de" de) t$,$:o ,'A ,o de) $rr$78 H5 P L Q FR V PW F HF5 P Q L HV5 V FR PW HP5 F Pa*ti-i:$ %!* "'-u'$-ia" "i$ -la"i9i-a-i:$ i$t'*$a# Se tr$t$ de o*te"er ( cheros $ +$rt r de u"o d$do0 todos co" e) , s,o t$,$:o0 +ero )os ( cheros "o t e"e" +or /ue est$r c)$s ( c$dos8 Nosotros ,$rc$,os e) t$,$:o de) *)o/ue do"de #$7$ $ c)$s ( c$r )$ "(or,$c !"8 Deter, "o t$,* 9" e) ";,ero ,'A ,o de ( cheros /ue /u ero te"er8 Leer9 secue"c $s de N re1 stros de) ( chero " c $) 7 )os r9 1r$*$"do e" )os ( cheros resu)t$"tes de )$ +$rt c !"8 4. CLASIFICACIN DE ARC?I5OS#

1$5

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Es o*) 1$tor o /ue eA st$ u"$ c)$#e8 S e) ( chero (uese +e/ue:o se ))e#$" todos )os re1 stros $ u" $rr$7 7 )os c)$s ( co0 +ero esto "o es )o ,'s usu$)0 +or )o /ue se us$ )$ c)$s ( c$c !" eAter"$8 Cla"i9i-a-i:$ %!* ,'Q-la &i*'-ta# V$,os $ us$r V ( cheros $uA ) $res HF 7 HV8 E) ( chero H )o or1$" .$,os 1r$*$"do e" H secue"c $s de re1 stros orde"$dos c$d$ #e. ,'s 1r$"des8 Pr ,ero )ee,os )$s secue"c $s de u" re1 stro de H 7 )$s 1r$*o $)ter"$t #$,e"te e" HF 7 HV8 Lue1o )eo )$s secue"c $s de u" re1 stro0 u"$ de HF 7 otr$ de HV0 7 )$s 1r$*o orde"$d$s e" H8 Vue)#o $ )eer e" H co" e) do*)e de secue"c $ /ue $"tes 7 )os 1r$*o e" HF 7 HV0 7 re+et ,os tod$s )$s ($ses du+) c$"do e" c$d$ +$s$d$ e) t$,$:o de )$ secue"c $ h$st$ /ue e) t$,$:o o*te" do se$ 1u$) /ue e) de) ( chero8 A c$d$ tr$t$, e"to de H se )e ))$,$ +$s$d$0 7 e) ";,ero de +$s$d$s ,'A ,o0 ser' I0 t$) /ue e) tr$t$, e"to se re+et r' h$st$ /ue V e)e#$do $ I DE ";,ero de re1 stros8 E" c$d$ +$s$d$ +$r$ c)$s ( c$r )$ secue"c $ /ue )ee,os de HF 7 HV0 ut ) .$,os e) ,9todo de (us !" eAter"$8 H5 P L Q FR V PW F FV FW HF5 P Z Q Z V Z F Z FW HV5 L Z FR Z PW Z FV H5 P L Q FR V PW F FV FW HF5 P L Z V PW Z FW HV5 Q FR ZF FV H5 P Q L FR F V FV PW FW HF5 P Q L FR Z FW HV5 F V FV PW H5 F V P Q L FV FR PW Z FW HF5 F V P Q L FV FR PW HV5 FW H5 F V P Q L FW FV FR PW Cla"i9i-a-i:$ %!* ,'Q-la" &' "'-u'$-ia" 'Iui al'$t'"# Se +$rece $) ,9todo $"ter or +or/ue t$,* 9" se "te"t$ co1er secue"c $s de re1 stros ,'s 1r$"des0 +ero $hor$ us$,os R ( cheros $uA ) $res 7 e" #e. de e,+e.$r )e7e"do secue"c $s de u" re1 stro0 h$ce,os secue"c $s de N re1 stros0 /ue )$ +r ,er$ #e. c)$s ( c$,os "ter"$,e"te0 +or )o /ue e) #$)or de N #e"dr' ) , t$do +or e) t$,$:o de) $rr$78 Pr ,ero )ee,os de) $rch #o " c $) H secue"c $s de N re1 stros /ue c)$s ( c$,os "ter"$,e"te 7 /ue 1r$*$,os $)ter"$t #$,e"te e" HF 7 HV8 Des+u9s )eo secue"c $s de N re1 stros de HF 7 HV $)ter"$t #$,e"te0 7 +or c$d$ +$r de secue"c $s )e3d$s )$s (us o"o 7 )$s 1r$*o $)ter"$t #$,e"te 7$ orde"$d$s e" HP 7 HR8 L$s secue"c $s de VN re1 stros de HP 7 HR )$s (us o"o 7 )$ secue"c $ RN o*te" d$ 7$ orde"$d$ )$ 1r$*o $)ter"$t #$,e"te e" HF 7 HV8 Re+ to esto h$st$ /ue todos )os ( cheros est9" #$c3os ,e"os F0 7 )$ "(or,$c !" de ese ( chero )$ 1r$*o $) ( chero " c $)8

1$6

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H5 P L Q FR V PW F FV FW HF5 P Q L Z F FW FV HV5 V FR PW HF5 HV5 HP5 HR5 HF5 HV5 HP5 HR5 V$c o V$c o V P Q L FR PW F FW FV F V P Q L FV FR PW Vue)co HF $) ( chero " c $) H8 V$c o V$c o V$c o

1$7

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

TEMA 11
ESTRUCTURAS DIN@MICAS LINEALES DE DATOS# LISTAS ENLA/ADAS. PILAS Y COLAS
1. INTRODUCCIN A LAS ESTRUCTURAS DIN@MICAS DE DATOS# L$s #e"t$6$s de )$s estructur$s d "', c$s de d$tos so"5 F8 No h$7 /ue de( " r e) t$,$:o $"tes de us$r)$0 s "o /ue )$ #o7 ut ) .$"do se1;" )$ "eces to8 V8 Los e)e,e"tos /ue (or,$" est' estructur$ "o est'" s tu$dos e" (or,$ co"t 1u$ e" ,e,or $0 7 esos e)e,e"tos se re)$c o"$" e"tre s3 ,ed $"te c$,+os e")$ce o +u"tero0 7 $ c$d$ u"o de esos e)e,e"tos )o ))$,$,os "odo de )$ estructur$8 U" +u"tero es u" d$to cu7o co"te" do es u"$ d recc !" de ,e,or $ /ue es e" )$ /ue est' $),$ce"$do e) d$to $) /ue $+u"t$8

L$s estructur$s d "', c$s +uede" ser ) "e$)es o "o ) "e$)es se1;" /ue desde u" e)e,e"to se +ued$ $cceder so)$,e"te $ otro o $ #$r os8 D'-la*a-i:$ &' l!" %u$t'*!" '$ &i"ti$t!" l'$(ua)'"# E" C5 \t +oD T\#$rM+D I"t T+ E" P$sc$)5 \#$rMt +oM+u"teroD5 U\t +oD P5 U "te1er E" +seudoc!d 1o5 \#$rMt +oM+u"teroD5 +u"tero $ \t +oD P5 +u"tero $ e"tero A--'&'* a u$ -a,%! &' u$ *'(i"t*!# E" C5 P "o,*re E" P$sc$)5 +U8"o,*re E" +seudoc!d 1o5 + "o,*re 2. LISTAS# U"$ ) st$ es u"$ co)ecc !" ) "e$) de e)e,e"tos8 H$7 V (or,$s de $),$ce"$r)$8 Co" $rr$7s <us$"do ,e,or $ est't c$=0 e" do"de )$ re)$c !" de )os e)e,e"tos de )$ ) st$ # e"e d$d$ +or/ue ocu+$ +os c o"es co"t 1u$s de ,e,or $8 De (or,$ e")$.$d$ co" ,e,or $ d "', c$8 Se co"oce co,o ) st$s e")$.$d$s0 7 )$ re)$c !" e"tre )os e)e,e"tos de )$ ) st$ se ,$"t e"e ,ed $"te c$,+os de e")$ce o +u"teros8 3. LISTAS ENLA/ADAS# Es u"$ co)ecc !" ) "e$) de e)e,e"tos ))$,$dos NODOS0 do"de e) orde" e"tre )os "odos se est$*)ece ,ed $"te +u"teros0 7 +or ser s ,+)e0 $de,'s desde u" "odo so)o +uedo $cceder $) s 1u e"te d rect$,e"te8

1$8

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

U"$ ) st$ e")$.$d$ t e"e V +$rtes5 - Los "odos /ue (or,$" )$ ) st$8 C$d$ "odo #$ $ te"er dos c$,+os8 U"o de "(or,$c !" /ue ser' de) t +o de )os e)e,e"tos /ue co"t e"e )$ ) st$ 7 u" c$,+o de e")$ce /ue es de t +o +u"tero0 7 /ue co"te"dr' )$ d recc !" de ,e,or $ e" )$ /ue est' $),$ce"$do e) s 1u e"te "odo8 A) +r ,er c$,+o de "(or,$c !" )o ))$,$,os INHO0 7 e) "odo )o ))$,$,os SI&8 - L$ se1u"d$ +$rte de )$ ) st$ ser' u"$ #$r $*)e de t +o +u"tero $ )os "odos de )$ ) st$ /ue co"t e"e )$ d recc !" de) +r ,er "odo de )$ ) st$8 Por es$ r$.!" $ es$ #$r $*)e )$ +ode,os ))$,$r COM e".o8 K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro V$r Co,5 +u"tero $ "odo E) ;)t ,o "odo de )$ ) st$ te"dr' e" su c$,+o de e")$ce e) #$)or "odo <Nu))0N )=0 /ue /u ere dec r /ue "o $+u"t$ $ " "1u"$ d recc !" 7 1r'( c$,e"te se s ,*o) .$ co"5

K +o "odo5 re1 stro I"(o5 c$r'cter S 15 +u"tero $ "odo H " re1 stro Los "odos de )$ ) st$ +uede" est$r e" cu$)/u er .o"$ de ,e,or $0 "o t e"e" /ue est$r e" +os c o"es co"secut #$s8 4. PROCESAMIENTO DE LISTAS ENLA/ADAS SIMPLES# P$r$ +oder +roces$r u"$ ) st$0 se "eces t$ )$ estructur$ de sus "odos 7 )$ #$r $*)e de co, e".o8 O+er$c o"es5 - I"sert$r u" e)e,e"to8 - Borr$r u" e)e,e"to8 - Recorrer )$ ) st$8 - Busc$r u" e)e,e"to8 L$ (or,$ ,'s "or,$) de re+rese"t$r ) st$s e")$.$d$s es us$r ,e,or $ d "', c$8 U"$ ) st$ e")$.$d$ t$,* 9" se +uede s ,u)$r us$"do $rr$7s <,e,or $ est't c$=0 +ero es +oco e( c e"te8 P$r$ e))o ut ) .$r3$ V $rr$7s de) , s,o t$,$:o 7 co" )$ , s,$ "u,er$c !" de 3"d ces0 t$) /ue e" u" $rr$7 1u$rd$r3$ )os c$,+os de "(or,$c !" de )$ ) st$0 7 +$r$ c$d$ c$,+o de "(or,$c !" e" )$ +os c !" corres+o"d e"te e" e) otro $rr$7 1u$rd$r3$ e) 3"d ce de) s 1u e"te e)e,e"to $ ese "odo8 Es dec r e" ese se1u"do $rr$7 1u$rd$r3$ )os c$,+os e")$ce ,ed $"te #$)ores de 3"d ce8

1$#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Ade,'s de )os V $rr$7s0 te"1o /ue te"er u"$ #$r $*)e /ue co"te"1$ e) 3"d ce de) +r ,er e)e,e"to de )$ ) st$8 E) ;)t ,o e)e,e"to0 t e"e e" e) c$,+o de e")$ce e) #$)or W8

I"(o F V P R Q S [ G L FW Z I FW H 8 A

S1

R'-!**i&! ' u$a li"ta '$laQa&a# Co"s ste e" +$r$s +or todos sus "odos 7 +roces$r)os8 K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro A)1or t,o recorr do V$r Co,5 +u"tero $ "odo I" c o Recorrer <co,= H" Proced , e"to recorrer <+r "5 +u"tero $ "odo= V$r Ptr5 +u"tero $ "odo I" c o

11$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

S +r " E N ) E"to"ces escr * r BL st$ #$c $C S "o +tr +r " M e"tr$s +tr \D " ) ^+roces$r +tr "(o_ +tr +trs 1 ( " , e"tr$s ("s 8 ("

+trs 1 \D " ) +os c o"$r,e e" e) ;)t ,o "odo

3J"Iu'&a &' u$ $!&!# Se tr$t$ de )oc$) .$r u" "odo /ue cu,+)$ u"$ deter, "$d$ co"d c !" <+or e6e,+)o /ue su c$,+o de "(or,$c !" #$)1$ u" #$)or deter, "$do=8 A )$ hor$ de h$cer )$s *;s/ued$s te"dre,os e" cue"t$ s )$ ) st$ est' orde"$d$ o "o0 7 s est' orde"$d$ +or e) cr ter o de *;s/ued$ te"dr9 /ue $+ro#ech$r)o8 K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro A)1or t,o *us/ued$ V$r P0co,5 +u"tero $ "odo E)e,5 \t +oD I" c o Busc$r <co,0e)e,0+= H" Proced , e"to *usc$r <+r "5 +u"tero $ "odo- e5 \t +oD- e"t?s$) +os5 +u"tero $ "odo= I" c o Pos +r " M e"tr$s <+os "(o \D E= 7 <+os \D NIL= Pos +oss 1 H " , e"tr$s H" 3J"Iu'&a &' u$ $!&! !*&'$a&! a"-'$&'$t','$t'# K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro A)1or t,o *us/ued$ V$r P0co,5 +u"tero $ "odo E)e,5 \t +oD I" c o Busc$r <co,0e)e,0+= H" Proced , e"to *usc$r <+r "5 +u"tero $ "odo- e5\t +oD-e"t?s$) +os5 +u"tero $ "odo= I" c o Pos +r " M e"tr$s <e D +os "(o= 7 <+os \D NIL= Pos +oss 1 H " , e"tr$s S +os "(o \D e
111

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

E"to"ces +os NIL H"s H" T*ata,i'$t! &' la ,',!*ia &i$L,i-a# S e,+re /ue se h$ce u"$ "serc !" e" u"$ estructur$ d "', c$0 te"e,os /ue co1er de ,e,or $ t$"tos *7tes de ,e,or $ d "', c$ co,o ocu+$ e) "odo de )$ estructur$ d "', c$0 7 cu$"do *orr$,os u" e)e,e"to0 te"dre,os /ue ) *er$r )$ ,e,or $ ocu+$d$ +or ese e)e,e"to8 P$r$ co"se1u r este ,$"e6o0 todos )os )e"1u$6es de +ro1r$,$c !" t e"e" V "strucc o"es /ue +er, te" reser#$r ,e,or $ 7 ) *er$r ,e,or $ d "', c$0 7 $s 1"$r e" e) c$so de )$ reser#$ )$ ,e,or $ $ u" +u"tero0 7 e" e) c$so de )$ ) *er$c !" se ) *er$ )$ ,e,or $ $s 1"$d$ $ u" +u"tero8 P$sc$) 5 NEc 0 DISPOSE C 5 MALLOC 0 HREE CXX 5 NEc 0 DELEKE L$ "strucc !" de reser#$ de ,e,or $ ))e#$r$ u" ;" co $r1u,e"to0 /ue ser' e) t +o de d$tos +$r$ e) /ue se h$ce )$ reser#$ de ,e,or $0 7 se1;" e) t$,$:o de ese t +o0 es$ "strucc !" s$*r' e) ";,ero de *7tes /ue t e"e /ue reser#$r8 Y )o /ue de#ue)#e es u" +u"tero $) co, e".o de )$ .o"$ /ue se h$ reser#$do8 Este #$)or de#ue)to ser' e) /ue te"e,os /ue $s 1"$r $ u" +u"tero $) t +o de d$tos +$r$ e) /ue se h$ce )$ reser#$8 L$ (u"c !" ) *er$r ,e,or $ ))e#$ u" ;" co $r1u,e"to /ue es e) t +o +u"tero0 7 )o /ue h$ce es ) *er$r )$ ,e,or $ $s 1"$d$ $ ese +u"tero0 +$r$ )o cu$) es ,+resc "d *)e /ue $ ese +u"tero +re# $,e"te se )e h$7$ hecho u"$ $s 1"$c !" de ,e,or $ d "', c$ co" $) (u"c !" de reser#$8 V$r +5 +u"tero $ \t +oD P E resM,e, <\t +oD= L *M,e, <\#$rM+u"teroD= Nosotros #$,os $ s ,u)$r e) tr$t$, e"to de )$ ,e,or $ d "', c$ de )$ s 1u e"te (or,$5 V$,os $ su+o"er /ue tod$s )$s +os c o"es ) *res de ,e,or $ est'" e")$.$d$s e"tre s3 $ tr$#9s de u"$ ) st$ e")$.$d$0 $ )$ /ue #$,os $ ))$,$r DISP <) st$ de ,e,or $ d s+o" *)e=0 do"de )$ +r ,er$ +os c !" de es$ ) st$ # e"e $+u"t$d$ +or )$ #$r $*)e DISP8 C$d$ #e. /ue /uere,os h$cer u"$ "serc !" e" u"$ estructur$ d "', c$0 co1ere,os )$ +r ,er$ +os c !" de DISP0 7 se )$ $s 1"$re,os $) +u"tero /ue #$ $ co"te"er $ ese e)e,e"to8 Y cu$"do /uer$,os *orr$r u" e)e,e"to de u"$ estructur$ d "', c$ +$r$ "d c$r /ue ) *er$,os )$ ,e,or $ ut ) .$d$ +or ese e)e,e"to0 )o /ue h$re,os ser' "sert$r)o e" e) DISP0 +ero s e,+re $) co, e".o8 Se1;" esto0 todo *orr$do e" e) DISP e/u #$)dr' $ u"$ "strucc !" de reser#$ de ,e,or $ e" cu$)/u er )e"1u$6e0 7 tod$ "serc !" e" e) DISP0 e/u #$)dr' $ )$ "strucc !" de ) *er$r ,e,or $ e" cu$)/u er )e"1u$6e8 O '*9l!T K U$&'*9l!T# L$ ,e,or $ de) orde"$dor t e"e u" t$,$:o ) , t$do0 +or )o /ue )$ ,e,or $ d "', c$ t$,* 9" te"dr' u" t$,$:o ) , t$do0 es dec r0 /ue +uede ser /ue se "os $1ote8 Est$ s tu$c !"0 se co"oce co,o OVERHLOc8 S e,+re /ue se h$1$ u"$ "strucc !" de reser#$ de ,e,or $0 te"dre,os /ue co,+ro*$r $"tes s "os /ued$ ,e,or $ ) *re8 Eso e"

112

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

cu$)/u er )e"1u$6e ocurre cu$"do )$ "strucc !" de reser#$r de ,e,or $ de#ue)#e e) #$)or NIL8 S DISP E N ) E"to"ces escr * r BNo h$7 ,e,or $C I1u$) se h$ce +$r$ *orr$r u" e)e,e"to de u"$ estructur$ d "', c$0 +$r$ *orr$r)o0 es$ estructur$ t e"e /ue te"er $) ,e"os u" e)e,e"to8 S "o )o t e"e e "te"t$,os *orr$r)o0 se +roduce u" UNDERHLOc8 Por esto0 )o +r ,ero /ue te"e,os /ue +ro*$r e" u"$ estructur$ d "', c$0 es +re1u"t$r s t e"e $)1o8 S co, e".o E N ) E"to"ces escr * r BL st$ V$c $C S s!)o ,$"e6o u"$ estructur$ d "', c$0 +re1u"to +or DISP0 s tr$*$6o co" #$r $s estructur$s d "', c$s c$d$ u"$ de u" t +o0 h$*r' t$"t$s DISP co,o estructur$s d "', c$s8 I$"'*-i:$ '$ u$a li"ta '$laQa&a# A"tes de re$) .$r cu$)/u er +roceso de "serc !"0 te"dr9 /ue #er s ,e /ued$ ,e,or $ d s+o" *)e8 S es +os *)e h$cer )$ "serc !"0 )o +r ,ero ser' reser#$r )$ ,e,or $ +$r$ e) e)e,e"to /ue /u ero reser#$r8 P$r$ "osotros ser' co1er e) +r ,er e)e,e"to de DISP8 E" se1u"do )u1$r0 $s 1"$re,os )os #$)ores correctos $) e)e,e"to /ue #$,os $ "sert$r0 es dec r0 $s 1"$re,os $) c$,+o de "(or,$c !" de) "ue#o e)e,e"to co" )$ "(or,$c !"0 7 des+u9s $ctu$) .$,os e) c$,+o de e")$ce8 A )$ hor$ de $s 1"$r u" #$)or $) c$,+o de e")$ce0 )o +r ,ero ser' )oc$) .$r )$ +os c !" e" )$ /ue te"e,os /ue )oc$) .$r e) s 1u e"te e)e,e"to0 7 se +uede" d$r )os s 1u e"tes c$sos5 F8 I"serc !" $) co, e".o de )$ ) st$5 Se ,od ( c$ e) #$)or de )$ #$r $*)e co, e".o8 V8 I"serc !" e" cu$)/u er otro )u1$r de )$ ) st$0 "c)u do e) ( "$)5 E" este c$so0 te"dre,os /ue co"ocer t$,* 9" e) "odo /ue #$ $ est$r de)$"te de )$ +os c !" de "serc !"0 7$ /ue $ )$ hor$ de "sert$r ese "ue#o e)e,e"to0 #$ $ ocurr r /ue e) "odo de )$ +os c !" $"ter or $ )$ de "serc !" $+u"te $) "ue#o e)e,e"to0 7 /ue e) "ue#o $+u"te $) "odo de )$ +os c !" $ )$ /ue "sert$,os8 A )$ hor$ de )oc$) .$r )$ +os c !" de "serc !" de+e"der' de )$ $+) c$c !" e" +$rt cu)$r8 Co,o e6e,+)o de "serc !"0 #$,os $ d$r )$ "serc !" e" u"$ ) st$ orde"$d$ $sce"de"te,e"te +or e) c$,+o de "(or,$c !"5 K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro Proced , e"to "serc o" <e"t?s$) co,5 +u"tero $ "odo- e)e,5\t +oD= V$r Lu10 Lu1+0 "ue#o5 +u"tero $ "odo I" c o S DISP E N ) E"to"ces escr * r BNo h$7 ,e,or $ d s+o" *)eC S "o "ue#o DISP DISP DISPSI& Nue#o "(o e)e, S <co, E N )= o <e)e, \ co, "(o= E"to"ces "ue#os 1 Co,

113

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H"s H"

Co, "ue#o S "o )u1+ co, Lu1 co,s 1 M e"tr$s <e)e, D )u1 "(o= 7 <)u1 \D N )= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s Nue#os 1 )u1 Lu1+s 1 "ue#o H"s

3!**a&! '$ u$a li"ta '$laQa&a# Se tr$t$ de *orr$r u" "odo /ue co"te"1$ u"$ deter, "$d$ "(or,$c !" de u"$ ) st$ e")$.$d$ s ,+)e0 $u"/ue e) cr ter o de *orr$do +odr3$ ser otro e" )u1$r de) c$,+o de "(or,$c !"8 S e,+re /ue se h$ce u" *orr$do de u"$ estructur$ d "', c$0 e" 1e"er$)0 )o +r ,ero es co,+ro*$r /ue )$ estructur$ "o est' #$c3$0 7 u"$ #e. deter, "$do esto0 te"dr9 /ue )oc$) .$r e) "odo $ *orr$r8 Se +uede" d$r V c$sos5 - E) "odo $ *orr$r se$ e) +r ,ero8 - ]ue e) "odo $ *orr$r ocu+e cu$)/u er otr$ +os c !"8 S es e) de) co, e".o0 c$,* $r' )$ #$r $*)e de co, e".o de )$ ) st$ +or/ue $hor$ te"dr' /ue $+u"t$r $) s 1u e"te e)e,e"to0 $) de co, e".o8 S e) e)e,e"to ocu+$ cu$)/u er otr$ +os c !"0 te"dr9 /ue )oc$) .$r )$ +os c !" de) e)e,e"to 7 de su +redecesor0 +or/ue +$r$ dese")$.$r)o de )$ ) st$0 e) +redecesor te"dr' /ue $+u"t$r $) e)e,e"to /ue )e s 1ue $) "odo $ *orr$r8 H "$),e"te0 u"$ #e. dese")$.$do e) "odo0 h$*r' /ue ) *er$r )$ ,e,or $ /ue ocu+$*$8 Eso e" cu$)/u er )e"1u$6e e/u #$)e $ h$cer )$ o+er$c !" de ) *er$r ,e,or $0 7 e" +seudoc!d 1o ser3$ "sert$r e) e)e,e"to $) +r "c + o de DISP8

Proced , e"to *orr$r <e"t?s$) co,5 +u"tero $ "odo- e)e,5 \t +oD= V$r Lu10 )u1+5 +u"tero $ "odo I" c o S co, E N ) E"to"ces escr * r BL st$ #$c $C S "o )u1+ " ) Lu1 co, M e"tr$s <e)e, D )u1 "(o= 7 <)u1 \D N )= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s S e)e, \D )u1 "(o E"to"ces escr * r BNo eA ste e) "odo $ *orr$rC S "o S )u1+ E N ) E"to"ces co, co,s 1 S "o )u1+s 1 )u1s 1

114

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H"s H"

H"s

H"s Lu1s 1 DISP DISP )u1

.. LISTAS CIRCULARES CON CA3ECERA# U"$ ) st$ co" c$*ecer$0 e" 1e"er$) es u"$ ) st$ e")$.$d$ s ,+)e "or,$)0 +ero e" )$ /ue e) +r ,er "odo es u" "odo es+ec $) /ue "o s r#e +$r$ 1u$rd$r "(or,$c !" #') d$0 s "o so)$,e"te +$r$ ,$rc$r /ue es e) +r ,er "odo8 C$*ecer$ H$7 dos t +os de ) st$s e")$.$d$s co" c$*ecer$5 - L st$s e")$.$d$s co" c$*ecer$ 7 t err$5 E) +r ,er "odo #$ $ ser )$ c$*ecer$0 7 e) ;)t ,o $+u"t$ $ " )8 No se ut ) .$ +or/ue +erde,os u" "odo 7 "o t e"e" #e"t$6$s8 - L st$s c rcu)$res co" c$*ecer$5 Se c$r$cter .$" +or/ue t e"e" u" "odo c$*ecer$0 7 $de,'s e) ;)t ,o "odo $+u"t$ $) "odo c$*ecer$8

E" cu$)/u er ) st$ e")$.$d$ co" c$*ecer$ e) +r ,er "odo co" "(or,$c !" ;t ) es e) s 1u e"te $ co, e".o <Co,s 1=8 E" u"$ ) st$ c rcu)$r co" c$*ecer$0 )$ #e"t$6$ /ue +rese"t$ res+ecto $ u"$ "or,$)0 es /ue e" )$s "serc o"es 7 *orr$dos "o h$7 /ue su+o"er " "1;" c$so es+ec $)0 +ues todos )os "odos0 "c)u do e) +r ,ero ;t )0 t e"e" u" +redecesor8 A) recorrer )$ ) st$ co,+)et$0 e,+e.$re,os *usc$"do )$ "(or,$c !" +or e) s 1u e"te $ co, e".o0 7 s$*e,os /ue he,os ))e1$do $) ( "$) de )$ ) st$ cu$"do e) s 1u e"te $) +u"tero /ue recorre )$ ) st$ se$ co, e".o8 3J"Iu'&a '$ u$a li"ta -i*-ula* -!$ -a0'-'*a# Proced , e"to *us/ued$ <co,5 +u"tero $ "odo- e)e,5\t +oD= V$r Ptr5 +u"tero $ "odo I" c o Ptr co,s 1 M e"tr$s <+tr "(o \D e)e,= 7 <+tr \D co,= Ptr +trs 1 H " , e"tr$s S +trs 1 E co, E"to"ces escr * r BE)e,e"to "o e"co"tr$doC H"s H" I$"'*-i:$ '$ u$a li"ta -i*-ula* -!$ -a0'-'*a# Proced , e"to "serc o" <co,5 +u"tero $ "odo- e)e,5 \t +oD=
115

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

V$r Lu10)u1+0"ue#o5 +u"tero $ "odo I" c o S DISP E N ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPs 1 Nue#o "(o E)e, Lu1+ co, Lu1 co,s 1 M e"tr$s <e)e, D )u1 "(o= 7 <)u1 \D co,= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s Nue#os 1 )u1 Lu1+s 1 "ue#o H"s H" 3!**a&! '$ u$a li"ta -i*-ula* -!$ -a0'-'*a# Proced , e"to *orr$do <co,5 +u"tero $ "odo- e)e,5\t +oD= V$r Lu10)u1+5 +u"tero $ "odo I" c o S co,Eco,s 1 E"to"ces escr * r BL st$ #$c $C S "o )u1+ co, Lu1 co,s 1 M e"tr$s <)u1 "(o \D e)e,= 7 <)u1 \D co,= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s S )u1 E co, E"to"ces escr * r BE)e,e"to "o e"co"tr$doC S "o )u1+s 1 )u1s 1 Lu1s 1 DISP DISP )u1 H"s H"s H" 1. LISTAS DO3LEMENTE ENLA/ADAS# L$s ) st$s e")$.$d$s s ,+)es se c$r$cter .$" +or/ue desde u" "odo so)o +uedo $cceder $) s 1u e"te $ ese "odo0 +or )o /ue so)o +uedo $cceder $) s 1u e"te $ ese "odo0 +or )o /ue so)o +uedo recorrer )$ ) st$ e" u" se"t do0 de +r "c + o $ ( "8 L$s ) st$s do*)es se c$r$cter .$" +or/ue desde u" "odo +ode,os $cceder d rect$,e"te t$"to $) s 1u e"te co,o $) $"ter or $ ese8 Es dec r0 +or c$d$ "odo te"dre,os V c$,+os e")$ce0 u"o +$r$ e")$.$r u" "odo co" e) s 1u e"te0 7 otro +$r$ e")$.$r $ u" "odo co" e) "odo $"ter or $ 9)8 De est$ ,$"er$0 )$ ) st$ )$ +ode,os recorrer e" )os V se"t dos0 de +r "c + o $ ( "0 ,o# 9"do"os co" e) e")$ce $) "odo s 1u e"te o de ( " $ +r "c + o ,o# 9"do"os co" e) e")$ce $) "odo $"ter or8 P$r$ /ue se +ued$ h$cer este se1u"do recorr do0 $de,'s de u"$ #$r $*)e co, e".o +$r$ c$d$ ) st$0 /ue co"t e"e )$ d recc !" de) +r ,er "odo

116

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

de )$ ) st$0 "eces t$re,os t$,* 9" otr$ #$r $*)e es+ec $) /ue de"o, "$re,os ( " o ( "$)0 /ue $+u"t$ $) ;)t ,o "odo de )$ ) st$8 Se1;" esto0 )$ estructur$ de u"$ ) st$ do*)e,e"te e")$.$d$0 ser' )$ s 1u e"te5 - C$d$ ) st$ te"dr' V #$r $*)es0 co, e".o 7 ( "$)0 de) t +o +u"tero $ "odo do*)e0 /ue co"te"dr'" res+ect #$,e"te )$ d recc !" $) +r ,er 7 ;)t ,o "odo de )$ ) st$8 - L$ estructur$ de c$d$ "odo ser'5 K +o "odoMdo*)e5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odoMdo*)e A"t5 +u"tero $ "odoMdo*)e H " re1 stro INHO

$"t

s1

E) c$,+o s 1u e"te de) ;)t ,o "odo te"dr' #$)or NIL0 7 e) c$,+o $"ter or de) +r ,er "odo t$,* 9" te"dr' #$)or NIL0 +$r$ "d c$r /ue "o h$7 "$d$ $"tes de) +r ,er "odo8

L$ c$r$cter3st c$ de u"$ ) st$ do*)e,e"te e")$.$d$ #$c3$ es /ue e) co, e".o 7 e) ( "$) so" 1u$)es 7 $+u"t$" $ NIL8 S <co, E ( "$)= 7 <co, E N )=

L st$ do*)e,e"te e")$.$d$ co" u" so)o e)e,e"to5 S <co, E ( "$)= 7 <co, \D N )=

117

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

P$r$ ,+)e,e"t$r )$ "serc !" 7 e) *orr$do de u"$ ) st$ do*)e,e"te e")$.$d$0 #$,os $ su+o"er /ue )$ ) st$ de es+$c o d s+o" *)e t e"e )$ (or,$ de u"$ ) st$ do*)e,e"te e")$.$d$8 R'-!**i&! &' u$a li"ta &!0l','$t' '$laQa&a# P$r$ +$s$r +or todos )os "odos de )$ ) st$0 +ode,os h$cer)o 1u$) /ue u"$ ) st$ e")$.$d$ s ,+)e0 so)o /ue $hor$ )$ +ode,os recorrer )$ ) st$ h$c $ de)$"te co" e) c$,+o SI&0 7 h$c $ $tr's co" e) c$,+o ANK8 R'-!**i&! Ha-ia &'la$t'# Proced , e"to recorr doM$de)$"te <co,5 +u"tero $ "odo do*)e= V$r Ptr5 +u"tero $ "odo do*)e I" c o Ptr Co, e".o M e"tr$s <+tr \D N )= ^Proces$r PKR8INHO_ +tr +trs 1 ( " , e"tr$s (" R'-!**i&! Ha-ia at*L"# Proced , e"to recorr doM$de)$"te <co,5 +u"tero $ "odo do*)e= V$r Ptr5 +u"tero $ "odo do*)e I" c o Ptr H "$) M e"tr$s <+tr \D N )= ^Proces$r PKR8INHO_ +tr +tr$"t ( " , e"tr$s H" 3J"Iu'&a '$ u$a li"ta &!0l','$t' '$laQa&a# Es eA$ct$,e"te 1u$) /ue e" u"$ ) st$ e")$.$d$ s ,+)e0 so)o /ue $hor$ +uedo *usc$r e) e)e,e"to *usc$do desde e) co, e".o 7 ,o# 9"do,e co" SI& o desde e) ( "$) 7 ,o# 9"do,e co" ANK8 S te"1o u"$ de$ de +or do"de #$ $ est$r e) e)e,e"to0 e,+e.$re +or do"de se$ ,e6or8 Proced , e"to *us/ued$ <co,5 +u"tero $ do*)e "odo- ( "$)5 +u"tero $ do*)e "odoe)e,5 \t +oD- e"t?s$) )u15 +u"tero $ do*)e "odo= V$r Ptr0 )u15 +u"tero $ do*)e "odo I" c o Lu1 " ) Ptr ( "$) M e"tr$s <+tr \D " )= 7 <e)e,e"to D +tr "(o= Ptr +tr$"t H " , e"tr$s S <+tr \D " )= 7 <e)e,e"to +tr "(o= E"to"ces )u1 +tr H"s H" I$"'*-i:$ '$ u$a li"ta &!0l','$t' '$laQa&a#

118

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Lo +r ,ero es #er s ,e /ued$ es+$c o d s+o" *)e e" ,e,or $ d "', c$0 s ,e /ued$0 reser#o ,e,or $ +$r$ u" "ue#o e)e,e"to 7 ,eto )$ "(or,$c !" /ue /u ero e" su c$,+o de "(or,$c !"0 7 )o s 1u e"te es $ctu$) .$r sus c$,+os de e")$ce8 C$sos +$rt cu)$res5 - I"serc !" $) co, e".o s )$ ) st$ est' #$c3$8 - I"serc !" $) co, e".o s )$ ) st$ "o est' #$c3$8 - I"serc !" $) ( "$)8 - I"serc !" e" ,ed o de )$ ) st$8 Proced , e"to "serc o" <e"t?s$) co,5 +u"tero $ "odoMdo*)e- e"t?s$) ( "$)5 +u"tero $ "odoMdo*)e- e)e,5 \t +oD= #$r )u10 "ue#o5 +u"tero $ "odoMdo*)e I" c o s DISP E N ) e"to"ces escr * r BNo h$7 ,e,or $C s "o "ue#o DISP DISP DISPS 1 Nue#o "(o e)e, S co, E " ) E"to"ces "ue#os 1 NIL Nue#o$"t NIL Co, "ue#o H "$) "ue#o S "o s e)e, \ co, "(o E"to"ces "ue#os 1 co, Nue#o$"t " ) Co,$"t "ue#o Co, "ue#o S "o )u1 co,s 1 M e"tr$s <e)e, D )u1 "(o= 7 <)u1 \D N )= Lu1 )u1s 1 H " , e"tr$s S )u1 \D " ) E"to"ces "ue#os 1 )u1 Nue#o$"t )u1$"t Lu1$"ts 1 "ue#o Lu1$"t "ue#o S "o "ue#os 1 " ) Nue#o$"t ( "$) H "$)s 1 "ue#o H "$) "ue#o H"s H"s H"s H"s H"

3!**a&! '$ u$a li"ta &!0l','$t' '$laQa&a#

11#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Pr ,ero h$7 /ue #er s )$ ) st$ t e"e $)1;" e)e,e"to0 7 s t e"e $)1;" e)e,e"to0 h$*r' /ue *usc$r s e) e)e,e"to /ue /uere,os *usc$r eA ste e" )$ ) st$0 7 s eA ste0 *usco e" /ue +os c !" se e"cue"tr$8 C$sos +$rt cu)$res5 - Borr$do de) +r ,er "odo8 - Borr$do de) ;)t ,o "odo8 - Borr$do de cu$)/u er "odo8 Des+u9s de todo esto0 h$*r' /ue ) *er$r )$ ,e,or $ de) "odo8 Proced , e"to *orr$do <e"t?s$) co,5 +u"tero $ "odoMdo*)e- e"t?s$) ( "$)5 +u"tero $ "odoMdo*)e- e)e,5 \t +oD= #$r )u15 +u"tero $ "odoMdo*)e "co s co, E N ) e"to"ces escr * r BL st$ #$c $C s "o )u1 co, , e"tr$s <)u1 "(o \D e)e,= 7 <)u1 \D " )= )u1 )u1s 1 ( " , e"tr$s s )u1 E N ) e"to"ces escr * r BNo e"co"tr$doC s "o s )u1 E co, e"to"ces co, co,s 1 s co, E N ) e"to"ces ( "$) " ) s "o co,$"t " ) ("s s "o s )u1 \D ( "$) e"to"ces )u1$"ts 1 )u1s 1 )u1s 1$"t )u1$"t s "o )u1$"ts 1 " ) ( "$) )u1$"t ("s ("s )u1s 1 DISP DISP )u1 ("s ("s (" 4. PILAS# U"$ + )$ es u"$ estructur$ ) "e$) de d$tos co" )$ c$r$cter3st c$ es+ec $) de /ue $hor$0 "o +ode,os h$cer )$s "serc o"es 7 )$s e) , "$c o"es e" cu$)/u er )u1$r0 s "o /ue o*) 1$tor $,e"te )$s te"e,os /ue h$cer +or u" eAtre,o de )$ ) st$8 Ese eAtre,o )o ))$,$,os c ,$ de )$ + )$8 Esto su+o"e /ue se +rocese" )os e)e,e"tos de )$ + )$ e" orde" "#erso $ su e"tr$d$ e" )$ estructur$0 es dec r0 e) +r ,er e)e,e"to de )$ + )$ /ue us$re ser' e) ;)t ,o /ue h$ e"tr$do <LIHO=8 Co" u"$ + )$ +ode,os h$cer dos o+er$c o"es *'s c$s0 PUSH <,eter= 7 POP <s$c$r=8 A+$rte de est$s dos (u"c o"es se +uede" de( " r otr$s co,o )$ de + )$ #$c3$ o to+0 /ue ,e d ce cu$) es e)e,e"to /ue est' e" )$ c ,$ de )$ + )$ +ero s " s$c$r)o8

12$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Se +uede ,+)e,e"t$r co" ,e,or $ est't c$ <$rr$7s= o co" ,e,or $ d "', c$ <) st$s e")$.$d$s=8 S ut ) .o u" $rr$70 te"dr9 /ue de( " r cu$) es e) t$,$:o ,'A ,o de) $rr$70 /ue ser' e) de )$ + )$0 7 $+$rte te"dr9 de( " d$ u"$ #$r $*)e c ,$ /ue te"dr' e" c$d$ ,o,e"to e) 3"d ce /ue corres+o"de $) e)e,e"to de) $rr$7 /ue est' e" )$ c ,$ de )$ + )$8 P )$ E $rr$7 aF88,$AM+ )$b de \ "(oD C ,$5 e"tero P$r$ se:$)$r /ue )$ c ,$ est' #$c3$0 c ,$ es 1u$) $ W +or/ue "o t e"e /ue $+u"t$r $ " "1;" e)e,e"to8 I,%l','$ta-i:$ &' u$a %ila -!$ ,',!*ia '"tLti-a# A)1or t,o +r "M+ )$ Co"st M$AM+ )$ E \,$AM+ )$D V$r P5 $rr$7 aF88,$AM+ )$b de \ "(oD C5 e"tero E)e,5 \ "(oD I" c o CW Leer <e)e,= S + )$M#$c $ <C= E #erd$dero E"to"ces escr * r BP )$ #$c $C S "o s$c$r <+ )$0c0e)e,= Escr * r BE)e,e"to s$c$doCe)e, H"s H" Hu"c o" + )$M#$c $ <c ,$5 e"tero=5 *oo)e$"o I" c o S c ,$ E W E"to"ces retor"o #erd$dero S "o retor"o ($)so H"s H" Proced , e"to ,eter <e"t?s$) + )$5 $rr$7aF88,$AM+ )$b de \ "(oDc ,$5 e"teroe)e,5\ "(oD= I" c o s c ,$ E ,$AM+ )$ e"to"ces escr * r BP )$ ))e"$C s "o c ,$ c ,$ X F + )$ac ,$b e)e, ("s H" Hu"c o" c ,$M+ )$ <+ )$5 e"tero=5\ "(oD I" c o Retor"o + )$ac ,$b H" $rr$7aF88,$AM+ )$b de \ "(oDc ,$5

Proced , e"to s$c$r <e"t?s$) + )$5 $rr$7aF88,$AM+ )$b de \ "(oD- c ,$5 e"tero121

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

e"t?s$) e5 \ "(oD= I" c o E c ,$M+ )$ <c ,$0+ )$= C ,$ c ,$ e F H" I,%l','$ta-i:$ &' u$a %ila -!$ ,',!*ia &i$L,i-a# K +o "odo5 re1 stro I"(o5 \t +oD S 15 +u"tero $ "odo H " re1 stro A)1or t,o ,$"e6oM+ )$ V$r C ,$5 +u"tero $ "odo E)e,5 \t +oD I" c o C ,$ " ) Meter <c ,$0e)e,= S + )$M#$c $ <c ,$= E"to"ces escr * r BNo h$7 ,e,or $C S "o s$c$r <c ,$0e)e,= Escr * r BE)e,e"to s$c$doCe)e, H"s H" Hu"c o" + )$M#$c $ <c ,$5 +u"tero $ "odo=5 *oo)e$"o I" c o S c ,$ E " ) E"to"ces retor"o #erd$dero S "o retor"o ($)so H"s H" Proced , e"to +o"er <e"t?s$) c ,$5 +u"tero $ "odo- e)e,5 \t +oD= V$r Nue#o5 +u"tero $ "odo I" c o S DISP E " ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPs 1 Nue#o "(o e)e, Nue#os 1 c ,$ C ,$ "ue#o H"s H" Hu"c o" c ,$M+ )$ <c ,$5 +u"tero $ "odo=5\t +oD I" c o Retor"o c ,$ "(o H" Proced , e"to s$c$r <e"t?s$) c ,$5 +u"tero $ "odo- e"t?s$) e)e,5 \t +oD= V$r Borr$do5 +u"tero $ "odo
122

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

I" c o E)e, c ,$M+ )$ <c ,$= Borr$do c ,$ C ,$ c ,$s 1 Borr$dos 1 DISP DISP *orr$do H" A%li-a-i!$'" &' la" %ila"# U" e6e,+)o t3+ co de uso de + )$s0 es e" )$s ))$,$d$s e"tre (u"c o"es8 E" este c$so0 e) s ste,$ o+er$t #o ut ) .$ u"$ + )$ e" do"de #$ 1u$rd$"do )$ d recc !" de retor"o de c$d$ u"$ de est$s ))$,$d$s8 6. COLAS# U"$ co)$ t$,* 9" es u"$ ) st$ ) "e$) de e)e,e"tos0 e" )$ /ue )$s "serc o"es se h$ce" +or u" eAtre,o de )$ ) st$0 7 )os *orr$dos +or otro8 L$s "serc o"es se h$ce" +or e) ( "$) 7 )os *orr$dos +or e) +r "c + o8 Esto s 1" ( c$ /ue es u"$ estructur$ de) t +o HIHO8 Se$ cu$) se$ )$ ,+)e,e"t$c !"0 s e,+re te"dr'" /ue eA st r V #$r $*)es0 (re"te 7 ( "$)0 /ue $+u"te" $) co, e".o 7 $) ( " de )$ co)$ res+ect #$,e"te8 Pode,os ,+)e,e"t$r u"$ co)$ co" ,e,or $ est't c$ <$rr$7s= 7 co" ,e,or $ d "', c$ <) st$s e")$.$d$s=8 S ,+)e,e"t$,os )$ co)$ co" $rr$7s0 te"dre,os u" $rr$7 ))$,$do co)$0 /ue co"t e"e e) t +o de "(or,$c !" /ue co"t e"e )$ co)$0 7 $+$rte dos #$)ores0 (re"te 7 ( "$)0 cu7o #$)or ser# r' co,o e) 3"d ce /ue "d c$ /ue e)e,e"to est' $) (re"te 7 $) ( "$) de )$ co)$8 L$ co)$ est$r' #$c3$ cu$"do (re"te 7 ( "$) "o $+u"te" $ " "1;" 3"d ce de) $rr$70 7 esto ser' cu$"do (re"te 7 ( "$) #$)1$" W s e) $rr$7 se e,+ e.$ $ "u,er$r $ +$rt r de) F8 A+$rte de )$ (u"c !" /ue ,e d ce s )$ co)$ est' #$c3$0 te"dr9 /ue ,+)e,e"t$r (u"c o"es de s$c$r 7 ,eter u" e)e,e"to8 P$r$ "sert$r u" e)e,e"to e" u"$ co)$0 h$*r3$ /ue "cre,e"t$r e) #$)or e" )$ #$r $*)e ( "$)0 7 des+u9s "troduc r e" )$ co)$ de) ( "$) e) e)e,e"to8 P$r$ e) , "$r u" e)e,e"to de u"$ co)$0 *$st$r3$ +r ,ero #er /ue e)e,e"to est' $) (re"te de )$ co)$0 7 +$r$ e) , "$r)o $u,e"t$r e) (re"te e" u"$ u" d$d8 S so)o co"s der$,os est$ +os * ) d$d0 es dec r0 ,$"e6$r e) $rr$7 so)o "cre,e"t$"do0 "o )o est$r3$,os ut ) .$"do e( c e"te,e"te0 +or/ue +odr3$,os ))e1$r $) c$so e" /ue h$* e"do +os c o"es ) *res $) co, e".o de) $rr$7 "o +ud 9se,os us$r)$s cu$"do e) ( "$) $)c$".$se e) ,'A ,o 3"d ce de) $rr$78 P$r$ e# t$r esto0 e) $rr$7 /ue ,+)e,e"t$ )$ co)$0 )o #$,os $ tr$t$r co,o u" $rr$7 c rcu)$r <su+o"e,os /ue des+ues de )$ +os c !" N de) $rr$70 # e"e )$ +os c !" F=8 Esto /u ere dec r /ue s )$ co)$ "o est' ))e"$0 des+u9s de ( "$) E M$A0 # e"e ( "$) E F0 7 $) s$c$r e) e)e,e"to de )$ co)$0 s "o est' #$c3$0 des+u9s de (re"te E N0 #e"dr' (re"te E F0 7 s des+u9s de s$c$r e) e)e,e"to )$ co)$ /ued$ #$c3$0 $ctu$) .$re,os (re"te 7 ( "$) $ W8 S (re"te es 1u$) $ ( "$) 7 so" d st "tos de W $"tes de s$c$r u" e)e,e"to0 /u ere dec r /ue ese e)e,e"to es e) ;)t ,o8 A"tes de "sert$r u" e)e,e"to0 te"dr9 /ue #er s )$ co)$ est' ))e"$ <(re"te E F 7 ( "$) E M$A o (re"te E ( "$) X F=8 I,%l','$ta-i:$ &' -!la" -!$ ,',!*ia '"tLti-a#

123

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

K +o d$tos5 $rr$7 aF88,$AMco)$b de \t +oD A)1or t,o ,$"e6oMco)$ V$r Co)$5 d$tos Hre"te0 ( "$)5 e"tero E)e,0 resu)t5 \t +oD I" c o Hre"te W H "$) W MeterMco)$ <(re"te0( "$)0co)$0e)e,= S co)$M#$c $ <(re"te0( "$)= E #erd$dero E"to"ces escr * r BCo)$ #$c3$C S "o s$c$rMco)$ <(re"te0( "$)0co)$0resu)t= Escr * r BE)e,e"to s$c$doCresu)t H"s H" Hu"c o" co)$M#$c $ <(re"te5 e"tero- ( "$)5 e"tero=5 *oo)e$" I" c o S <(re"te E W= 7 <( "$) E W= E"to"ces retor"o #erd$dero S "o retor"o ($)so H"s H" Proced , e"to ,eterMco)$ <e"t?s$) co)$5d$tos- e"t?s$) (re"te5e"teroe"t?s$) ( "$)5e"teroE)e,5 \t +oD= I" c o S <<(re"te E F= 7 <( "$) E M$AMco)$== o (re"te E ( "$) X F E"to"ces escr * r BCo)$ ))e"$C S "o s co)$M#$c $ <(re"te0( "$)= E #erd$dero E"to"ces (re"te F H "$) F S "o s ( "$) E M$AMco)$ E"to"ces ( "$) F S "o ( "$) ( "$) X F H"s H"s Co)$a( "$)b e)e, H"s H" Proced , e"to s$c$rMco)$ <e"t?s$) co)$5d$tos- e"t?s$) (re"te5e"teroe"t?s$) ( "$)5e"teroE)e,5 \t +oD= I" c o E)e, co)$a(re"teb S (re"te E ( "$) E"to"ces (re"te W H "$) W S "o s (re"te E M$AMco)$ E"to"ces (re"te F S "o (re"te (re"te X F H"s H"s H"
124

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

I,%l','$ta-i:$ &' -!la" -!$ ,',!*ia &i$L,i-a# Hu"c o" co)$M#$c $ <co,5 +u"tero $ "odoMdo*)e=5 *oo)e$"o I" c o S co, E " ) E"to"ces retor"o #erd$dero S "o retor"o ($)so H"s H" Proced , e"to ,eterMco)$ <e"t?s$) co,5 +u"tero $ "odoMdo*)ee"t?s$) ( "$)5 +u"tero $ "odoMdo*)e- e)e,5 \t +oD= #$r "ue#o5 +u"tero $ "odoMdo*)e I" c o S DISP E " ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPs 1 Nue#o "(o e)e, Nue#o$"t ( "$) Nue#os 1 " ) H "$)s 1 "ue#o H "$) "ue#o S co)$M#$c $ <(re"te= E #erd$dero E"to"ces (re"te "ue#o H"s H"s H" Proced , e"to s$c$rMco)$ <e"t?s$) co,5 +u"tero $ "odoMdo*)ee"t?s$) ( "$)5 +u"tero $ "odoMdo*)e- resu)t5 \t +oD= #$r +tr5 +u"tero $ "odoMdo*)e I" c o Resu)t co, "(o Ptr co, Co, co,s 1 S co, E " ) E"to"ces ( "$) " ) S "o co,$"t " ) H"s Ptrs 1 DISP DISP +tr H" A%li-a-i!$'" &' la" -!la"# L$s co)$s se sue)e" ut ) .$r e" )os +rocesos +or )otes 7 e" )$ ut ) .$c !" de recursos de) s ste,$8 Cu$"do u" +roceso /u ere us$r u" recurso 7 otro )o est' us$"do0 te"dr' /ue +o"erse e" )$ co)$0 7 se r' $s 1"$"do e) recurso se1;" e) orde" e" /ue se h$ +ed do8 A #eces0 )$ ut ) .$c !" de recursos +or +$rte de )os +rocesos0 "os "teres$ /ue c ertos +rocesos te"1$" ,$7or +r or d$d /ue otros0

125

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

"c)uso $u"/ue ))e1ue" ,'s t$rde0 7 +$r$ e))o ut ) .$r3$,os )$s co)$s de +r or d$des8 C$d$ e)e,e"to de )$ co)$0 te"dr' otro c$,+o /ue "d /ue su +r or d$d0 t$) /ue $ )$ hor$ de s$c$r u" e)e,e"to de )$ co)$0 s$co e) de) (re"te0 7 $ )$ hor$ de "sert$r u" e)e,e"to e" )$ co)$0 te"dr9 e" cue"t$ )$ +r or d$d de) e)e,e"to /ue /u ero "sert$r0 7 +$r$ e))o se "sert$ e" )$ co)$ +or orde" de +r or d$d0 7 s h$7 ,$s e)e,e"tos /ue t e"e" )$ , s,$ +r or d$d /ue e) /ue /uere,os "sert$r0 )os +roces$,os se1;" su orde" de ))e1$d$0 es dec r0 /ue )o co)oc$,os co,o e) ;)t ,o de )os e)e,e"tos co" es$ +r or d$d8 <. DO3LES COLAS O 3ICOLAS# U"$ * co)$ es u"$ ) st$ ) "e$) de e)e,e"tos e" )$ /ue )$s "serc o"es 7 *orr$dos es +uede" h$cer +or cu$)/u er$ de sus eAtre,os8 V$ $ h$*er V #$r $*)es0 ./u erd$ 7 derech$0 /ue $+u"t$" $ sus eAtre,os8 H$7 V t +os es+ec $)es de * co)$s5 - De e"tr$d$ restr "1 d$5 ]ue +er, te "serc o"es so)o +or u" eAtre,o 7 *orr$dos +or )os dos8 - De s$) d$ restr "1 d$5 ]ue +er, te "serc o"es +or cu$)/u er eAtre,o 7 *orr$do so)o +or u"o8 Se +uede" ,+)e,e"t$r co" ,e,or $ est't c$ o d "', c$8

! R"I"IO#: $ %A && F8 D se:$r u" $)1or t,o /ue co)o/ue e) +r ,er "odo de u"$ ) st$ e")$.$d$ co,o +e";)t ,o0 +ero c$,* $"do so)o )os c$,+os e")$ce8 L$ ) st$ es u"$ ) st$ e")$.$d$ do*)e8 Proced , e"to resu)t$do <e"t?s$) co,5 +trM$ "odo- e"t?s$) ( "$)5 +trM$ "odo= V$r Pr "5 +u"tero $ "odo I" c o S <co, E ( "$)= o <co,s 1 E ( "$)= E"to"ces escr * r BNo se +uede h$cer e) c$,* oC S "o +r " co, Co,s 1 ( "$) Co,$"t ( "$)$"t H "$)$"ts 1 co, H "$)$"t co, Co, +r "s 1 Co,$"t " ) H"s H" V8 D$d$ u"$ c$de"$ de c$r$cteres CF0 e" u" $rr$7 de )o"1 tud ,'A ,$ N0 7 co" e) ( " de c$de"$ NlO0 7 d$d$ otr$ c$de"$ CV $),$ce"$d$ e" u"$ ) st$ e")$.$d$ s ,+)e0 /ue c$d$ "odo de )$ ) st$ co"t e"e u"$ )etr$8 Se tr$t$ de /ue +$s$"do)e $ u" su*+ro1r$,$ V c$de"$s0 deter, "$r cu$"t$s #eces $+$rece CF e" CV8 Hu"c o" co,+$r$ <cF5 c$de"$- cV5 +trM$ "odo=5 e"tero V$r I" 0+5 +u"tero $ "odo

126

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

I0res5 e"tero I" c o Res W P CV M e"tr$s <+\D " )= S <+ "(o E cFa b= E"to"ces " P IF M e"tr$s <+ "(o E cFa b= 7 <cFa b \D NlO= 7 <+ \D " )= I XF P +s 1 H " , e"tr$s S cFa b E NlO E"to"ces res res X F S "o + " s 1 H"s S "o + +s "1 H"s H " , e"tr$s H" P8 D$d$ u"$ ) st$ do*)e,e"te e")$.$d$ /ue co"t e"e e" c$d$ "odo u" d31 to dec ,$) <W88L=0 deter, "$r e) #$)or /ue se o*t e"e s co"s der$,os )$ "(or,$c !" de c$d$ "odo de )$ ) st$ co,o )os t9r, "os de u" +o) "o, o0 do"de e) t9r, "o de ,e"or 1r$do es e) ;)t ,o "odo 7 e) de ,'A ,o 1r$do es e) de) co, e".o0 e#$)u$"do e) +o) "o, o +$r$ u" #$)or /ue se )e +$s$ co,o +$r',etro8 Hu"c o" +ot <*$se5 e"tero- eA+5 e"tero=5 re$) V$r I5 e"tero Acu,5 re$) I" c o Acu, F Desde E F h$st$ eA+ Acu, $cu, T *$se H " desde Retor"o $cu, H" Hu"c o" +o) "o, o <( "5 +trM$ "odoMdo*)e- A5 e"tero=5 re$) V$r Res5 re$) P5 +u"tero $ "odoMdo*)e I" c o EA+ W Res W P ( "$) M e"tr$s + \D " ) Res res X <c "(o T +ot <A0eA+= P +$"t EA+ eA+ X F H " , e"tr$s Retor"o res H"

127

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

R8 Ke"e,os $),$ce"$do e" u" ( chero de +roductos e) stoci de c$d$ u"o de e))os e" e) $),$c9"8 C$d$ re1 stro t e"e de"t ( c$dor0 "o,*re0 stoci $ctu$) 7 stoci ,3" ,o8 Iter$t #$,e"te0 h$st$ /ue se "trodu.c$ u" de"t ( c$dor de +roducto 1u$) $ W0 se r'" h$c e"do +ed dos o e"tre1$s + d 9"do"os e) de"t ( c$dor0 )$ c$"t d$d 7 s es +ed do o e"tre1$0 7 co" e))os re,os $ctu$) .$"do )$ c$"t d$d de +roductos e" $),$c9"8 A) ( "$) /u ero te"er e) ( chero $ctu$) .$do8 P$r$ e))o0 ut ) .$re,os u"$ ) st$ e")$.$d$ co,o estructur$ $uA ) $r8 K +o +roducto5 re1 stro I"de"t ( c$dor5 e"tero No,*re5 c$de"$ StociM$ct5 e"tero StociM, "5 e"tero H " re1 stro Nodo5 re1 stro I"(o5 +roducto S 15 +u"tero $ "odo H " re1 stro V$r Co,0 +tr5 +u"tero $ "odo Re15 +roducto H ch5 ( chero de +roducto Id0c$"t5 e"tero C$r5 c$r'cter I" c o Co, " ) A*r r <( ch0Cd$tos8d$tC0e"tr$d$= Leer <( ch0re1= M e"tr$s "o eo( <( ch= I"sert$r <co,0re1= Leer <( ch0re1= H " , e"tr$s Cerr$r <( ch= Escr * r BIde"t ( c$dorC Leer < d= M e"tr$s d \D W Escr * r BC$"t d$dC Leer c$"t Escr * r BPed doZE"tre1$C Leer c$r Mod ( c$ <co,0 d0c$"t0c$r= Escr * r BIde"t ( c$dorC Leer d H " , e"tr$s A*r r <( ch0Cd$tos8d$tC0s$) d$= Ptr co, M e"tr$s co, \D " ) Escr * r <( ch0co, "(o= Co, co,s 1 Ptrs 1 DISP DISP +tr Ptr co, H " , e"tr$s Cerr$r <( ch= H"

128

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Proced , e"to "sert$r <e"t?s$) co,5 +u"tero $ "odo- e)e,5 +roducto= V$r Lu10)u1+0"ue#o5 +u"tero $ "odo I" c o S DISP E N ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPS 1 Nue#o "(o e)e, S co, E " ) E"to"ces "ue#os 1 co, Co, "ue#o S "o )u1+ co, Lu1 co,s 1 M e"tr$s <e)e,8 de"t ( c$dor D )u1 "(o= 7 <)u1 \D " )= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s Nue#os 1 )u1 Lu1+s 1 "ue#o H"s H"s H" Proced , e"to ,od ( c$ <+r ,5 +trM$ "odo- d5 e"tero- c5 e"tero- c$r$ct5 c$r'cter= V$r Ptr5 +u"tero $ "odo I" c o S +r " E " ) E"to"ces escr * r BL st$ #$c $C S "o +tr +r " M e"tr$s <+tr \D " )= 7 < d \D +tr "(o8 de"t ( c$dor= Ptr +trs 1 H " , e"tr$s S +tr E " ) E"to"ces escr * r BE) +roducto "o eA steC S "o s <c$r$ct E NPO= o <c$r$ct E N+O= E"to"ces +tr "(o8c$"t d$d +tr "(o8c$"t d$d X c S "o s +tr "(o8c$"t d$d DE c E"to"ces +tr "(o8c$"t d$d +tr "(o8c$"t d$d ec S "o escr * r BNo h$7 c$"t d$d su( c e"teC H"s H"s H"s H"s H"

Q8 D$d$s V ) st$s e")$.$d$s s ,+)es0 LF 7 LV0 orde"$d$s e" $sce"de"te0 $ctu$) .$r )$s V ) st$s de ,odo /ue LV /uede #$c3$ 7 LF co"te"1$ $ todos )os e)e,e"tos de LV0 ,e"os $ )os re+et dos8 No *orr$r e)e,e"tos0 h$7 /ue e")$.$r)os8 Proced , e"to 6u"t$r <e"t?s$) co,F5 +trM$ "odo- e"t?s$) co,V5 +trM$ "odo=
12#

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

V$r PF0$F0 $uA0 *orr$do5 +u"tero $ "odo I" c o S co,V \D " ) E"to"ces s co,F E " ) E"to"ces co,F co,V S "o s <co,V "(o \ co,F "(o= 7 <co,V \D " )= E"to"ces $uA co,V Co,V co,Vs 1 AuAs 1 co,F Co,F $uA S "o $F co,F PF co,Fs 1 M e"tr$s <+F \D " )= 7 <co,V \D " )= S <co,V "(o \ +F "(o= E"to"ces $F +F PF +Fs 1 S "o s <co,V "(o E +F "(o= E"to"ces *orr$do co,V Co,V co,Vs 1 Borr$dos 1 DISP DISP *orr$do S "o $uA co,V AFs 1 co,V Co,Vs 1 PF Co,V $uAs 1 AF $Fs 1 H"s H"s H " , e"t$s S co,V \D " ) E"to"ces $Fs 1 co,V Co,V " ) H"s H"s H"s H"s H" S8 I,+)e,e"t$r u"$ co)$ us$"do ) st$s e")$.$d$s s ,+)es5 Proced , e"to ,eter <e"t?s$) co,5 +trM$ "odo- e"t?s$) ( "$)5 +trM$ "odo- e5 \t +oD= V$r Nue#o5 +trM$ "odo I" c o S DISP E " ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPs 1 Nue#os 1 N ) S co, E " ) E"to"ces co, "ue#o H "$) "ue#o S "o ( "$)s 1 "ue#o H "$) "ue#o H"s H"s
13$

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

H" Proced , e"to s$c$r <e"t?s$) co,5+trM$ "odo- e"t?s$) ( "$)5+trM$ "odoe"t?s$) e5\t +oD= V$r Borr$do5 +u"tero $ "odo I" c o E co, "(o Borr$do co, Co, co,s 1 S co, E " ) E"to"ces ( "$) " ) H"s Borr$dos 1 DISP DISP *orr$do H"

[8 I,+)e,e"t$r u"$ co)$ de +r or d$des co" ) st$s e")$.$d$s s ,+)es5 Proced , e"to ,eter <e"t?s$) co,5 +trM$ "odo- e5 \t +oD- +5 e"tero= V$r Lu1+0 )u10 "ue#o5 +u"tero $ "odo I" c o S DISP E " ) E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISP DISP DISPs 1 Nue#o "(o e Nue#o+r or d$d + Lu1+ " ) Lu1 co, M e"tr$s <)u1 \D " )= 7 <+ DE )u1+r or= Lu1+ )u1 Lu1 )u1s 1 H " , e"tr$s S )u1+ E " ) E"to"ces "ue#os 1 co, Co, "ue#o S "o )u1+s 1 "ue#o Nue#os 1 )u1 H"s H"s H" Proced , e"to s$c$r <e"t?s$) co,5+trM$ "odo- e"t?s$) e5\t +oD= V$r Borr$do5 +u"tero $ "odo I" c o E co, "(o Borr$do co, Co, co,s 1 Borr$dos 1 DISP DISP *orr$do H"
131

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

G8 I,+)e,e"t$r u"$ co)$ de +r or d$des co,o ) st$ de ) st$s5 K +o "odoM+r or5 re1 stro Pr or5 e"tero Pr "+5 +trM$ "odoM "(o S 15 +trM$ "odoM+r H " re1 stro NodoM "(o5 re1 stro I"(o5 \t +oD E")5 +trM$ "odoM "(o H " re1 stro Proced , e"to ,eter <e"t?s$) co,5+trM$ "odoM+r or- e)e,5\t +oD- +5 e"tero= V$r Nue#o 0 )u1 5 +u"tero $ "odoM "(o Nue#o+0 +tr0 +tr$5 +u"tero $ "odoM+r or I" c o S <DISPP E " )= 7 <DISPI E " )= E"to"ces escr * r BNo h$7 ,e,or $C S "o "ue#o DISPI DISPI DISPIe") Nue#o "(o e)e, Nue#os 1 NIL Ptr$ " ) Ptr co, M e"tr$s <+tr \D " )= 7 <+ D +tr+r or= Ptr$ +tr Ptr +trs 1 H " , e"tr$s S <+ E +tr+r or= E"to"ces )u1 +tr+r "+ M e"tr$s <)u1 s 1 \D " )= Lu1 )u1 e") H " , e"t$s Lu1 s 1 "ue#o S "o "ue#o+ DISPP DISPP DISPPs 1 Nue#o++r or + Nue#o+s 1 +tr Nue#o++r "+ "ue#o S <+tr$ E " )= E"to"ces co, "ue#o+ S "o +tr$s 1 "ue#o+ H"s H"s H"s H" Proced , e"to s$c$r <e"t?s$) co,5 +trM$ "odoM+r or- e"t?s$) e5\t +oD= V$r Bor 5 +trM$ "odoM "(o Bor+5 +trM$ "odoM+r or I" c o E co,+r "+ "(o Bor co,+r "+ Co,+r "+ co,+r "+e")
132

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

Bor e") DISPI S co,+r "+ E " ) E"to"ces *or+ co, Co, co,s 1 Bor+s 1 DISPP DISPP *or+ H"s H"

133

TCNICAS Y DISEOS DE ALGORITMOS

INICIANDO LA

PROGRAMACIN

3i0li!(*a9+a
Hu"d$,e"tos de Pro1r$,$c !"8 L *ro de +ro*)e,$s8 lgoritmos, Estructuras de datos Lu s @o7$"es A1u )$r0 Lu s Rodr31ue. B$e"$0 M$t )de Her"'"de. A.u)e$ Mc1r$>?h ))Z "ter$,er c$"$ de es+$:$0 s8$8u8 K9c" c$s de D se:o de A)1or t,os Ros$ &uere/uet$ 7 A"to" o V$))ec ))o A)1or t, c$ 7 Pro1r$,$c o" +$r$ I"1e" eros <B7 @AH# er= htt+5ZZ>>>8,ed $( re8co,Z4"d"rVFe .G, Code Co,+)ete Ste#e McCo""e)) ? M croso(t Press Co"ce+tos B's cos de Pro1r$,$c !"8 htt+5ZZ>>>8,$ )A,$ )8co,Zcurso?$+re"de?+ro1r$,$rZco"ce+tos? *$s cos?+ro1r$,$c o" M$"u$) de) Pro1r$,$dor8 htt+5ZZ>>>8e,$1 ster8co,Z,$"u$)?de)?+ro1r$,$dor?cursos? VVRF[W[8ht, E"t d$des Pr , t #$s +$r$ A)1or t,os Pro(8 M$r7 A""e S'"che. V's/ue. htt+5ZZ>>>8s) desh$re8"etZ,$r7Ms#Ze"t d$des?+r , t #$s?+$r$? $)1or t,os M$"u$) de I" c $c !" $ )$ Pro1r$,$c !"5 htt+5ZZ>>>8des$rro))o>e*8co,Z,$"u$)esZ[RZ

134

También podría gustarte