Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ana Isabel,
Luz Piedad,
Juan Pablo y
Efran Alberto Oviedo
TABLA DE CONTENIDO
Presentacin !I
Captulo 1. CONOCIMIENTO DE LA COMPUTADORA "
"" #istoria de la $o%&utadora "
"' Defini$i(n de una $o%&utadora )
"* Clasifi$a$i(n de las $o%&utadoras +
") El $o%&utador di,ital -
Estru$tura l(,i$a -
Dis&ositivos de entrada y salida de datos .
"+ Ti&os de &ro$esa%ientos "/
"0 Elabora$i(n de &ro,ra%as &ara $o%&utadora "'
"- Ter%inolo,a b1si$a "+
". 2iste%as nu%3ri$os "4
5e&resenta$i(n binaria, o$tal y 6e7ade$i%al '"
"4 5e&resenta$i(n de datos ''
5e&resenta$i(n alfanu%3ri$a '*
5e&resenta$i(n nu%3ri$a '+
5e&resenta$i(n nu%3ri$a entera '0
5e&resenta$i(n nu%3ri$a de &unto flotante '4
""/ Ti&os de $a%&os **
""" Clases de infor%a$i(n *)
Captulo 2. ENERALIDADE! !O"RE ALORITMO! *-
'" La l(,i$a *-
'' Pro$edi%iento *.
'* La e7&resi(n *4
') Pasos &ara la solu$i(n de un &roble%a a trav3s de
la $o%&utadora )'
Defini$i(n del &roble%a )'
An1lisis del &roble%a )'
Crear el al,orit%o )'
Prueba del es$ritorio )'
Codifi$a$i(n )*
Trans$ri&$i(n )*
Co%&ila$i(n )*
E8e$u$i(n )*
Do$u%enta$i(n e7terna ))
'+ El al,orit%o ))
Cara$tersti$as de los al,orit%os ))
9eneraliza$i(n del al,orit%o ).
'0 Con$e&to de &ro,ra%a$i(n +"
'- 5e&resenta$i(n de al,orit%os +'
'. E8er$i$ios &ro&uestos ++
Captulo #. E!TRUCTURA !ECUENCIAL +-
*" 5e&resenta$i(n +-
*' Instru$$i(n de asi,na$i(n +.
** Instru$$i(n de entrada de datos +.
*) Instru$$i(n de salida de datos +4
*+ E8er$i$ios &ro&uestos 0)
Captulo $. E!TRUCTURA DECI!I%N L%ICA 0-
)" 5e&resenta$i(n 0.
)' :un$iona%iento 0.
)* E8er$i$ios &ro&uestos .-
Captulo &. E!TRUCTURA REPETITI;A .4
+" 5e&resenta$i(n 4/
+' :un$iona%iento 4/
+* ;ariables ti&o $ontador 4/
+) ;ariables ti&o a$u%ulador 4"
++ Es<ue%a $uantitativo 4+
+0 Es<ue%a $ualitativo "//
+- :or%ato ,eneral de los dos es<ue%as "/.
+. ;ariables ti&o bandera o s=it$6e "/.
+4 5u&tura de $i$los ""*
+"/ 5o%&i%iento de $ontrol de e8e$u$i(n ""0
+"" E8er$i$ios &ro&uestos "*+
Captulo '. E!TRUCTURA! ADICIONALE! ")4
0" Estru$tura CA2O o sele$$i(n %>lti&le ")4
0' Estru$tura PA5A "++
0* Estru$tura 5EPETI5 ?#ACE5 @IENT5A2 ABEC "0*
0) E8er$i$ios &ro&uestos "-)
Captulo (. !U"PRORAMA! "--
-" Clasifi$a$i(n de los sub&ro,ra%as "-4
-"" Pro$edi%ientos o subrutinas "-4
a 5e&resenta$i(n "-4
b A$tiva$i(n de un &ro$edi%iento ".'
-"' :un$iones ".)
a 5e&resenta$i(n ".+
b A$tiva$i(n de una fun$i(n ".0
-' Do$u%enta$i(n de sub&ro,ra%as ".-
As&e$tos a tener en $uenta "4.
-* E8er$i$ios &ro&uestos "44
Captulo ). ARRELO! '/"
Clasifi$a$i(n de los arre,los '/'
." Arre,los de una di%ensi(n o ve$tores '/'
O&era$iones b1si$as $on arre,los
B>s<ueda '"-
Ordena$i(n ''"
Inser$i(n ''.
Borrado '*/
.' Arre,los de dos di%ensiones o %atri$es '*0
.* Arre,los %ultidi%ensionales '0"
As&e$tos a tener en $uenta '0+
.) E8er$i$ios &ro&uestos '00
Captulo *. REI!TRO! + ARC,I-O2 '-4
4" 5e,istros '-4
4"" Arre,lo de re,istros '.*
4' Ar$6ivos '.-
4'" Co%&onentes de un ar$6ivo '.-
4'' Clasifi$a$i(n de los ar$6ivos se,>n su uso '.-
4'* Con$e&to de $lave '4/
4') Al%a$ena%iento de ar$6ivos y su a$$eso a la infor%a$i(n '4'
4'+ Pro$esa%iento de ar$6ivos '4+
4'0 O&era$iones b1si$as sobre ar$6ivos '44
O&era$iones sobre ar$6ivos se$uen$iales '44
O&era$iones sobre ar$6ivos se$uen$iales inde7ados */)
Anota$iones i%&ortantes */+
As&e$tos a tener en $uenta */-
4* E8er$i$ios &ro&uestos */-
"i.lio/ra0a *")
1n2ice analtico *"+
P5E2ENTACIDN
Este te7to est1 basado en la se,unda edi$i(n del libro Al/orit3os Estructura2os4 &ero $on
%u$6os $a%bios, tanto en la for%a $o%o en su $ontenido Ade%1s, se le adi$ionaron y
%odifi$aron $on$e&tos, tratando sie%&re de $onservar su for%a did1$ti$a &ara <ue sea f1$il de
leer e inter&retar &or a<uellos le$tores <ue se ini$ian en el fant1sti$o %undo de los
$o%&utadores
La obra lle,( a su fin ,ra$ias al a&orte del De&arta%ento de 5e$ursos de A&oyos
Infor%1ti$os ?D5EIC , de la :a$ultad de In,eniera de la Bniversidad de Antio<uia y de las
$rti$as y a&orte de %u$6os de %is $o%&aFeros y $ole,as, entre ellosG :abi1n 5os, 5oberto
:lorez 5, Aldrin :redy Jara%illo, Leonel Osorno y Ovidio @ontoya
2e re$o%ienda a los le$tores ini$iar la le$tura del te7to desde el ini$io e ir analizando los
e8er$i$ios resueltos y solu$ionando los &ro&uestos, ya <ue es funda%ental dentro del &ro$eso
l(,i$o <ue si,ue el libroG esto es i%&ortante ya <ue $ada $a&tulo nuevo utiliza los $on$e&tos de
los $a&tulos anteriores
Los e8er$i$ios resueltos est1n $odifi$ados en CHH, y &ueden ser $onsultados en la &1,ina =eb
5ttp66in/enieria.u2ea.e2u.co6pro0esores6po7ie2o, donde se a$tualizaran y $odifi$aran en otros
len,ua8es de &ro,ra%a$i(n
El libro est1 dividido en nueve $a&tulos, &artiendo de lo %1s ele%ental 6asta lle,ar en el
$a&tulo final a un te%a de %ayor &rofundidad No i%&li$a esto <ue 6aya ne$esidad de
$o%enzar &or el &ri%er te%a si el le$tor ya $ono$e al,unos de los t(&i$os tratados Est1
estru$turado de for%a tal <ue $ual<uier &ersona <ue est3 interesada en un te%a es&e$fi$o &ueda
$onsultarlos, sin ne$esidad de se,uir el desarrollo $o%&leto del te7to
El $a&tulo ", Conoci3iento 2e la co3puta2ora4 &resenta una reseFa 6ist(ri$a de estas
%1<uinas, y da a $ono$er diferentes defini$iones y $lasifi$a$iones, 6asta introdu$irnos en la
ter%inolo,a b1si$a de las $o%&utadoras y en los siste%as nu%3ri$os $on los $uales traba8a
El se,undo $a&tulo, enerali2a2es so.re al/orit3os4 trata de la l(,i$a y de los &asos
ne$esarios &ara solu$ionar &roble%as a trav3s de la $o%&utadoraI ta%bi3n nos introdu$e en los
$on$e&tos de la &ro,ra%a$i(n y %uestra la for%a de re&resentar los al,orit%os sobre el &a&el,
lo <ue 6a$e %1s f1$il el &aso a un len,ua8e de &ro,ra%a$i(n
En el $a&tulo ter$ero nos en$ontra%os $on la &ri%era estru$tura b1si$a de $ontrolG la
estructura secuencial. En este $a&tulo se dan a $ono$er, &aso a &aso, las instru$$iones de
asi,na$i(n, de entrada y salida de datos, y al,unos otros $on$e&tos &ara los $uales fueron
diseFadas estas estru$turas
Estructura 2ecisin l/ica es el no%bre del $uarto $a&tulo En 3l se &lantea la
re&resenta$i(n y el fun$iona%iento de una de las estru$turas %1s utilizadas en el arte de
&ro,ra%arG la estru$tura 2IJCIE5TOJ:AL2O
El <uinto $a&tulo, Estructura repetiti7a4 trata sobre el fun$iona%iento de la ter$era
estru$tura b1si$a de $ontrolG el $i$lo #A9A @IENT5A2 Este $a&tulo nos ,ua desde las
variables ti&o $ontador y a$u%ulador 6asta los ro%&i%ientos de $ontrol de e8e$u$i(n, &asando
&or los es<ue%as $uantitativo y $ualitativo y la ru&tura de $i$los
En el se7to $a&tulo, Estructuras a2icionales4 se en$uentra la re&resenta$i(n y el
fun$iona%iento de las estru$turas no b1si$as de $ontrolG CA2O, PA5A, #ACE5 @IENT5A2
ABE $o%o estru$turas <ue &ueden ser usadas en $asos e7$e&$ionales, ayudando a %e8orar la
&ro,ra%a$i(n
El $a&tulo siete &arte de la re&resenta$i(n y do$u%enta$i(n de los diferentes $lases de
su.pro/ra3as4 &ara ter%inar $on la for%a en la <ue se a$tivan 3stos dentro de los al,orit%os
Es un $a&tulo din1%i$o <ue &lantea la verdadera utilidad de los sub&ro,ra%as en la
&ro,ra%a$i(n %odularizada
El $a&tulo o$6o trata sobre el %ane8o de arre/los4 su $lasifi$a$i(n de una, dos y tres
di%ensiones <ue son los %1s utilizados en el %edio, lo %is%o <ue las o&era$iones de b>s<ueda,
ordena$i(n, inser$i(n y borrado de ele%entos
Todos los te%as rela$ionados $on este $a&tulo son %ane8ados $on sub&ro,ra%as y vienen
a$o%&aFados de una ,ran $antidad de e8er$i$ios resueltos, f1$iles de $o%&render y <ue e7&li$an
a fondo su fun$iona%iento, ade%1s de %u$6os e8er$i$ios &ro&uestos
En el $a&tulo nueve se introdu$e el $on$e&to de re/istros, arre,lo de re,istros, lo %is%o
<ue el $on$e&to de arc5i7os 2e 2atos El le$tor &uede en$ontrar diversos t(&i$os sobre
ar$6ivos, tales $o%oG $o%&onentes, $lasifi$a$i(n, %ane8o de $laves, &ro$esa%iento de ar$6ivos
se$uen$iales y se$uen$iales inde7ados, lo %is%o <ue e8er$i$ios resueltos de ,ran utilidad
A lo lar,o del te7to se en$uentran noventa e8er$i$ios resueltos, <ue 6a$en %1s f1$il
$o%&render $ada $a&tulo Ta%bi3n $uenta $on dos$ientos $in$uenta e8er$i$ios &ro&uestos, <ue
dan al le$tor la o&ortunidad de &ra$ti$ar todo lo a&rendido sobre los te%as Cada se$$i(n del
libro tiene, al final, una &arte dedi$ada a resu%ir los as&e$tos &rin$i&ales de <ue trata el $a&tulo
y una serie de e8er$i$ios <ue &er%ite afianzar los $ono$i%ientos
Por >lti%o, el te7to viene a$o%&aFado de la &1,ina =eb 6tt&GKKin,enieria
udeaedu$oK&rofesoresK&oviedo, donde se en$uentran noventa e8er$i$ios <ue estan resueltos
al,ort%i$a%ente, $odifi$ados en el len,ua8e de &ro,ra%a$i(n CHH En $da uno de ellos se
>tiliza una ,a%a de re$ursos $on el fin de darles buena &resenta$i(n a la $a&tura y salida de
infor%a$i(n tales $o%oG %ane8o de $olores, ti&os de letras, $uadros, %en>s, valida$i(n de
infor%a$i(n, %ane8o de te$las y libreras $readas $on %u$6os sub&ro,ra%as de ,ran utilidad
El autor
Captulo 1
CONOCI@IENTO
DE LA CO@PBTADO5A
1.1. ,istoria 2e la co3puta2ora
No se tiene una fe$6a e7a$ta deter%inada de $u1ndo se &lante( el 6o%bre la ne$esidad de
a,ilizar a trav3s de una %1<uina las o&era$iones <ue se le &resentaban Bna de las &ri%eras
%1<uinas de las $uales se tiene noti$ia es el 8.aco4 $uya o&era$i(n data de %iles de aFos en el
$er$ano Oriente Cuando esta t3$ni$a se $ono$i( a&are$en varias versiones de 3l, tales $o%o el
8.aco C5ino 9 el !oro.:n ;apon<s.
@1s tarde, en "0)', el fran$3s Blaise Pas$al desarroll( una %1<uina $al$uladora <ue era
o&erada &or una serie de dis$os, unidos en en,rana8es, <ue tenan los n>%eros del / al 4 en
$ir$unferen$ia, de tal for%a <ue $uando un dis$o daba una vuelta, auto%1ti$a%ente el dis$o de
la iz<uierda avanzaba un d,ito Los indi$adores sobre los dis$os %ostraban las res&uestas
$orre$tas Pero esta $al$uladora s(lo serva &ara su%ar
En "04) 9ottfried Lit6el% Leibnitz $re( una %1<uina <ue %ulti&li$aba y divida
dire$ta%ente El dis&ositivo <ue utiliz( Leibnitz, en for%a de rueda es$alonada, a>n se usa en
al,unas $al$uladoras
Tanto Pas$al $o%o Leibnitz se adelantaron a la te$nolo,a de sus tie%&os, &ero nin,uno de
sus inventos era $onfiableI &or otra &arte, todos estos intentos &or $onse,uir una %1<uina <ue
&udiera &ro$esar datos se 6a$an en for%a aislada
@1s tarde, $uando a&are$i( el inter3s &or la nave,a$i(n, la astrono%a y el 6ilado te7til, se
$rearon nuevas %1<uinas &ara la ayuda en la solu$i(n de $1l$ulos $o%&le8os y &ara in,resar
&atrones a trav3s de tar8etas a los telares En "./" Jose&6 @arie Ja$<uard diseF( tar8etas
&erforadas &ara $ontrolar una %1<uina de 6ilado te7til, en donde $ada lnea de te8ido se
&resentaba en una tar8eta &erforada $o%o &atr(n y 3ste se te8a auto%1ti$a%ente En ".''
C6arles Babba,e desarroll( un &roye$to deno%inado %1<uina diferen$ial, la $ual era $a&az de
&rodu$ir tablas lo,art%i$as de seis $ifras de$i%ales de &re$isi(n Ani%ado &or los resultados
obtenidos, Babba,e $ontinu( sus e7&eri%entos &ara obtener una %1<uina analti$a, &ero
desafortunada%ente el ba8o nivel de la te$nolo,a %et1li$a de la 3&o$a i%&idi( <ue lle,ara a un
buen resultado
El traba8o realizado &or Babba,e es reto%ado antes de finalizar el 2i,lo, $uando se 6izo
3nfasis en las investi,a$iones &ara obtener %1<uinas &ro,ra%ables El nortea%eri$ano #ern1n
#ollerit6 desarroll( un %e$anis%o basado en tar8etas &erforadas, $uya &ri%era utiliza$i(n
e7itosa se llev( a $abo en "..0 durante la tabula$i(n del $enso de &obla$i(n de "../ en los
Estados Bnidos Este e<ui&o si,nifi$( un ,ran adelanto en el $a%&o de las $o%&utadoras
El %ayor i%&ulso y fuerza del desarrollo definitivo de las $o%&utadoras fue la 2e,unda
9uerra @undial Durante esta 3&o$a t3$ni$os de la IB@, e%&resa fundada &or #ollerit6, la
Bniversidad de #arvard y la Bniversidad de Pennsylvania, desarrollaron si%ult1nea%ente el
MAR= 1 y el ENIAC4 $uya utiliza$i(n estaba rela$ionada $on los %isiles ,uiados de uso
%ilitar
La MAR= 1 &esaba $in$o toneladas y $onstaba de un $o%&le8o de -. %1<uinas su%adoras y
$al$uladoras, $one$tadas $on .// Mil(%etros de $ables Las instru$$iones se le daban en $intas
de &a&el y una vez <ue la %1<uina e8e$utaba la &ri%era instru$$i(n no re<uera de la
interven$i(n 6u%ana A &esar de <ue esta %1<uina ele$tro%e$1ni$a re&resentaba un avan$e $on
res&e$to a las $rea$iones anteriores, todava &resentaba restri$$iones a $ausa de su lentitud y
difi$ultades en su o&era$i(n
Para esta %is%a 3&o$a, Jo6n L @au6Iy y J P E$Mert desarrollaron una %1<uina <ue
deno%inaron ED-AC> $a&az de desarrollar o&era$iones arit%3ti$as $on n>%eros binarios y de
al%a$enar instru$$iones El $ontrol de la $o%&utadora se realizaba %ediante el ala%brado de
$ables re%ovibles o $inta de &a&el, y una vez <ue el &ro$esa%iento de los datos 6aba sido
ini$iado, nin,una %odifi$a$i(n &oda efe$tuarse a &esar de <ue sur,iera la ne$esidad de 6a$erlo
Aun $uando las &ri%eras $o%&utadoras se desarrollaron $on &ro&(sitos %ilitares, no tard(
%u$6o tie%&o en <ue se e%&learan en las tareas $o%er$iales e industriales El ,ran e%&u8e de la
$o%&utadora $o%er$ial lo dio el desarrollo del transistor, &or &arte de los laboratorios de la Bell
Tele&6one, <ue vinieron a ree%&lazar los tubos al va$o
Confor%e la te$nolo,a avanz( en todas las 1reas, la investi,a$i(n en el $a%&o de las
$o%&utadoras se e7tendi( y los resultados se 6i$ieron $o%er$ial%ente %1s &r1$ti$os en ta%aFo
y $osto La UNI-AC 1 ?Bniversal Auto%ati$ Co%&uterC, instalada en el de&arta%ento de
$ensos de los Estados Bnidos en "4+", fue la &ri%era $o%&utadora <ue se &rodu8o en for%a
$o%er$ial y $ontena varias de las $ara$tersti$as de las $o%&utadoras a$tuales El uso $o%er$ial
de la UNI-AC $o%enz( en "4+), y a &artir de esta fe$6a la industria del &ro$esa%iento de
datos $o%enz( a $re$er en for%a a$elerada
Las %1<uinas desarrolladas en la d3$ada de los aFos "4). a "4+. $onstituyen la pri3era
/eneracin 2e co3puta2oras. Nstas utilizaban bulbos $o%o $o%&onentes b1si$os de sus
$ir$uitos, ,enerando un alto $onsu%o de ener,a, $alor %uy intenso Ade%1s a nivel de &ersonal
se re<uera de treinta y $in$o a $ien &ro,ra%adores, analistas, $odifi$adores y &ersonal de
%anteni%iento, as $o%o de un siste%a de aire a$ondi$ionado En esta ,enera$i(n se
desarrollaron los len,ua8es de &ro,ra%a$i(nG ?ORTRAN4 orientados a la resolu$i(n de
&roble%as nu%3ri$os y ALOL4 diri,ido al trata%iento de &roble%as $ientfi$os
En "4+4 sur,e la se/un2a /eneracin 2e co3puta2oras, lo <ue si,nifi$( un ,ran adelanto
en el &ro,reso de esta industria, debido a <ue los bulbos fueron sustituidos &or transistores, los
$uales &er%itieron au%entar la $onfabilidad y velo$idad o&erativa de estos e<ui&os Los
avan$es en e<ui&os &erif3ri$os ta%bi3n fueron notablesG i%&resoras $ada vez %1s r1&idas,
%e8ores le$toras de tar8etas y de $inta &erforada, y sobre todo bobinas de $inta %a,n3ti$a
$a&a$es de %e%orizar y de volver a leer datos en n>%ero ili%itado As %is%o, en esta
,enera$i(n &roliferan diferentes %odelos de $o%&utadoras, in$or&orando su uso en el 1rea de
los ne,o$ios 2e desarrolla el len,ua8e de &ro,ra%a$i(n CO"OL &ara estos fines y se
in$re%enta la utiliza$i(n del len,ua8e ?ORTRAN. 2e $rean enton$es los ensa%bladores, <ue
utilizan un $(di,o ne%ot3$ni$o &ara re&resentar las instru$$iones
A &artir de este %o%ento los avan$es te$nol(,i$os fueron, y $ontin>an siendo,
sor&rendentes Los transistores se sustituyeron &or los $ir$uitos inte,rados ?ICC Con este
$a%bio na$e la tercera /eneracin4 $uya base est1 en los $ir$uitos inte,rados %onolti$os y en
la %iniaturiza$i(n de la ele$tr(ni$a
Las %1<uinas de esta ,enera$i(n ?IB@ *0/, IB@*-/, POP0C son fabri$adas $on la
$ara$tersti$a de <ue las &ertene$ientes a una %is%a serie son $o%&atibles entre s, fa$ilitando
su usoI ade%1s, son utilizables tanto &ara a&li$a$iones de ti&o $ientfi$o $o%o $o%er$ial A
%edida <ue estas %1<uinas se fueron &erfe$$ionando sur,e la %ulti&ro,ra%a$i(n, el
%ulti&ro$esa%iento, las $o%uni$a$iones de datos, otros len,ua8es ?"A!IC y PL1C y los
&a<uetes es&e$ializados de &ro,ra%a$i(n En esta 3&o$a na$en las $al$uladoras de bolsillo y las
%i$ro$o%&utadoras
En la d3$ada de los aFos setenta se lo,ra una ,ran redu$$i(n de los $ir$uitos inte,rados
in$or&orando %iles de $o%&onentes $on un es&a$io %enor a una %i$ra, lo $ual $olo$a a las
$o%&utadoras en una cuarta /eneracin en la <ue a&are$e el len,ua8e PA!CAL $o%o uno de
los %1s &oderosos, &or ser de a&li$a$i(n ,eneral e in$luir los $on$e&tos introdu$torios de lo <ue
6oy se $ono$e $o%o &ro,ra%a$i(n estru$turada
A$tual%ente e7isten $ir$uitos <ue tienen alrededor de '0//// ele%entos y se $al$ula <ue los
adelantos &er%itir1n $ir$uitos %u$6o %1s &e<ueFos y $ien ve$es %1s velo$es #oy se 6abla de
su&er$o%&utadores, <ue $ara$terizar1n la @uinta /eneracin
1.2. De0inicin 2e una co3puta2ora
Bna $o%&utadora es una %1<uina $on ,ran $a&a$idad y velo$idad 2e 6a $onvertido en un
au7iliar del 6o%bre <ue le &resta ayuda en una enor%e ,a%a de a$tividades, tales $o%oG
O Proveer a los %3di$os infor%a$i(n a$tualizada sobre la salud del &a$iente
O Pre&arar ,r1fi$as de &atrones $li%atol(,i$os y &rodu$ir &lanes de vuelo de a$uerdo $on las
$ondi$iones $li%atol(,i$as
O Prestar ayuda en la o$eano,rafa y la nave,a$i(n
O 5e,istrar %ar$as y evaluar estadsti$as de $o%&eten$ias de&ortivas
O Prestar ayuda a los in,enieros en los $1l$ulos
O Controlar si%uladores de vuelo &ara dar al &iloto un entrena%iento ini$ial en tierra
O Coordinar el fun$iona%iento de los se%1foros &ara <ue el tr1nsito no sufra interru&$iones
O ;erifi$ar la $antidad de dinero de&ositado en una $uenta Bn e%&leado del ban$o 6abla $on
una $o%&utadora a trav3s del tel3fono
O Proveer infor%a$i(n sobre los &rodu$tos en el %er$ado
@u$6o se 6abla de <ue la $o%&utadora est1 influyendo dentro de nuestra &riva$idad y
sustituyendo %ano de obra, $reando dese%&leo Estos as&e$tos no &ueden dis$utirse, sin
$ono$er a fondo lo <ue es una $o%&utadora, &ero a %edida <ue se avanza en su $ono$i%iento,
es &osible e%itir un $on$e&to inteli,ente #ay <ue tener en $uenta <ue una $o%&utadora no
&uede 6a$er al,o a %enos <ue el ser 6u%ano le di,a <u3 6a$er Debe%os $ontrolar la
$o%&utadora y no ella a nosotros
1.#. Clasi0icacin 2e las co3puta2oras
De a$uerdo $on el avan$e te$nol(,i$o se &ueden estable$er $ate,oras de $o%&utadoras, asG
O Primera generacin. Cara$terizadas &or utilizar tubos al va$o en los $o%&onentes b1si$os
de sus $ir$uitos
O Segunda generacin. Los tubos al va$o son sustituidos &or transistoresI la %e%oria estaba
$onstituida &or tubos %a,n3ti$osI se usaban en a&li$a$iones de ti&o %ilitar, $o%er$ial,
$ientfi$o y utilizaban el dis$o %a,n3ti$o
O Tercera generacin. Cara$terizadas &or utilizar en sus $o%&onentes $ir$uitos inte,rados
%onolti$os En esta 3&o$a se le adi$ionan e<ui&os au7iliares, tales $o%o ter%inales
intera$tivas
O Cuarta generacin. Cara$terizadas &or la in$or&ora$i(n de %iles de $o%&onentes, inte,rados
en es&a$ios su%a%ente &e<ueFos 2e $rean t3$ni$as &ara %ane8ar vol>%enes ,randes de
infor%a$i(n y se usan $o%&utadoras re%otas en o&era$i(n $on un $o%&utador $entral
%ediante la tele$o%uni$a$i(n, dando lu,ar a la tele%1ti$a 2e &o&ularizan los len,ua8es de
&ro,ra%a$i(n de ti&o intera$tivo, las %1<uinas virtuales y los %ani&uladores de datos La
$o%&utadora es $a&az de elaborar &ro,ra%as
O Quinta generacin. 2on las $o%&utadoras del futuro 2e introdu$e el uso de la %e%oria de
burbu8a %a,n3ti$a y la t3$ni$a 6olo,r1fi$a $on rayos l1serI se %e8oran las t3$ni$as de
$o%uni$a$i(n $on el &ro$esador $entral en for%a $onversa$ional o intera$tiva y los
len,ua8es $ada vez son %1s 6u%anos, in$lusive la voz
2e,>n el ti&o de infor%a$i(n <ue %ane8a una $o%&utadora, 3stos se &ueden $lasifi$ar enG
O Computadoras digitales. 2on a<u3llas <ue &ro$esan datos dis$retos Traba8an dire$ta%ente
$ontando n>%eros ?d,itosC <ue re&resentan $ifras, letras u otros s%bolos es&e$iales As
$o%o los relo8es di,itales $uentan los se,undos y %inutos en una 6ora, los &ro$esadores
di,itales $uentan valores dis$retos &ara al$anzar los resultados deseados Las $o%&utadoras
di,itales son usadas en el &ro$eso de datos, $o%o &uede ser el &ro$eso de una $ontabilidad
Las $o%&utadoras di,itales &ueden serG
J De propsitos generales. 2on utilizadas &ara al%a$enar diferentes &ro,ra%as y &ueden ser
usadas en in$ontables a&li$a$iones Por e8e%&lo, una %1<uina <ue &ro$ese infor%a$i(n y
lue,o la i%&ri%a, <ue es$riba nuevos &ro,ra%as y $a%bie o borre los anteriores
J De propsitos especiales. DiseFadas &ara realizar s(lo una tarea es&e$fi$a, ya <ue los
&ro,ra%as est1n &er%anente%ente al%a$enados en la %1<uina
O Computadoras analgicas. Pro$esan datos <ue est1n %edidos en una es$ala $ontinua y
re,istrados $on un deter%inado ,rado de &re$isi(n Por e8e%&lo, el volta8e <ue &uede ser
%edido $on a&ro7i%a$i(n de un $ent3si%o de voltio Las $o%&utadoras anal(,i$as son
usadas &ara $ontrolar &ro$esos $on alta &re$isi(n, &udiendo ser 6asta en un /" P el valor
$orre$to 2e dedi$an al $ontrol fsi$o de a$tividades, $o%o el $ontrol de un &ro$eso de
ensa%ble auto%atizado o un siste%a de $ontrol de te%&eratura
O Computadoras hbridas (analgico digitales. 2on una $o%bina$i(n de las dos anteriores
Por e8e%&lo, en la unidad de $ontrol intera$tivo de un 6os&ital los dis&ositivos anal(,i$os
&ueden %edir el fun$iona%iento del $oraz(n de un &a$iente, la te%&eratura y los si,nos
vitales Estas %edidas &ueden ser $onvertidas a n>%eros y enviadas a un $o%&onente di,ital
del siste%a Este $o%&onente di,ital del siste%a es usado &ara $ontrolar los si,nos vitales
del &a$iente y enviar una seFal a la esta$i(n de las enfer%eras $uando sean dete$tadas
le$turas anor%ales
Tanto las $o%&utadoras 6bridas $o%o las anal(,i$as son i%&ortantsi%as, &ero las %1s
usuales son las di,itales
Por la capacidad ! estructura "sica. Antes de entrar en esta divisi(n, es $onveniente anotar
<ue estos ti&os de $o%&utadoras est1n rela$ionadas dire$ta%ente $on una 3&o$a es&e$fi$a en la
6istoria y $on el desarrollo de los $o%&utadoras
O Computadoras main"rame. 2on las $o%&utadoras grandes Ini$ial%ente, las $o%&utadoras
eran en su %ayora %ainfra%e y su uso estaba restrin,ido a e%&resas o entidades de ,ran
ta%aFo El $osto de ad<uisi$i(n y o&era$i(n era alto y $o%&le8o El uso de los %ainfra%e
est1 li%itado a e%&resas <ue o&eran $on &ro$esos $entralizados
O #inicomputadoras. 2on $o%&utadoras %edianasG su uso 6a ree%&lazado una buena &arte a
los %ainfra%e 2u utiliza$i(n es esti&ulada &ara e%&resas ,randes
O #icrocomputadoras de negocios. 2on $o%&utadoras &e<ueFas <ue se &ueden utilizar en
a&li$a$iones $o%er$iales y t3$ni$as, tanto en las &e<ueFas e%&resas $o%o en las ,randes
O #icrocomputadoras personales ! del hogar. 2on utilizadas en 8ue,os ele$tr(ni$os, 8ue,os
did1$ti$os y diversi(n 2u&lieron en ,ran &arte las $al$uladoras &ro,ra%ables 2e &uede de$ir
<ue 3stas dieron ori,en a las anteriores &or la ,ran de%anda <ue tuvieron
1.$. La co3puta2ora 2i/ital
Estructura l/ica
Todas las &artes de un siste%a de $o%&uta$i(n o&eran ba8o el $ontrol de una de ellasG la
unidad de $ontrol
Aun<ue un siste%a de $o%&uta$i(n est1 $o%&uesto &or %u$6os dis&ositivos, $ada siste%a
tiene $in$o $o%&onentes b1si$os En la fi,ura, a $ontinua$i(n, se %uestran estos $o%&onentes y
sus rela$iones entre s
?ALTA RA?ICO PA.(
La unidad de entrada ali%enta la %e%oria $on datos e instru$$iones La unidad de %e%oria
al%a$ena instru$$iones y datos Es el enla$e %1s $o%>n entre todas las unidades o
$o%&onentes
O La %e%oria au7iliar &ro&or$iona $a&a$idad %asiva de al%a$ena%iento
O La unidad arit%3ti$a y l(,i$a $o%&ara, su%a, resta, %ulti&li$a y divide
O La unidad de salida re,istra los datos <ue le su%inistra la %e%oria
O La unidad de $ontrol inter&reta instru$$iones y e%ite (rdenes &ara todos los de%1s
$o%&onentes de la $o%&utadora
Inde&endiente%ente de $(%o se introduz$an los datos, 3stos se transfor%an en i%&ulsos
el3$tri$os <ue se transfieren a dire$$iones &redeter%inadas dentro de la %e%oria La entrada se
divide b1si$a%ente en dos ti&osG instrucciones para el proceso de datos ! los datos a procesar
Las instru$$iones &asan de la %e%oria a la unidad de $ontrol, la $ual las inter&reta e indi$a a
los otros $o%&onentes <u3 debe 6a$erse $on los datos o en d(nde se les debe $olo$ar dentro de
la %e%oria Por e8e%&lo, si se deben su%ar los datos $ontenidos en dos $a%&os &ara &rodu$ir
los datos de un ter$ero, la unidad de $ontrol e%ite la orden a&ro&iada &ara la unidad arit%3ti$a y
l(,i$a Enton$es, esta unidad e7trae los datos a&ro&iados de la %e%oria, e8e$uta la su%a y
$olo$a el resultado en la %e%oria
En %u$6as a&li$a$iones se debe al%a$enar ,ran $antidad de datos y no 6ay es&a$io
sufi$iente en la %e%oria En estos $asos se e%&lea el $o%&onente de %e%oria o
al%a$ena%iento au7iliar Esta unidad se en$uentra se&arada de la unidad $entral de
&ro$esa%iento, &ero la unidad de $ontrol sie%&re tiene a$$eso a los datos <ue se en$uentran en
ella
La unidad de $ontrol, la %e%oria y la unidad arit%3ti$a y l(,i$a, ,eneral%ente se en$uentran
lo$alizadas en lo <ue se $ono$e $o%o unidad $entral de &ro$esa%iento CPU (Central
Processing $nit.
Dispositi7os 2e entra2a 9 sali2a 2e 2atos
En al,unos $asos, los %edios de entrada y salida se en$uentran $o%binados en un solo
dis&ositivo
Bn %3todo $o%>n &ara re,istrar datos es e%&lear $intas %a,n3ti$as En al,unos as&e$tos no
es %uy diferente de una ,rabadora $o%>n y $orriente As $o%o se &uede ,rabar %>si$a en una
,rabadora y lue,o es$u$6arla una y otra vez, ta%bi3n &ueden re,istrarse datos en una $inta
%a,n3ti$a y leerlos una y otra vez El dis&ositivo <ue se utiliza es una i%&ulsadora de $inta
%a,n3ti$a, la $ual &uede re,istrar datos en la $inta y ta%bi3n leerlos re&etidas ve$es, aun<ue no
e8e$uta a%bas o&era$iones si%ult1nea%ente A%bas o&era$iones, re,istro y le$tura, se e8e$utan
a altas velo$idades Cuando se leen datos <ue se en$uentran en la $inta, la unidad i%&ulsadora
a$t>a $o%o unidad de entradaI los datos son transferidos a la %e%oria de la $o%&utadora
Cuando los datos <ue est1n en la %e%oria son transferidos a la $inta, a$t>an $o%o dis&ositivo
de salida
Los $ara$teres se re&resentan en la $inta &or %edio de &e<ueFos &untos %a,netizados en
diferentes $olo$a$iones En las $intas es &osible al%a$enar ,randes $antidades de datos debido a
<ue los &untos %a,netizados se &ueden $olo$ar %uy &r(7i%os entre s Debido a esta
&arti$ularidad y a su ,ran velo$idad, las i%&ulsadoras de $inta %a,n3ti$a se utilizan $on
fre$uen$ia $o%o dis&ositivos de al%a$ena%iento au7iliar
Antes de e%&ezar al,>n &ro$eso, los datos re,istrados en ellos se transfieren a la %e%oria
&rin$i&al El o&erador &uede <uitar las $intas y ree%&lazarlas &or otrasI esto si,nifi$a <ue si una
$inta se usa una vez &or se%ana, se &ueden al%a$enar fuera del siste%a $uando no se e%&lee
Cuando se re<uieran de nuevo estos datos el o&erador &uede $olo$ar nueva%ente la $inta en la
unidad i%&ulsadora
Las desventa8as de las $intas es <ue sus datos no se &ueden inter&retar en la $inta %is%aI &or
lo tanto, &ara verifi$ar sus datos es ne$esario &ro$esarla y as obtener un infor%e i%&resoI
ade%1s, sus datos no se &ueden reordenar f1$il%ente ni ta%&o$o insertar nuevos re,istros entre
los ya e7istentes
Otro dis&ositivo %uy >til es la ter%inal de %1<uina de es$ribir $o%>n%ente deno%inada
ter%inal de teleti&o, <ue &uede $one$tarse al $o%&utador %ediante una lnea telef(ni$a nor%al,
$onvirti3ndose de esta %anera en un dis&ositivo e7tre%ada%ente >til Bna su$ursal <ue se
en$uentre a %iles de Mil(%etros del siste%a de $o%&uta$i(n &uede enviar datos de entrada y
re$ibir datos de salida %ediante una ter%inal de teleti&o
El o&erador usa $laves es&e$fi$as &ara $o%uni$arse $on la $o%&utadora, enva datos y &ide
infor%es Tanto el envo $o%o la salida <ue &rodu$e la $o%&utadora se i%&ri%e
auto%1ti$a%ente en un rollo de &a&el <ue &asa &or la ter%inal
La ter%inal de &antalla, <ue a ve$es re$ibe el no%bre de t3le7, es %uy &are$ida a la ter%inal
de teleti&oG la &rin$i&al diferen$ia $onsiste en <ue los datos se e76iben en una &antalla en lu,ar
de i%&ri%irse La ter%inal de &antalla ta%bi3n se &uede $one$tar al siste%a de $o%&uta$i(n
%ediante lneas telef(ni$as
El o&erador se $o%uni$a $on el $o%&utador &or %edio de un te$lado Tanto los datos de
entrada $o%o de salida a&are$en en la &antalla En la &antalla se &ueden %ostrar dia,ra%as y
,r1fi$os, esto es %uy >til &ara estudios $ientfi$os y de in,eniera En o$asiones los siste%as
&ara reserva$iones en aerolneas %uestran un dia,ra%a del avi(n seFalando los sitios reservados
&ara un vuelo en &arti$ular
Otro dis&ositivo de entradaKsalida, y <uiz1 el %1s >til y fle7ible de todos, es el dis$o
%a,n3ti$o Consiste en una serie de dis$os %et1li$os <ue se $olo$an uno sobre otro, de8ando un
es&a$io de se&ara$i(n ade$uado Los datos se re,istran en las dos $aras de $ada dis$o, %ediante
$abezas le$torasK,rabadoras, las $uales entran y salen en el es&a$io <ue 6ay entre los dis$os
Los datos se &ueden ,rabar y leer en el dis$o En los dis$os $abe ,ran $antidad de datos
Cada dato se al%a$ena en una dire$$i(n o lo$aliza$i(n $ono$ida Las $abezas
le$torasK,rabadoras &ueden ir dire$ta%ente a $ual<uier dire$$i(n del dis$o, $on lo $ual, la
b>s<ueda de $ual<uier dato se &uede 6a$er r1&ida%ente Los datos se re,istran en el dis$o
%ediante &e<ueFos &untos %a,n3ti$os Al i,ual <ue las $intas los dis$os se &ueden retirar de la
unidad de dis$o y ,uardarlos en otra &arte 6asta <ue se re<uieran los datos $ontenidos en ellos,
&ero ta%bi3n e7isten dis$os fi8os <ue no se &ueden %over
En for%a &are$ida o&eran ta%bi3n los dis&ositivos de entradaKsalidaG dis<uetes y dis$os
$o%&a$tos
E7isten ta%bi3n dis&ositivos &ara re$ono$i%iento de $ara$teres (&ti$os, $o%>n%ente
$ono$idos $o%o dis&ositivos OCR ?%ptical Character &ecognitionC La %ayora de datos <ue
van a introdu$irse al $o%&utador se re,istran &ri%ero en un do$u%ento fuente, <ue &uede ser
%anus$rito o %e$ano,rafiado Los dis&ositivos OCR &ueden leer estos datos y $onvertirlos
dire$ta%ente en i%&ulsos el3$tri$os A su vez, estos i%&ulsos se &ueden re,istrar dire$ta%ente
en $inta %a,n3ti$a, dis$o, et$ No se re<uiere &erforar tar8etas, as <ue no s(lo se e$ono%iza
tie%&o y dinero, sino <ue se dis%inuyen las &osibilidades de error
#ay dis&ositivos <ue se e%&lean >ni$a%ente &ara salida, la i%&resora es el dis&ositivo %1s
$o%>n en los ne,o$ios E7isten %u$6os ta%aFos y versiones #ay i%&resoras <ue &ueden
i%&ri%ir 6asta +/// lneas &or %inuto 2in e%bar,o, la velo$idad %1s usual est1 entre +// y
"/// lneas &or %inuto
2e 6an diseFado dis&ositivos <ue re,istran datos de salida dire$ta%ente en %i$rofil% A
%edida <ue se &rodu$en los datos, se &roye$tan sobre una &antalla y se foto,rafan $on una
$1%ara ultrar1&ida @ediante este siste%a, los datos de salida se &ueden re,istrar en &el$ula
$on la %is%a velo$idad $on <ue o&era una le$tura de %i$rofil% Bnos $uantos %etros de
%i$rofil% &ueden al%a$enar datos <ue re<ueriran %iles de &1,inas i%&resas
Bn %3todo alterno $onsiste en ,rabar los datos de salida en $inta %a,n3ti$a y, des&u3s,
&asarlos a %i$rofil% Este siste%a es %1s e$on(%i$o <ue el &ri%ero
Otros %3todos de $o%uni$a$i(n $on la $o%&utadora son el l1&iz (&ti$o, el ta%bor %a,n3ti$o
y la voz
1.&. Tipos 2e procesa3iento
Considere%os a6ora un as&e$to diferente en $uanto al &ro$esa%iento de datos en un Centro
de C(%&uto 2ea la elabora$i(n de una n(%ina <ue se &asa <uin$enal%enteI las novedades
res&e$to a tie%&o e7tra u otros te%as se re>nen $ada se%ana y se ,uardan o al%a$enan 6asta
<ue lle,ue el %o%ento de &ro$esarlas, es de$ir, las novedades no se &ro$esan en el instante en
<ue se ,eneran sino <ue se a$u%ulan &ara 6a$erlo en el %o%ento o&ortunoI a este ti&o de
&ro$eso se deno%ina proceso por lotes.
A6ora su&on,a%os <ue al,uien va a una ofi$ina de una aerolnea &ara 6a$er reserva$iones en
al,>n vueloI $o%o es obvio <ue el e%&leado no &uede ,uardar la soli$itud &ara &ro$esarla lue,o
$on %u$6as otras, los datos deben &ro$esarse in%ediata%ente A este ti&o de &ro$eso se le
deno%ina &ro$esa%iento 2irecto o en lnea.
La %ayora de los re<uisitos del &ro$esa%iento de datos son de uno de estos dos ti&osG
&ri%ero, los datos se al%a$enan 6asta <ue lle,ue el tie%&o seFalado &ara su &ro$esoI se,undo,
los datos se deben &ro$esar tan &ronto $o%o se ori,inan
Cuando se tienen $ondi$iones del &ri%er ti&o se utiliza lo <ue se deno%ina &ro$esa%iento
&or lotes 2e &ueden re$o&ilar ,randes $antidades de datos y &ro$esarlos en el %o%ento
o&ortuno, $o%o en una n(%ina, &or e8e%&lo Cuando los datos deben &ro$esarse
in%ediata%ente se utiliza el &ro$esa%iento dire$to
El &ro$eso dire$to re<uiere <ue el siste%a de $(%&uto ten,a la &osibilidad o $a&a$idad de un
a$$eso dire$to A$$eso dire$to se refiere a la &osibilidad de ir dire$ta%ente al &unto donde se
en$uentra el re,istro re<uerido del ar$6ivo sin tener <ue e7a%inar re,istro &or re,istro El
al%a$ena%iento en dis$o tiene la venta8a de <ue un re,istro deter%inado se &uede leer
dire$ta%ente sin tener <ue 6a$erlo todos los re,istros anteriores
El uso de ter%inales de teleti&o y de &antalla <ue se en$uentran a ,ran distan$ia del siste%a
$entral de $(%&uto se efe$t>a %ediante el uso de tele$o%uni$a$iones Tele$o%uni$a$i(n es la
$o%uni$a$i(n de datos %ediante el uso de lneas telef(ni$as En la fi,ura, a $ontinua$i(n, se
ilustra el fun$iona%iento de un siste%a de tele$o%uni$a$iones
?ALTA RA?ICO PA.11 LI"RO
Al o&erar las ter%inales de &antalla o de teleti&o se ,enera el $(di,o de $o%&utador Este
$(di,o &asa a un $odifi$adorKde$odifi$ador de datos <ue lo $onvierte en un $(di,o <ue &uede
trans%itirse &or $ables telef(ni$os En el otro e7tre%o de la lnea, donde se en$uentra la
$o%&utadora, 6ay otro $odifi$adorKde$odifi$ador de datos <ue $onvierte el $(di,o telef(ni$o en
$(di,o de $o%&utadora Este $(di,o se usa $o%o entrada &ara la unidad $entral de
&ro$esa%iento
La salida re<uerida se &rodu$e en for%a de $(di,o de $o%&utadora, de tal %anera <ue tiene
<ue $onvertirse en $(di,o telef(ni$o &ara ser trans%itida a las ter%inales donde se efe$t>a la
o&era$i(n inversa, y el $(di,o de $o%&utadora &rodu$e la salida a&ro&iada Ta%bi3n se &ueden
e%&lear las lneas telef(ni$as nor%ales &ara trans%itir datos Todo lo <ue 6ay <ue 6a$er es
levantar la bo$ina y %ar$ar el n>%ero de la $o%&utadoraI un $ierto tono indi$a <ue la $one7i(n
est1 lista y <ue se &uede e%&ezar a trans%itirI el tel3fono se a8usta $on el
$odifi$adorKde$odifi$ador de datos y esta%os listos &ara $o%enzar
Co%o es de su&onerse, las tele$o%uni$a$iones a%&liaron notable%ente la utilidad y
$onvenien$ia de los siste%as de $o%&uta$i(n Todas a<uellas e%&resas <ue no $uentan $on su
&ro&ia $o%&utadora, &ueden tener a6ora a$$eso f1$il a una y, re$ibir un servi$io in%ediato
Las tele$o%uni$a$iones, 8unto $on los adelantos en los siste%as de $o%uni$a$i(n, 6an 6e$6o
&osible la &r1$ti$a de lo <ue se deno%ina tie%&o $o%&artido La $o%&utadora est1 &ro,ra%ada
de tal %anera <ue ad%ite &eti$iones de &ro$esa%iento 6e$6as desde lu,ares le8anos y, ade%1s,
re&arte el tie%&o dis&onible de &ro$esa%iento entre varios usuarios De este %odo, al %is%o
tie%&o <ue el siste%a est1 &rodu$iendo una $ierta salida &ara al,>n usuario, e8e$uta
deter%inados $1l$ulos &ara otro A los $lientes se les $obra una $uota <ue, ,eneral%ente,
de&ende de la $antidad de tie%&o de $o%&utadora e%&leada Para el uso en los ne,o$ios, los
siste%as de $o%&uta$i(n vienen en tres ta%aFos b1si$osG &e<ueFo, %ediano y ,rande
Pri%ordial%ente, el ta%aFo de una $o%&utadora se deter%ina &or la $a&a$idad de
al%a$ena%iento <ue ten,a la unidad de &ro$esa%iento, la $ual, deter%ina el ta%aFo de los
&ro,ra%as y la $antidad de datos <ue &uede %ane8ar en $ual<uier %o%ento dado
1.'. Ela.oracin 2e pro/ra3as para co3puta2ora
Las $o%&utadoras &ueden e8e$utar un ,ran n>%ero de o&era$iones a %uy altas velo$idades y
$on interven$i(n %ni%a de seres 6u%anos 2in e%bar,o, a una $o%&utadora se le debe indi$ar
e7a$ta%ente <u3 o&era$iones debe e8e$utar y en <u3 orden A estos $on8untos de instru$$iones
se les deno%ina &ro,ra%as &ara $o%&utadora y son elaborados &or &ro,ra%adores Bn
&ro,ra%a es una serie de instru$$iones es$ritas en for%a $odifi$ada <ue la $o%&utadora &uede
tradu$ir a su &ro&io len,ua8e
Cuando se $onstruye una a&li$a$i(n o se %odifi$a una <ue ya estaba en uso, se realiza un
an1lisis de siste%as Este an1lisis deter%ina los ti&os de &ro$esa%iento de datos <ue se
re<uieren, $(%o y d(nde deben re,istrarse los datos, los ti&os de infor%e a &rodu$irse y los
ti&os de e<ui&o <ue %e8or se ada&tan a esa a&li$a$i(n &arti$ular
Bna vez <ue se 6a de$idido lo <ue se 6ar1 $on los datos, se le en$o%ienda a un &ro,ra%ador
la elabora$i(n de un &ro,ra%a o $on8unto de instru$$iones &ara el siste%a de $o%&uta$i(n Al
es$ribir el &ro,ra%a <ue se va a usar, el &ro,ra%ador si,ue una serie de eta&as, <ue deben
$u%&lirse
Cuando a un &ro,ra%ador se le &ide <ue elabore un &ro,ra%a, se le suele indi$ar $(%o debe
ser la salida y <u3 datos de entrada est1n dis&onibles En la eta&a de an1lisis de siste%as se
de$iden estas $uestiones
Cuando el &ro,ra%ador analiza la entrada debe saber <u3 dis&ositivos se van a e%&lear, en
<u3 orden est1n $olo$ados los $a%&os de datos en los re,istros y $u1l es el ta%aFo de esos
$a%&os, ya <ue a %enudo los re,istros $ontienen %1s datos de los ne$esarios &ara $ual<uier
traba8o
En el $uer&o del &ro,ra%a se des$ribe <u3 o&era$iones se van a e8e$utar $on los datosI se
de$ide en <u3 orden se van a e8e$utar las o&era$iones y en <u3 &unto se van a to%ar de$isiones
?ra%ifi$a$ionesC
Por >lti%o, el &ro,ra%ador analiza los re<uisitos de la salidaG si se debe ,rabar en $inta o
i%&ri%ir un listadoI si la salida va a ser i%&resa, $u1les deben ser los ttulos y d(nde se deben
$olo$ar los $a%&os de salida
Antes de &asar a la si,uiente eta&a, es ne$esario 6a$er todas esas &re,untas y en$ontrar las
res&uestas Para ello, el &ro,ra%ador tiene <ue 6ablar $on las &ersonas <ue diseFaron el siste%a
y $on las &ersonas <ue utilizan los infor%es Con estas >lti%as 6ablar1 &rin$i&al%ente a$er$a de
la for%a $o%o desean tener los datos de salida, &ara <ue sean de %ayor utilidad Cuando el
&ro,ra%ador tiene toda la infor%a$i(n ne$esaria a$er$a del &ro,ra%a, elabora un algoritmo
Los al,orit%os son %uy >tiles &or<ue %uestran, en orden, las o&era$iones <ue se van a
e8e$utar $on los datos, las $o%&ara$iones, y las ra%ifi$a$iones $ondi$ionales e in$ondi$ionales
<ue for%ar1n &arte del &ro,ra%a
En la fi,ura se %uestra un al,orit%o sen$illo y ele%ental, re&resentado %ediante un
&seudo$(di,o
INICIO
LEA: CDGO
MENTRAS CODGO <> 0 HAGA
LEA: NOMBRES, RENTA, PATRMONO
TOTPAG = 10000 + PATRMONO * 0.1 + RENTA * 0.15
ESCRBA: CODGO, NOMBRES, TOTPAG
LEA: CODGO
FN_ MENTRAS
FIN_ INICIO
Al ter%inar la elabora$i(n del al,orit%o se &uede verifi$ar la e7a$titud ,eneral del &ro,ra%a
&ro&uesto El &ro,ra%ador &uede to%ar al,unos datos $o%o %uestra y su&oner <ue 3l es el
siste%a de $o%&uta$i(n Nl 6ar1 $on los datos, e7a$ta%ente, lo <ue el al,orit%o indi<ue
La salida final <ue obten,a debe ser e7a$ta%ente lo <ue es&era 2i no es as, su&oniendo <ue
$o%eti( errores &or des$uido, su al,orit%o tiene al,unas instru$$iones e<uivo$adas y debe ser
$orre,ido Obtener la salida $orre$ta no es ,aranta de <ue el &ro,ra%a final ser1 &erfe$to,
debido a <ue a>n <uedan %u$6as $osas &or 6a$er No obstante, esta si%&le verifi$a$i(n
%ostrar1 las i%&erfe$$iones l(,i$as <ue &ueda 6aber en sus &lantea%ientos A la verifi$a$i(n
del dia,ra%a detallado se le $ono$e $o%o &rueba de es$ritorio
Con base en el al,orit%o ter%inado, se es$ribe una serie de instru$$iones detalladas Las <ue
se deno%inan programa "uente y suelen estar es$ritas en len,ua8e si%b(li$o Bn len,ua8e
si%b(li$o es a<u3l <ue la %ente 6u%ana &uede entender $on relativa fa$ilidad, &ero <ue no
&uede entender una $o%&utadora La sele$$i(n del len,ua8e si%b(li$o &ara el &ro,ra%a fuente
de&ender1 de %u$6os fa$tores Dos de las $onsidera$iones &rin$i&ales son el ti&o de tarea <ue se
&ro,ra%( y la $o%&utadora <ue se utiliza
#ay %u$6os len,ua8es si%b(li$os, entre los $uales se en$uentran "A!IC4 RP4 PA!CAL4
?ORTRAN4 PL14 C4 CAA4 ;A-A, $ono$idos $o%o len,ua8es de alto nivel
Lue,o de es$rito, el &ro,ra%a fuente se al%a$ena enG dis$o duro, dis$o $o%&a$to, dis<uetes
o en $inta %a,n3ti$a El siste%a de $o%&uta$i(n no &uede entender dire$ta%ente el len,ua8e
si%b(li$o <ue us( el &ro,ra%ador Antes debe ser tradu$ido a len,ua8e de %1<uina El
$o%&ilador efe$t>a esta tradu$$i(n
El $o%&ilador es un &ro,ra%a es&e$ial <ue >ni$a y e7$lusiva%ente tradu$e el len,ua8e
si%b(li$o al len,ua8e de %1<uina Al &ro,ra%a tradu$ido se le deno%ina programa ob'eto y
&uede $olo$arse dire$ta%ente en la %e%oria o al%a$enarse en dis$os o $intas La for%a en <ue
se al%a$ena el &ro,ra%a de&ende del siste%a de $o%&uta$i(n <ue se e%&lee y del n>%ero de
ve$es <ue se va a $orrer
Cuando el &ro,ra%a fuente se desea tradu$ir a len,ua8e de %1<uina, o sea, $uando se
$o%&ila, su$ede otra $osa i%&ortante Dado <ue el &ro,ra%a fuente &uede $ontener %u$6os
errores, el $o%&ilador &rodu$e una lista i%&resa en donde a&are$e el &ro,ra%a fuente y otra
lista de todos los errores <ue $ontiene el &ro,ra%a El &ro,ra%ador utiliza esta lista de %ensa8es
de error $uando est1 bus$ando y eli%inando los errores de su &ro,ra%a Los errores <ue dete$ta
el $o%&ilador se deno%inan dia,n(sti$os del tie%&o de $o%&ila$i(n ?errores de sinta7isC
Indi$an en <u3 instru$$i(n 6ay un error y de <u3 ti&o es 3ste Todos los errores seFalados &or los
diagnsticos del tiempo de compilacin deben $orre,irse antes de <ue el siste%a &ueda &ro$esar
los datos
Bna vez <ue se 6an $orre,ido los errores del tie%&o de $o%&ila$i(n, deben usarse al,unos
datos &ara &robar el &ro,ra%a ob8eto Cuando el siste%a de $o%&uta$i(n e8e$uta el &ro,ra%a
ob8eto &uede en$ontrar al,unos errores en los datos de entrada Por e8e%&lo, es &osible <ue al
dis&ositivo de entrada se le ordene <ue lea $ierto $a%&o <ue se su&one $ontiene datos
nu%3ri$os, y en vez de esto se en$uentra $on datos alfab3ti$os Esto 6ar1 <ue la $o%&utadora
deten,a la e8e$u$i(n del &ro,ra%a ob8eto e i%&ri%a al,una adverten$ia de error A estos
%ensa8es se les deno%ina diagnsticos del tiempo de e'ecucin Las instru$$iones &ara
transferen$ia de $ontrol defe$tuosas ta%bi3n $ausar1n un error del tie%&o de e8e$u$i(n Es
&osible llevar el siste%a a un $i$lo $errado, es de$ir, el siste%a e8e$utar1 una se$uen$ia de
instru$$iones y lo re,resa a la &ri%era instru$$i(n de la se$uen$ia En teora si,nifi$a <ue la
$o%&utadora e8e$utar1 estas instru$$iones &ara sie%&reI sin e%bar,o, en la &r1$ti$a, se fi8a un
l%ite de tie%&o &ara la e8e$u$i(n del &ro,ra%a, y si 3ste no ter%ina antes de <ue trans$urra
este tie%&o, el siste%a se detiene auto%1ti$a%ente e i%&ri%e un %ensa8e indi$ando &or<u3
ter%in( la e8e$u$i(n
El &ro,ra%a fuente se al%a$ena en %e%oria au7iliar, des&u3s de <ue se 6aya de&urado
$o%&leta%ente y se 6aya verifi$ado <ue &ro$esa los datos tal y $o%o lo desea el &ro,ra%adorI
de esta %anera se en$uentra dis&onible &ara usarse en el %o%ento <ue se re<uiera Cuando se
va a $orrer el &ro,ra%a $on datos se e7trae del al%a$ena%iento, se $o%&ila y se $olo$a en la
%e%oria &rin$i&al en la unidad $entral de &ro$esa%iento $o%o un &ro,ra%a ob8eto en len,ua8e
de %1<uina
La do$u%enta$i(n es la eta&a final en la elabora$i(n de un &ro,ra%a y tiene lu,ar des&u3s
de <ue se 6a al%a$enado y $orre,ido Do$u%entar el &ro,ra%a se refiere a la re$o&ila$i(n, en
un solo lu,ar, de toda a<uella infor%a$i(n de i%&ortan$ia <ue se us( &ara elaborar el &ro,ra%a
En un solo lu,ar se re$o&ilan las des$ri&$iones de todas las tareas, los al,orit%os, la
$odifi$a$i(n, y as &or el estilo 2i en una fe$6a &osterior el &ro,ra%a revela al,>n error o tiene
<ue ser %odifi$ado, esta do$u%enta$i(n le fa$ilitar1 a $ual<uier otro &ro,ra%ador saber <u3 se
6a 6e$6o y &or<u3
Ta%bi3n se elabora un %anual de $orrida ?%anual del o&eradorC <ue $ontiene todas las
instru$$iones <ue ne$esita el o&erador de la $o%&utadora &ara $orrer el &ro,ra%a, <u3 ar$6ivos
de entrada se van a $ar,ar, <u3 ti&os de salida se deben &re&arar, et$3tera
1.(. Ter3inolo/a .:sica
O Soporte fsico (Hardware). 2e deno%ina as a los $o%&onentes %e$1ni$os, el3$tri$os y
ele$tr(ni$os o duros de una or,aniza$i(n $o%&utarizada Los $o%&onentes de los $ir$uitos
&ueden ser a$tivos, &asivos o a%bas $osas
O Soporte lgico (Software). El t3r%ino soft=are fue $on$ebido &ara $ontrastar $on el
6ard=are de un siste%a de $o%&utadora Los ele%entos $onstituyentes del soft=are son los
&ro,ra%as, len,ua8es y &ro$edi%ientos, los &ro,ra%as o rutinas internas &re&aradas en for%a
&rofesional &ara si%&lifi$ar la &ro,ra%a$i(n y las o&era$iones de las $o%&utadora, lo %is%o
<ue las diversas ayudas <ue se suelen su%inistrar &or los fabri$antes &ara fa$ilitar la
e7&lota$i(n efi$iente de los e<ui&os
O Programa fuente. Es un &ro,ra%a <ue &uede tradu$irse en for%a auto%1ti$a en len,ua8e de
%1<uina Est1 es$rito en un len,ua8e $on$ebido &ara fa$ilitar la e7&resi(n de una $lase de
&roble%as o de &ro$edi%ientos &or &arte de seres 6u%anosI utiliza un $o%&ilador,
ensa%blador o tradu$tor &ara realizar la %e$1ni$a de la tradu$$i(n del &ro,ra%a fuente en un
&ro,ra%a ob8eto en len,ua8e de %1<uina
O Programa objeto. Es un &ro,ra%a fuente <ue 6a sido tradu$ido a len,ua8e de %1<uina El
&ro,ra%a fuente se $onvierte, enton$es, en un $on8unto de instru$$iones de len,ua8e de
%1<uina &ara la solu$i(n de un &roble%a, obtenido $o%o el resultado final de un &ro$eso de
$o%&ila$i(n
O Ensamblador. El ensa%blador tradu$e las instru$$iones si%b(li$as de un len,ua8e de
&ro,ra%a$i(n a las instru$$iones ne$esarias de %1<uina &ara <ue sean e8e$utadas En los
len,ua8es ensa%bladores se define un $(di,o es&e$ial ?lla%ado ne%(ni$oC &ara $ada una de
las o&era$iones de la %1<uina y se introdu$e una nota$i(n es&e$ial &ara es&e$ifi$ar el dato
$on el $ual debe realizarse la o&era$i(n El ensa%blador ori,ina una instru$$i(n en len,ua8e
de %1<uina &or $ada instru$$i(n del len,ua8e a tradu$ir En ,eneral es utilizado $on los
len,ua8es de ba8o nivel
O Compilador. 2on tradu$tores %1s $o%&le8os Tradu$e los &ro,ra%as <ue realiza el usuario al
len,ua8e de %1<uina ne$esario &ara <ue sean e8e$utados Ade%1s de 6a$er di$6a tradu$$i(n,
el $o%&ilador $6e<uea <ue el &ro,ra%a fuente est3 $orre$to en $uanto a sinta7is e
instru$$iones &ro&ias de $ada len,ua8e Los $o%&iladores &ara la %ayor &arte de los
len,ua8es de &ro,ra%a$i(n los &ro&or$iona el fabri$ante
El $o%&ilador ,enera una o %1s instru$$iones en el len,ua8e de %1<uina &or $ada
instru$$i(n del len,ua8e de &ro,ra%a$i(n 2e utiliza en los len,ua8es de alto nivel La
tradu$$i(n, en ,eneral, se realiza en dos &asosG &ri%ero las instru$$iones en len,ua8e de alto
nivel se tradu$en a una se$uen$ia de instru$$iones en el len,ua8e de ba8o nivel y a
$ontinua$i(n se efe$t>a la tradu$$i(n al len,ua8e de %1<uina El $o%&ilador asi,na las
&osi$iones de %e%oria &or $ada variable <ue en$uentra $onfor%e lee y tradu$e las
instru$$iones
O Interpretador. Es un &ro,ra%a de $o%&utador <ue tradu$e $ada instru$$i(n o senten$ia del
len,ua8e ori,inal a una se$uen$ia de instru$$iones de %1<uina, antes de tradu$ir la si,uiente
senten$ia en len,ua8e ori,inal
O enguaje de computadora. Con8unto definido de $ara$teres <ue sirven &ara for%ar
s%bolos, &alabras, instru$$iones, et$3tera, as $o%o las re,las &ara $o%binar estos
$ara$teres, dando $o%o resultado $o%uni$a$iones si,nifi$ativas, &or e8e%&lo ?ORTRAN4
PA!CAL4 PROLO4 C4 CAA4 ;A-A
O enguaje de m!"uina. Es el $on8unto final <ue todas las $o%&utadoras deben utilizar
?len,ua8e binarioC Todos los de%1s len,ua8es de &ro,ra%a$i(n deben $o%&ilarse o
tradu$irse, a la lar,a, a un $(di,o binario antes de introdu$irse en el &ro$esador El len,ua8e
binario es el len,ua8e de %1<uina
O enguaje de bajo ni#el. Los len,ua8es de ba8o nivel son el &ri%er &aso de la sofisti$a$i(n de
los len,ua8es de $o%&utadora Per%iten una $o%uni$a$i(n %1s f1$il $on la $o%&utadora
Las instru$$iones es$ritas en len,ua8e de ba8o nivel deben ser tradu$idas &or %edio de una
tradu$tora a len,ua8e de %1<uina La tradu$$i(n <ue se 6a$e es uno a uno, es de$ir, una
instru$$i(n en len,ua8e de ba8o nivel se transfor%a en una instru$$i(n de len,ua8e de
%1<uina
O enguaje de alto ni#el. Es el len,ua8e si%b(li$o %1s f1$il de entender y de &ro,ra%arG en 3l
se &re&ara un &ro,ra%a &ara ser &ro$esado &or $o%&utadora
Este len,ua8e es tradu$ido a len,ua8e ob8eto %ediante un ensa%blador o $o%&ilador
A diferen$ia de los anteriores 3ste es %1s fle7ible, f1$il de a&render y %1s a&ro&iado &ara
$orre,ir los errores de &ro,ra%a$i(n
Bna instru$$i(n de len,ua8e de alto nivel es tradu$ida a len,ua8e de %1<uina en una o varias
instru$$iones En la %edida en <ue se si%&lifi$a el traba8o del &ro,ra%ador, $re$e el traba8o
del tradu$tor
O $ireccin de memoria. Cada $o%&utador tiene una $antidad deter%inada de
almacenamiento interno deno%inada %e%oria &rin$i&al, ade%1s del al%a$ena%iento
e7terno $onsistente en $intas, dis<uetes y dis$os %a,n3ti$os Las dos for%as de
al%a$ena%iento difieren en sus $ara$tersti$as y &ro&(sitos Los &ro,ra%as <ue est1n en
e8e$u$i(n, as $o%o los datos ne$esarios &ara ello, deben residir en la %e%oria &rin$i&al
Esta es %1s $ostosa y, en la %ayor &arte de los siste%as, es un re$urso un tanto es$aso La
infor%a$i(n <ue no se re<uiere de in%ediato se rele,a nor%al%ente a los dis&ositivos de
al%a$ena%iento e7terno, donde la $a&a$idad de al%a$ena%iento &uede ser $asi ili%itada,
&ero donde el tie%&o de re$u&era$i(n de la %is%a suele ser $onsiderable%ente %1s ,rande
Al %is%o tie%&o el $osto de al%a$ena%iento e7terno es $o%&arativa%ente %1s ba8o, &or lo
<ue la infor%a$i(n &uede ser al%a$enada all &or lar,os &erodos
La %e%oria &rin$i&al de la $o%&utadora se divide en unidades &e<ueFas e i,uales
deno%inadas palabras <ue tienen una >ni$a dire$$i(n Cada &alabra es $a&az de al%a$enar
una unidad de infor%a$i(nI &or e8e%&lo, los resultados nu%3ri$os de la $o%&utadora El
ta%aFo de la &alabra es un &ar1%etro de diseFo de la $o%&utadora y deter%ina, di,a%os, el
n>%ero %1s ,rande y %1s &e<ueFo <ue &uede ser al%a$enado
Las dire$$iones de %e%oria identifi$an $ada &alabra individual%ente, de tal %anera <ue la
infor%a$i(n $ontenida en ella &ueda leerse, o al%a$enar nueva infor%a$i(n
O %it& %'te& Palabra
"it. Es la abreviatura de binar! digit Es una unidad de infor%a$i(n <ue e<uivale a una
de$isi(n binaria, o la desi,na$i(n de uno de dos valores o estados &osibles i,ual%ente
&robables 2e suele e7&resar $o%o QlR o Q/R 5e&resenta una unidad %in>s$ula de %e%oria
<ue &uede tener dos estados encendido, o apagado, donde el estado encendido se re&resenta
%ediante uno y el apagado %ediante $ero
"9te. Es un $on8unto de "IT! $onse$utivos <ue se tratan $o%o una sola entidad, &or lo
,eneral son ) "IT!. Ta%bi3n se le $ono$e $o%o el n>%ero de "IT! ne$esarios &ara
re&resentar un $ar1$ter en la %e%oria de la $o%&utadora
Pala.ra. 2on unidades de al%a$ena%iento a las <ue se les asi,na una dire$$i(n de %e%oria
2on tratadas &or los $ir$uitos de la $o%&utadora $o%o una entidad, &or la unidad de $ontrol
$o%o una instru$$i(n y &or la unidad arit%3ti$a $o%o una $antidad Este ,ru&o de "IT! es
el %1s ,rande tratado a trav3s del &ro$esador $entral $o%o una sola unidad El ta%aFo de la
&alabra de&ende de la ar<uite$tura de la $o%&utadoraI se &ueden tener &alabras de uno, dos,
$uatro, oc5o o 3:s "+TE!.
O Campo. Es un ,ru&o de $ara$teres <ue se &ueden tratar $o%o una unidad de infor%a$i(n
si%&le Las instru$$iones de los len,ua8es est1n $onstituidas &or varios $a%&os
De&endiendo de la $o%&utadora, del len,ua8e de &ro,ra%a$i(n utilizado y de la for%a $o%o
el $a%&o sea definido, a un $a%&o se le asi,nar1 una o %1s &alabras
O (egistro. Es un $on8unto de $a%&os <ue se refieren a una %is%a a$tividad <ue se desea
&ro$esarI &or e8e%&lo, toda la infor%a$i(n sobre un art$ulo de inventario, la infor%a$i(n
<ue $ontiene una lista de $lase sobre un estudiante ?$(di,o, no%bres, &ro,ra%a, et$C
O )rc*i#o. Es un dis&ositivo de soft=are utilizado &ara al%a$enar infor%a$i(n en for%a
%asiva, rela$ionada $on una deter%inada entidad, &ersona o $osas E8e%&loG su&on,a <ue la
$o%&aFa A tiene "// $lientes y <ue se %antiene la si,uiente infor%a$i(n a$er$a de $ada uno
de ellosG no%bre, dire$$i(n, balan$e de $r3dito, des$uento &er%itido La infor%a$i(n
individual de $ada $liente se deno%ina registro y un $on8unto de re,istros for%ar1 un
ar$6ivo, es de$ir, un ar$6ivo de datos de los re,istros de los $lientes Los ar$6ivos &ueden
tenerse en varias for%as y en diferentes %edios de al%a$ena%iento
O %ase de datos. Es un $on8unto de ar$6ivos rela$ionados de una %anera es&e$ial, <ue
$ontinua%ente se est1 a$tualizando
1.). !iste3as nu3<ricos
Bn siste%a nu%3ri$o en base r es un siste%a <ue utiliza distintos s%bolos &ara re&resentar r
d,itos Los n>%eros se re&resentan &or 6ileras de s%bolos de d,itos Para deter%inar la
$antidad <ue el n>%ero re&resenta es ne$esario %ulti&li$ar $ada d,ito &or una &oten$ia entera
de r y lue,o e8e$utar la su%a de todos los d,itos &esados ?D,ito &esado es a<u3l <ue tiene dos
valoresG uno intrnse$o y otro &osi$ionalC Por e8e%&lo, el siste%a nu%3ri$o de$i%al, <ue es el
<ue utiliza%os a diario, est1 en base "/ ?rS"/C, lo $ual si,nifi$a <ue utiliza diez d,itos &ara
re&resentar todas las $antidades &osibles Los diez s%bolos utilizados &or di$6o siste%a sonG ",
', *, ), +, 0, -, ., 4 y / La 6ilera de d,itos -')+ se utiliza &ara re&resentar la $antidadG
-7"/
'
H '7"/
"
H)7"/
/
H +7"/
J"
Esto es, sete$ientos %1s ' de$enas %1s ) unidades H + d3$i%os El siste%a nu%3ri$o binario
utiliza la base dos Los dos d,itos <ue utiliza son el / y el " La 6ilera de d,itos "/""/" se
utiliza &ara re&resentar la $antidadG
"7'
+
H/7'
)
H "7'
*
H "7'
'
H /7'
"
H "7'
/
S )+
Para distin,uir los n>%eros de diferentes bases, los d,itos ser1n en$errados entre &ar3ntesis
y la base del n>%ero ser1 es$rita $o%o un subndi$e Por e8e%&lo, &ara %ostrar la i,ualdad entre
el )+ en base "/ y en base ', es$ribire%osG
?"/""/"C
'
S ?)+C
"/
Ade%1s de los siste%as nu%3ri$os de$i%al y binario, los siste%as o$tal ?base .C y
6e7ade$i%al ?base "0C son i%&ortantes en el traba8o de $o%&utadoras di,itales Los o$6o
s%bolos o d,itos del siste%a o$tal sonG /, ", ', *, ), +, 0, -, Los die$is3is s%bolos o d,itos
del siste%a 6e7ade$i%al sonG /, ", ', *, ), +, 0, -, ., 4, A, B, C, D, E, : Los >lti%os seis
s%bolos son desafortunada%ente id3nti$os a las letras del alfabeto y &ueden $ausar al,una
$onfusi(n, a ve$es 2in e%bar,o, esto se utiliza &or $onven$i(n, y los s%bolos A, B, C, D, E, :
$uando se utilizan &ara re&resentar d,itos 6e7ade$i%ales $orres&onden a los n>%eros
de$i%ales "/, "", "',"*,"),"+, res&e$tiva%ente
Bn n>%ero en base r se &uede $onvertir al fa%iliar siste%a de$i%al e8e$utando la su%a de
sus d,itos &esados Por e8e%&lo, el n>%ero ?-*,)C
.
&ara $onvertirlo a base "/ se 6a$e $o%o
si,ueG
?-*0)C
.
S -7.
'
H *7.
"
H 07.
/
H )7.
J"
T se e8e$utan las o&era$iones en siste%a de$i%al, esto esG
-70) H *7. H 07" H )K. S ?)-.,+C
"/
El e<uivalente n>%ero de$i%al del 6e7ade$i%al :* se obtiene efe$tuando los si,uientes
$1l$ulosG
?:*C
"0
S :7"0
"
H *7"0
/
S "+7"0 H * S ?')*C
"/
La $onversi(n desde de$i%al a su e<uivalente re&resenta$i(n en base r se e8e$uta se&arando
el n>%ero en su &arte entera y su &arte de$i%al y $onvirtiendo $ada &arte &or se&arado La
$onversi(n de un entero de$i%al a su e<uivalente en base r se e8e$uta %ediante divisiones
su$esivas &or la base r y se a$u%ulan los residuos en orden inverso a $o%o fueron a&are$iendo
La $onversi(n de la &arte de$i%al a su e<uivalente en base r se obtiene %ediante
%ulti&li$a$iones su$esivas &or la base r y se a$u%ulan los d,itos enteros obtenidos en el orden
de a&ari$i(n
El siguiente e'emplo ilustra estos procedimientos:
La $onversi(n del n>%ero de$i%al )",0.-+ a binario se e8e$uta se&arando &ri%ero la &arte
entera )" y la &arte de$i%al /,0.-+ y dividi3ndolos su$esiva%ente &or la base ?'C
ENTE5O )" :5ACCION /0.-+
)" U
'/ U " /0.-+ V ' S "*-+/
"/ U / /*-+/ V ' S /-+//
+ U / /-+// V ' S "+///
' U " /+/// V ' S "////
" U / ?fra$$i(n $eroC
/ U " ?$o$iente $eroC ?/0.-+C
"/
S ?/"/""C
'
?)"C
"/
S ?"/"//"C
'
Por $onsi,uiente ?)"0.-+C
"/
S ?"/"//""/""C
'
La &arte entera se $onvierte dividiendo )" &or la base a la $ual se va a trasladar Br C 2D y se
obtiene un $o$iente de '/ y un residuo de " El $o$iente se divide de nuevo &or la nueva base Br
C 2D y se obtiene un nuevo $o$iente y un nuevo residuo Este &ro$eso se re&ite 6asta <ue el
$o$iente sea $ero El n>%ero e<uivalente en binario ser1 enton$es el residuo obtenido en el
orden inverso de a&ari$i(n
La &arte fra$$ionaria se $onvierte %ulti&li$1ndola &or la nueva base BrC2D y se obtiene una
&arte entera y una fra$$i(n La nueva fra$$i(n ?sin la &arte enteraC se %ulti&li$a de nuevo &or la
nueva base BrC2D &ara obtener una nueva &arte entera y una nueva fra$$i(n Este &ro$eso se
re&ite 6asta <ue la &arte fra$$ionaria lle,ue a ser $ero o 6asta <ue el n>%ero de d,itos obtenidos
d3 la &re$isi(n deseada La fra$$i(n binaria se obtiene de los d,itos enteros obtenidos al
realizar $ada %ulti&li$a$i(n, $olo$1ndolos en el orden de a&ari$i(n :inal%ente, se unen la &arte
entera y fra$$ionaria y se obtiene el resultado re<uerido
Representacin .inaria4 octal 9 5eEa2eci3al
La $onversi(n desde y 6a$ia, de re&resenta$i(n nu%3ri$a binaria, o$tal y 6e7ade$i%al, 8ue,a
un &a&el %uy i%&ortante en $o%&utadores di,itales Debido a <ue dos al $ubo es i,ual a o$6o y
dos a la $uarta es i,ual a die$is3is, $ada d,ito o$tal $orres&onde a tres d,itos binarios y $ada
d,ito 6e7ade$i%al $orres&onde a $uatro d,itos binarios La $onversi(n de binaria a o$tal se
e8e$uta f1$il%ente dividiendo el n>%ero binario en ,ru&os de tres d,itos de dere$6a a
iz<uierda A $ada ,ru&o de tres d,itos se le asi,na el $orres&ondiente d,ito o$tal, y la 6ilera de
d,itos as obtenida da la re&resenta$i(n o$tal del n>%ero binario Considere%os un re,istro de
"0 bits :si$a%ente uno &uede &ensar <ue el re,istro est1 $o%&uesto &or "0 $eldas de
al%a$ena%iento binario, $ada una de las $uales es $a&az de al%a$enar un valor, $ero o uno
2u&on,a%os <ue la $onfi,ura$i(n de bits al%a$enada en un re,istro es $o%o la %ostrada en la
fi,uraG
' - + ) * O$tal
/ / " / " " " " / " " / / / " " Binario
' : 0 * #e7ade$i%al
Debido a <ue un n>%ero binario $onsiste en una 6ilera de unos y $eros, el re,istro de "0 bits
se &uede utilizar &ara al%a$enar un n>%ero binario desde uno 6asta ' a la "0 %enos " Para el
&arti$ular e8e%&lo %ostrado en la fi,ura, el n>%ero al%a$enado en binario es e<uivalente al
de$i%al 121#1.
Co%enzando desde la dere$6a, &arti%os el re,istro en ,ru&os de tres bits A $ada ,ru&o de
tres bits se le asi,na su e<uivalente o$tal y se $olo$a en la &arte su&erior del re,istro La 6ilera
de d,itos o$tales, as obtenida, re&resenta el e<uivalente o$tal del n>%ero binario La
$onversi(n de binario a 6e7ade$i%al es si%ilar, e7$e&to <ue los d,itos se a,ru&an en $on8untos
de $uatro d,itos El $orres&ondiente d,ito 6e7ade$i%al &ara $ada ,ru&o de $uatro d,itos se
anota en la &arte inferior del re,istro La 6ilera de d,itos, as obtenida, re&resenta el n>%ero
6e7ade$i%al e<uivalente al n>%ero binario
El $orres&ondiente d,ito o$tal &ara $ada ,ru&o de tres bits se en$uentra en la si,uiente tablaG
N>%ero O$tal $odifi$ado De$i%al
o$tal en binario e<uivalente
/ /// /
" //" "
' /"/ '
* /"" *
) "// )
+ "/" +
0 ""/ 0
- """ -
La $orres&onden$ia entre d,itos 6e7ade$i%ales y su e<uivalente en ,ru&os de $uatro bits se
en$uentran en la si,uiente tablaG
N>%ero #e7ade$i%al De$i%al
6e7ade$i%al $odifi$ado e<uivalente
en binario
/ //// /
" ///" "
' //"/ '
* //"" *
) /"// )
+ /"/" +
0 /""/ 0
- /""" -
. "/// .
4 "//" 4
A "/"/ "/
B "/"" ""
C ""// "'
D ""/" "*
E """/ ")
: """" "+
1.*. Representacin 2e 2atos
La infor%a$i(n binaria en $o%&utadoras di,itales est1 al%a$enada en %e%oria, en re,istros
&ro$esadores Los re,istros &ueden $ontener datos o infor%a$i(n de $ontrol La infor%a$i(n es
un bit o ,ru&o de bits, utilizado &ara es&e$ifi$ar la se$uen$ia de $o%andos de seFales ne$esarias
&ara %ani&ular los datos de otros re,istros Los datos son n>%eros u otra infor%a$i(n
$odifi$ada en binario o&erados &ara lo,rar los resultados $o%&uta$ionales re<ueridos A<u se
&resentar1n los %1s $o%unes ti&os de datos en$ontrados en $o%&utadores di,itales y se
%ostrar1 $(%o los diferentes ti&os de datos son re&resentados en for%a $odifi$ada en binario en
los re,istros de $o%&utadores
Los ti&os de datos en$ontrados en los re,istros de $o%&utadoras di,itales se &ueden
$lasifi$ar en al,una de las si,uientes $ate,orasG aC n>%eros, utilizados en $1l$ulos arit%3ti$osI
bC letras del alfabeto, utilizadas en &ro$esa%iento de datos, y $C otros s%bolos, utilizados &ara
&ro&(sitos es&e$fi$os Todos los ti&os de datos, e7$e&to n>%eros binarios, se re&resentan en
re,istros de $o%&utadores en for%a $odifi$ada en binario Esto se debe a <ue los re,istros son
$onstruidos $on ele%entos biestables, los $uales son dis&ositivos <ue s(lo &ueden al%a$enar
unos o $eros El siste%a nu%3ri$o binario es el siste%a natural en $o%&utadoras di,itales Pero,
al,unas ve$es es $onveniente e%&lear diferentes siste%as nu%3ri$os, es&e$ial%ente el siste%a
nu%3ri$o de$i%al, el $ual es el e8e$utado &or los 6u%anos &ara efe$tuar $1l$ulos arit%3ti$os
El $aso es <ue una 6ilera de unos y $eros al%a$enados en un re,istro &uede re&resentar un
n>%ero binario, un n>%ero o$tal $odifi$ado en binario o un n>%ero 6e7ade$i%al $odifi$ado en
binario Los re,istros en $o%&utadoras di,itales $ontienen %u$6os bits 2i es&e$ifi$a%os su
$ontenido &or su re&resenta$i(n en binario, re<uerire%os una 6ilera %uy lar,a de d,itos
binarios Es %1s $onveniente es&e$ifi$ar el $ontenido de los re,istros &or su e<uivalente o$tal o
6e7ade$i%al El n>%ero de d,itos se redu$e en una ter$era &arte en re&resenta$i(n o$tal, y en
una $uarta &arte en re&resenta$i(n 6e7ade$i%al Por e8e%&lo, el n>%ero binario """"""""""""
tiene do$e d,itos 2i lo e7&resa%os en for%a o$tal utiliza $uatro d,itos ?----C, en 6e7ade$i%al
utiliza tres d,itos ?:::C Los $o%&utadores utilizan la re&resenta$i(n o$tal o 6e7ade$i%al &ara
es&e$ifi$ar el $ontenido de los re,istros
Representacin al0anu3<rica
@u$6as a&li$a$iones de $o%&utadores di,itales re<uieren el %ane8o de datos <ue no son
>ni$a%ente n>%eros, sino ta%bi3n letras del alfabeto y $iertos $ara$teres es&e$iales Bn
$on8unto de $ara$teres alfanu%3ri$os es un $on8unto de ele%entos <ue in$luye los diez d,itos
de$i%ales, las '0 letras del alfabeto y $ara$teres es&e$iales tales $o%o W, H, S, V, et$ Tal
$on8unto $ontiene entre *' y 0) ?si se in$luyen >ni$a%ente letras %ay>s$ulasC, entre 0) y "'.
?si se in$luyen letras %ay>s$ulas y %in>s$ulasC, o entre "'. y '+0 ?si se in$luyen $ara$teres
es&e$ialesC En el &ri%er $aso se re<uerir1n $(di,os binarios de seis bits, en el se,undo $aso,
$(di,os binarios de siete bits y en el ter$er $aso $(di,os binarios de . bits
Es bueno a$larar <ue el $o%&utador sie%&re utilizar1 un byte ?un $on8unto de . bitsC &ara
al%a$enar datos alfanu%3ri$os En al,unos siste%as de $odifi$a$i(n utiliza los . bits &ara
re&resentar los $ara$teresI en otros, $o%o el A2CII, utiliza - bits &ara re&resentar los $ara$teres
y el o$tavo $o%o bit de &aridad &ara $ontrolar la trans%isi(n de datos alfanu%3ri$os
El $(di,o binario est1ndar alfanu%3ri$o es el A2CII (American (ational Standard Code )or
*n"ormation *nterchange, el $ual utiliza o$6o bits &ara $odifi$ar '+0 $ara$teres Los $(di,os
binarios &ara letras %ay>s$ulas, d,itos de$i%ales y unos $uantos $ara$teres es&e$iales se
%uestran en la si,uiente tablaG
Car1$ter C(di,o Car1$ter C(di,o
binario binario
A "/////" / /""////
B "////"/ " /""///"
C "////"" ' /""//"/
D "///"// * /""//""
E "///"/" ) /""/"//
: "///""/ + /""/"/"
9 "///""" 0 /""/""/
# "//"/// - /""/"""
I "//"//" . /"""///
J "//"/"/ 4 /"""//"
X "//"/""
L "//""// Blan$o /"/////
@ "//""/" /"/"""/
N "//"""/ ? /"/"///
O "//"""" H /"/"/""
P "/"//// W /"//"//
A "/"///" V /"/"/"/
5 "/"//"/ C /"/"//"
2 "/"//"" J /"/""/"
T "/"/"// K /"/""""
B "/"/"/" , /"/""//
; "/"/""/ S /""""/"
L "/"/"""
! "/""///
T "/""//"
Y "/""/"/
Los $(di,os binarios 8ue,an un &a&el %uy i%&ortante en las o&era$iones en $o%&utadoras
di,itales Los $(di,os deben estar en binario debido a <ue los re,istros s(lo &ueden ,uardar
infor%a$i(n binaria Las o&era$iones es&e$ifi$adas &ara $o%&utadoras di,itales deben tener en
$uenta el si,nifi$ado de los bits al%a$enados en los re,istros, de tal %anera <ue las o&era$iones
se e8e$uten sobre o&erandos del %is%o ti&o Los $(di,os binarios se &ueden asi,nar &ara
$ual<uier $on8unto de ele%entosG $olores, notas %usi$ales, &iezas de a8edrez, et$ Los $(di,os
binarios se utilizan ta%bi3n &ara for%ular instru$$iones <ue es&e$ifi<uen infor%a$i(n de
$ontrol a la $o%&utadora A<u nos o$u&are%os >ni$a%ente de la re&resenta$i(n de datos
Representacin nu3<rica
Los n>%eros utilizados en $1l$ulos se desi,nan &or un si,no, la %a,nitud del n>%ero y
al,unas ve$es un &unto de$i%al El si,no se utiliza &ara deter%inar si el n>%ero es &ositivo o
ne,ativo La &osi$i(n del &unto de$i%al se utiliza &ara re&resentar fra$$iones o n>%eros $on
&arte entera y fra$$ionara
El si,no del n>%ero se &uede $onsiderar $o%o un $on8unto de dos ele%entos, el %1s y el
%enos Estos dos ele%entos se &ueden asi,nar $on un $(di,o binario de un bit Por $onven$i(n,
el $ero re&resentar1 el si,no %1s y el uno el si,no %enos El bit del si,no, &or lo ,eneral, se
$olo$a en la &osi$i(n %1s a la iz<uierda del re,istro
La re&resenta$i(n del &unto de$i%al o binario en un re,istro es $o%&li$ado, debido a <ue el
&unto debe estar entre dos ele%entos biestables del re,istro #ay dos for%as de es&e$ifi$ar la
&osi$i(n del &unto de$i%al en un re,istroG d1ndole una &osi$i(n fi8a o e%&leando la
re&resenta$i(n de &unto flotante El %3todo de &unto fi8o asu%e <ue el &unto de$i%al est1
sie%&re en una &osi$i(n fi8a Las dos &osi$iones %1s $o%>n%ente usadas sonG aC el &unto
de$i%al en el e7tre%o iz<uierdo del re,istro, &ara tener el n>%ero al%a$enado $o%o una
fra$$i(n, y bC el &unto de$i%al en el e7tre%o dere$6o de un re,istro, <ue 6a$e <ue el n>%ero
al%a$enado sea un entero En $ual<uiera de los dos $asos el &unto de$i%al no est1 real%ente
&resente, &ero su &resen$ia es asu%ida &ara <ue el n>%ero sea tratado $o%o fra$$i(n o $o%o
entero La re&resenta$i(n de punto flotante utiliza un se,undo re,istro, o &arte del re,istro, &ara
al%a$enar un n>%ero <ue desi,na la &osi$i(n real del &unto de$i%al
Antes de e7&li$ar $(%o los n>%eros de &unto fi8o se re&resentan en los re,istros es ne$esario
definir el $o%&le%ento de un n>%ero Los $o%&le%entos se utilizan en $o%&utadoras di,itales
&ara re&resentar n>%eros ne,ativos debido a <ue su re&resenta$i(n fa$ilita las o&era$iones
arit%3ti$as #ay dos ti&os de su&le%entos &ara $ada siste%a nu%3ri$o en base rG aC el
$o%&le%ento a r, y bC el $o%&le%ento a rF1 Cuando la base es dos ?siste%a binarioC los
$o%&le%entos re$iben los no%bres de $o%&le%ento a dos y $o%&le%ento a uno,
res&e$tiva%enteI si la base es diez ?siste%a de$i%alC los no%bres seran $o%&le%ento a diez y
$o%&le%ento a nueve, res&e$tiva%ente
El $o%&le%ento rF1 de un n>%ero en base de r se obtiene restando $ada d,ito del n>%ero rF
1 Para n>%eros de$i%ales rF1 es nueve, y &ara n>%eros binarios rF1 es " Por $onsi,uiente, el
$o%&le%ento a nueve del de$i%al .*+ es "0) y se obtuvo restando $ada d,ito de nueveI el
$o%&le%ento a uno del n>%ero binario "/"/ es /"/" y se obtuvo restando $ada d,ito de uno
2in e%bar,o, $onsiderando <ue "J/S" y "J"S/ el $o%&le%ento a uno de n>%eros binarios se
obtiene $a%biando los unos &or $eros y los $eros &or unos
El $o%&le%ento rF1 de n>%eros o$tales y 6e7ade$i%ales se obtiene restando $ada d,ito de
- o :, res&e$tiva%ente Cuando estos n>%eros est1n $odifi$ados en binario, el $o%&le%ento se
obtiene $a%biando unos &or $eros y $eros &or unos
El $o%&le%ento a r de un n>%ero en base r se obtiene su%ando " al $o%&le%ento a BrF1D
Por $onsi,uiente, el $o%&le%ento a "/ del n>%ero de$i%al .*+ es "0)H"S"0+, el $ual se
obtuvo su%ando uno al $o%&le%ento a 4 El $o%&le%ento a ' del n>%ero binario "/"/ es
/"/"H"S/""/, y se obtuvo su%ando uno al $o%&le%ento a uno
Representacin nu3<rica entera
Cuando un n>%ero binario de &unto fi8o es &ositivo, el si,no se re&resenta &or un $ero y la
%a,nitud &or un n>%ero &ositivo binario Cuando el n>%ero es ne,ativo el si,no se re&resenta
&or un uno, &ero el resto del n>%ero se &uede re&resentar de tres %aneras diferentes <ue sonG
re&resenta$i(n si,noZ%a,nitudI re&resenta$i(n $o%&le%ento a uno $on si,no y re&resenta$i(n
$o%&le%ento a dos $on si,no
La re&resenta$i(n si,noJ%a,nitud de un n>%ero ne,ativo es el bit del si,no se,uido &or la
%a,nitud del n>%ero En las otras dos re&resenta$iones, el n>%ero ne,ativo se re&resenta o en
$o%&le%ento a uno o en $o%&le%ento a dos Co%o e8e%&lo $onsidere%os el n>%ero 4
al%a$enado en un re,istro de - bits 2i el n>%ero 4 es &ositivo su re&resenta$i(n ser1 ///"//",
la $ual es >ni$a El bit <ue est1 a la iz<uierda es $ero indi$ando <ue el n>%ero es &ositivo, los
otros seis bits re&resentan el n>%ero 4 en binario 2(lo e7iste una %anera de re&resentar el H4I
sin e%bar,o, e7isten tres %aneras diferentes &ara re&resentar el J4, las $uales sonG
O 5e&resenta$i(n si,noJ%a,nitudG "//"//"
O 5e&resenta$i(n si,noJ$o%&le%ento a unoG """/""/
O 5e&resenta$i(n si,noJ$o%&le%ento a dosG """/"""
a representacin signo+magnitud se obtiene de la re&resenta$i(n de H4 ?///"//"C
$a%biando sola%ente el bit del si,no
a representacin signo+complemento a uno de ?J4C se obtiene $a%biando todos los bits de
la re&resenta$i(n de H4 ?"//"//"CI los unos &or $eros y los $eros &or unos, e7$luyendo el si,no
del bit
a representacin signo+complemento a dos se obtiene 6allando el $o%&le%ento a dos de la
re&resenta$i(n de H4 ?"//"//"C, e7$luyendo el bit del si,no
La raz(n &or la <ue se utilizan las re&resenta$iones si,noJ$o%&le%ento a uno y si,noJ
$o%&le%ento a dos, es <ue fa$ilitan la e8e$u$i(n de las o&era$iones ;ea%os el si,uiente
e8e%&loG H'* y J*+ se re&resentan $on un si,no se,uido &or la %a,nitud del n>%ero Para su%ar
estos dos n>%eros es ne$esario sustraer la %a,nitud %1s &e<ueFa de la %ayor y utilizar el si,no
de la $antidad %ayor $o%o si,no del resultado, esto esG
?H'*C H ?J*+C S J ?*+J'*C S J "'
El &ro$eso de su%ar dos n>%eros si,nados, $uando los n>%eros ne,ativos se re&resentan en
la for%a si,noJ%a,nitud, re<uiere <ue se $o%&aren sus si,nos 2i los dos si,nos son i,uales se
su%an las %a,nitudes y el resultado tiene el %is%o si,no 2i los si,nos son diferentes se
$o%&aran las %a,nitudes ?en valor absolutoC de a%bos n>%eros y del %ayor se resta el %enor,
y el si,no del resultado ser1 el del n>%ero %ayorI se ne$esita, &or $onsi,uiente, deter%inar el
si,no del resultado Todo lo anterior es un &ro$eso <ue $uando se i%&le%enta &or hard+are
re<uiere una lar,a se$uen$ia de de$isiones y de $ontroles, as $o%o $ir$uitos <ue $o%&aren,
su%en y resten n>%eros
Co%&are%os a6ora el &ro$edi%iento anterior $on el &ro$edi%iento <ue se si,ue $uando se
su%an dos n>%eros binarios si,nados o $uando los n>%eros ne,ativos se re&resentan en la
for%a si,noJ$o%&le%ento a dos Este &ro$edi%iento es %uy si%&le y se &uede estable$er $o%o
si,ueG se su%an a%bos n>%eros ?in$luido el si,no del bitC y se des$arta $ual<uier a$arreo al
su%ar los d,itos %1s a la iz<uierda de los n>%eros
A $ontinua$i(n se %uestran al,unos e8e%&los de $(%o se su%an dos n>%eros ne,ativos,
$uando se re&resentan en la for%a si,noJ$o%&le%ento a dos ?Btilizando estru$turas de - bitsC
H 0 ////""/ J 0 """"/"/
H H
H 4 ///"//" H 4 ///"//"
[[ [[[[ [[ [[[[
H "+ ///"""" H * /////""
H 0 ////""/ J 4 """/"""
H H
J 4 """/""" J 4 """/"""
[[J [[[[ [[ [[[[
J * """""/" J". ""/"""/
Note <ue los n>%eros ne,ativos deben estar ini$ial%ente en re&resenta$i(n si,noJ
$o%&le%ento a dos, y el resultado obtenido des&u3s de la su%a, si es ne,ativo, est1 ta%bi3n en
la re&resenta$i(n si,noJ$o%&le%ento a dos Los dos n>%eros en los $uatro e8e%&los se su%an,
in$luyendo el bit del si,no, y $ual<uier a$arreo en el bit del si,no se des$arta
Este &ro$edi%iento es %u$6o %1s si%&le <ue el utilizado &ara su%ar n>%eros en
re&resenta$i(n si,noJ%a,nitud 5e<uiere sola%ente una de$isi(n y un $ir$uito &ara su%ar dos
n>%eros El &ro$edi%iento re<uiere <ue los n>%eros ne,ativos sean al%a$enados en la for%a
si,noJ$o%&le%ento a dos
El &ro$edi%iento <ue se si,ue &ara obtener la su%a de dos n>%eros binarios, $uando los
n>%eros ne,ativos est1n en la re&resenta$i(n si,noJ $o%&le%ento a uno, es si%ilar y se &uede
enun$iar $o%o si,ueG su%e los dos n>%eros, in$luyendo el bit del si,no 2i resulta al,>n
a$arreo lue,o de su%ar los bits del si,no se le su%a uno ?"C al resultado y el a$arreo se des$arta
Los si,uientes e8e%&los ilustran este &ro$edi%ientoG
H0 ////""/ J0 """"//"
H
J4 """/""/ H4 ///"//"
[[ [[[[[[ [[ [[[[[[
J* """""// /////"/
H
"
[[[[[
/////""
Note <ue todos los n>%eros ne,ativos, in$luyendo los resultados, est1n en la re&resenta$i(n
si,noJ$o%&le%ento a uno
La venta8a de la re&resenta$i(n si,noJ$o%&le%ento a dos sobre las otras dos
re&resenta$iones ?si,noJ$o%&le%ento a dos y si,noJ%a,nitudC es <ue sola%ente tiene una
re&resenta$i(n &ara el $ero Las otras dos re&resenta$iones tienen $ero &ositivo y $ero ne,ativo
Por e8e%&lo, &ara su%ar ?H4C y ?J4C en re&resenta$i(n si,noJ$o%&le%ento a uno se tieneG
H4 ///"//"
H
J4 """/""/
[[ [[[[[[J
J/ """""""
T el resultado es un $ero ne,ativo, es de$ir, el $o%&le%ento del $ero &ositivo ?///////C
El n>%ero $ero $on el bit de si,no aso$iado a&are$er1 en un re,istro en al,unas de las
si,uientes for%as, de&endiendo de la re&resenta$i(n utilizada &ara n>%eros ne,ativosG
H/ J/
2,noJ%a,nitud /////// "//////
2i,noJ$o%&le%ento a uno /////// """""""
2i,noJ$o%&le%ento a dos /////// Nin,una
En las &ri%eras dos re&resenta$iones e7iste $ero &ositivo y $ero ne,ativo En la
re&resenta$i(n si,noJ$o%&le%ento a dos s(lo e7iste el $ero &ositivoI esto debido a <ue el
$o%&le%ento a dos de /////// ?$ero &ositivoC es ///////
(esta aritm,tica. La resta de dos n>%eros binarios si,nados, $uando los n>%eros ne,ativos
est1n re&resentados en la for%a si,noJ$o%&le%ento a dos, es %uy si%&le y se &uede enun$iar
asG
To%e el $o%&le%ento a dos del sustraendo ?in$luyendo el bit del si,noC y s>%ela al
%inuendo ?in$luyendo el bit del si,noC
Este &ro$edi%iento se basa en el 6e$6o de <ue la o&era$i(n de resta se &uede $onvertir en
una o&era$i(n de su%a, $a%biando el si,no sustraendo
Ca%biar un n>%ero &ositivo &or uno ne,ativo es %uy f1$ilG basta $on 6allar su $o%&le%ento
a dos ?in$luyendo el bit del si,noC La o&era$i(n $ontraria ta%bi3n es $ierta, debido a <ue el
$o%&le%ento a dos del $o%&le%ento a dos restaura el n>%ero en su valor ori,inal
Debido a la dis&onibilidad de &ro$edi%ientos si%&les &ara su%ar y restar n>%eros, $uando
los n>%eros ne,ativos se re&resentan en la for%a si,noJ$o%&le%ento a dos, la %ayora de los
$o%&utadores ado&tan esta re&resenta$i(n, en vez de la fa%iliar si,noJ%a,nitud Otra de las
razones &or la $ual se es$o,e la re&resenta$i(n si,noJ$o%&le%ento a dos es &or<ue evita la
&resen$ia del $ero ne,ativo
En los e8e%&los <ue se 6an visto anterior%ente se 6an utilizado estru$turas de - bits &ara
re&resentar los n>%eros enteros Cada $o%&utador utiliza estru$turas diferentes y de diferente
$antidad de bits &ara re&resentar los datos en %e%oria
Representacin nu3<rica 2e punto 0lotante
La re&resenta$i(n de un n>%ero $on de$i%ales ?realC ne$esita dos &artesG la &ri%era &arte
re&resenta un n>%ero de &unto fi8o, $on si,no lla%ado Mantisa. La se,unda &arte la $onfor%a
la re&resenta$i(n del e7&onente, <ue indi$a la &osi$i(n real del &unto Cuando se usa una
estru$tura ?&alabraC de *' bits, el e7&onente est1 re&resentado &or un valor deno%inado
caracterstica y la %antisa debe estar nor%alizada, lo $ual indi$a <ue la &osi$i(n %1s
si,nifi$ante de 3sta es un n>%ero diferente de $ero Esto nos &er%ite de$ir <ue en una estru$tura
$o%o 3sta los n>%eros reales se al%a$enan en la for%a 3antisa4 caracterstica4 donde el &unto
no est1 re&resentado sino asu%ido, y &uede asu%irse a la iz<uierda o a la dere$6a de la %antisaI
,eneral%ente se asu%e a la iz<uierda, lo <ue indi$a <ue la %antisa es to%ada $o%o una
fra$$i(n
El si,no del valor re&resentado est1 en el bit %1s a la iz<uierda de la &alabra, si el valor
al%a$enado en ese bit es uno, el valor re&resentado es ne,ativo y si es $ero es &ositivo
La distribu$i(n de los bits de la &alabra, &ara re&resentar el si,no, la %antisa y la
$ara$tersti$a se &uede 6a$er de dos for%as, de&endiendo de la %anera $o%o est3 re&resentado
el e7&onenteI re&resenta$i(n $on e7&onente en base 'I re&resenta$i(n $on e7&onente en base "0
a. Representacin con eEponente en .ase 2
En este $aso la distribu$i(n de los *' bits se 6a$e de la si,uiente %aneraG
G !i/noH bit "
G MantisaH del bit ' al ') y es re&resentada $o%o un n>%ero binario
G CaractersticaH del bit '+ al *' y es re&resentada $o%o un n>%ero de$i%al $odifi$ado en
binario
El valor al%a$enado en la estru$tura esG \ ? %antisa V '
e
C
Donde e es el e7&onente y se asu%e el &unto a la iz<uierda de la %antisa
Por e8e%&lo, si se tiene la si,uiente re&resenta$i(n, vea%os $ual es su valor al%a$enadoG
" ' *
" ' * ) + 0 - . 4 / " ' * ) + 0 - . 4 / " ' * ) + 0 - . 4 / " '
/ " " / " " / / / / / / / / / / / / / / / / / / " / / / / / " "
s %antisa Cara$tersti$a
Pri%ero se $onvierte la $ara$tersti$a a base "/, ?"/////""C
'
S ?"*"C
"/
2e,undo se deter%ina el valor del e7&onente, e S ?$ara$tersti$aC
"/
Z "'. ?el ses,o de "'.
indi$a <ue se &ueden re&resentar e7&onentes &ositivos y ne,ativosC e S "*" Z "'. S *
Ter$ero el valor al%a$enado esG ?""/"" 7 '
*
C
'
S ?""/""C
'
S ?0,-+C
"/
A6ora 6a,a%os el &aso $ontrario, al%a$enar en una estru$tura de *' bits <ue utiliza el
e7&onente en base ' el n>%ero Z*),'+
Pri%ero se &asa el n>%ero a binario El bit de si,no ser1 "
?*),'+C
"/
S ?"///"//"C
'
2e,undo se denota el valor del e7&onente ?eC Co%o la %antisa debe to%arse $o%o una
fra$$i(n, enton$es ?"///"//"C S ?"///"//" 7 '
0
C
'
, &or lo tanto e S 0 y la %antisa "///"//"
Ter$ero se deter%ina el valor de la $ara$tersti$a
Cara$tersti$a S e H "'. S 0 H "'. S "*)
Cuarto se $onvierte la $ara$tersti$a a binario
?"*)C
"/
S ?"////""/C
'
? C
? C
? C
'
'
'
*
* '
)
*
+
)
) ' .
)
'
)
*
+
+
+ +
+
? C K ? K C
Elabore un al,orit%o <ue en$uentre 2 &ara valores de P desde '/ a '// $on in$re%entos de
+, dondeG
2 S 2alario en &esos
P S Punta8e
"'/ Para un &erodo de "/ aFos se invierten '+/ %il &esos en los aFos ", *, +, - y 4
Deter%inar el valor del $a&ital al final de los aFos ", ', *, ), +, 0, -, ., 4 y "/, $on intereses
del '/P anual
"'" Bna esta$i(n $li%1ti$a &ro&or$iona un &ar de te%&eraturas diarias ?%17i%a, %ni%a J no
es &osible <ue al,una o a%bas te%&eraturas sea / ,radosC La &are8a fin de te%&eraturas es
/, / Elabore un al,orit%o &ara deter%inar el n>%ero de das, $uyas te%&eraturas se 6an
&ro&or$ionado, las %edidas %17i%a y %ni%a, el n>%ero de errores ?te%&eraturas de /
,radosC y el &or$enta8e <ue re&resentan
"'' #a,a un al,orit%o <ue $al$ule y tabule los valores de la fun$i(nG
f?7, yC S ?7
'
J y
'
CK?7
'
H y
'
C
"'* Elabore un al,orit%o <ue lea dos n>%eros @ y N ?@ a NC y $al$ule los %>lti&los de @
$o%&rendidos entre @ y N
"') Por $ada estudiante de una universidad se tienen los si,uientes datosG $(di,o del
estudiante, no%bre, valor $r3dito del estudiante, n>%ero de $r3ditos to%ados y, valor del
re$ar,o en la %atr$ula
#a$er un al,orit%o <ue entre la anterior infor%a$i(n y %uestre &or $ada estudianteG
$(di,o, no%bre, valor $r3dito, n>%ero de $r3ditos, valor del re$ar,o y total &a,ado, lo
%is%o <ue el %onto &a,ado &or todos los estudiantes
"'+ DiseFar un al,orit%o &ara $al$ular el n>%ero de &untos $on $oordenadas de valores
enteros <ue est1n $ontenidos en la si,uiente eli&seG
! T
' '
"0 '+
" + =
(otasG Los &untos sobre la eli&se se $onsideran dentro de ella
El intervalo de $oordenadas est1 li%itado &or los e8es %ayor y %enor de la eli&se, es de$irG
_) a ! a ) y _+ a T a +
"'0 Elabore un al,orit%o <ue $al$ule, usando un %en>, si $ada uno de un $on8unto de
n>%eros &ositivos esG &ar, &ri%o y &erfe$to ?un n>%ero es &erfe$to $uando la su%a de
todos sus divisores, e7$e&to &or 3l %is%o da el %is%o n>%eroC
Captulo (
2BBP5O95A@A2
A lo lar,o del te7to se 6an tratado los &roble%as $o%o un todo, $o%o si fuesen un solo
%(dulo Bna de las ,randes venta8as <ue tiene la &ro,ra%a$i(n estru$turada es la divisi(n de
&roble%as ,randes en sub&roble%as y, a su vez, 3stos ta%bi3n &ueden dividirse en &roble%as
%1s &e<ueFos Esta t3$ni$a le &er%ite dar %1s entendibilidad y fa$ilidad en la $onstru$$i(n y
$orre$$i(n de los errores <ue se &resentan en la solu$i(n de un &roble%a deter%inado Cada una
de las divisiones <ue se 6a$en &ara obtener la solu$i(n de un &roble%a se deno%ina %(dulo y
3stos son i%&le%entados &or %edio de los sub&ro,ra%as
$n subprograma es un al,orit%o diseFado &ara efe$tuar una tarea &arti$ular, ba8o la
de&enden$ia de un al,orit%o u otro sub&ro,ra%a <ue lo utiliza De esta %anera, el sub&ro,ra%a
es diseFado &ara ser utilizado &or otros &ro$esos %1s a%&lios, dentro de los $uales e7iste un
flu8o de re$ibo y entre,a de infor%a$i(n
La utiliza$i(n de sub&ro,ra%as en la solu$i(n de &roble%as ,randes tiene %u$6as venta8as
Por e8e%&lo, &ara tareas <ue deban efe$tuarse %1s de una vez, la %odularidad evita la ne$esidad
de &ro,ra%a$i(n redundante, esen$ial%ente el %is%o $on8unto de instru$$ionesI en vez de ello,
un %(dulo &uede $onstruirse e invo$arse $ada vez <ue se ne$esite 6a$er la %is%a labor, &or lo
tanto, el uso de %(dulos &er%ite o 6a$e <ue los &ro,ra%as sean %1s $ortos De i,ual %anera, la
fra,%enta$i(n en %(dulos individuales &ro&or$iona $laridad, fa$ilidad de distribu$i(n de
traba8o en e<ui&o y, &or ser al,orit%os $ortos, son %1s f1$iles de es$ribir, $orre,ir y su
estru$tura l(,i$a es %1s $lara <ue la de los &ro,ra%as <ue no est1n divididos en %(dulos
El sub&ro,ra%a, &or ser un al,orit%o, debe $u%&lir $on las %is%as $ara$tersti$as de 3ste y
6a$er tareas si%ilares $o%o a$e&tar datos, es$ribir datos y 6a$er $1l$ulosI sin e%bar,o, es
utilizado &ara un &ro&(sito es&e$fi$o El sub&ro,ra%a re$ibe datos del al,orit%o o
subal,orit%o <ue lo invo$a y 3ste le devuelve resultados 2u labor &uede $o%&ararse $on la de
un 8efe <ue le da instru$$iones a un e%&leado ?2ub&ro,ra%aC, &ara <ue reali$e una deter%inada
labor y as &oder $ontinuar $on su traba8oI se detiene %ientras su subalterno realiza la tarea y
$uando 3ste le devuelve los resultados reanuda su labor Asi%is%o, $uando un al,orit%o invo$a
un sub&ro,ra%a le $ede el $ontrol de e8e$u$i(n a 3ste, &or lo tanto, detiene la e8e$u$i(n de la
&r(7i%a instru$$i(n 6asta <ue el sub&ro,ra%a se e8e$ute, le entre,ue resultados y le devuelva el
$ontrol de e8e$u$i(n
La $o%uni$a$i(n <ue se estable$e entre el al,orit%o lla%ante y el sub&ro,ra%a se 6a$e a
trav3s de variables deno%inadas &ar1%etros, <ue 6a$en las ve$es de re$i&iente, unas de re$ibo y
otras de envo de infor%a$i(n
Bn sub&ro,ra%a &uede ser invo$ado tantas ve$es $o%o se ne$esite y, a su vez, los
sub&ro,ra%as &ueden invo$ar a otros sub&ro,ra%as, $o%o &uede verse en la fi,ura si,uiente
P a s a
i n f o r m a c i n
c e d e c o n t r o l
R e t o r n a
c o n t r o l e
i n f o r m a c i n
S u b p r o g r a m a
A
< n s t r u c c i o n e s >
S u b p r o g r a m a
B
S u b p r o g r a m a
A
C e d e c o n t r o l
R e t o r n a
c o n t r o l
S u b p r o g r a m a
C
P a s a
i n f o r m a c i n
c e d e c o n t r o l
P a s a
i n f o r m a c i n
c e d e c o n t r o l
R e t o r n a
c o n t r o l e
i n f o r m a c i n
R e t o r n a
c o n t r o l e
i n f o r m a c i n
< n s t r u c c i o n e s >
< n s t r u c c i o n e s >
< n s t r u c c i n i >
L l a m a d a a C
< n s t r u c c i o n e s 1 >
< L l a m a d a u n o a A >
< n s t r u c c i n 3 >
< L l a m a d a u n o a B >
< n s t r u c c i n i >
< n s t r u c c i n k >
< L l a m a d a d o s a A >
< n s t r u c c i n n >
En el ,r1fi$o las fle$6as indi$an el flu8o de e8e$u$i(n del al,orit%oI observe <ue $uando se
e8e$uta una instru$$i(n de lla%ada a un sub&ro,ra%a, el al,orit%o lla%ante se detiene, ya <ue
no sola%ente le transfiere infor%a$i(n al sub&ro,ra%a sino ta%bi3n el $ontrol de e8e$u$i(nI
esto 6a$e <ue se a$tive el sub&ro,ra%a, se les d3 valor a las variables <ue lo $onfor%an y se
e8e$uten una a una las instru$$iones Bna vez <ue finaliza su e8e$u$i(n, tiene la infor%a$i(n
re<uerida &or el al,orit%o lla%anteI &or lo tanto, se la entre,a y devuelve el $ontrol de
e8e$u$i(n a la instru$$i(n si,uiente o a la %is%a instru$$i(n desde donde fue lla%ado,
de&endiendo de la $lase de sub&ro,ra%a
En la fi,ura ta%bi3n se %uestra <ue un al,orit%o &uede invo$ar las ve$es <ue sea ne$esario
al %is%o sub&ro,ra%a y <ue un sub&ro,ra%a &uede, a su vez, invo$ar a otros subal,orit%os
Cuando un al,orit%o invo$a a un sub&ro,ra%a es $o%o si las instru$$iones de 3ste se
$o&iaran dentro del al,orit%o y las e8e$utaraI en el $aso del sub&ro,ra%a A, no tiene sentido
tener el %is%o ,ru&o de instru$$iones re&etidas dentro del al,orit%oI $o%o los sub&ro,ra%as
&ueden $o%&ilarse y &onerse a &unto inde&endiente%ente del &ro,ra%a <ue los invo<ue, 3stos
se diseFan &ara <ue sean usados en diferentes &ro,ra%as Por e8e%&lo, si en un siste%a de
$(%&uto $on fre$uen$ia se ne$esitan ordena%ientos de los ele%entos de un ve$tor, una buena
solu$i(n es diseFar un sub&ro,ra%a <ue 6a,a el ordena%iento y $ada vez <ue sea ne$esario
i%&le%entarlo, si%&le%ente se le en$o%ienda la tarea al sub&ro,ra%a ?No 6ay <ue 6a$erloC
(.1. Clasi0icacion 2e los su.pro/ra3as
La divisi(n de los sub&ro,ra%as se 6a$e $on base en el n>%ero o $antidad de valores <ue el
sub&ro,ra%a le enva al &ro,ra%a o sub&ro,ra%a lla%ante
(.1.1. Proce2i3iento o su.rutinas
2on sub&ro,ra%as <ue devuelven $ero o %1s valores al &ro,ra%a o sub&ro,ra%a <ue lo
invo$a ?utilizaC y retornan el $ontrol de e8e$u$i(n a la instru$$i(n si,uiente desde donde se
lla%an
a. Representacin
PROCEDMENTO Nombre (PARMETROS)
nstrucciones
FN_NOMBRE
El No%bre dado al sub&ro,ra%a debe $u%&lir $on las nor%as &ara $onfor%ar no%bres de
variables y debe ser >ni$o ?no &ueden e7istir dos o %1s sub&ro,ra%as $on el %is%o no%breC
Los Par1%etros son una lista de $a%&os variables se&arados &or $o%as y son utilizados &ara
estable$er la $o%uni$a$i(n entre el %(dulo <ue lo a$tiva y el sub&ro,ra%a Bnos &ar1%etros
ser1n de re$ibo ?al%a$enan la infor%a$i(n <ue les enva el %(dulo <ue los invo$aC y otros de
envo de infor%a$i(n ?la transfieren a <uien invo$a el sub&ro,ra%aC
EJercicio resuelto No. #*
#a$er un sub&ro,ra%a <ue ordene tres n>%eros distintos en for%a as$endente
An:lisis
La &arte de an1lisis en la $onstru$$i(n de un sub&ro,ra%a es se%e8ante a la <ue se 6a
desarrollado 6asta a6ora $on los al,orit%os <ue se 6an venido tratando en los $a&tulos
anteriores
Consiste enton$es en dete$tar $u1les son los &ar1%etros de re$ibo, $u1les los de envo y el
&ro$eso <ue es ne$esario 6a$er &ara lle,ar a los &ar1%etros de envo, &artiendo de los de
re$ibo
Par:3etros 2e reci.o
2on las variables <ue van a re$ibir infor%a$i(n del %(dulo <ue los invo$a, si%ilares a los
datos de entrada <ue se 6an dete$tado en los al,orit%os anteriores, $on la diferen$ia de
<ue a los datos de entrada se les transfiere infor%a$i(n a trav3s de una instru$$i(n de
le$tura y a los &ar1%etros de re$ibo se les da infor%a$i(n a trav3s del %(dulo <ue invo$a
el sub&ro,ra%aI o sea, <ue es un asi,na%iento de infor%a$i(n auto%1ti$a desde las
variables <ue envan infor%a$i(n, desde el %(dulo lla%ante, 6a$ia los &ar1%etros de
re$ibo del sub&ro,ra%a Estos &ar1%etros sonG
O ;alor del &ri%er n>%ero
O ;alor del se,undo n>%ero
O ;alor del ter$er n>%ero
Par:3etros 2e en7o
2on los &ar1%etros <ue envan infor%a$i(n al %(dulo <ue invo$a al sub&ro,ra%a,
se%e8ante a los datos de salida de los al,orit%os, $on la diferen$ia de <ue los &ar1%etros
de envo le entre,an la infor%a$i(n a las variables <ue la re$iben dentro del %(dulo
lla%ante
O @enor valor
O ;alor %edio
O @ayor valor
Proceso
Para deter%inar el orden as$endente de los tres n>%eros, &ri%ero se en$uentra el %enor
de todos a trav3s de $o%&ara$iones entre s y se asi,na al %enor valor, lue,o se en$uentra
el se,undo %enor y se asi,na al valor %edio y el restante, &or defe$to, es el valor %ayor
De0inicin 2e 7aria.les
O5DENG No%bre del &ro$edi%iento
P;G Pri%er valor
2;G 2e,undo valor
T;G Ter$er valor
@ENO5G ;alor %enor
@EDIOG ;alor %edio
@ATO5G ;alor %ayor
Al/orit3o
PROCEDMENTO ORDEN (PV, SV, TV, MENOR, MEDO, MAYOR)
S (PV<SV) (PV<TV) ENTONCES
MENOR=PV
S SV<TV ENTONCES
MEDO=SV
MAYOR=TV
SNO
MEDO=TV
MAYOR=SV
FN_S
SNO
S SV<TV ENTONCES
MENOR= SV
S PV<TV ENTONCES
MEDO =PV
MAYOR =TV
FN_S
SNO
MENOR=TV
S PV<SV ENTONCES
MEDO= PV
MAYOR= SV
SNO
MEDO= SV
MAYOR= PV
FN_S
FN_S
FN_S
FN_ORDEN
.. Acti7acin 2e un proce2i3iento
El sub&ro,ra%a no ini$ia ni ter%ina &or s %is%oI &or lo tanto, ne$esita ser a$tivado ?6a$erlo
fun$ionarC desde un %odulo e7terno Esto se 6a$e $uando el %(dulo lla%ante ne$esita la ayuda
&ara una labor es&e$fi$a <ue 6a$e el %(dulo subordinado La a$tiva$i(n se 6a$e a trav3s de la
si,uiente instru$$i(n
?or3ato
No%bre ?Ar,u%entosC
Los ar,u%entos son no%bres de $a%&os ?$onstantes o variablesC, <ue usa el %odulo a%&lio
y <ue tienen una $orres&onden$ia biunvo$a $on los &ar1%etros $on los $uales se $onstruy( el
sub&ro,ra%aI &or lo tanto, estos deben ser i,uales en n>%ero y en ti&o de dato <ue los
&ar1%etros, ya <ue a $ada ar,u%ento le $orres&onde un &ar1%etro ( vi$eversa
Los ar,u%entos ta%bi3n son de dos $lasesG unos <ue envan infor%a$i(n al sub&ro,ra%a y
otros <ue re$iben infor%a$i(n
Cuando el sub&ro,ra%a es a$tivado, los ar,u%entos de envo son $o&iados en los &ar1%etros
de re$ibo, ?&ar1%etros de re$ibo ar,u%entos de envoC T $uando el subal,orit%o de8a de
e8e$utarse los &ar1%etros de envo le asi,nan infor%a$i(n a los ar,u%entos de re$ibo
?ar,u%entos de re$ibo &ar1%etros de envoC
Por e8e%&lo, elaborar la instru$$i(n <ue a$tive el &ro$edi%iento O5DEN Este sub&ro,ra%a
tiene 0 &ar1%etros ?tres de re$ibo y tres de envoC, &or lo tanto, la instru$$i(n <ue lo invo<ue
debe tener 0 ar,u%entos ?tres de envo y tres de re$iboC
2i las variables a utilizar $o%o ar,u%entos son en su ordenG N", N', N*, @EN, @ED y
@AT la instru$$i(n sera
O5DEN ?N", N', N*, @EN, @ED, @ATC
Lo <ue si,nifi$a lo si,uienteG
a Cuando se a$tiva el sub&ro,ra%a ?e%&ieza a e8e$utarseC
PV=N1
SV=N2
TV=N3
Por lo tanto N", N' y N* deben tener valor
b Cuando O5DEN de8a de e8e$utarse ?re,resa infor%a$i(nC
MEN=MENOR
MED=MEDO
MAY=MAYOR
EJercicio resuelto No. $I
Elaborar un al,orit%o <ue a$tive el &ro$edi%iento O5DEN
An:lisis
Datos 2e entra2a
O Los valores de los tres n>%eros a ordenar
Datos 2e sali2a
O Los tres n>%eros ordenados
Proceso
2e leen los tres n>%eros, se invo$a el sub&ro,ra%a <ue 6a$e el ordena%iento y se
%uestran los valores ordenados
De0inicin 2e 7aria.les
N"G ;alor del &ri%er n>%ero
N'G ;alor del se,undo n>%ero
N*G ;alor del ter$er n>%ero
@ENG ;alor del n>%ero %enor
@EDG ;alor del n>%ero inter%edio
@ATG ;alor del n>%ero %ayor
Al/orit3o
NCO
LEA: N1, N2, N3
ORDEN (N1,N2,N3, MEN, MED, MAY)
ESCRBA: "VALOR MENOR:", MEN, "VALOR MEDO:", MED,
"VALOR MAYOR:", MAY.
FN_NCO
Prue.a 2e escritorio
2i los valores a entrar sonG '/,"),"/, en el al,orit%o &asara lo si,uienteG
2e e8e$uta la instru$$i(n "G
N" N' N* @EN @ED @AT
'/ ") "/
Al e8e$utarse la instru$$i(n ' se le $ede el $ontrol de e8e$u$i(n al sub&ro,ra%a O5DEN,
&ara <ue e8e$ute sus instru$$iones y devuelva los resultados &edidosI &or tanto, le es dado a $ada
&ar1%etro su res&e$tiva dire$$i(n de %e%oria
N" P; N' 2; N* T; @EN, @ENO5 @ED, @EDIO @AT, @ATO5
'/ '/ ") ") "/ "/ "/ ") '/
La anterior ,r1fi$a %uestra $(%o las variables del sub&ro,ra%a s(lo son llevadas a %e%oria
en el %o%ento en <ue 3ste se a$tivaI y <ue los &ar1%etros P;, 2; y T; tienen una dire$$i(n de
%e%oria diferente a la de los ar,u%entos N", N' y N*, y los &ar1%etros @ENO5, @EDIO y
@ATO5, $o%&arten la %is%a dire$$i(n de %e%oria $on los ar,u%entos @EN, @ED y @AT
res&e$tiva%ente
Al devolverse el $ontrol de e8e$u$i(n al al,orit%o, las variables de 3sta tienen los si,uientes
$ontenidos
N" N' N* @EN @ED @AT Desa&are$en las variables
'/ ") "/ "/ ") '/ del sub&ro,ra%a
Al e8e$utarse la instru$$i(n * la salida ser1G
VALOR MENOR: 10
VALOR MEDO: 14
VALOR MAYOR: 20
(.1.2. ?unciones
2on sub&ro,ra%as <ue le devuelven al &ro,ra%a o sub&ro,ra%a <ue los invo$a un >ni$o
valor El valor <ue 3stas devuelven lo 6a$en a trav3s de una variable involu$rada en una
instru$$i(n de retorno, dentro del $on8unto de instru$$iones, o en el no%bre de 3staI &or lo tanto,
este ti&o de sub&ro,ra%as en su en$abeza%iento ?&rototi&oC s(lo tienen &ar1%etros de re$ibo
Las fun$iones devuelven el $ontrol de e8e$u$i(n a la %is%a instru$$i(n desde donde se lla%an
a. Representacin
FUNCN Nombre (PARAMETROS DE RECBO)
nstrucciones
Retorne valor
FN_Nombre
EJercicio resuelto No. $1
Elaborar una fun$i(n <ue en$uentre el valor %ayor en un $on8unto de * n>%eros reales
diferentes
An:lisis
Par:3etros 2e reci.o
O ;alor del &ri%er n>%ero
O ;alor del se,undo n>%ero
O ;alor del ter$er n>%ero
-alor 2e retorno BPar:3etros 2e en7oD
O El valor %ayor de los tres n>%eros
Proceso
2e $o%&aran los tres valores entre sI el valor <ue resulte %ayor ser1 llevado a una
variable y este ser1 el valor <ue retorna la fun$i(n
De0inicin 2e 7aria.les
@ATO5G No%bre de la fun$i(n
N"G Pri%er n>%ero
N'G 2e,undo nu%ero
N*G Ter$er n>%ero
;AL@ATG ;alor %ayor entre N", N' y N*
!u.al/orit3o
FUNCN MAYOR (N1, N2, N3)
S (N1 > N2) (N1 > N3) ENTONCES
VALMAY = N1
SNO
S (N2 > N3) ENTONCES
VALMAY = N2
SNO
VALMAY = N3
FN_S
FN_S
RETORNE VALMAY
FN_MAYOR
.. Acti7acin 2e una 0uncin
5e$uerde <ue las fun$iones, &or no tener en su en$abeza%iento &ar1%etros de envo, la
instru$$i(n <ue a$tive a la fun$i(n ta%&o$o tendr1 ar,u%entos de re$ibo El valor <ue devuelve
la fun$i(n debe ser asi,nado a una variable, la $ual debe ser del %is%o ti&o de dato del valor
<ue devuelve la fun$i(n ?no &uede e7istir in$o%&atibilidad de ti&os de datosC
?or3ato
;ariable S No%bre de la fun$i(n ?Ar,u%entosC
Por e8e%&lo, elaborar una instru$$i(n <ue invo<ue a la fun$i(n @ATO5
Co%o la fun$i(n tiene tres &ar1%etros, se debe invo$ar $on tres ar,u%entos y re$ibir el valor
<ue ella devuelve en una variable 2i los valores a enviar son NB@", NB@' y NB@* y se
re$ibe el valor %ayor en la variable NB@_@ATO5 la instru$$i(n seraG
NB@_@ATO5 S @ATO5 ?NB@", NB@', NB@*C
EJercicio resuelto No. $2
Elaborar un al,orit%o <ue a$tive la fun$i(n @ATO5
An:lisis
Datos 2e entra2a
O Los valores de los tres n>%eros
Datos 2e sali2a
O El valor %ayor entre los tres n>%eros
Proceso
2e leen los tres valores, se invo$a la fun$i(n y se i%&ri%e el valor %ayor
De0inicin 2e 7aria.les
NB@"G ;alor del &ri%er n>%ero
NB@'G ;alor del se,undo n>%ero
NB@*G ;alor del ter$er n>%ero
NB@_@ATO5G ;ariable <ue re$ibe de la fun$i(n el valor %ayor
Al/orit3o
NCO
LEA: NUM1, NUM2, NUM3
NUM_MAYOR = MAYOR (NUM1, NUM2, NUM3)
ESCRBA: "EL VALOR MAYOR ENTRE:", NUM1, ",", NUM2, "y", NUM3,
"ES:",NUM_MAYOR
FN_NCO
Bna venta8a de las fun$iones es <ue &ueden estar involu$radas en e7&resiones, $o%o se
%uestra en el si,uiente al,orit%o
En al,unos $asos &arti$ulares, $uando el &ro,ra%a lo re<uiera, se &ueden enviar valores
$onstantes $o%o ar,u%entos, $uando se invo$a un sub&ro,ra%a ?&ro$edi%iento ( fun$i(nC
EJercicio resuelto No. $#
Btilizar la fun$i(n @ATO5 &ara en$ontrar el valor %ayor entre 4/+ y dos valores <ue
entrar1 el usuario
Al/orit3o
NCO
LEA:NUM1, NUM2
ESCRBA: " EL VALOR MAYOR ENTRE:", NUM1, ",", NUM2, "y 90.5
ES:", MAYOR (NUM1, NUM2, 90.5)
FNAL_NCO
(.2. Docu3entacin 2e su.pro/ra3as
Bna de las ,randes utilidades <ue tienen los sub&ro,ra%as es <ue se $onstruyen &ara <ue
sean utilizados &or diferentes %(dulos, $ada <ue se re<uiera la tarea es&e$fi$a <ue realiza el
%(dulo subordinado
Debido a esto, $ada <ue se $onstruye un sub&ro,ra%a se debe indi$ar la for%a de su e%&leo
Esta do$u%enta$i(n debe in$luirG
(ombre: es el no%bre es$o,ido &or <uien lo $onstruye, &ara diferen$iarlo de los de%1s
sub&ro,ra%asI &or lo tanto, debe ser >ni$o
)uncin: es la reda$$i(n de lo <ue 6a$e el sub&ro,ra%a
Par1%etrosG 2e deben des$ribir $ada uno y en el orden en <ue se en$uentran en la listaI no
i%&orta el no%bre del &ar1%etro, &ero s el ti&o de dato de $ada uno de ellos
En al,unos $asos es&e$fi$os es ne$esario des$ribir otras $ara$tersti$as tales $o%oG
#/todo usado: esta &arte se des$ribe en $aso de <ue la solu$i(n de la tarea <ue 6a$e el
sub&ro,ra%a ten,a %1s de un %odelo de solu$i(nI en $onse$uen$ia, se debe de$ir $u1l de los
%3todos de solu$i(n se e%&le(
Otros sub&ro,ra%as usadosG si el %(dulo a$tiva otros sub&ro,ra%as, es $onveniente in$luir
la do$u%enta$i(n de 3stos
Ejemplo- elaborar la do$u%enta$i(n del sub&ro,ra%a $onstruido en el e8er$i$io resuelto
nu%ero *4
(ombre: orden ?&ro$edi%ientoC
)uncin: entre,a ordenados as$endente%ente tres valores diferentes
Los valores ordenados los transfiere en tres variables distintas
Par;metros:
" No%bre <ue re$ibe el &ri%er valor nu%3ri$o a ordenar
' ;ariable <ue re$ibe el se,undo valor nu%3ri$o
* Ca%&o <ue re$ibe el ter$er valor nu%3ri$o
) Ca%&o sen$illo <ue entre,a el valor %enor de los tres datos
+ Ca%&o sen$illo <ue entre,a el valor inter%edio de los tres datos
0 Ca%&o sen$illo <ue entre,a el valor %ayor de los tres valores entre,ados
#/todos: entre,a los valores ordenados en variables distintas a las re$ibidas
%tros subprogramas utili6ados: Nin,uno
Cuando se utiliza un sub&ro,ra%a no interesa $ono$er el no%bre de las variables utilizadas
$o%o &ar1%etros, &ero s el orden en <ue se en$uentran en la lista y el ti&o de dato de $ada una
de ellas
EJercicio resuelto No. $$
Elabore un sub&ro,ra%a <ue en$uentre la su%a y el &ro%edio de un $on8unto de N
n>%eros, lo %is%o <ue el &ro,ra%a <ue lo invo<ue
An:lisis
Par:3etros 2e reci.o
O Cantidad de n>%eros N
Par:3etros 2e en7o
O 2u%a de los N n>%eros 2B@A
O Pro%edio de los n>%eros P5O@
Proceso
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG 2B@P5O@
!u.al/orit3o
PROCEDMENTO SUMPROM (N, SUMA, PROM)
SUMA = 0
PARA = 1, N, 1 HAGA
LEA: NUM
SUMA = SUMA + NUM
FN_PARA
PROM = SUMA / N
FN_SUMPROM
Al/orit3o lla3ante
An:lisis
Datos de entrada
O Cantidad de n>%eros CN
Datos de salida
O 2u%a de los n>%eros 2B@
O Pro%edio de los n>%eros P5O@EDIO
Al/orit3o
NCO
LEA: CN
SUMPROM (CN, SUM, PROMEDO)
ESCRBA: "LA SUMA DE LOS", CN, "NUMEROS ES:", SUM
ESCRBA: "EL PROMEDO ES:", PROMEDO
FN_NCO
EJercicio resuelto No. $&
Elaborar un sub&ro,ra%a <ue en$uentre la su%a y el &ro%edio de un $on8unto de
n>%eros enteros, lo %is%o <ue el sub&ro,ra%a <ue lo utili$e
An:lisis
Par:3etros 2e reci.o.
No tiene
Par:3etros 2e en7o
O La su%a del $on8unto de n>%erosG 2
O El &ro%edio de los n>%erosG P
Proceso
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG 2P5O@
Co%o no se sabe $uantos n>%eros son, una solu$i(n es leer el $on8unto de n>%eros en el
sub&ro,ra%a a trav3s de un es<ue%a $ualitativo, usando una bandera &ara $ontrolar el
$i$lo de entrada e ir $ontando y su%ando los n>%eros ledos
Deben usarse las si,uientes variables lo$alesG
NG Contador de n>%eros, ne$esario &ara $al$ular el &ro%edio
2LG Bandera o s=it$6e &ara $ontrolar al $i$lo de entrada de datos, to%ar1 los valores 2 si
6ay %1s valores o N $uando no e7isten %1s datos
NB@G N>%ero <ue se lee
!u.al/orit3o H
PROCEDMENTO SPROM (S, P)
SW = S
N, S = 0
MENTRAS SW = 'S' HAGA
LEA: NUM
S = S + NUM
N = N+ 1
ESCRBA: "HAY MAS DATOS S/N "
LEA: SW
FN_MENTRAS
P = S / N
FN_SPROM
Al/orit3o lla3ante
An:lisis
Datos de entrada
No tiene
Datos de salida ?ar,u%entos &ara lla%ar a 2P5O@ C
O 2u%a de los n>%erosG 2B@
O Pro%edio de los n>%erosG P5O@
NCO
SPROM (SUM, PROM)
ESCRBA: "LA SUMA ES:", SUM
ESCRBA: "EL PROMEDO ES:", PROM
FN_NCO
EJercicio resuelto No. $'
Elaborar un sub&ro,ra%a <ue en$uentre el salario bruto, dedu$$i(n, subsidio y salario
neto, de un e%&leado <ue labora ! 6oras a T &esos
La reten$i(n &ara el e%&leado se deter%ina asG &ara salarios %enores de W)///// si el
n>%ero de 6i8os es %ayor de 0 no 6ay reten$i(nI si el n>%ero de 6i8os es %enor o i,ual a
0, se le retiene un &or$enta8e i,ual a 0 %enos el n>%ero de 6i8os dividido &or ' Para
salarios i,uales o %ayores de W)///// si el n>%ero de 6i8os es %enor de *, se le retiene
un *PI si el n>%ero de 6i8os es %ayor o i,ual a * se le retiene un &or$enta8e i,ual a "/
dividido &or el n>%ero de 6i8osI &or $ada 6i8o, al e%&leado se le da un subsidio de W'///
An:lisis
Par:3etros 2e reci.o
O Nu%ero de 6oras traba8adasG !
O ;alor 6ora traba8adaG T
O Nu%ero de 6i8osG N#
Par:3etros 2e en7o
O 2alario brutoG 2B
O Dedu$$i(nG DED
O 2ubsidioG 2BB
O 2alario netoG 2N
Proceso
2B S ! V T
La dedu$$i(n se obtiene $o%&arando el salario bruto $on )///// y de a$uerdo al n>%ero
de 6i8os
El subsidio ser1 '/// V N#
2NS 2B J DED H 2BB
Clase de subprograma: P5OCEDI@IENTO
(ombre: CAL_2ALA5IO
-aria.les
P5G Por$enta8e de reten$i(n ?variable lo$alC
!u.al/orit3o
PROCEDMENTO CAL_SALARO (X, Y, NH, SB, DED, SUB, SN)
SB = X * Y
S SB < 400000 ENTONCES
S NH > 6 ENTONCES
PR = 0
SNO
PR = (6-NH)/2
FN_S
SNO
S NH < 3 ENTONCES
PR = 3
SNO
PR = 10/NH
FN_S
FN_S
DED = SB * PR/100
SUB = 2000 * NH
SN = SB - DED + SUB
FN_CAL_SALARO
EJercicio resuelto No. $(
2e tiene la si,uiente infor%a$i(n &or $ada uno de los e%&leados de una e%&resaG
C(di,o
No%bre
N>%ero de 6i8os
2alario &or 6ora
N>%ero de 6oras traba8adas &or %es
La dedu$$i(n y el subsidio de $ada e%&leado se $al$ula de a$uerdo $on lo esti&ulado en
el sub&ro,ra%a anterior ?e8er$i$io resuelto No )0C
Elaborar un al,orit%o <ue %uestreG $(di,o, no%bres, salario bruto, reten$i(n, subsidio y
salario neto
An:lisis
Datos 2e entra2a
O C(di,oG COD
O No%bresG NO@
O N>%ero de 6i8osG N#
O 2alario &or 6oraG 2#
O N>%ero de 6oras traba8adas al %esG N#T
Datos 2e sali2a
O C(di,o
O No%bres
O 2alario brutoG 2B5
O Dedu$$i(nG DEDBC
O 2ubsidioG 2B
O 2alario netoG 2NETO
Proceso
2e usar1 el sub&ro,ra%a CAL_2ALA5IO, &ara obtener &or $ada traba8adorG salario
bruto, reten$i(n, subsidio y salario neto
Co%o no se $ono$e la $antidad de e%&leados de la e%&resa, se debe i%&le%entar un
es<ue%a $ualitativo usando el $(di,o del e%&leado
Cada vez <ue se en$uentre un $(di,o diferente de $ero, se entrar1 la infor%a$i(n del
e%&leado y se invo$ar1 el sub&ro,ra%a CAL_2ALA5IO &ara obtener los resultados
&edidos
Al/orit3o
NCO
LEA: COD
MENTRAS COD <> 0 HAGA
LEA: NOM, NH, SH, NHT
CAL_SALARO (NHT, SH, NH, SBR, DEDUC, SU, SNETO)
ESCRBA: COD, NOM, SBR, DEDUC, SU, SNETO
ESCRBA: "ENTRE CODGO O CERO PARA TERMNAR"
LEA: COD
FN_MENTRAS
FN_NCO
EJercicio resuelto No. $)
Elaborar un sub&ro,ra%a <ue en$uentre el fa$torial de un n>%ero entero %ayor o i,ual a
$ero
An:lisis
Par:3etros 2e reci.o
O El n>%eroG N
Par:3etros 2e en7o
O El fa$torial del n>%eroG :ACTO
Proceso
Clase del sub&ro,ra%aG :BNCIDN
No%breG :AC
El fa$torial de N se define $o%o "G si N es i,ual a $ero, o "V'V*VNJ"VN si N es %ayor
<ue $ero El &ro$eso usado ser1 el %is%o <ue se i%&le%enta en el e8er$i$io resuelto
nu%ero **
!u.al/orit3o
FUNCN FAC (N)
FACTO=1
PARA = 1, N, 1 HAGA
FACTO= FACTO*
FN_PARA
RETORNE FACTO
FN_FAC
EJercicio resuelto No. $*
Elaborar un al,orit%o <ue utili$e el sub&ro,ra%a :AC &ara en$ontrar el fa$torial de un
n>%ero
An:lisis
Datos 2e entra2a
O El n>%ero a $al$ularle el fa$torialG NB@
Datos 2e sali2a
O El fa$torial del n>%eroG :ACTO5
Al/orit3o
NCO
LEA: NUM
FACTOR = FAC (NUM)
ESCRBA: "EL FACTORAL DE", NUM, "ES:", FACTOR
FN_NCO
EJercicio resuelto No.&I
Bsando la fun$i(n :AC, elaborar un al,orit%o <ue en$uentre el fa$torial de los &ri%eros
N n>%eros naturales
An:lisis
Datos 2e entra2a
O La $antidad de n>%eros a $al$ularle el fa$torialG N
Datos 2e sali2a
O Cada uno de los fa$toriales de los n>%eros $o%&rendidos entre " y N
Al/orit3o
NCO
LEA: N
PARA = 1, N, 1
ESCRBA: "EL FACTORAL DE", , "ES:", FAC ()
FN_PARA
FN_NCO
EJercicio resuelto No. &1
Elaborar un sub&ro,ra%a <ue deter%ine si un n>%ero es &ri%o o no
An:lisis
Par:3etros 2e reci.o
O El n>%ero a evaluar si es &ri%o o noG N
Par:3etros 2e en7o
O Bna res&uesta <ue di,a si el n>%ero es &ri%o o noG 5E2 ?Al%a$enara 2, si el
n>%ero es &ri%o o N si no lo esC
Proceso
Clase de sub&ro,ra%aG :BNCIDN
No%breG P5I@O
Bn n>%ero es &ri%o si s(lo es divisible &or la unidad y &or s %is%o Lo anterior i%&li$a
$6e<uear si el n>%ero N tiene o no divisores, fuera de " y NI esos &osibles divisores
estar1n entre ' y NK', &or eso no se $6e<ueara si N es divisible &or un n>%ero %ayor a
NK'
Para darnos $uenta si N es divisible &or un n>%ero $ual<uiera M, usare%os el o&erador
%(dulo Este o&erador devuelve el residuo de una divisi(n entera Por e8e%&lo "" %(dulo
* S ', <ue resulta de dividir "" &or * y sobran ' . %(dulo ' S / Auiere de$ir enton$es,
<ue si un n>%ero $ual<uiera N es divisible &or M, enton$es al dividir N &or M el residuo es
$ero 2i se en$uentra <ue N s es divisible &or $ual<uier n>%ero entre ' y la %itad de N,
<uiere de$ir <ue N no es &ri%o, &or lo tanto, se ro%&er1 el $i$lo
-aria.les locales a la 0uncin
@ITADG Parte entera de dividir N &or '
IG ;ariable de $ontrol del $i$lo, to%ar1 valores entre ' y @ITAD
!u.al/orit3o
FUNCON PRMO (N)
MTAD = N/2
= 2
MENTRAS ( <= MTAD) (N MOD <> 0)
= + 1
FN_MENTRAS
S > MTAD ENTONCES
RES = 'S'
SNO
RES = 'N'
FN_S
RETORNE RES
FN_PRMO
EJercicio resuelto No. &2
Elaborar un al,orit%o <ue %ediante la fun$i(n P5I@O, deter%ine si un n>%ero es &ri%o
o no
An:lisis
Datos 2e entra2a
O El n>%ero a evaluarG NB@
Datos 2e sali2a
O Bn %ensa8e <ue di,a si el n>%ero $6e<ueado es &ri%o o no
Al/orit3o
NCO
LEA: NUM
S PRMO (NUM) = 'S' ENTONCES
ESCRBA: NUM, "ES PRMO"
SNO
ESCRBA: NUM, "NO ES PRMO"
FN_S
FN_NCO
EJercicio resuelto No. &#
Bsando la fun$i(n P5I@O, elaborar un al,orit%o <ue en$uentre los &ri%eros N n>%eros
&ri%os
An:lisis
Datos 2e entra2a
O La $antidad de n>%eros &ri%os a bus$arG CNP
Datos 2e sali2a
O Los N &ri%eros n>%eros &ri%os
Proceso
@ediante un $i$lo <ue to%e valores entre uno y CNP, se $6e<uearan los n>%eros
naturales en for%a $onse$utiva de " en adelante La variable de $ontrol de este $i$lo s(lo
se in$re%entara $uando al lla%ar a la fun$i(n P5I@O, la res&uesta sea 2, &ero el
$ontador <ue est3 ,enerando los n>%eros de " en adelante se in$re%entar1 sea $ual fuere
el valor <ue retorne la fun$i(n P5I@O
-aria.les
NG Contador <ue ,enera los n>%eros de uno en adelante
IG ;ariable de $ontrol del $i$lo
Al/orit3o
NCO
LEA: CNP
N, = 1
MENTRAS <=CNP HAGA
S PRMO (N) = 'S' ENTONCES
ESCRBA: N, "ES EL PRMO",
= + 1
FN_S
N = N + 1
FN_MENTRAS
FN_NCO
Aspectos a tener en cuenta
a Los sub&ro,ra%as deben ser lo %1s si%&les <ue se &uedaI deben re&resentar tareas <ue s(lo
se e8e$utan una vez, o &osible%ente en tareas re&etitivas <ue son de uso %uy fre$uente
dentro de la &ro,ra%a$i(n
b Bn &ro,ra%a se si%&lifi$a %ediante su divisi(n en %(dulos <ue se &ueden $onsiderar
inde&endiente%ente, lo <ue %1s interesa es <u3 6a$e el %(dulo y $(%o lo 6a$e
$ Los sub&ro,ra%as, $o%o re&resenta$i(n de %(dulos, tienen todas las $ara$tersti$as de un
al,orit%o
d Los sub&ro,ra%as no s(lo son >tiles &ara evitar la re&eti$i(n de instru$$iones dentro de un
al,orit%o, sino <ue son a&li$ables en la i%&le%enta$i(n de la &ro,ra%a$i(n %odular Esta se
basa en la des$o%&osi$i(n des$endente ?arriba J aba8oC o 8erar<ua de %(dulos, <ue se
enlazan %ediante un %(dulo &rin$i&al o raz
e Los %(dulos realizan sie%&re una tarea deter%inada y $onstan de un $on8unto de
instru$$iones y un no%bre &or el $ual son lla%ados o invo$ados desde un al,orit%o u otro
sub&ro,ra%a
f Cuando se invo$a un &ro$edi%iento, el $ontrol de e8e$u$i(n es transferido a la instru$$i(n
del no%bre del sub&ro,ra%a, y $uando retorna devuelve el $ontrol a la instru$$i(n si,uiente
del %(dulo <ue lo a$tiv( y si es una fun$i(n el $ontrol retorna a la %is%a instru$$i(n <ue la
invo$a
, Los sub&ro,ra%as, &or lo ,eneral, deben ser de$larados antes del al,orit%o <ue lo invo$a
6 Los ar,u%entos deben ser i,uales en n>%ero y en ti&o de datos a los &ar1%etros
i Los sub&ro,ra%as &ueden ser $onstruidos sin &ar1%etros, lo $ual es una &r1$ti$a &o$o
re$o%endable 2i esto su$ede, se di$e <ue traba8an $on variables ,lobales <ue son a<u3llas
definidas en el %(dulo <ue invo$a al sub&ro,ra%a
8 Los &ar1%etros de un sub&ro,ra%a no sie%&re sirven en for%a e7$lusiva &ara re$ibir y
entre,ar infor%a$i(n En %u$6os $asos los %is%os &ar1%etros $u%&len a%bos &ro&(sitosI
$o%o &ar1%etros de re$ibo transfieren infor%a$i(n 6a$ia el %(dulo invo$ante
(.#. EJercicios propuestos
Elaborar un subprograma ! su documentacin para los siguientes 8< e'ercicios.
"'- En$ontrar !
y
&or %ulti&li$a$iones su$esivas
"'. Obtener !
y
utilizando su%as >ni$a%ente, donde ! &uede ser un n>%ero real y T &ositivo,
$ero o ne,ativo
"'4 Ordenar tres $ara$teres en orden as$endente
"*/ Deter%inar si un n>%ero es &erfe$to o no Bn n>%ero N es &erfe$to si la su%a de todos
sus divisores, e7$e&to &or el %is%o, da N
"*" Convertir un n>%ero de$i%al a $ual<uier base r
"*' En$ontrar el valor de e
7
&ara una valor de 7 dado, %ediante la serieG
"
' *
' *
+ + + + !
! !
g g
teniendo en $uenta los t3r%inos <ue sean %ayores <ue "/
J*
"** En$ontrar un t3r%ino de la su$esi(n de :ibona$$i
"*) En$ontrar el &er%etro y 1rea de un tri1n,ulo, $uando s(lo se $ono$en sus lados
"*+ En$ontrar la su%a y el &ro%edio de los valores enteros $o%&rendidos entre N y @, donde
Na@
"*0 En$ontrar los divisores de N
Para los siguientes 8< e'ercicios elaborar el subprograma ! el algoritmo .ue los acti-a.
"*- En$ontrar las &ri%eros N n>%eros &erfe$tos
"*. Obtener los &ri%eros )/ %>lti&los de N
"*4 En$ontrar A
B
y lue,o obtenerG
???AVVBC VVCC VVDC VVE
")/ Dibu8ar un tri1n,ulo e<uil1tero de lado L, $on asteris$os
")" C6e<uear $u1ntos de N &untos del &lano $artesiano est1n en el $uadrante ", ', *, y )
")' Obtener el inter3s ,enerado &or ! &esos <ue se invierte a & &or$iento %ensual en un
&erodo de N %eses
")* En$ontrar la 6ora a los )/ se,undos si,uientes de la 6ora a$tual
")) Obtener el &ro%edio $r3dito de un estudiante <ue $ursa N %aterias, $on n>%ero de
$r3ditos distintos
")+ Deter%inar si $on ) valores <ue re&resentan &atas de %esas se &uede $onstruir una %esa
de ) &atas no $o8a o de * &atas no $o8a, en $aso de <ue no se &ueda $onstruir una de ) &atas
no $o8a
")0 En$ontrar su edad en aFos, %eses y das <ue tendr1 dentro de N aFos
Captulo )
A55E9LO2
En los $a&tulos anteriores se 6a %ane8ado el $on$e&to de $a%&o variable $o%o uno o %1s
$ara$teres, a los <ue se le asi,na un es&a$io en %e%oria donde se &uede ,uardar en for%a
te%&oral un >ni$o valor, bien sea nu%3ri$o, $ar1$ter o l(,i$o En este $a&tulo el $on$e&to de
variable se e7tender1 a un ,ru&o o $ole$$i(n de ellas, a,ru&adas ba8o un %is%o no%bre
:re$uente%ente se %ane8an $on$e&tos rela$ionados $o%o una $ole$$i(n de datos Por
e8e%&lo, en las %ontaFas de Antio<uia ve%os un $on8unto de a$3%ilas %ane8adas &or un arriero
y no i%&orta $ono$er el no%bre, se7o, o $olor de $ada una de ellas &ara %en$ionarlasG
si%&le%ente de$i%os %ulas
Los datos sie%&re <ue est3n rela$ionados se &ueden or,anizar en estru$turas, de tal %anera
<ue &ode%os tener un $on8unto de datos nu%3ri$os, l(,i$os, o $ara$teres %ane8ados a trav3s de
un %is%o no%bre de variable Bna estru$tura de datos es la or,aniza$i(n <ue re$iben los datos
&ara <ue sean tratados $o%o una unidad
E7isten varias for%as de or,anizar los datos o valores <ue %ane8a un al,orit%o, los %1s
$o%unes son los arre,los y los ar$6ivos de datos
Bn arre,lo es un $on8unto finito de $o%&onentes del %is%o ti&o, los $uales se diferen$ian o
rela$ionan a trav3s de un subndi$e
Todas las $o%&onentes &ertene$ientes, lla%adas ta%bi3n elementos del arre,lo, est1n una a
$ontinua$i(n de otra, tienen el %is%o ta%aFo o es&a$io en %e%oria, son todas de un %is%o
ti&o de dato y, &or lo tanto, tienen i,ual for%a de al%a$ena%iento
Para %ane8ar en for%a inde&endiente $ada $o%&onente del arre,lo se usa un ndice, <ue es
una e7&resi(n de ti&o entero ?sin de$i%alesC <ue indi$a $u1l de los ele%entos del arre,lo
<uere%os rela$ionar 2ie%&re <ue se <uiere traba8ar o %en$ionar una $o%&onente es ne$esario
adi$ionar el ndi$e al no%bre ,en3ri$o del arre,loI es 3ste el <ue 6a$e inde&endiente una de otra
E8e%&los de ndi$esG
" I IND M H I I V 8ota J "
Clasi0icacin 2e los arre/los
).1. Arre/los 2e una 2i3ensin o 7ectores
Bn -ector es un arre,lo donde los ele%entos <ue lo $onfor%an est1n dis&uestos ba8o un
%is%o $on$e&to de $lasifi$a$i(n ?fila o $olu%naC, es de$ir, los datos est1n or,anizados de una
%anera lineal, &or lo <ue &ara referen$iar un ele%ento del arre,lo es ne$esario un ndi$e, <ue
indi<ue la &osi$i(n relativa del ele%ento en el arre,lo
Cuando al no%bre del arre,lo se le adi$iona el ndi$e, bien sea entre &ar3ntesis o $or$6etes,
la $o%&onente al $ual 6a$e referen$ia el ndi$e es to%ada $o%o una variable si%&le, i,ual a las
<ue en $a&tulos anteriores se 6an venido tratandoI &or lo tanto, &uede estar involu$rada en una
e7&resi(n, en una entrada o salida de datos, o en una asi,na$i(n
9r1fi$a%ente un ve$tor &uede ser re&resentado en $ual<uiera de las si,uientes for%asG
aNO@B5Eb
Co%o fila ?ALTA R8?ICO PA. 2I2 LI"RO
Co%o $olu%na aNO@B5Eb
?ALTA R8?ICO PA. 2I2 LI"RO
Donde el no%bre es el <ue se 6a es$o,ido &ara todos los ele%entos del arre,lo, y $ada
re$t1n,ulo re&resenta las $o%&onentes o ele%entos <ue lo $onfor%an
2i los valores */, "+, '/, 0/ y ./ re&resentan las edades de $in$o &ersonas y <uere%os tener
al%a$enada esta infor%a$i(n en %e%oria &ara ser utilizada en un &ro$eso &or $o%&utadora,
&erfe$ta%ente &ode%os ,uardarla en $in$o no%bres de variables distintas $o%o EDAD",
EDAD', EDAD*, EDAD) y EDAD+I &ero l<u3 &asa si no son $in$o sino %il edades, o %1s de
%ilm, sin duda <ue se $onvierte en un &ro$eso en,orroso y dif$il de %ane8ar, &ero <ue se &uede
solu$ionar al%a$enando esa infor%a$i(n en un arre,lo, <ue en este $aso sera de una di%ensi(n
2i se es$o,e el no%bre EDAD $o%o no%bre del arre,lo &ara identifi$ar el $on8unto de las +
edades, interna%ente en %e%oria se se&aran $in$o es&a$ios ?dire$$iones de %e%oriaC
adya$entes &ara al%a$enar en el %o%ento o&ortuno la infor%a$i(n re<uerida 2i un &ro,ra%a
utiliza la variable ti&o arre,lo EDAD, des&u3s de la $o%&ila$i(n su$eder1 lo si,uienteG
@E@O5IA
EDADt"u aBA2B5Ab Dire$$i(n !
EDADt'u aBA2B5Ab Dire$$i(n ! H "
EDADt*u aBA2B5Ab Dire$$i(n ! H '
EDADt)u aBA2B5Ab Dire$$i(n ! H *
EDADt+u aBA2B5Ab Dire$$i(n ! H )
Donde $ada ele%ento del ve$tor EDAD se &uede &ro$esar $o%o si fuese una variable si%&le,
al o$u&ar $ada uno una &osi$i(n de %e%oria diferenteI esto i%&li$a <ue en los arre,los el
a$$eso a un ele%ento se 6a$e en for%a dire$ta, es de$ir, <ue $ual<uier ele%ento se &uede
referen$iar sin ne$esidad de a$$esar los anteriores a 3l
Las si,uientes dos instru$$iones %uestran la inde&enden$ia <ue tiene $ada una de las
variables <ue &ertene$en al arre,lo, al adi$ionar el ndi$e
LEA: EDAD[1], EDAD[3], EDAD[5]
ESCRBA: EDAD[5], EDAD[1]
2i los valores de las tres variables des$ritas en la instru$$i(n de la le$tura son en su orden */,
'/ y ./, al e8e$utarse las instru$$iones anteriores su$eder1 lo si,uienteG
@E@O5IA
EDADt"u */ Dire$$i(n !
EDADt'u aBA2B5Ab Dire$$i(n ! H "
EDADt*u '/ Dire$$i(n ! H '
EDADt)u aBA2B5Ab Dire$$i(n ! H *
EDADt+u ./ Dire$$i(n ! H )
!ali2a
)I #I
En ,eneral se &uede de$ir <ue EDADtlu 6a$e referen$ia al $ontenido <ue tiene la
$o%&onente, o ele%ento ubi$ado en la &osi$i(n i del arre,lo EDAD, donde " a i a +
Los arre,los &ueden ser utilizados $o%o a$u%uladores o $ontadores, ini$ializando $ada uno
de sus ele%entos Por e8e%&lo, llevar $ero a $ada uno de los ele%entos del arre,lo EDAD
!olucin utiliMan2o MIENTRA!
NCO
NDCE = 1
MENTRAS NDCE <= 5 HAGA
EDAD [NDCE] = 0
NDCE = NDCE + 1
FN_MENTRAS
FN_NCO
!olucin utiliMan2o PARA
NCO
PARA NDCE = 1, 5, 1 HAGA
EDAD [NDCE] = 0
FN_PARA
FN_NCO
!olucin utiliMan2o REPETIR
NCO
NDCE = 1
HAGA
EDAD [NDCE] = 0
NDCE = NDCE + 1
MENTRAS NDCE <= 5
FN_NCO
EJercicio resuelto No. &$
#a$er un al,orit%o <ue for%e un ve$tor de N ele%entos, $uyos valores son nu%3ri$os
<ue entran de a uno &or re,istro, y lue,o obten,a la su%a y el &ro%edio de los ele%entos
ubi$ados en las &osi$iones i%&ares del ve$tor
An:lisis
Datos 2e entra2a
O La $antidad de valores <ue $onfor%ar1n el ve$tor
O Cada uno de los ele%entos del ve$tor
Datos 2e sali2a
O 2u%a de los ele%entos i%&ares
O Pro%edio de los ele%entos i%&ares
Proceso
Co%o se $ono$e la $antidad de valores <ue se al%a$enar1n en el ve$tor ?n>%ero de
ele%entosC, se &uede i%&le%entar un es<ue%a $uantitativo 2e 6ar1 uso de la estru$tura
PA5A en el &ro$eso de entrada y la estru$tura @IENT5A2 &ara el &ro$eso de $1l$ulo de
la su%a y el &ro%edioI esto s(lo &or ilustrar su e%&leo, ya <ue indistinta%ente &uede
i%&le%entarse $ual<uiera de ellas &ara los dos &ro$esos 5e$uerdeG todo lo <ue 6a$en las
estru$turas PA5A y 5EPETI5 &uede 6a$erse $on la estru$tura @IENT5A2 Para obtener
los ele%entos i%&ares se ini$ializa el $ontador en " y se in$re%enta de dos en dos, 6asta
<ue to%e un valor <ue 6a,a falsa la e7&resi(n l(,i$a
De0inicin 2e 7aria.les
NG N>%ero de ele%entos del arre,lo
XG ;ariable de ti&o $ontador, utilizada $o%o $ontroladora de los
$i$los PA5A y @IENT5A2
;G No%bre del ve$tor
2B@AG 2u%atoria de los ele%entos i%&ares del arre,lo ;
P5O@G Pro%edio de los ele%entos i%&ares
NEIG N>%ero de ele%entos i%&ares del arre,lo
Al/orit3o
NCO
LEA: N (1)
PARA K = 1, N, 1
LEA: V[K] (2)
FN_PARA
K = 1 (3)
SUMA, NE = 0 (4)
MENTRAS K <= N HAGA
SUMA = SUMA + V[K] (5)
NE = NE + 1 (6)
K = K + 2 (7)
FN_MENTRAS
PROM = SUMA / NE (8)
ESCRBA: "LA SUMA ES:", SUMA, (9)
"Y EL PROMEDO:", PROM
FN_NCO
Prue.a 2e escritorio
@ire%os el al,orit%o, &aso a &aso, su&oniendo un N i,ual a - y los si,uientes valores &ara
$ada uno de los ele%entos del arre,lo ;
* )
" )
J '
/
" /
* /
) /
2e e8e$uta la instru$$i(n ", N
-
2e a$tiva el $i$lo PA5A, X Co%&araG es " a -G s,
"
2e e8e$uta la instru$$i(n ', LEAG ;t"u,
V
40
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S "H"C X Co%&araG es ' a -G s,
'
2e e8e$uta la instru$$i(n ', LEAG ;t'u,
V
40 30
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S 'H"CI X Co%&araG es * a -G s,
*
2e e8e$uta la instru$$i(n ', LEAG ;t*u,
V
40 30 10
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S *H"CI X Co%&araG es ) a -G s,
)
2e e8e$uta la instru$$i(n ', LEAG ;t)u,
V
40 30 10 0
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S )H"CI X Co%&araG es + a -G s,
+
2e e8e$uta la instru$$i(n ', LEAG ;t+u,
V
40 30 10 0 -2
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S +H"CI X Co%&araG es 0 a -G s,
0
2e e8e$uta la instru$$i(n ', LEAG ;t0u,
V
40 30 10 0 -2 14
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S 0H"C X Co%&araG es - a -G s,
-
2e e8e$uta la instru$$i(n ', LEAG ;t-u,
V
40 30 10 0 -2 14 34
V[1] V[2] V[3] V[4] V[5] V[6] V[7]
2e in$re%enta X ?X S -H"CI X Co%&araG es . a -G no,
.
2ale del $i$lo PA5A y <uedan al%a$enados en %e%oria los - valores de los ele%entos del
ve$tor ;
2e e8e$uta la instru$$i(n *, X
"
2e e8e$uta la instru$$i(n ), 2B@A NEI
/ /
A$tiva el $i$lo @IENT5A2
2e $o%&araG E2 " -G s, se e8e$utan las instru$$iones +, 0 y -
?+C se lleva 2B@A H ;t"u a 2B@A ?/ H )/C 2B@A
)/
?0C se lleva NEI H " a NEI, ?/ H "C NEI
"
?-C se lleva X H ' a X, ?" H 'C X
*
2e $o%&araG E2 * -G s, se e8e$utan las instru$$iones +, 0 y -
?+C se lleva 2B@A H ;t*u a 2B@A ?)/ H "/C 2B@A
+/
?0C se lleva NEI H " a NEI, ?" H "C NEI
'
?-C se lleva X H ' a X, ?* H 'C X
+
2e $o%&araG E2 + -G s, se e8e$utan las instru$$iones +, 0 y -
?+C se lleva 2B@A H ;t+u a 2B@A ?+/ H ?J'CC 2B@A
).
?0C se lleva NEI H " a NEI, ?' H "C NEI
*
?-C se lleva X H ' a X, ?+ H 'C X
-
2e $o%&araG E2 - -G s, se e8e$utan las instru$$iones +, 0 y -
?+C se lleva 2B@A H ;t-u a 2B@A ?). H *)C 2B@A
.'
?0C se lleva NEI H " a NEI, ?* H "C NEI
)
?-C se lleva X H ' a X, ?- H 'C X
4
2e $o%&araG E2 4 -G no, se sale del $i$lo @IENT5A2 y $ontin>a 6a$ia aba8o
2e e8e$uta la instru$$i(n ., se lleva a P5O@ .'K) P5O@
'/+
2e e8e$uta la instru$$i(n 4 y la salida ser1G
LA 2B@A E2 .' T EL P5O@EDIOG '/+
EJercicio resuelto No. &&
#a$er un al,orit%o <ue $al$ule el valor &ro%edio, la varianza y la desvia$i(n t&i$a de un
,ru&o de datos &ositivos, dis&uestos de a uno &or re,istro
An:lisis
Datos 2e entra2a
O Cada uno de los datos del ,ru&o
Datos 2e sali2a
O El &ro%edio
O La varianza
O La desvia$i(n t&i$a
Proceso
Analizando el enun$iado ve%os <ue no se di$e $u1ntos son los datos <ue 6ay en el ,ru&o,
&or lo tanto es ne$esario i%&le%entar un es<ue%a $ualitativo y $ontar los valores del
,ru&o, ya <ue es un valor ne$esario &ara &oder $al$ular los datos de salida Co%o los
datos de entrada son &ositivos se 6ar1 un $i$lo @IENT5A2 <ue re&ita la le$tura y
&ro$eso de $ada dato, sie%&re <ue el valor ledo sea %ayor <ue $ero No se &odr1 utilizar
un $i$lo PA5A ya <ue se des$ono$e el l%ite final, y la $antidad de valores del ,ru&o
El &ro%edio es i,ual a
=
N
" i
i
KN !
Donde !i son $ada uno de los valores y N la $antidad de 3stos Por lo tanto es ne$esario,
&ri%ero, $al$ular la su%a de los valores y, $o%o ya se di8o, la $antidad de 3stos
La varianza es i,ual a
=
N
" i
'
i
"C K?N &ro%edioC ?!
Co%o se ve en la f(r%ula, &ara $al$ular la varianza se obtiene &revia%ente el &ro%edio,
&ara lo $ual es ne$esario su%ar $ada uno de los datos Para el $1l$ulo de la varianza
ta%bi3n se ne$esitan los datos del ,ru&o Para no volverlos a entrar, 3stos se ,uardar1n en
un arre,lo lineal $uando se est3 $al$ulando el &ro%edio, de tal %anera <ue $uando se
$al$ule la varianza 3stos est1n en %e%oria y no 6aya ne$esidad de leerlos sino de
utilizarlos dire$ta%ente Al for%ar el ve$tor $ono$e%os la $antidad de valoresI lue,o &ara
utilizar los ele%entos de 3ste, basta $on i%&le%entar un $i$lo desde " 6asta el ta%aFo del
ve$tor, <ue en este $aso &uede ser un $i$lo PA5A
Cuando se for%e el ve$tor 6ay <ue tener $uidado, &ara <ue el >lti%o valor ledo, $ero en
este $aso, no 6a,a &arte del arre,lo, ya <ue no es un valor del ,ru&oI esto se &uede 6a$er
de dos for%asG dis%inuyendo en uno el ta%aFo del arre,lo si 3ste se en$uentra
dire$ta%ente en la instru$$i(n de le$tura, o utilizando una variable <ue al%a$ene $ada
dato ledo y lue,o &asando su $ontenido al ve$tor y <ue $uando to%e el valor $ero
ter%ine el $i$lo de entrada
De0inicin 2e 7aria.les
DATOG Cada uno de los valores del ,ru&o
NG Contador de valores e ndi$e del ve$tor, <ue al final del $i$lo de entrada
de datos tendr1 al%a$enado el ta%aFo del ve$tor
!G No%bre del ve$tor
2B@A"G 2u%atoria de los valores &ara el $1l$ulo del &ro%edio
P5O@G Pro%edio del ,ru&o de datos
IG ;ariable de $ontrol del $i$lo PA5A
2B@A'G 2u%atoria &ara $al$ular la varianza Puede utilizarse la %is%a variable
2B@A"m
;A5G ;arianza del ,ru&o de valores
D TG Desvia$i(n t&i$a
Al/orit3o
NCO
N, SUMA1, SUMA2 = 0
LEA: DATO
MENTRAS DATO <> 0 HAGA
SUMA1 = SUMA1 + DATO
N = N +1
X[N] = DATO
LEA: DATO
FN_MENTRAS
PROM = SUMA1 / N
PARA = 1, N, 1 HAGA
SUMA2 = SUMA2 + (X[] - PROM)**2
FN_PARA
VAR = SUMA2 / (N -1)
DT = VAR
ESCRBA: "PROMEDO =", PROM, "VARANZA =", VAR,
"DESVACON TPCA =", DT
FN_NCO
Prue.a 2e escritorio
La &rueba se 6ar1 teniendo en $uenta el si,uiente ar$6ivo de datosG
/
"
+
"/
*
0
)
5e,istro $entinela
N 2B@A" 2B@A' DATO I ! P5O@;A5 DT
!t"u !t'u !t*u !t)u !t+u !t0u
/ / / ) " ) 0 * "/ + " ).* 4*- */0
" ) /0..4 0 '
' "/ '/+-. * *
* "* +)/0- "/ )
) '* *'"++0 + +
+ '. *'"0)+ " 0
0 '4 )0.**) / -
!ali2a
P5O@EDIOG ).* ;A5IANYAG 4*- DE2;IACIDN TjPICAG */0
EJercicio resuelto No. &'
Elaborar un al,orit%o <ue for%e dos ve$tores A y B de N y @ ele%entos res&e$tiva%ente
y for%e un nuevo arre,lo C, $on los ele%entos <ue $orres&ondan a la uni(n de A y B La
uni(n de A y B son los ele%entos del ve$tor A <ue no est1n en el ve$tor B Los ve$tores
no tienen ele%entos re&etidos A y B tienen %17i%o '/ ele%entos
An:lisis
Datos 2e entra2a
O El ta%aFo del arre,lo A
O El ta%aFo del arre,lo B
O Los ele%entos del ve$tor A
O Los ele%entos del ve$tor B
Datos 2e sali2a
O Los ele%entos del ve$tor C
Proceso
Co%o se $ono$e la $antidad de ele%entos de $ada uno de los dos ve$tores, &ara su le$tura
se utiliza un es<ue%a $uantitativo Lue,o se &asan los ele%entos del ve$tor A al nuevo
ve$tor C y se 6a$e un $i$lo e7terno <ue re$orra los ele%entos del ve$tor B y uno interno
<ue re$orra los ele%entos del ve$tor A, bus$ando $ada ele%ento de B en A, si un
ele%ento de B no se en$uentra en A enton$es se &asa al ve$tor C
De0inicin 2e 7aria.les.
NG N>%ero de ele%entos del ve$tor A
@G N>%ero de ele%entos del ve$tor B
A, B y CG No%bre de los tres ve$tores
NECG N>%ero de ele%entos del ve$tor C
I, XG ;ariables de $ontrol de $i$los
Al/orit3o
NCO
LEA: N, M
PARA = 1, N, 1 HAGA
LEA: A[]
FN_PARA
PARA K = 1, M, 1 HAGA
LEA: B[K]
FN_PARA
PARA = 1, N HAGA
C[] = A[]
FN_PARA
NEC = N
PARA K = 1, M, 1 HAGA
= 1
MENTRAS ( <= N) (B[K] <> A[]) HAGA
= + 1
FN_MENTRAS
S > N ENTONCES
NEC = NEC + 1
C[NEC] = B[K]
FN_S
FN_PARA
PARA = 1, NEC, 1 HAGA
ESCRBA: C[]
FN_PARA
FN_NCO
EJercicio resuelto No. &(
Elaborar un sub&ro,ra%a <ue en$uentre la &osi$i(n del %ayor ele%ento de un ve$tor de
ta%aFo N
An:lisis
Par:3etros 2e reci.o
O El ta%aFo del ve$tor
O Los ele%entos del ve$tor
Par:3etros 2e en7o
O La &osi$i(n <ue o$u&a el %ayor de los ele%entos del arre,lo
Proceso
Para en$ontrar la &osi$i(n <ue o$u&a el %ayor ele%ento del ve$tor es ne$esario re$orrer
todo el arre,lo, &or lo $ual el sub&ro,ra%a se le debe enviar &or &arte del %(dulo <ue lo
invo<ue el ta%aFo y todos los valores del ve$torI este envo se debe 6a$er a trav3s del
no%bre del ve$tor sin subndi$e En el $aso de <ue el no%bre del arre,lo se le a$o%&aFe
de un ndi$e <uiere de$ir <ue s(lo es transferido el valor del ele%ento <ue rela$ione el
ndi$e
Para en$ontrar esta &osi$i(n se asu%e <ue el &ri%er ele%ento es el %ayor y se re$orre el
ve$tor a &artir de la &osi$i(n ' en adelante, $a%biando el valor de la &osi$i(n $ada vez
<ue se en$uentre un ele%ento de %ayor &eso
Clase de sub&ro,ra%aG :BNCIDN
No%breG PO2@AT
De0inicin 2e 7aria.les
NG Ta%aFo del ve$tor
;ECG No%bre asi,nado al ve$tor
PO2@G Lu,ar dentro del arre,lo donde se en$uentra el valor %ayor
@ATO5G ;ariable <ue al%a$ena el valor %ayor del arre,lo
IG ;ariable de $ontrol de $i$lo
!u.al/orit3o
FUNCN POSMAY (N, VEC)
MAYOR = VEC[1]
POSM = 1
PARA = 2, N, 1 HAGA
S MAYOR < VEC[] ENTONCES
MAYOR = VEC[]
POSM =
FN_S
FN_PARA
RETORNE POSM
FN_POSMAY
EJercicio resuelto No. &)
Elaborar un al,orit%o <ue invo<ue el sub&ro,ra%a anterior
An:lisis
Datos 2e entra2a
O El ta%aFo del ve$tor
O El ve$tor
Datos 2e sali2a
O La &osi$i(n <ue o$u&a el %ayor ele%ento del ve$tor
Proceso
@ediante un $i$lo $uantitativo se lee el ve$tor, se lla%a a la fun$i(n PO2@AT &ara <ue
bus<ue la &osi$i(n del valor %ayor y se i%&ri%e di$6o valor
De0inicin 2e 7aria.les
T;G Ta%aFo del ve$tor
AG No%bre del ve$tor
PO2@ATO5G Posi$i(n <ue o$u&a el valor %ayor
IG ;ariable de $ontrol del $i$lo
Al/orit3o
NCO
LEA: TV
PARA = 1, TV, 1 HAGA
LEA: A[]
FN_PARA
POSMAYOR = POSMAY (TV, A)
ESCRBA: "EL VALOR MAYOR EST EN LA POSCN:",
POSMAYOR
FN_NCO
EJercicio resuelto No. &*
Elaborar un sub&ro,ra%a <ue lea un ve$tor de N ele%entos
An:lisis
Par:3etros 2e reci.o
O Ta%aFo del ve$tor ?debe ser &ro&or$ionado &or el usuarioCG N
Par:3etros 2e en7o
O El ve$tor ledoG ;EC
Proceso
Co%o se $ono$e el n>%ero de ele%entos del ve$tor, se e%&lea un es<ue%a $uantitativo
Clase de sub&ro,ra%aG P5OCEDI@IENTO ?Enva %1s de un valorC
No%breG LEE5_;EC
-aria.les localesH
#G ;ariable de $ontrol del $i$lo de entrada
!u.al/orit3o
PROCEDMENTO LEER_VEC (N, VEC)
PARA H = 1, N, 1 HAGA
LEA: VEC[H]
FN_PARA
FN_LEER_VEC
EJercicio resuelto No. 'I
Elaborar un sub&ro,ra%a <ue i%&ri%a un ve$tor de ta%aFo N
An:lisis
Par:3etros 2e reci.o
O El ta%aFo del ve$torG N
O El ve$torG ;EC
Par:3etros 2e en7o
No 6ay ?Los valores no los devuelve a <uien lo lla%a, sino <ue los enva a un %edio
e7terno de salidaC
Proceso
Los ele%entos se %uestran %ediante un es<ue%a $uantitativo
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG I@P5I@I5_;EC
-aria.les locales
#G ;ariable de $ontrol del $i$lo
!u.al/orit3o
PROCEDMENTO MPRMR_VEC (N, VEC)
PARA H = 1, N, 1 HAGA
ESCRBA: VEC[H]
FN_PARA
FN_MPRMR_VEC
).1.1. Operaciones .:sicas con arre/los
O B>s<ueda
O Ordena$i(n
O Inser$i(n
O Borrado
"Rs@ue2a
La b>s<ueda $onsiste en en$ontrar un deter%inado valor dentro de un $on8unto de datos, &ara
re$u&erar al,una infor%a$i(n aso$iada $on el valor bus$ado
E7isten diferentes for%as de 6a$er esta o&era$i(nG
O B>s<ueda 2e$uen$ial o lineal
O B>s<ueda Binaria
O B>s<ueda #A2#
O Erboles de b>s<ueda
%1s"ueda secuencial. Es una t3$ni$a sen$illa &ara bus$ar un ele%ento dentro de un arre,lo,
y $onsiste en re$orrer todo el ve$tor ele%ento a ele%ento desde el &ri%ero 6asta el ulti%o 2i se
en$uentra el valor bus$ado, el &ro$eso devolver1 la &osi$i(n donde se en$uentra di$6o ele%ento,
de lo $ontrario se enviar1 un %ensa8e <ue infor%e <ue el valor bus$ado no se en$uentra dentro
del arre,lo
EJercicio resuelto No. '1
Elaborar un sub&ro,ra%a <ue bus<ue en for%a se$uen$ial un ;ALO5 dentro de un
arre,lo de N ele%entos
An:lisis.
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG N
O El ve$tor donde se 6ar1 la b>s<uedaG ;EC
O El valor a bus$arG ;ALO5B
Par:3etros 2e en7o.
O La &osi$i(n donde se en$uentra el valor bus$ado o $ero si no se
en$uentraG I
Proceso.
@ediante un $i$lo $uantitativo se bus$ar1 el valor dentro del ve$tor ele%ento a ele%ento
y si se da una $oin$iden$ia se ro%&e el $i$lo
Clase de sub&ro,ra%aG :BNCIDN
No%breG Bq2ABEDA2EC
-aria.les locales
IG ;ariable de $ontrol del $i$lo de b>s<ueda, ser1 el valor enviado &or la
fun$i(n, si el valor bus$ado se en$uentra
!u.al/orit3o
FUNCN BUSQUEDASEC (N, VEC, VALORB)
= 1
MENTRAS(<=N) (VALORB<> VEC[]) HAGA
= + 1
FN_MENTRAS
S <= N ENTONCES
RETORNE
SNO
RETORNE 0
FN_S
FN_BSQUEDA_SEC
EJercicio resuelto No. '2
Elaborar un al,orit%o <ue use el sub&ro,ra%a anterior &ara deter%inar si se en$uentra o
no un deter%inado ;ALO5 dentro de los ele%entos de un ve$tor de ta%aFo N
An:lisis
Datos 2e entra2a
O El ta%aFo del ve$torG N
O El ve$torG ;EC
O El valor a bus$arG ;ALO5B
Datos 2e sali2a
O Bn %ensa8e <ue di,a si el valor bus$ado se en$uentra o no dentro del
ve$tor
Proceso
2e usar1n los sub&ro,ra%as LEE5_;EC T Bq2ABEDA2EC &ara leer el ve$tor y
efe$tuar la b>s<ueda del valor
De0inicin 2e 7aria.les
IG ;ariable de $ontrol del $i$lo
PO2ICIDNG ;ariable donde se re$ibe el valor devuelto &or la fun$i(n
Al/orit3o
NCO
LEA: N
LEER_VEC (N, VEC)
LEA: VALORB
POSCON = BUSQUEDASEC (N, VEC, VALORB)
S POSCON <> 0 ENTONCES
ESCRBA: "EL VALOR", VALORB, "ESTA EN LA POSCON",
POSCN, "DEL VECTOR"
SNO
ESCRBA: "EL VALOR ", VALORB, " NO SE ENCUENTRA EN
EL VECTOR"
FN_S
FN_NCO
%1s"ueda binaria. Note <ue en la b>s<ueda se$uen$ial, $uando no se en$uentra el valor
bus$ado, en el $aso &eor, 6ay <ue re$orrer todo el ve$tor Esto 6a$e <ue el &ro$eso no ten,a ,ran
efi$ien$ia, sobre todo $uando el ta%aFo del ve$tor es %uy ,rande El %3todo de b=s.ueda
binaria, $onsiste en dividir el ve$tor en dos &artes y $o%&arar el valor bus$ado $on el ele%ento
<ue est1 en la %itad del arre,lo, si no 6ay $oin$iden$ia enton$es se deter%ina si el valor
bus$ado est1 en la &ri%era %itad del arre,lo o en la se,unda %itad, eli%inando $on ello la
b>s<ueda en $ual<uiera de las dos %itades 2e $o,e la %itad donde &osible%ente se en$uentra el
valor bus$ado y se re&ite la %is%a $o%&ara$i(n arriba %en$ionada Con esta nueva
$o%&ara$i(n se eli%ina nueva%ente la %itad de los datos <ue <uedaron El &ro$eso $ontin>a
6asta <ue se d3 una $oin$iden$ia, o se &ueda de$ir <ue el valor bus$ado no est1 en el ve$tor
Para &oder 6a$er b>s<ueda binaria &ri%ero 6ay <ue ordenar el ve$torI si el ve$tor no est1
ordenado, no se &uede deter%inar en $u1l de las %itades se en$uentra el valor <ue se desea
bus$ar
EJercicio resuelto No. '#
Elaborar un sub&ro,ra%a <ue 6a,a b>s<ueda binaria de un ;ALO5 en un ve$tor
&revia%ente ordenado
An:lisis
Par:3etros 2e reci.o
O Ta%aFo del ve$torG N
O El ve$tor ordenado A
O El valor a bus$ar dentro del arre,loG ;ALO5BB2CADO
Par:3etro 2e en7o
O La &osi$i(n donde se en$uentra el valor bus$ado o $ero si no se
en$uentra
Proceso
El arriba %en$ionado
Clase de sub&ro,ra%aG :BNCIDN
No%breG BB2ABEDABIN
-aria.les locales
PG L%ite ini$ial de la se$$i(n del ve$tor donde se 6a$e la b>s<ueda
BG L%ite final de la se$$i(n del ve$tor donde se 6a$e la b>s<ueda
2LG Bandera usada &ara ro%&er el $i$lo
@ITADG Parte $entral del ve$tor
!u.al/orit3o
FUNCON BUSQUEDABN (N, A, VALORBUSCADO)
P = 1
U = N
SW = 0
MENTRAS (P <= U) (SW =0) HAGA
MTAD = [[(P + U) / 2]] //Toma la parte entera de (P + U) / 2
S A[MTAD] = VALORBUSCADO ENTONCES
SW = 1
SNO
S VALORBUSCADO < A[MTAD] ENTONCES
U = MTAD - 1
SNO
P = MTAD + 1
FN_S
FN_S
FN_MENTRAS
S VALORBUSCADO = A[MTAD] ENTONCES
RETORNE MTAD
SNO
RETORNE 0
FN_S
FN_BUSQUEDA_BN
Or2enacin
La ordena$i(n se refiere a la o&era$i(n de or,anizar los ele%entos de un ve$tor en al,>n
orden dadoG as$endente o des$endente 2i el ordena%iento es $re$iente o as$endente, si,nifi$a
<ue 6ay <ue or,anizar sus ele%entos de tal %anera <ueG
At"u a At'u a At*u a At)u a AtNu
2i el ordena%iento es as$endente si,nifi$ar <ueG
At"u b At'u b At*u b At)u b AtNu
E7isten diferentes %odelos &ara or,anizar los ele%entos de un arre,loG
Los %3todos %as $o%unes sonG
O @NTODO DE BB5BBJA
O @NTODO DE BB5BBJA @EJO5ADO
O O5DENACIDN PO5 2ELECCIDN
O IN2E5CIDN O @NTODO DE LA BA5AJA
O 2#ELL
O BIN2O5T O PO5 B5NA2
O PO5 @ONTICBLO2 O #EAP2O5T
O PO5 @EYCLA O @E59E2O5T
O @ETODO DE LA 2ACBDIDA O 2#ACXE52O5T
O 5APID 2O5T O ABICX 2O5T
O PO5 E5BOLE2
;a%os a desarrollar al,unos de los &rin$i&ales %3todos de or,aniza$i(n de los ele%entos de
un arre,lo
2rdenacion por burbuja. Es un %3todo &o$o efi$iente 2e basa en $o%&arar ele%entos
adya$entes del ve$tor e inter$a%biar sus valores, si est1n desordenados Los valores %1s
&e<ueFos burbu8ean 6a$ia el ini$io del ve$tor ?ordena$i(n as$endenteC, %ientras <ue los valores
%1s ,randes $o%ienzan a subir 6a$ia la &arte final del ve$tor Por e8e%&lo, se $o%&ara At"U $on
At'uI si est1n desordenados se inter$a%bian At"u $on At'u y as su$esiva%ente a lo lar,o del
ve$tor Al ter%inar la &ri%era &asada, el ele%ento %ayor se en$uentra al final y el %enor 6a ido
des$endiendo 6a$ia el &rin$i&io del ve$tor 2e vuelve a 6a$er una nueva e7&lora$i(n,
$o%&arando ele%entos $onse$utivos e inter$a%biando Pero esta vez el ele%ento %ayor no se
$o%&ara ?est1 en su &osi$i(n $orre$taC El ve$tor <uedar1 ordenado $uando se 6ayan 6e$6o NJ"
&asadas 2i los valores del ve$tor sonG
./ ++ *+ '" "+ ;ECTO5 O5I9INAL DE TA@AwO + ?NC
++ ./ *+ '" "+
++ *+ ./ '" "+
++ *+ '" ./ "+
++ *+ '" "+ ./
2e ne$esitaron ) $o%&ara$iones ?NJ"C &ara $olo$ar el valor %ayor de >lti%o
En la se,unda &asada o$urrir1 lo si,uienteG
*+ ++ '" "+ ./
*+ '" ++ "+ ./
*+ '" "+ ++ ./
Ter$era &asadaG
'" *+ "+ ++ ./
'" "+ *+ ++ ./
Cuarta &asadaG
"+ '" *+ ++ ./
En total se ne$esitaron $uatro &asadas &ara ordenar un ve$tor de + ele%entos
EJercicio resuelto No. '$
Elaborar un sub&ro,ra%a <ue ordene un ve$tor &or el %3todo de la BB5BBJA
An:lisis
Par:3etros 2e reci.o
O Ta%aFo del ve$torG N
O El ve$torG A
Par:3etros 2e en7o
O ;e$tor A ordenado ?2er1 &ar1%etro de re$ibo y de envoC
Proceso
El arriba e7&li$ado
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG O5DENBB5BBJA
-aria.les locales
I, JG ;ariables de $ontrol de $i$los
AB!G ;ariable <ue al%a$ena te%&oral%ente uno de los dos valores a
inter$a%biar
!u.al/orit3o
PROCEDMENTO ORDENBURBUJA (N, A)
PARA =1, N-1, 1 HAGA
PARA J =1, N-, 1 HAGA
S A[J] > A[J+1] ENTONCES
AUX = A[J]
A[J] = A[J+1]
A[J+1] = AUX
FN_S
FN_PARA
FN_PARA
FN_ORDENBURBUJA
2rdenacin por burbuja mejorado. Este %3todo es efi$iente $uando los valores del ve$tor
se en$uentran ordenados o se%iordenados 2e basa en el %is%o &ro$eso anterior, &ero si en una
&asada no o$urren inter$a%bios <uiere de$ir <ue el ve$tor esta ordenado, &or lo tanto 6ay <ue
i%&le%entar un %e$anis%o &ara detener el &ro$eso $uando o$urra una &asada sin inter$a%bios
EJercicio resuelto No. '&
Elaborar un sub&ro,ra%a <ue ordene un ve$tor &or el %3todo de burbu8a %e8orado
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG T;
O El ve$torG A
Par:3etros 2e en7o
O ;e$tor A ordenado ?2er1 &ar1%etro de re$ibo y de envoC
Proceso
El sub&ro,ra%a se 6a$e $on la instru$$i(n 5EPETI5 y una variable ti&o bandera <ue
ro%&a el $i$lo si no se dete$tan inter$a%bios en una &asada
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG O5DENBB5BBJA_@EJO5ADO
-aria.les locales
I, JG ;ariables de $ontrol de $i$los
AB!G ;ariable <ue al%a$ena te%&oral%ente uno de los dos valores a
inter$a%biar
BANG ;ariable ti&o bandera <ue se usa &ara ro%&er el $i$lo
!u.al/orit3o
PROCEDMENTO ORDENBURBUJA_MEJORADO (TV, A)
= 1
REPTA
BAN = 1
PARA J = 1, TV - , 1 HAGA
S A[J] > A[J+1] ENTONCES
AUX = A[J]
A[J] = A[J+1]
A[J+1] = AUX
BAN = 0
FN_S
FN_PARA
= + 1
MENTRAS BAN < > 1
FN_ORDENBURBUJA_MEJORADO
2rdenamiento por seleccin. Este %3todo se basa en bus$ar el %enor valor de todo el ve$tor
e inter$a%biarlo $on el ele%ento <ue se en$uentra en la &osi$i(n uno Para en$ontrar este valor
se asu%e <ue el %enor de todo del ,ru&o es el <ue est1 en la &osi$i(n uno, y se re$orre todo el
ve$tor a &artir de la &osi$i(n dos en adelanteI $uando se en$uentre un valor %enor <ue 3l, se le
$a%bia el valor a la variable donde se 6a ,uardado el su&uesto %enor Lue,o se bus$a el
se,undo %enor asu%iendo <ue es el ele%ento ubi$ado en la &osi$i(n dos, y se re$orre todo el
ve$tor a &artir de la &osi$i(n tres en adelante, 6a$iendo el $a%bio res&e$tivo $uando se
en$uentre un valor %enor <ue 3l Bna vez en$ontrado el se,undo %enor se inter$a%bia $on el
valor ubi$ado en la &osi$i(n dos del ve$tor El &ro$eso de b>s<ueda de %enores se 6a$e NJ"
ve$es
Por $ada %enor bus$ado 6ay <ue ,uardar en una variable la &osi$i(n donde se en$uentra ese
%enor
E8e%&lo 2i el ve$tor a ordenar esG "/ '/ " * / su$edera lo <ue se %uestra en el si,uiente
,r1fi$o
PA2O ACCIDN At"u At'u At*u At)u At+u
"
2e inter$a%bia el &ri%er %enor $on
la &osi$i(n uno
"/V '/ " * /V
'
2e inter$a%bia el se,undo %enor
$on la &osi$i(n dos
/ '/V "V * "/
*
2e inter$a%bia el ter$er %enor $on la
&osi$i(n tres
/ " '/V *V "/
)
2e inter$a%bia el $uarto %enor $on
la &osi$i(n $uatro
/ " * '/V "/V
Aueda ordenado el ve$tor / " * "/ '/
Note <ue des&u3s del $uarto inter$a%bio el ele%ento ubi$ado en la &osi$i(n $in$o, de &or s
<ueda ordenadoI ade%1s no 6ay %1s ele%entos $on <uien $o%&ararlo se ter%ina el &ro$eso,
des&u3s de 6a$er NJ" inter$a%bios, o bus$ado NJ" %enores
EJercicio resuelto No. ''
Elaborar un sub&ro,ra%a <ue ordene un ve$tor &or el %3todo de sele$$i(n
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG N
O El ve$torG A
Par:3etros 2e en7o
O ;e$tor A ordenado ?2er1 &ar1%etro de re$ibo y de envoC
Proceso
2e ne$esitan dos estru$turas ti&o $i$loG un $i$lo e7terno <ue bus<ue los NJ" %enoresI esta
b>s<ueda se 6a$e utilizando una variable <ue al%a$ene ese valor %enor y otra <ue ,uarde
la &osi$i(n donde est1 ubi$ado El otro $i$lo interno bus$a los %enores Para la b>s<ueda
del &ri%er %enor se su&one <ue el valor ubi$ado en la &osi$i(n uno es el %enor, es de$ir,
se asi,na este valor a la variable <ue al%a$enar1 el %enor y, se i%&le%enta el se,undo
$i$lo o $i$lo interno desde la &osi$i(n si,uiente donde se su&one est1 el %enor 6asta N, y
se e%&ieza a $o%&arar la variable <ue $ontiene el %enor su&uesto $on los ele%entos
si,uientes, a$tualizando su $ontenido $ada <ue se en$uentre un valor inferior al valor <ue
$ontiene la variable Cuando se ter%ina de re$orrer el arre,lo a trav3s del $i$lo interno, se
tiene lo$alizado el valor %enor de todos y el lu,ar donde est1 ubi$adoI enton$es se 6a$e
el inter$a%bio $on la &osi$i(n uno Lue,o se su&one <ue el se,undo %enor es el ubi$ado
en la &osi$i(n dos, se $o%&ara 3ste $on los ele%entos subsi,uientes 6asta en$ontrar este
se,undo %enor y su &osi$i(n y se inter$a%bia $on la &osi$i(n dos, y as su$esiva%ente
Cada <ue se ne$esite 6a$er un inter$a%bio se ,uarda el $ontenido del ele%ento <ue va a
ser ree%&lazado &or el %enor en una variable au7iliar, &ara lue,o trasladarlo al lu,ar
res&e$tivo
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG O5DEN2ELECCIDN
I, MG ;ariables de $ontrol de $i$los
PO2G 9uarda la &osi$i(n donde est1 el %enor
@ENO5G 9uarda el %enor bus$ado
AB!G ;ariable <ue al%a$ena te%&oral%ente uno de los dos valores a inter$a%biar
!u.al/orit3o
PROCEDMENTO ORDENSELECCON (N, A)
PARA = 1, N-1, 1 HAGA
MENOR = A[]
POS =
PARA K = +1, N, 1
S MENOR > A[K] ENTONCES
MENOR = A[K]
POS = K
FN_S
FN_PARA
AUX = A[]
A[] = MENOR
A[POS] = AUX
FN_PARA
FN_ORDENSELECCON
2rdenamiento por insercin directa (baraja). Este %3todo se basa en la t3$ni$a utilizada
&or los 8u,adores de $artas El 8u,ador va ubi$ando $ada $arta en la &osi$i(n $orre$ta El
8u,ador e%&ieza a ordenar sus $artas a &artir de la se,unda $arta <ue le lle,a 2i tiene las $artas
A, J, las $olo$a $o%o J, A ?6a$e el inter$a%bioC La t3$ni$a usada &ara el ordena%iento es ir
insertando $ada uno de los ele%entos a &artir del ele%ento dos en el lu,ar <ue le $orres&onde
&or su valor, lo <ue i%&li$a $orrer todos los valores de la dere$6a una &osi$i(n &ara de8ar
es&a$io El valor <ue se inserta se 6a$e en el lu,ar <ue tena el ulti%o valor des&lazado, y &ara
no borrar su $ontenido se ,uarda en una variable au7iliar
EJercicio resuelto No. '(
Elaborar un sub&ro,ra%a <ue ordene un ve$tor &or el %3todo de la bara8a
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG T;
O El ve$torG A
Par:3etros 2e en7o
O ;e$tor A ordenado ?2er1 &ar1%etro de re$ibo y de envoC
Proceso
El arriba %en$ionado
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG O5DENBA5AJA
-aria.les locales
I, XG ;ariables de $ontrol de $i$los
AB!G ;ariable <ue al%a$ena te%&oral%ente uno de los dos valores a
inter$a%biar
BANG ;ariable ti&o bandera <ue se usa &ara ro%&er el $i$lo
!u.al/orit3o
PROCEDMENTO ORDENBARAJA (TV, A)
PARA K = 2, TV, 1 HAGA
AUX = A[K]
= K
BAN = 0
MENTRAS ( > 1) (BAN = 0) HAGA
S A[-1] > AUX ENTONCES
A[] = A[-1]
= - 1
SNO
BAN = 1
FN_S
FN_MENTRAS
A[] = AUX
FN_PARA
FN_ORDEN_BARAJA
Insercin
Esta o&era$i(n $onsiste en adi$ionar un nuevo ele%ento al arre,lo 2e debe tener en $uenta
<ue no se sobre&ase el ta%aFo dado en la defini$i(n del arre,lo La o&era$i(n &uede darse $on
un arre,lo desordenado u ordenado 2i el arre,lo esta desordenado la o&era$i(n es si%&le, se
in$re%enta en uno el n>%ero de ele%entos y en esa &osi$i(n ?NH"C, se inserta el nuevo
ele%ento
EJercicio resuelto No. ')
Elaborar un sub&ro,ra%a <ue inserte un ;ALO5 en un ve$tor desordenado
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG T;
O El ve$torG A
O El valor a insertarG ;IN
Par:3etros 2e en7o
O El ve$tor A $on un ele%ento %1s
O El ta%aFo del ve$tor T; in$re%entado en uno
Proceso
El arriba %en$ionado
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG IN2E5TA5_DE2O5DENADO
-aria.les locales
No tiene
!u.al/orit3o
PROCEDMENTO NSERTAR_DESORDENADO (TV, A, VN)
TV = TV+1
A[TV] = VN
FN_NSERTAR_DESORDENADO.
2i el arre,lo esta ordenado, 6ay <ueG
O Bus$ar el lu,ar dentro del arre,lo donde debe insertarse el nuevo valor &ara <ue el arre,lo
$ontin>e ordenado
O Correr todos los ele%entos del ve$tor una &osi$i(n 6a$ia la iz<uierda, &ara abrirle es&a$io al
nuevo ele%ento, a &artir del lu,ar donde debe insertarse el nuevo dato
O Insertar el nuevo ele%ento del ve$tor en el es&a$io <ue le $orres&onde
EJercicio resuelto No. '*
Elaborar un sub&ro,ra%a <ue inserte un nuevo ele%ento en un ve$tor ordenado
as$endente%ente
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG T;
O El ve$torG A
O El valor a insertarG ;ALIN
Par:3etros 2e en7o
O ;e$tor A $on un ele%ento %1s
O Ta%aFo del ve$tor T; in$re%entado en uno
Proceso
El arriba %en$ionado
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG IN2E5TA5_O5DENADO
-aria.les locales
IG ;ariable de $ontrol del $i$lo de b>s<ueda
XG ;ariable <ue $ontrola el $i$lo <ue 6a$e el des&laza%iento de los eleJ
%entos
!u.al/orit3o
PROCEDMENTO NSERTAR_ORDENADO (TV, A, VALN)
= 1
MENTRAS ( <= TV) (VALN > A[]) HAGA
= + 1
FN_MENTRAS
TV = TV + 1
PARA K = TV, + 1, -1 HAGA
A[K] = A[K-1]
FN_PARA
A[] = VALN
FN_NSERTAR_ORDENADO
"orra2o
Es eli%inar un ele%ento del arre,loI &uede darse $uando el arre,lo esta desordenado u
ordenado Para 6a$er el &ro$eso 6ay <ueG
O ;erifi$ar <ue el arre,lo no est3 va$o
O Bus$ar la &osi$i(n donde se en$uentra el ele%ento a borrar
O Correr los ele%entos una &osi$i(n 6a$ia la iz<uierda, a &artir de la &osi$i(n si,uiente donde
se en$uentra el valor a borrar
O Dis%inuir el n>%ero de ele%entos del ve$tor en uno
O Enviar un %ensa8e en $aso de <ue el ele%ento a borrar no est3 dentro del arre,lo
EJercicio resuelto No. (I
Elaborar un sub&ro,ra%a <ue borre un ele%ento en un ve$tor ordenado o desordenado
An:lisis
Par:3etros 2e reci.o.
O Ta%aFo del ve$torG T;
O El ve$torG A
O El valor a borrarG ;ALO5B
Par:3etros 2e en7o
O ;e$tor A $on un ele%ento %enos
O Ta%aFo del ve$tor T; dis%inuido en uno
Proceso
El arriba %en$ionado
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG BO55A5_ELE@ENTO
-aria.les locales
IG ;ariable de $ontrol del $i$lo de b>s<ueda
XG ;ariable <ue $ontrola el $i$lo <ue 6a$e el des&laza%iento de los ele%entos
!u.al/orit3o
PROCEDMENTO BORRAR_ELEMENTO (TV, A, VALORB)
= 1
MENTRAS ( <= TV) (VALORB <> A[] HAGA
= + 1
FN_MENTRAS
S <= TV ENTONCES
PARA K = , TV-1, 1 HAGA
A[K] = A[K+1]
FN_PARA
TV = TV - 1
SNO
ESCRBA: VALORB, " NO ESTA EN EL ARREGLO "
FN_S
FN_BORRAR_ELEMENTO
EJercicio Resuelto No. (1
Elaborar un al,orit%o <ue lea un ve$tor de N ele%entos $on Na"// y $onstruya un
@ENq <ue &er%itaG
" Leer un ve$tor de ta%aFo N
' I%&ri%ir el ve$tor
* Insertar un valor en el ve$tor
) Ordenar el ve$tor en for%a as$endente &or $ual<uiera de los %3todos de
ordena$i(n e7&uestos
+ Insertar un nuevo ele%ento sin daFar el ordena%iento
0 Bus$ar un valor en el arre,lo &or el %3todo de b>s<ueda binaria
- Borrar un ele%ento del ve$tor
An:lisis
Datos 2e entra2a
O El ta%aFo del ve$tor
O Los ele%entos del ve$tor
O El valor a insertar $uando el ve$tor est1 desordenado
O El valor a insertar $uando el ve$tor est1 ordenado
O El valor a bus$ar
O El valor a borrar
Datos 2e sali2a
O El ve$tor, $ada vez <ue el usuario lo <uiera ver
Proceso
Todo lo &edido en el al,orit%o ya se 6a 6e$6o en los sub&ro,ra%as anteriores, de tal
%anera <ue se 6ar1 uso de ellos ?Todos est1n $odifi$ados en la librera LIB;EC#C
-aria.les
NG El ta%aFo del ve$tor
AG El no%bre del ve$tor
;IN"G El &ri%er valor a insertar
;IN'G El se,undo valor a insertar
;ALBB2G El valor a bus$ar
;ALBOG El valor a borrar
OPCIDNG 2ele$$i(n a to%ar dentro del @ENq
OPCIDN"G @3todo de ordena%iento sele$$ionado
5E2PG 5es&uesta <ue devuelve la fun$i(n BB2ABEDABIN
2I9AG To%a de de$isi(n s re,resa o no al @ENq &rin$i&al
Al/orit3o
NCO
LEA: N
REPTA
ESCRBA: "1: LEER EL VECTOR"
ESCRBA: "2: MPRMR EL VECTOR"
ESCRBA: "3: NSERTAR DESORDENADO"
ESCRBA: "4: ORDENAR EL VECTOR"
ESCRBA: "5: NSERTAR ORDENADO"
ESCRBA: "6: BUSCAR UN VALOR"
ESCRBA: "7: BORRAR UN ELEMENTO"
ESCRBA: "8: SALR"
ESCRBA: "ELJA SU OPCN"
LEA: OPCN
CASOS DE OPCN:
CASO 1: LEER_VEC (N, A)
CASO 2: MPRMR_VEC (N, A)
CASO 3: LEA: VN1
NSERTAR_DESORDENADO(N,A,VN1)
CASO 4:
REPTA
ESCRBA: "1: BURBUJA"
ESCRBA:"2: BURBUJA_MEJORADO"
ESCRBA: "3: SELECCN"
ESCRBA: "4: BARAJA"
ESCRBA: "5: VOLVER AL MEN PPAL"
ESCRBA: "ELJA MTODO DE
ORDENAMENTO"
LEA: OPCN1
CASOS DE OPCON1
CASO 1:
ORDENBURBUJA
(N, A)
CASO 2:
ORDENBURBUJA_
MEJORADO (N, A)
CASO 3:
ORDENSELECCN
(N, A)
CASO 4:
ORDENBARAJA
(N, A)
CASO 5: ESCRBA:
"REGRESA AL MEN
PRNCPAL"
FN_CASOS
MENTRAS OPCN1 <> 5
CASO 5: LEA VN2
NSERTAR_ORDENADO (N, A, VN2)
CASO 6: LEA: VALBUS
RESP = BSQUEDABN
(N, A, BALBUS)
S RESP <> 0 ENTONCES
ESCRBA:VALBUS,"
EST EN LA
POSCN.",
RESP, "DEL VECTOR"
SNO
ESCRBA: VALBUS."
NO EST DENTRO DEL
VECTOR"
FN_S
CASO 7: LEA: VALBO
BORRAR_ELEMENTO(N.A,VALBO)
CASO 8: ESCRBA: "EST SEGURO QUE DESEA
SALR S/N?"
LEA: SGA
S SGA = 'N' ENTONCES
OPCN = 1
FN_S
FN_CASOS
MENTRAS OPCN <> 8
FN_NCO
EJericicio resuelto No. (2
DiseFar un sub&ro,ra%a <ue dado un ve$tor <ue &ueda $ontener ele%entos du&li$ados
diferentes de $ero, le ree%&la$e $ada ele%ento re&etido &or un $ero y en$uentre el
n>%ero de %odifi$a$iones realizados
An:lisis
Par:3etros 2e reci.o
O El ta%aFo del ve$tor
O El ve$tor $on ele%entos re&etidos
Par:3etros 2e en7o
O El ve$tor $on los ele%entos re&etidos ree%&lazados &or $eros, ser1 un
&ar1%etro tanto de entrada $o%o de salida
O El n>%ero de %odifi$a$iones 6e$6as
Proceso
@ediante un $i$lo e7terno se re$orre el arre,lo desde la &osi$i(n uno 6asta la NJ" y se
$o%&ara el ele%ento uno $on las &osi$iones $o%&rendidas entre dos y N 2i al,>n
ele%ento entre dos y N es i,ual al ele%ento uno, se $a%bia su valor &or $ero y se
in$re%enta el n>%ero de %odifi$a$iones 6e$6asI lo %is%o se 6a$e desde el ele%ento dos
6asta el ele%ento NJ" y as su$esiva%ente
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG CA@BIO
-aria.les locales
NG Ta%aFo del ve$tor
;ECG No%bre del ve$tor
N@G N>%ero de %odifi$a$iones 6e$6as
X, LG ;ariables $ontroladoras de los $i$los
!u.pro/ra3a
PROCEDMENTO CAMBO (N, VEC, NM)
NM = 0
PARA K = 1, N-1, 1 HAGA
PARA L = K+1, N, 1 HAGA
S (VEC[K] = VEC[L]) (VEC[K] <> 0)
VEC[L] = 0
NM = NM+1
FN_S
FN_PARA
FN_PARA
FN_CAMBO
).2. Arre/los 2e 2os 2i3ensiones o 3atrices
Las %atri$es son estru$turas de datos <ue or,anizan su infor%a$i(n en for%a de tablasI es
de$ir, los ele%entos <ue la $onfor%an est1n dis&uestos ba8o dos $on$e&tos de $lasifi$a$i(n ?"ila
! columnaC Para &oder indi$ar el lu,ar donde se en$uentra un deter%inado ele%ento, es
ne$esario utilizar dos ndi$esG uno &ara indi$ar el ren,l(n o fila y otro &ara indi$ar la $olu%na
Puede %irarse una %atriz $o%o un ve$tor de ve$toresI &or lo tanto, es un $on8unto de
$o%&onentes en el <ue se ne$esitan dos subndi$es &ara identifi$ar un ele%ento <ue &ertenez$a
al arre,lo
Bn arre,lo bidi%ensional N V @ tiene N filas y @ $olu%nasI &or lo tanto, tiene N V @
ele%entos dis&uestos interior%ente en %e%oria en for%a su$esiva 9r1fi$a%ente se &uede
re&resentar $o%o una tabla de valores 2i A es una %atriz de + V - se re&resentar1 asG
A
:ila "
:ila '
!
At', )u
:ila *
:ila )
:ila +
Colu%na )
Colu%na +
Colu%na "
Colu%na '
Colu%na 0
Colu%na *
Colu%na -
Colu%na )
El arre,lo anterior tiene *+ ele%entos, todos ellos $on el no%bre A y se diferen$ian entre s
&or dos ndi$esI el &ri%ero indi$a la fila donde est1 ubi$ado el ele%ento y el se,undo la
$olu%na El ele%ento At', )u 6a$e referen$ia al $ontenido del ele%ento ubi$ado en la fila '
$olu%na )
En ,eneral, se &uede de$ir <ue el ele%ento i, 8 de un arre,lo bidi%ensional 6a$e referen$ia al
$ontenido del ele%ento ubi$ado en la fila i, $olu%na 8, dondeG
" a i a n>%ero de filas y " a 8 a n>%ero de $olu%nas
Cual<uier ele%ento del arre,lo &uede referen$iarse en for%a dire$ta, sie%&re <ue al no%bre
del arre,lo se le adi$ionen los dos ndi$es La instru$$i(n LEAG At", "u, At+, -u, At', )u, At+,
*u, At), )u tiene $o%o efe$to entrar + valores al arre,lo AI si estos valores sonG "/, "+, )/, 44 y
", y el al%a$ena%iento interno ser1G
A -
"/
)/
"
+ 44 "+
Los de%1s ele%entos no tendr1n infor%a$i(n
La instru$$i(n E2C5IBAG At+, -u, At', )u &rodu$ir1 la si,uiente salidaG
"+ )/
Para llevar infor%a$i(n a todo el arre,lo se &uede 6a$er de dos for%asG una ser1 llenando
&ri%ero la fila uno, lue,o la fila ', 6asta la fila NI y la otra sera llenando &ri%ero la $olu%na
uno, lue,o la dos y as su$esiva%ente 6asta llenar la $olu%na @, todo de&ender1 de la for%a
$o%o se en$uentren dis&uestos los datos en el ar$6ivo de entrada Por e8e%&loG llevar
infor%a$i(n a una %atriz A de * V ', &or filas
Para resolver el &roble%a se ne$esitan dos $i$los, uno e7terno <ue $ontrole las filas y otro
interno <ue &or $ada valor <ue to%e la variable de $ontrol del $i$lo e7terno re$orra todas las
$olu%nas
El al,orit%o seraG
PARA = 1, 3, 1 HAGA
PARA J = 1, 2, 1 HAGA
LEA: A[, J]
FN_PARA
FN_PARA
2i se utiliza el $i$lo PA5A, o el si,uiente si se utiliza el $i$lo @IENT5A2
= 1 1
MENTRAS <= 3 HAGA
J = 1 2
MENTRAS J <= 2 HAGA
LEA: A[, J] 3
J = J+1 4
FN_MENTRAS
= +1 5
FN_MENTRAS
;ea%os lo <ue su$ede si,uiendo $ada uno de los &asos del anterior al,orit%o, su&oniendo
<ue los valores a entrar sonG
+
"
"/
*
.
)
?ALTA COMPLETAR R8?ICO PA. 2#) LI"RO
2e e8e$uta la instru$$i(n " I,
"
A$tiva el $i$lo @IENT5A2 e7terno, $o%&ara es I a *G sI e8e$uta la instru$$i(n 'I J,
"
A$tiva el $i$lo @IENT5A2 interno, $o%&ara es J aG ' sI e8e$uta las instru$$iones * y )
?*C Lee el ele%ento AtI, Ju ?At", "uC
A
)
?)C In$re%enta J en ", o sea "H"I J,
'
5e,resa a evaluar la $ondi$i(n del $i$lo interno, es ' 'G sI se e8e$utan las instru$$iones * y
)
?*C Lee el ele%ento AtI, Ju ?At", 'uC
A
) .
?)C In$re%enta J en ", o sea 'H"I J,
*
5e,resa a evaluar la $ondi$i(n del $i$lo interno, es * a 'G noI $o%o la $ondi$i(n es falsa
e8e$uta la instru$$i(n +
?+C In$re%enta I en ", o sea "H"I I,
'
5e,resa a evaluar la $ondi$i(n del $i$lo e7terno, es ' a *G s, e8e$uta la instru$$i(n 'I J,
"
A$tiva el $i$lo @IENT5A2 interno, $o%&ara es " a 'G sI se e8e$utan las instru$$iones * y ),
?*C Lee el ele%ento AtI, Ju, ?At', "uC
A
) .
*
?)C In$re%enta J en ", o sea "H"I J,
'
re,resa a evaluar la $ondi$i(n del $i$lo interno, es ' a 'G sI se e8e$utan las instru$$iones * y
)
?*C Lee el ele%ento AtI, Ju, ?At', 'uC
A
) .
* "/
?)C In$re%enta J en ", o sea 'H"I J,
*
5e,resa a evaluar la $ondi$i(n del $i$lo interno, es * a 'G noI $o%o la $ondi$i(n es falsa,
e8e$uta la instru$$i(n +
?+C In$re%enta I en ", o sea 'H"I I,
*
5e,resa a evaluar la $ondi$i(n del $i$lo e7terno, es * a *G s, e8e$uta la instru$$i(n 'I J,
"
A$tiva el $i$lo @IENT5A2 interno, $o%&ara es " ' sI se e8e$utan las instru$$iones * y ),
?*C Lee el ele%ento AtI, Ju, ?At*, "uC
A
) .
* "/
"
?)C In$re%enta J en ", o sea "H"I J,
'
5e,resa a evaluar la $ondi$i(n del $i$lo interno, es ' a 'G sI se e8e$utan las instru$$iones * y
)
?*C Lee el ele%ento AtI, Ju, ?At*, 'uC
A
) .
* "/
" +
?)C In$re%enta J en ", o sea 'H"I J,
*
5e,resa a evaluar la $ondi$i(n del $i$lo interno, es * a 'G noI $o%o la $ondi$i(n es falsa,
e8e$uta la instru$$i(n +
?+C In$re%enta I en ", o sea *H"I I,
)
5e,resa a evaluar la $ondi$i(n del $i$lo e7terno, es ) a *G noI sale del $i$lo e7terno y
ter%ina el &ro$eso
lAu3 $ara$tersti$as no $u%&le el anterior al,orit%om
E7isten varios ti&os de %atri$es
O #atri6 cuadrada. Bna %atriz es $uadrada $uando el n>%ero de filas es i,ual al n>%ero de
$olu%nas Por lo tanto, los ele%entos ubi$ados en la dia,onal &rin$i&al $u%&len <ue la fila
es i,ual a la $olu%na
O #atri6 identidad (* Es ta%bi3n una %atriz $uadrada donde los ele%entos <ue est1n
ubi$ados en la dia,onal &rin$i&al son " y el resto de ele%entos tienen un valor de /
O #atri6 transpuesta. La %atriz trans&uesta A
T
de la %atriz A de $ual<uier orden es a<u3lla en
la $ual las filas de una %atriz son las $olu%nas de la otra
O #atri6 sim/trica. La %atriz si%3tri$a debe $u%&lir la $ondi$i(n de <ue el ele%ento !tI, Xu
S !tX, Iu &ara una %atriz N V @ dondeI " a I a N y
" a X a @
O #atri6 in-ersa. Es una %atriz A <ue se re&resenta &or A
J"
y tal <ue
! V !
Z"
S I, donde I es la %atriz identidad
EJercicio resuelto No. (#
Elaborar un al,orit%o <ue entre los ele%entos &or $olu%nas de una %atriz A de orden N
y lue,o en$uentre la su%a de los ele%entos ubi$ados en la dia,onal &rin$i&al y la su%a
de los ele%entos ubi$ados en la dia,onal se$undaria
Datos 2e entra2a
O El orden de la %atriz ?N>%ero de filas S n>%ero de $olu%nasC
O Los ele%entos de la %atriz
Datos 2e sali2a
O La su%a de los ele%entos de la dia,onal &rin$i&al
O La su%a de los ele%entos de la dia,onal se$undaria
Proceso
Para entrar los datos del arre,lo, &ri%ero se debe $ono$er el orden de la %atriz y lue,o
6a$er dos $i$los ?@IENT5A2 O PA5AC, uno e7terno <ue re$orra las $olu%nas y uno
interno <ue &or $ada valor de las $olu%nas re$orra todas las filas
Co%o ya se di8o, los ele%entos de la dia,onal &rin$i&al $u%&len la $ondi$i(n de <ue la
fila es i,ual a la $olu%naI vea%os es<ue%1ti$a%ente <u3 $ara$tersti$a $u%&len los
ele%entos ubi$ados en la dia,onal se$undaria
A
De a$uerdo $on la fi,ura, los ele%entos ubi$ados en la dia,onal se$undaria sonG el At",
)u, At', *u, At*, 'u, y el At), "u, donde la fila $re$e desde " 6asta N y la $olu%na de$re$e
desde N 6asta "
Esto nos &er%ite ubi$ar el lu,ar donde se en$uentra $ada ele%ento, analizando sus
$ara$tersti$as Por e8e%&lo, son los ele%entos <ue $u%&len <ue la fila %1s la $olu%na es
i,ual a NH" Ta%bi3n se &uede ,enerar utilizando una variable <ue en un &rin$i&io to%e
el valor %17i%o de la $olu%na, a$tivando un $i$lo <ue re$orra las filas desde " 6asta NI
en la %edida <ue $rez$an las filas se de$re%enta di$6a variable en " Otra %anera de
en$ontrarlos es re&resentando las $olu%nas en t3r%inos de las filas Por e8e%&lo, $uando
la fila vale " la $olu%na ?NJ"H"C S N, $uando la fila vale ' la $olu%na vale ?NJ'H"C S NJ
" y, $uando la fila vale N la $olu%na vale ?NJNH"C S "I si se utiliza este %3todo, s(lo ser1
ne$esario un $i$lo y no se ne$esita de una variable adi$ional Ta%bi3n son ne$esarios dos
a$u%uladores donde se su%en, &or se&arado, los ele%entos ubi$ados en $ada una de las
dia,onales
De0inicin 2e 7aria.les
NG Ta%aFo del arre,lo
AG No%bre de la %atriz
I, XG ;ariables $ontroladoras de $i$lo
2B@APG 2u%a de los ele%entos de la dia,onal &rin$i&al
2B@A2G 2u%a de los ele%entos de la dia,onal se$undaria
Al/orit3o
NCO
LEA: N
PARA K = 1, N, 1 HAGA
PARA = 1, N, 1 HAGA
LEA: A[, K]
FN_PARA
FN_PARA
SUMAP, SUMAS = 0
PARA = 1, N, 1 HAGA
SUMAP = SUMAP + A[, ]
SUMAS = SUMAS + A[, N-+1]
FN_PARA
ESCRBA: "SUMA DE LOS ELEMENTOS DE LA DAGONAL PRN-
CPAL", SUMAP, "Y DE LA SECUNDARA", SUMAS
FN_NCO
Prue.a 2e escritorio
2i el orden de la %atriz es ) y los valores de los ele%entos los n>%erosG /, ", ), 0, -, ., 4, "/,
"", "', +, "', -, *, "", y '/, el &ro$eso de for%a$i(n de la %atriz ?entrada de datosC, sera el
si,uienteG
Lue,o del &ro$eso de entrada su$edera lo si,uienteG
N 2B@AP 2B@A2 I
) / / "
/ - '
. "4 *
"* '. )
** *) +
!ali2a
2B@A DE ELE@ENTO2 DE LA
DIA9ONAL P5INCIPALG ** T DE
LA 2ECBNDA5IAG *)
EJercicio resuelto No. ($
#a$er un al,orit%o <ue en$uentre e i%&ri%a la %atriz trans&uesta de una %atriz @AT
An:lisis
Datos 2e entra2a
O N>%ero de filas de la %atriz
O N>%ero de $olu%nas de la %atriz
O Los ele%entos del arre,lo
Datos 2e sali2a
O Los ele%entos de la %atriz trans&uesta
Proceso
La %atriz trans&uesta de la %atriz @AT se en$uentra inter$a%biando las filas &or las
$olu%nas y las $olu%nas &or las filas 2i T@AT es la %atriz trans&uesta de @AT, i%&li$a
enton$es <ue T@AT tJ, Iu @AT tI, Ju
2i el $ontenido de @AT esG
+ . " 4
"+ "" 4 ) @AT S
"0 ) * /
+ "+ "0
. "" )
" 4 *
T@AT S
4 ) /
Co%o se &uede ver, se invierte el orden de la %atrizI es de$ir, el n>%ero de filas de @AT
es i,ual al n>%ero de $olu%nas de T@AT y el n>%ero de $olu%nas se invierte &or el
n>%ero de filas de T@AT
Defini$i(n de variables
N:G N>%ero de filas de la %atriz
NCG N>%ero de $olu%nas de la %atriz
@ATG No%bre de la %atriz
I, JG ;ariables de $ontrol de $i$los e ndi$es de la %atriz
T@ATG @atriz trans&uesta de @AT
El al,orit%o 6ar1 uso del &ro$edi%iento LEE5Z@AT <ue lee una %atriz &or filas, usando
los ar,u%entos de envo N: ?n>%ero de filasC, NC ?n>%ero de $olu%nasC, y el de re$ibo
@AT ?%atrizC Construyendo $o%o e8er$i$io el &ro$edi%iento 2i lo $ree ne$esario b1sese
en el e8er$i$io resuelto No -*
Al/orit3o
NCO
LEA: NF, NC
LEER_MAT (NF, NC, MAT)
PARA = 1, NF, 1 HAGA
PARA J = 1, NC, 1 HAGA
TMAT[J, ] = MAT[, J]
FN_PARA
FN_PARA
PARA = 1, NC, 1 HAGA
PARA J = 1, NF, 1 HAGA
ESCRBA: TMAT[, J]
FN_PARA
FN_PARA
FN_NCO
EJercicio resuelto No. (&
#a$er un al,orit%o <ue lea una %atriz de N: filas y NC $olu%nas y $al$ule la su%a de
las filas y de las $olu%nas, de8ando los resultados en dos ve$tores, uno $on la su%as de
las filas y otro $on la su%a de las $olu%nasI i%&ri%a los dos ve$tores
An:lisis
Datos 2e entra2a
O N>%ero de filas de la %atriz
O N>%eros de $olu%nas de la %atriz
O Los ele%entos de la %atriz
Datos 2e sali2a
O El ve$tor <ue $ontienen la su%a de las filas
O El ve$tor <ue $ontiene la su%a de las $olu%nas
Proceso
Los ele%entos del arre,lo se entrar1n &or filasI &ara en$ontrar la su%a de los ele%entos
de una fila o de una $olu%na es ne$esario un a$u%ulador, <ue ini$ie en $ero $ada <ue se
$a%bia de una fila a otra o de una $olu%na a otra Este &ro$eso de a$u%ula$i(n de los
valores de los ele%entos se &uede 6a$er de dos for%asG una es utilizando una variable
au7iliar $o%o a$u%ulador y una vez <ue se su%e una fila el valor del a$u%ulador se lleva
a una &osi$i(n del ve$tor y se ini$ializa en $ero &ara obtener la su%a de la &r(7i%a filaI
otra %anera es utilizando la &osi$i(n del ve$tor $o%o si fuera un a$u%ulador, &or tanto el
valor ini$ial de $ada ele%ento del ve$tor debe &artir de $ero $ada <ue se ini$ie la su%a
En el al,orit%o se &lantear1n las dos alternativasG la &ri%era se utilizar1 $uando se est3n
su%ando los ele%entos ubi$ados en $ada fila, y la se,unda $uando se est3n su%ando los
ele%entos &ertene$ientes a las $olu%nas
2i la %atriz es @AT y tiene los si,uientes ele%entos, los $ontenidos de los ve$tores se
%uestran a $ontinua$i(n
@AT NC ;: de ta%aFo N:
"/ ) * . '+
*/ ") "" " +0
NC
@ATtI, Xu
XS"
+/ / ) 0 0/
'" " ' + '4
N: . + * 0
''
;C de ta%aFo NC
""4 ') '* '0
N:
@ATtI, Xu
XS"
De0inicin 2e 7aria.les
N:G N>%ero de filas de la %atriz
NCG N>%ero de $olu%nas
@ATG No%bre de la %atriz
I, XG ;ariables $ontroladoras de $i$los
2B@A:G A$u%ulador &ara su%ar los ele%entos de las filas
;:G ;e$tor <ue $ontiene la su%a de las filas
;CG ;e$tor <ue $ontiene la su%a de las $olu%nas
Al/orit3o
NCO
LEA: NF, NC
LEER_MAT(NF, NC, MAT)
PARA = 1, NF, 1 HAGA
SUMAF = 0
PARA K = 1, NC, 1 HAGA
SUMAF = SUMAF + MAT[, K]
FN_PARA
VF[] = SUMAF
FN_PARA
PARA K = 1, NC, 1 HAGA
VC[K] = 0
PARA = 1, NF, 1 HAGA
VC[K] = VC[K] + MAT[, K]
FN_PARA
ESCRBA: "COLUMNA", K, VC[K]
FN_PARA
PARA = 1, NF, 1 HAGA
ESCRBA: "FLA", , VF[]
FN_PARA
FN_NCO
EJercicio resuelto No. ('
Bn tablero de da%as es un arre,lo de . filas &or . $olu%nas Bn uno ?"C re&resenta la
&resen$ia de una fi$6a ro8a en el tablero, un dos ?'C re&resenta la &resen$ia de una fi$6a
ne,ra en el tablero y un $ero ?/C re&resenta la ausen$ia de fi$6a #a$er un al,orit%o <ue
$al$uleG
O El n>%ero de fi$6as ro8as
O El n>%ero de fi$6as ne,ras
O El n>%ero total de fi$6as
An:lisis
Datos 2e entra2a
O Los ele%entos de la %atriz de . V . ( estado del tablero
Datos 2e sali2a
O Total de fi$6as ro8as
O Total de fi$6as ne,ras
O N>%ero total de fi$6as en el tablero
Proceso
Para saber la $lase de fi$6a <ue e7iste en un $a8(n del tablero se $o%&ara el estado de
$ada ele%ento $on ", ' ( /, y de a$uerdo $on el resultado se in$re%enta el $ontador
es$o,ido &ara $ada $aso Bn &osible estado del tablero de da%as sera el si,uienteG
TAB .
/ / " " / / / /
' / " / / / / "
/ / / / / / / /
' ' / / / ' / "
/ / / / / / / /
/ / / ' / / " /
/ / / / " / / /
. ' / / ' / / / '
Donde e7isten siete ?-C fi$6as ro8as y . fi$6as ne,ras &ara un total de "+ fi$6as en el
tablero
De0inicin 2e 7aria.les
TABG @atriz <ue $ontiene las $lases de fi$6as
N:5G N>%ero de fi$6as ro8as
N:NG N>%ero de fi$6as ne,ras
T:TG Total de fi$6as en el tablero
I, XG ;ariables $ontroladoras de $i$los
Al/orit3o
NCO
PARA = 1, 8 1 HAGA
PARA K = 1, 8, 1 HAGA
LEA: TAB[, K]
FN_PARA
FN_PARA
NFR, NFN = 0
PARA = 1, 8, 1 HAGA
PARA K = 1, 8, 1 HAGA
S TAB[, K] = 1 ENTONCES
NFR = NFR + 1
SNO
S TAB[, J] = 2 ENTONCES
NFN = NFN + 1
FN_S
FN_S
FN_PARA
FN_PARA
TFT = NFR + NFN
ESCRBA: NFR, NFN, TFT
FN_NCO
EJercicio resuelto No. ((
Bn e7a%en tiene "// &re,untas de sele$$i(n %>lti&le Cada &re,unta, dentro de sus
alternativas, s(lo tiene una res&uesta $orre$ta Las res&uestas $orre$tas est1n en un ve$tor
;C5 de "// &osi$iones, donde ;C5tXu re&resenta la res&uesta $orre$ta de la &re,unta X
Por $ada estudiante se elabora un re,istro <ue $ontieneG no%bre del estudiante y a
$ontinua$i(n "// valores <ue $orres&onden a las res&uestas dadas &or el estudiante &ara
$ada una de las "// &re,untas
Elaborar un al,orit%o <ue entre el ve$tor de res&uestas $orre$tas, for%e un ve$tor $on los
no%bres de los estudiantes, for%e una %atriz de N V "// $on las res&uestas dadas &or los
estudiantes e i%&ri%a los no%bres de los estudiantes <ue a&robaron el e7a%en ?se
re<uiere una $alifi$a$i(n %ni%a de 0/ &untos &ara a&robarC y, el n>%ero de estudiantes
<ue lo &erdieron
An:lisis
Datos 2e entra2a
O Los "// ele%entos del ve$tor de res&uestas $orre$tas
O El n>%ero de estudiantes <ue &resentaron el e7a%en
O Los no%bres de los N estudiantes
O Las "// res&uestas dadas &or $ada uno de los "// estudiantes
Datos 2e sali2a
O Los no%bres de los estudiantes <ue ,anaron el e7a%en
O La $antidad de &erdedores
Proceso
Para al%a$enar la infor%a$i(n re<uerida en el &ro$eso se ne$esitan tres arre,los
Bn ve$tor de "// &osi$iones <ue $ontiene las res&uestas $orre$tas del e7a%en, un ve$tor
de N &osi$iones $on los no%bres de los estudiantes y la %atriz <ue re&resenta las
res&uestas dadas &or los N estudiantes a las "// &re,untas del e7a%en
Para obtener el &unta8e de un estudiante se $o%&ara la res&uesta dada a la &re,unta X $on
la &osi$i(n X del ve$tor de res&uestas $orre$tas y si $oin$iden se in$re%enta en uno el
$ontador de res&uestas $orre$tas
El diseFo de los arre,los sera el si,uienteG
; 5 C
" ' * ) + 0 - " / /
5 e s & u e s t a $ o r r e $ t a d e l a & r e , u n t a )
5e,istro de entrada &or estudianteG
N o % b r e
5 e s & u e s t a d a d a & o r e l
e s t u d i a n t e a l a & r e , u n t a '
5 e s & u e s t a " / /
;e$tor de no%bres de los estudiantesG
" ' * ) + 0 - N
N o % b r e d e l e s t u d i a n t e n > % e r o *
@atriz de res&uestas dadas &or los estudiantes
@ 5
" ' * ) + " / /
"
'
*
)
+
N
5 e s & u e s t a d a d a & o r e l
e s t u d i a n t e N a l a & r e , u n t a *
De0inicin 2e 7aria.les
;5CG ;e$tor de res&uestas $orre$tas
NG N>%ero de estudiantes <ue &resentaron el e7a%en
NO@G ;e$tor $on los no%bres de los estudiantes de orden N
@5G @atriz de res&uestas de orden N
PBNG ;ariable utilizada &ara $ontar las res&uestas $orre$tas de $ada
estudiante
NPG ;ariable usada &ara $ontar el n>%ero de &erdedores
L, XG ;ariables $ontroladoras de $i$los
Al/orit3o
NCO
PARA K = 1, 100, 1 HAGA
LEA: VRC[K]
FN PARA
LEA: N
PARA L = 1, N, 1 HAGA
LEA: NOM[L]
PARA K = 1, 100, 1 HAGA
LEA: MR[L, K]
FN_PARA
FN_PARA
NP = 0
ESCRBA: "NOMBRES DE LOS GANADORES"
PARA L = 1, N, 1 HAGA
PUN = 0
PARA K = 1, 100, 1 HAGA
S MR[L, K] = VRC[K] ENTONCES
PUN = PUN + 1
FN_S
FN_PARA
S PUN >= 60 ENTONCES
ESCRBA: NOM[L]
SNO
NP = NP + 1
FN_S
FN_PARA
ESCRBA: "NMERO DE PERDEDORES", NP
FN_NCO
EJercicio resuelto No. ()
Elaborar un al,orit%o <ue lea &ara un arre,lo bidi%ensional la infor%a$i(n sobre ventas
de NP &rodu$tos, ,rabando en la &ri%era $olu%nas el $(di,o del art$ulo y en la si,uiente
el n>%ero de unidades vendidas $ada %es ?%eses de */ dasC
Cada fila $orres&onde a los datos &ara un art$uloI utilizar las tres $olu%nas si,uientes
&ara $al$ularG &ro%edio de ventas diarias, &ro%edio de ventas en los das <ue las 6ubo y
n>%ero de das <ue se vendi(I i%&ri%a la %atriz
An:lisis
Datos 2e entra2a
La $antidad de &rodu$tos
Las ventas de $ada &rodu$to ?infor%a$i(n &ara el arre,loC
Datos 2e sali2a
La infor%a$i(n <ue $ontiene la %atriz lue,o del &ro$eso
Proceso
Co%o el arre,lo tiene en la &ri%era $olu%na el $(di,o del art$ulo, ini$ial%ente tendr1 *"
$olu%nas ?una del $(di,o y */ $orres&ondientes a las ventas 6e$6as $ada da del %esC En
$aso de <ue en un da no se 6a,a venta, esa &osi$i(n tendr1 valor de $ero La $olu%na *'
del arre,lo al%a$enar1 el &ro%edio de ventas diarias &or art$ulo, <ue se $al$ula su%ando
$ada fila desde la $olu%na dos 6asta la treinta y uno y, dividiendo el resultado sobre los
treinta das del %es, asG
El &ro%edio de ventas diarias del art$ulo " ser1G
;entas M
M
" */
'
*"
, K
=
El &ro%edio de ventas en los das <ue las 6ubo ?$olu%na **C se obtiene su%ando las
ventas del &rodu$to y dividiendo &or el n>%ero de das en <ue 6ubo ventas, o sea la
$antidad de ventas diferentes de $ero
Cada re,istro de entrada $orres&onde a una fila de la %atriz ini$ial, 3ste se diseFara de la
si,uiente %aneraG
D a t o * "
C ( d i , o
A r t $ u l o
; e n t a s 6 e $ 6 a s e l d a ' ; e n t a s 6 e $ 6 a s e l d a * /
De0inicin 2e 7aria.les
NPG Cantidad de &rodu$tos
;ENG @atriz de ventas diarias
ND#;G N>%ero de das en <ue 6ubo ventas
I, XG Indi$es de los $i$los
2B@AG 2u%a de ventas en los */ das del %es
El al,orit%o 6ar1 uso del &ro$edi%iento I@P5I@I5Z@AT <ue i%&ri%e la %atriz &or
filas, usando los ar,u%entos de envo NP ?n>%ero de filasC, **, ?n>%ero de $olu%nasC y
la %atriz ;EN Construya el &ro$edi%iento 2i lo $ree ne$esario vea el e8er$i$io resuelto
No -)
Al/orit3o
NCO
LEA: NP
LEER_MAT (NP, 31, VEN)
PARA = 1, N, 1 HAGA
SUMA, NDHV = 0
PARA K = 2, 31, 1 HAGA
SUMA = SUMA + VEN[, K]
S VEN[, K] <> 0 ENTONCES
NDHV = NDHV + 1
FN_S
FN_PARA
VEN[, 32] = SUMA / 30
VEN[, 33] = SUMA / NDHV
FN_PARA
MPRMR_MAT (NP, 33, VEN)
FN_NCO
EJercicio resuelto No. (*
2e re<uiere 6a$er un sub&ro,ra%a <ue $al$ule el &ro%edio arit%3ti$o de las $olu%nas de
una %atriz y los al%a$ene en un ve$tor
An:lisis
Par:3etros 2e reci.o
El n>%ero de filas de la %atriz
El n>%ero de $olu%nas
Los ele%entos del arre,lo
Par:3etros 2e en7o
Bn ve$tor <ue $ontiene en $ada &osi$i(n el &ro%edio arit%3ti$o de $ada
$olu%na de la %atriz
Proceso
2e deben e%&lear dos $i$losG uno e7terno <ue re$orra las $olu%nas y uno interno <ue
re$orra las filas &ara su%ar los ele%entos de $ada $olu%na y lue,o dividir esta su%a &or
el n>%ero de filas de la %atriz &ara obtener el &ro%edio
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG P5O@C
-aria.les
AG No%bre de la %atriz
NG N>%ero de filas de la %atriz
@G N>%ero de $olu%nas
;PCG ;e$tor <ue $ontiene el &ro%edio de las $olu%nas, de ta%aFo @
2B@AG ;ariable au7iliar &ara totalizar los ele%entos de $ada $olu%na
I, XG ;ariables au7iliares $ontroladoras de los $i$los
!u.pro/ra3a
PROCEDMENTO PROMC (A, N, M, VPC)
PARA = 1, M, 1 HAGA
SUMA = 0
PARA K = 1, N, 1 HAGA
SUMA = SUMA + A[K, ]
FN_PARA
VEC[] = SUMA / N
FN_PARA
FN_PROMC
EJercicio resuelto No. )I
Elaborar un sub&ro,ra%a <ue $al$ule la su%a de los ele%entos de las filas de una %atriz,
las al%a$ene en un ve$tor y, ade%1s, en$uentre la &osi$i(n del ele%ento %ayor de di$6o
ve$tor
An:lisis
Par:3etros 2e reci.o
El n>%ero de filas de la %atriz
El n>%ero de $olu%nas
Los ele%entos del arre,lo
Par:3etros 2e en7o
Bn ve$tor <ue $onten,a las su%as de los ele%entos de las filas de la
%atriz
La &osi$i(n <ue o$u&a el ele%ento %ayor del ve$tor resultante
Proceso
Para en$ontrar el ve$tor <ue $onten,a la su%a de las filas de la %atriz se i%&le%enta un
$i$lo e7terno <ue re$orra las filas, y otro interno <ue re$orra las $olu%nas, $ada <ue la
variable <ue $ontrola el $i$lo e7terno se ubi$a en una fila deter%inada Bna vez <ue se
for%a el arre,lo unidi%ensional se debe en$ontrar la &osi$i(n <ue o$u&a el ele%ento
%ayor del arre,lo Pero, en el e8er$i$io resuelto No +- se $onstruy( la fun$i(n PO2@AT
<ue 6a$e esta tarea, &or lo tanto, este sub&ro,ra%a la invo$ar1
2i el sub&ro,ra%a a $onstruir se lla%a 2B@A:, es<ue%1ti$a%ente se %irara asG
2B@A: ?aPar1%etrosbC
:or%a$i(n del ve$tor $on las su%as de las filas
Lla%ada a la fun$i(n PO2@AT, se le entre,a el ve$tor for%ado y devuelve la &osi$i(n
del ele%ento %ayor
2 B @ A : ? a P a r 1 % e t r o s b C
: o r % a $ i ( n d e l v e $ t o r $ o n l a s s u % a s d e
l a s f i l a s
L l a % a d a a l a f u n $ i ( n P O 2 @ A T , s e l e
e n t r e , a e l v e $ t o r f o r % a d o y d e v u e l v e l a
& o s i $ i ( n d e l e l e % e n t o % a y o r
P O 2 @ A T
a i n s t r u $ $ i o n e s b
? C
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG 2B@A:
-aria.les
N:G N>%ero de filas de la %atriz
NCG N>%ero de $olu%nas
@AG No%bre del arre,lo bidi%ensional
;2:G ;e$tor <ue $ontiene la su%a de las filas de la %atriz de ta%aFo
N:
PO2@AG Posi$i(n <ue o$u&a el ele%ento %ayor de ;2:
X, LG ;ariables $ontroladoras de los $i$los
!u.pro/ra3a
PROCEDMENTO SUMAF (MA, NF, NC, VSF, POSMA)
PARA K = 1, NF, 1 HAGA
VSF[K] = 0
PARA L = 1, NC, 1 HAGA
VSF[K] = VSF[K] + MA[K, L]
FN_PARA
FN_PARA
POSMA = POSMAY ( NF, VSF)
FN_SUMAF
EJercicio resuelto No. )1
Construir un sub&ro,ra%a <ue lea el n>%ero de filas y los ele%entos de una %atriz de "/
$olu%nas
An:lisis
En este $aso, el %(dulo subordinado no re$ibe infor%a$i(n del %(dulo <ue lo invo<ue ya
<ue los valores a entrar los va a re$ibir desde un %edio e7terno de entrada de datos, &ero
s le devuelve infor%a$i(n
Puede usarse LEE5Z@AT, <ue sera lo %is%o
Par:3etros 2e reci.o
No 6ay
Par:3etros 2e en7o
N>%ero de filas de la %atriz
Los ele%entos de la %atriz
De0inicin 2e 7aria.les
LECTB5AG No%bre del sub&ro,ra%a
:G N>%ero de filas del arre,lo bidi%ensional
@AT5IYG No%bre de la %atriz
I, JG ;ariables $ontroladoras de $i$los
!u.pro/ra3a
PROCEDMENTO LECTURA (F, MATRZ)
LEA: F
PARA = 1, F, 1 HAGA
PARA J = 1, 10, 1 HAGA
LEA: MATRZ[, J]
FN_PARA
FN_PARA
FN_LECTURA
EJercicio resuelto No. )2
Elaborar un sub&ro,ra%a <ue es$ribaG
a Los ele%entos de un ve$tor <ue $ontiene el &ro%edio de estudiantes &or
nivel de una universidad
b Los ele%entos de un ve$tor $uyos ele%entos son los estudiantes &or
fa$ultad de una universidad
$ La fa$ultad <ue tiene %ayor n>%ero de estudiantes
An:lisis
Par:3etros 2e reci.o
N>%ero de ele%entos del ve$tor <ue $ontienen los &ro%edios
El ve$tor de &ro%edios
El n>%ero de ele%entos del ve$tor de estudiantes &or fa$ultad
El ve$tor de n>%ero de estudiantes &or fa$ultad
La fa$ultad <ue tiene %ayor n>%ero de estudiantes
Par:3etros 2e en7o
La infor%a$i(n no la enva al %(dulo <ue lo invo$a sino a un %edio e7terno de salida,
&or lo tanto, no tiene &ar1%etros de envo
Clase de sub&ro,ra%aG P5OCEDI@IENTO
No%breG 2ALIDA
-aria.les
NPG Ta%aFo del ve$tor <ue $ontiene los &ro%edios
;P5O@G ;e$tor <ue $ontiene los estudiantes &or nivel de la universidad
NE:G Ta%aFo del ve$tor de estudiantes &or fa$ultad
;:ACG ;e$tor de estudiantes &or fa$ultad
@AT:G ;ariable <ue $ontiene el n>%ero de la fa$ultad $on %ayor n>%ero de
estudiantes
IG ;ariable $ontroladora de $i$lo
!u.pro/ra3a
PROCEDMENTO SALDA (NP, VPROM, NEF, VFAC, MAYF)
ESCRBA: "UNVERSDAD DE ANTOQUA"
ESCRBA: "PROMEDO DE ESTUDANTES POR NVEL"
ESCRBA: "NVEL PROMEDO"
PARA = 1, NP, 1 HAGA
ESCRBA: , VPROM[]
FN_PARA
ESCRBA: "TOTAL DE ESTUDANTES POR FACULTAD"
ESCRBA: "FACULTAD ESTUDANTES"
PARA = 1, NEF, 1 HAGA
ESCRBA: , VFAC[]
FN_PARA
ESCRBA: "FACULTAD CON MAYOR NMERO DE ESTUDANTES",
MAYF
FN_SALDA
EJercicio resuelto No. )#
#a$er un al,orit%o <ue utili$e el sub&ro,ra%a LECTB5A &ara leer el n>%ero de
fa$ultades y el n>%ero de estudiantes de los "/ niveles de $ada fa$ultadI utili$e el
sub&ro,ra%a P5O@C &ara $al$ular el &ro%edio de estudiantes &or nivel en la
universidadI utili$e el sub&ro,ra%a 2B@A: &ara $al$ular el total de estudiantes &or
fa$ultad, y lo$alizar la fa$ultad <ue tiene %ayor n>%ero de estudiantesI utili$e el
sub&ro,ra%a 2ALIDA &ara i%&ri%ir la infor%a$i(n re<uerida
An:lisis
Co%o se &uede ver en el enun$iado, toda la labor <ue debe realizar el al,orit%o est1 ya
6e$6a &or los sub&ro,ra%asI &or tanto, el traba8o del al,orit%o ser1 invo$ar a los %(dulos
res&e$tivos &ara <ue entre,uen la infor%a$i(n re<uerida
El al,orit%o debe definir sus &ro&ias variables &ara enviar y re$ibir infor%a$i(n de las
estru$turas subordinadas
9r1fi$a%ente se &uede %irar de la si,uiente %aneraG
A L 9 O 5 I T @ O
P O 2 @ A T
2 A L I D A 2 B @ A : P 5 O @ C L E C T B 5 A
De0inicin 2e 7aria.les
N:ACG N>%ero de fa$ultades de la universidad
NI;ELG @atriz de N:AC filas y "/ $olu%nas <ue al%a$enar1, en $ada
ele%ento, el n>%ero de estudiantes &or nivel en la universidad
2u estru$tura ser1G
N i v e l
"
N i v e l
" /
: a $ u l t a d "
! : a $ u l t a d *
N : A C
Donde ! ser1 el n>%ero de estudiantes <ue tiene la fa$ultad * en el nivel +
;P5O@G ;e$tor de &ro%edios de estudiantes &or nivel en la Bniversidad
;EP:G ;e$tor <ue $ontiene el total de estudiantes &or fa$ultad
:@ATO5G :a$ultad <ue tiene el %ayor n>%ero de estudiantes
Trans0erencia 2e in0or3acin entre 32ulos
M2ulo 1 BLECTURAD
Este %(dulo devuelve al al,orit%o la infor%a$i(n de entrada <ue es al%a$enada en la
variable N:AC y en la %atriz NI;EL
M2ulo 2 BPROMCD
2e le entre,a infor%a$i(n a trav3s de los ar,u%entos NI;EL, N:AC, "/, devuelve el ve$tor
de &ro%edios ;P5O@
M2ulo # B!UMA?D
2e le entre,a infor%a$i(n a trav3s de las variables NI;EL, N:AC, "/, devuelve el ve$tor
<ue $ontiene el total de estudiantes &or fa$ultad ;EP: y la fa$ultad de %ayor n>%ero de
estudiantes :@ATO5
M2ulo $ B!ALIDAD
2e le entre,an los ar,u%entos "/, ;P5O@, N:AC, ;EP: y :@ATO5 y %uestra la
infor%a$i(n a trav3s de un %edio e7terno de salida
Al/orit3o
NCO
LECTURA (NFAC, NVEL)
PROMC (NVEL, NFAC, 10, VPROM)
SUMAF (NVEL, NFAC, 10, VEPF, FMAYOR)
SALDA (10, VPROM, NFAC, VEPF, FMAYOR)
FN_NCO
).#. Arre/los 3ulti2i3ensionales
Pueden e7istir arre,los de tres y %1s di%ensiones, &ero la %ayora de las a&li$a$iones o
&ro$esos &or $o%&utadora no utilizan arre,los $on %1s de tres di%ensiones &or<ue los arre,los
,astan bastante %e%oria &rin$i&al, y %u$6as ve$es e7iste ,ran $antidad de %e%oria se&arada y
no utilizadaI ta%bi3n &or<ue visualizar un arre,lo $on %1s de tres di%ensiones no es f1$il
Bn arre,lo de tres di%ensiones &uede visualizarse $o%o una $a8aG un $on8unto de tablas, una
tras otra, donde los ele%entos <ue $onfor%an el arre,lo est1n dis&uestos ba8o tres $on$e&tos de
$lasifi$a$i(n tPLANO, :ILA, COLB@NAuI &or lo tanto, la referen$ia$i(n de un ele%ento
$ual<uiera est1 dire$$ionada &or tres ndi$es
Por e8e%&loG re&resentar un arre,lo tridi%ensional, PLAN de * &lanos, 0 filas y ) $olu%nas
P l a n o *
!
P l a n o '
: i l a s
P l a n o "
C o l u % n a s
Donde ! 6a$e referen$ia al $ontenido del ele%ento PLANt', *, )u o sea el ele%ento del
arre,lo PLAN ubi$ado en el &lano ', fila *, $olu%na ) En ,eneral, se &uede de$ir <ue PLANtP,
:, Cu 6a$e referen$ia al ele%ento del arre,lo PLAN ubi$ado en el &lano P, fila :, $olu%na C
dondeG
" aS P aS No de &lanos, " aS : aS No de filas y " aS C aS No de $olu%nas
EJercicio resuelto No. )$
#a$er un al,orit%o <ue entre los ele%entos de un arre,lo tridi%ensional de N: filas, NC
$olu%nas y NP &lanosI en$uentre el valor %ayor de los ele%entos del arre,lo y el lu,ar
<ue o$u&a
An:lisis
Datos 2e entra2a
El n>%ero de &lanos
El n>%ero de filas
El n>%ero de $olu%nas
Los ele%entos del arre,lo
Datos 2e sali2a
El valor %ayor y la &osi$i(n <ue o$u&a dentro del arre,lo
Proceso
El arre,lo se re$orrer1 &or &lanos y dentro de 3stos &or filasI esto i%&li$a tener tres
$i$losG uno e7terno <ue re$orra los &lanos, uno inter%edio <ue re$orra las filas, y uno
interno <ue re$orra las $olu%nas Para en$ontrar el ele%ento %ayor dentro del arre,lo
asu%i%os <ue el valor %ayor es el ele%ento t", ", "u, o sea, el ele%ento ubi$ado en el
&lano ", fila ", $olu%na "I lue,o se $ontin>a $o%&arando este %ayor $on los de%1s
ele%entos del arre,lo, efe$tuando $a%bios $ada vez <ue se en$uentre un valor %ayor
De0inicin 2e 7aria.les
A5TDG No%bre del arre,lo tridi%ensional
NPG N>%ero de &lanos del arre,lo
N:G N>%ero de filas del arre,lo
NCG N>%ero de $olu%nas del arre,lo
:, C, PG ;ariables $ontroladoras de $i$los
@ATO5G ;alor %ayor de los ele%entos del arre,lo
:@G :ila donde se en$uentra @ATO5
C@G Colu%na donde se en$uentra @ATO5
P@G Plano donde se en$uentra @ATO5
Al/orit3o
NCO
LEA: NP, NF, NC
PARA P = 1, NP, 1 HAGA
PARA F = 1, NF, 1 HAGA
PARA C = 1, NC, 1 HAGA
LEA: ARTD[P, F, C]
FN_PARA
FN_PARA
FN_PARA
MAYOR = ARTD[1, 1, 1]
FM, CM, PM = 1
PARA P = 1, NP, 1 HAGA
PARA F = 1, NF, 1 HAGA
PARA C = 1, NC, 1 HAGA
S MAYOR < ARTD[P, F, C] ENTONCES
MAYOR = ARTD[P, F, C]
FM = F
CM = C
PM = P
FN_S
FN_PARA
FN_PARA
FN_PARA
ESCRBA: "EL MAYOR VALOR DEL ARREGLO ES:", MAYOR, "Y ESTE
UBCADO EN EL PLANO", PM, "FLA", FM, "COLUMNA", CM
FN_NCO
EJercicio resuelto No. )&
Bna e%&resa a3rea ofre$e + vuelos a los $lientes Cada avi(n de la lnea tiene +/ filas de
asientos y 0 $olu%nas Para efe$tos de siste%atiza$i(n, un asiento o$u&ado se re&resenta
%ediante un uno y un asiento libre $on un $ero #a$er un al,orit%o <ue %uestre el
n>%ero de &asa8eros <ue lleva $ada vuelo
An:lisis
Datos 2e entra2a
La infor%a$i(n o estado de los vuelos Arre,lo tridi%ensional de unos y
$eros
Datos 2e sali2a
El n>%ero de &asa8eros de $ada vuelo
Proceso
La infor%a$i(n se al%a$enar1 en un arre,lo tridi%ensional de ta%aFo + V +/V 0, <ue a su
vez re&resenta la $antidad de &asa8eros <ue &uede trans&ortar la lnea a3rea 2e 6ar1 uso
de un $ontador <ue totali$e la $antidad de &asa8eros <ue lleva $ada vuelo, el $ual debe
$o%enzar en $ero $ada <ue se &ro$ese la infor%a$i(n &ertene$iente a $ada avi(n
De0inicin 2e 7aria.les
PBE2TOG No%bre del arre,lo
:, C, PG ;ariable $ontroladoras de los $i$los
NP;G Contador de &asa8eros &or vuelo
Al/orit3o
NCO
PARA P = 1, 5, 1 HAGA
PARA F = 1, 50, 1 HAGA
PARA C = 1, 6, 1 HAGA
LEA: PUESTO[P, F, C]
FN_PARA
FN_PARA
FN_PARA
PARA P = 1, 5, 1 HAGA
NPV = 0
PARA F = 1, 50, 1 HAGA
PARA C = 1, 6, 1 HAGA
S PUESTO[P, F, C] = 1 ENTONCES
NPV = NPV + 1
FN_S
FN_PARA
FN_PARA
ESCRBA: "EL VUELO", P, "LLEVA", NPV, "PASAJEROS"
FN_PARA
FN_NCO
Aspectos a tener en cuenta
a El no%bre asi,nado a los arre,los debe se,uir las %is%as nor%as &ara la $onfor%a$i(n de
no%bres de variables si%&les
b 2i a un ele%ento de un arre,lo se le asi,na un valor, 3ste debe ser $o%&atible $on el ti&o de
dato de los ele%entos del %is%o
$ Los arre,los s(lo e7isten en %e%oria &rin$i&al, y los datos interna%ente est1n or,anizados
de %anera lineal
d Los ndi$es de un arre,lo &ueden ser variables, $onstantes o e7&resiones <ue den $o%o
resultado un valor entero
e Los ele%entos individuales de un arre,lo &ueden ser utilizados en e7&resiones, asi,na$i(n,
entrada y salida de datosI &ara su utiliza$i(n es ne$esario a$o%&aFar el no%bre del arre,lo
$on los ndi$es <ue ubi<uen &lena%ente el ele%ento <ue se re<uiere referen$iar
f Todos los ele%entos de un arre,lo deben ser del %is%o ti&o ?enteros, reales, bol3anos o
$ara$teresC
, Bn arre,lo se debe i%&le%entar $uando e7iste toda una serie de datos &ertene$ientes al
%is%o ti&o y $uando sus valores son re<ueridos en %e%oria &ara el &ro$eso &or
$o%&utadora
6 2e debe tener $uidado en no a$$eder un ele%ento de un arre,lo <ue no est3 dentro del ran,o
de ndi$es &reestable$idos
i Los &ro$esos <ue utilizan arre,los %ultidi%ensionales re<uieren $i$los, en lo ,eneral un
$i$lo &or di%ensi(n
).$. EJercicios propuestos
")- #a$er un al,orit%o <ue entre + valores y los al%a$ene en un ve$tor e i%&ri%ir el ve$tor
"). Elaborar un al,orit%o <ue ,enere un arre,lo de N ele%entos y en$uentre el valor y la
&osi$i(n del %ayor ele%ento
")4 Bsando el arre,lo anterior, es$ribir los ele%entos $uyos valores sean %>lti&los de *
"+/ #a$er un al,orit%o <ue entre una serie de valores, los al%a$ene en un ve$tor y su%e los
ele%entos de las &osi$iones &ares, lo %is%o <ue las &osi$iones i%&ares &or se&arado
"+" #a$er un al,orit%o <ue for%e un ve$tor del <ue no se sabe el n>%ero de ele%entos
Cal$ule el &ro%edio de los ele%entos y for%e dos nuevos arre,los, uno $on los ele%entos
%enores o i,uales al &ro%edio y otro $on los su&eriores I%&ri%a los dos nuevos arre,los
"+' Elaborar un al,orit%o <ue lea dos arre,los unidi%ensionales de i,ual ta%aFo y for%e un
ter$er arre,lo %ediante el &rodu$to de los ele%entos de los dos arre,los, to%ados en orden
inverso, es de$ir, &rodu$tos del &ri%er ele%ento del &ri%er arre,lo $on el >lti%o del
se,undoI del se,undo del &ri%er arre,lo $on el &en>lti%o del se,undo arre,loI 6asta lle,ar
al >lti%o del &ri%er arre,lo $on el &ri%ero del se,undo arre,lo I%&ri%ir el arre,lo
for%ado
"+* Elaborar un al,orit%o <ue for%e un ve$tor B de @ ele%entos, lue,o entre el valor de la
variable CLA;E y la bus<ue se$uen$ial%ente dentro del arre,lo, sus&endiendo la
b>s<ueda $uando la en$uentre
"+) #a$er el %is%o al,orit%o anterior a&li$ando Bq2ABEDA BINA5IA DE LA CLA;E
"++ 2e tienen dos arre,los unidi%ensionales A y B de @ ele%entos Partiendo de los dos
arre,los, elaborar un al,orit%o <ue for%e tres nuevos arre,los El &ri%ero $on la su%a de
los ele%entos res&e$tivos, el otro $on el &rodu$to y el >lti%o $on la diferen$ia
"+0 Elaborar un al,orit%o <ue su%a los ele%entos de un ve$tor de ta%aFo N, e7$e&to el
&ri%ero, >lti%o y el ele%ento del $entro
"+- Elaborar un al,orit%o <ue for%e dos arre,los El &ri%ero $ontiene los @ $(di,os de los
estudiantes <ue &erdieron CO@PBTADO5A2 y el se,undo los N $(di,os de los
estudiantes <ue &erdieron AL9O5IT@O2 Partiendo de los dos arre,los for%ar uno nuevo
$on los $(di,os de los estudiantes <ue &erdieron a%bas %aterias
"+. Elaborar un sub&ro,ra%a <ue en$uentre el ele%ento %enor en un ve$tor
"+4 Elaborar un sub&ro,ra%a <ue en$uentre las &osi$iones <ue o$u&an el ele%ento %ayor y
%enor en un ve$tor
"0/ Elaborar un sub&ro,ra%a <ue inserte un valor en el lu,ar <ue le $orres&onda en un ve$tor
ordenado des$endente%ente
"0" Elaborar un sub&ro,ra%a <ue verifi<ue si una lnea de te7to <ue ter%ina en &unto es un
PALIND5O@O Bn te7to es &alndro%o si se lee lo %is%o de iz<uierda a dere$6a o de
dere$6a a iz<uierda E8e%&loG A@O5 A 5O@A, OTTO
"0' Elaborar un sub&ro,ra%a <ue eli%ine todas las ve$es <ue a&are$e un valor en un arre,lo
unidi%ensional, sin destruir la infor%a$i(n de entrada
"0* Elaborar un sub&ro,ra%a <ue su%e los ele%entos $orres&ondientes de dos ve$tores, dando
$o%o resultado un nuevo ve$tor
"0) Elaborar un al,orit%o <ue en$uentre la interse$$i(n de dos ve$tores A y B, de N y @
ele%entos res&e$tiva%ente
"0+ Bna $adena de al%a$enes tiene la si,uiente infor%a$i(n de sus e%&leadosG $(di,o,
no%bre y $ar,oI los datos de los e%&leados se deben al%a$enar en ve$tores &aralelos
Elabore un al,orit%o <ue %uestre los datos de los e%&leados ordenados alfab3ti$a%ente
"00 2e tienen dos ,ru&os de datos de ta%aFo @ y N Elabore un al,orit%o <ue inserte uno de
los dos ,ru&os en el otro a &artir de una &osi$i(n dada
"0- 2i ! y T son ve$tores de i,ual ta%aFo, elaborar un al,orit%o <ue utili$e tres
sub&ro,ra%as &ara obtener los &ar1%etros a y b de la e$ua$i(n de la re$ta
T S a H b7, %ediante las f(r%ulasG
= =
= = = =
=
N
" i
N
" i
' '
N
" i
N
" i
N
" i
N
" i
' ' '
!iC ? !i N
!iTi !i Ti !i
a
= =
= = =
=
N
" i
'
N
" i
'
N
" i
N
" i
N
" i
!iC ? !i N
Ti !i !iTi N
b
"0. Elaborar un al,orit%o <ue for%e dos ve$tores de NA y NB ele%entos, los $uales, se sabe,
est1n ordenados as$endente%ente $ada uno :or%e un ter$er arre,lo <ue <uede ordenado
en la %edida <ue &asan los ele%entos de los dos arre,los ini$iales I%&ri%ir el nuevo
arre,lo
"04 Elaborar un al,orit%o <ue for%e un ve$tor $on una serie de $(di,os y otro $on una serie
de no%bres aso$iados a los $(di,os Lue,o entre un $on8unto de $(di,os y deter%ine si
est1n o no en el arre,lo y, si es as, es$riba el $(di,o y el no%bre
"-/ Es$ribir un al,orit%o <ue dado un ve$tor de ta%aFo N eli%ine de 3ste $uantas ve$es
a&arez$a un valor Es$riba el arre,lo y su nuevo ta%aFo
"-" Es$ribir un al,orit%o <ue dado un arre,lo unidi%ensional y su ta%aFo, eli%ine sus
ele%entos re&etidos, de8ando un ele%ento en $ada $aso
"-' Dado un arre,lo unidi%ensional de ta%aFo N, en$uentre la %oda, es de$ir, el valor <ue se
&resenta %1s n>%ero de ve$es entre sus ele%entos
"-* Es$riba un al,orit%o $on las %is%as $ara$tersti$as <ue el anterior, en el $aso de <ue
e7ista %1s de una %oda
"-) 2i tres ele%entos $uales<uiera de un ve$tor ; se rela$ionan &or la e$ua$i(nG
;tIH'u S ;tIH"u H ;tlu, si ;t"u S ", ;t'u S ', en$ontrar los &ri%eros N ele%entos del
ve$tor
"-+ Elaborar un al,orit%o <ue entre un arre,lo unidi%ensional, $al$ule e i%&ri%aG
N>%ero de datos re&etidos en el arre,lo
El n>%ero de valores i%&ares
El n>%ero de valores &ares
"-0 Elaborar un al,orit%o <ue for%e dos arre,los rela$ionados <ue al%a$enen los $(di,os de
los N art$ulos <ue se venden en un al%a$3n y la e7isten$ia ?n>%ero de, unidades
e7istentesC de $ada uno de los art$ulos, asG
C(di,o E7isten$ia
"/" */
'// )/
Del art$ulo "/" 6ay */ unidades en e7isten$iaI del art$ulo '//, 6ay )/ unidades y as
su$esiva%ente
Por $ada &roveedor o $liente <ue lle,a al al%a$3n se ,enera un re,istro $on los si,uientes
datosG
O Ti&o de transa$$i(n t" &ara &roveedor ?re$iboCI ' &ara $liente ?ventaCu
O C(di,o del art$ulo transado
O N>%ero de unidades transadas ?re$ibidas o vendidasC
2e re<uiere $al$ular lo si,uiente &ara $ada transa$$i(nG
O 2i es re$ibo, se su%a a las e7isten$ias a$tuales de este art$ulo el n>%ero de unidades
transadas
O 2i es venta, se resta a las unidades en e7isten$ia de ese art$ulo las unidades vendidas
Al final se deben %ostrar los $(di,os de los art$ulos y las e7isten$ias de $ada uno de ellos,
es de$ir, el arre,lo de $(di,os y de e7isten$ias ya a$tualizado
Asu%a <ue en nin,>n %o%ento la $antidad vendida es %ayor <ue la $antidad, en e7isten$ia,
y &or lo tanto no le &resentan in$onsisten$ias
"-- Elaborar un al,orit%o <ue for%e tres ve$tores de N ele%entos $ada unoG rela$ionados
entre s, los $uales $ontienen la renta l<uida, el &atri%onio y el valor $r3dito <ue
$orres&onde a esa renta l<uida o a ese &atri%onio, asG
5ENTA LIABIDA PAT5I@ONIO ;ALO5 C5EDITO
'+/// "///// "*/
*//// "+//// '//
)//// '"//// './
Para una renta l<uida entre / y W'+/// o un &atri%onio no %ayor de W"/////, el valor del
$r3dito $orres&ondiente es W"*/I &ara una renta l<uida %ayor de W'+/// y %enor de W*//// o
un &atri%onio %ayor de W"///// y %enor o i,ual a W"+////, el valor $r3dito $orres&ondiente
es de W'//, et$ Por $ada estudiante <ue se %atri$ula se for%a un re,istro $on los si,uientes
datosG
O C(di,o del estudiante
O 5enta l<uida
O Patri%onio
O N>%ero de $r3ditos a $ursar
2e debe %ostrar el $(di,o, lo <ue debe &a,ar $ada estudiante y el total re$audado &or
%atr$ula
"-. 2e tienen dos arre,los unidi%ensionales Bno de ellos $on N ele%entos y, el otro $on @
ele%entos Los ele%entos de los dos arre,los se en$uentran ordenados en for%a
as$endente Elabore un al,orit%o <ue entre los dos ve$tores se for%e uno nuevo de N H @
ele%entos, el $ual $ontendr1 los ele%entos de los dos arre,los ordenados de %enor a
%ayor
"-4 En una universidad se efe$t>a un e7a%en de ad%isi(n <ue $onsta de dos &ruebasG a&titud
%ate%1ti$a y a&titud verbal Cada &re,unta tiene + o&$iones nu%eradas del " al + 2e
&re&ara un re,istro $on 0/ $a%&os de una sola &osi$i(n <ue $ontiene, $ada uno, la
res&uesta $orre$ta a la &re,unta $orres&ondiente Las */ &ri%eras &osi$iones $orres&onden
al e7a%en de a&titud %ate%1ti$a y las restantes a las de a&titud verbal
2e &resentaron al e7a%en N estudiantes y &ara $ada uno de ellos se &re&ar( un re,istro $on
los si,uientes datosG
O N>%ero de la $reden$ial
O 5es&uestas al e7a%en de a&titud %ate%1ti$a
O 5es&uestas al e7a%en de a&titud verbal
2e re<uiere saberG
O Punta8e obtenido &or $ada estudiante en $ada e7a%en
O El &unta8e total &or estudiante
O El &unta8e &ro%edio de $ada e7a%en
O El &unta8e &ro%edio total
O La $reden$ial y el &unta8e $orres&ondiente a los estudiantes <ue obtuvieron un &unta8e
su&erior o i,ual al &ro%edio
O El %ayor &unta8e y el n>%ero de la $reden$ial del estudiante <ue la obtuvo
"./ #a$er un al,orit%o <ue lea dos arre,los A y B y for%e un nuevo arre,lo @, $uyos
ele%entos $orres&onden a la uni(n de los $on8untos definidos &or A y B La uni(n de A y
B son los ele%entos del $on8unto A %1s los ele%entos del $on8unto <ue no est1n en A
"." El dese%&eFo usual de un ,ru&o de ventas est1 en re,istros ?ar$6ivoC, dos valores &or
re,istroI el &ri%ero es el n>%ero de identifi$a$i(n de un vendedor &arti$ular y el se,undo
el n>%ero de ventas <ue 6a 6e$6o Elaborar un al,orit%o <ue %uestre el n>%ero de
identifi$a$i(n y el n>%ero de ventas, donde 3stas a&arez$an ordenadas en for%a
as$endente
".' Elaborar un al,orit%o <ue lea una lista de n>%eros enteros &ositivos y e8e$ute las
si,uientes o&era$ionesG
" @ostrar los n>%eros de la lista en orden $re$iente
' Cal$ular e i%&ri%ir la %ediana ?valor $entralC
* Deter%inar el n>%ero <ue o$urre %1s fre$uente%ente
) I%&ri%ir una lista <ue $onten,aG
)" N>%eros %enores <ue */
)' N>%eros %ayores <ue -/
)* N>%eros <ue no &ertenez$an ni al ,ru&o )" ni al )'
".* Dados dos ve$tores ordenados alfab3ti$a%ente $on @ y N no%bres de los e%&leados de
una e%&resa, 6a$er un al,orit%o &ara obtener un nuevo ve$tor, <ue no $onten,a no%bres
re&etidos y est3 ordenado
".) Bna $adena de al%a$enes tiene su$ursales en $uatro $iudades diferentes y un total de N
e%&leados El re,istro &re&arado &ara $ada e%&leado tiene los si,uientes $a%&osG no%bre,
$iudad, $(di,o
Los datos de los $lientes est1n en ve$tores &aralelos DiseFar un al,orit%o <ue ordene
todos los datos de los e%&leados de %odo <ue se &ueda visualizar, &or su$ursal, la lista de
los e%&leados en orden alfab3ti$o $re$iente
".+ Elaborar un al,orit%o <ue for%e dos ve$tores <ue $onten,an NO@B5E2 y 2E!O de los
alu%nos de la %ateria Algoritmos 9enerar dos nuevos arre,losG uno <ue $onten,a los
no%bres de los 6o%bres y otro el de las %u8eres, a%bos ordenados alfab3ti$a%ente
".0 Elaborar un al,orit%o <ue lea una %atriz &or filas y la i%&ri%a &or $olu%nas
".- Elabore un sub&ro,ra%a <ue deter%ine si un n>%ero es auto%(rfi$o Bn n>%ero
auto%(rfi$o es a<u3l <ue al elevarlo siste%1ti$a%ente a una &oten$ia %ayor <ue $ero, las
>lti%as $ifras del resultado $orres&onden al %is%o n>%ero Por e8e%&loG
-0
"
S -0I -0
'
S +--0I -0
*
S )*.4-0I -0
)
S ***0'"-0, &ruebe $on las * &ri%eras
&oten$ias
".. Elaborar un al,orit%o <ue lea el orden de una %atriz y sus ele%entos y en$uentre los
ele%entos %ayor y %enor y sus &osi$iones
".4 #a$er un al,orit%o <ue lea el orden de un arre,lo bidi%ensional y sus ele%entosI
$onvierta la %atriz en un arre,lo unidi%ensional La $onversi(n debe 6a$erse &or
$olu%nas, es de$ir, %over la &ri%era $olu%na al ve$tor, a $ontinua$i(n la se,unda
$olu%na y as su$esiva%ente I%&ri%a el arre,lo for%ado
"4/ Elaborar un al,orit%o <ue lea el n>%ero de filas y de $olu%nas de una %atriz y sus
ele%entos Lue,o inter$a%bie el $ontenido de la &ri%era y la >lti%a $olu%na, de la
se,unda y la &en>lti%a y as 6asta $o%&letar $a%bios <ue den una %atriz $on $olu%nas
invertidas I%&ri%a la %atriz
"4" 5esuelva el %is%o &roble%a anterior, 6a$iendo inter$a%bio de filas
"4' Elaborar un al,orit%o <ue lea el orden y la %atriz %is%a, lue,o la invierta &or filas, asG
El ele%ento ?", "C se inter$a%bie $on el ?N, @CI el ?", 'C $on el ?N, @ Z"CI el ?", *C $on el
?N, @Z'C y as su$esiva%ente I%&ri%ir la %atriz invertida
"4* Elaborar un al,orit%o <ue lea el orden y los ele%entos de una %atriz $uadrado y averi,xe
si es si%3tri$a, es de$ir, si todos los &ares de ele%entos e<uidistantes &er&endi$ular%ente
de la dia,onal &rin$i&al son i,uales
"4) Elaborar un al,orit%o <ue for%e una %atriz $on datos &rovenientes de una serie de
re,istros, su8eto a lo si,uienteG
O El $ontenido de $ada re,istro es un ele%ento de la %atriz
O La %atriz tiene + $olu%nas y un %17i%o de +/ filas
O El al%a$ena%iento debe 6a$erse &or filas, es de$ir, los &ri%eros + re,istros for%an la fila
uno y as su$esiva%ente
"4+ Elaborar un al,orit%o <ue for%e una %atriz $on las si,uientes $ara$tersti$asG
a La &ri%era fila y &ri%era $olu%na tienen $o%o ele%entos los n>%eros del / al '/
$onse$utivos
b Los de%1s ele%entos se obtienen de %ulti&li$ar $ada ele%ento de la fila uno &or $ada
ele%ento de la $olu%na uno I%&ri%ir la %atriz E8e%&loG
/ " ' * ) +
" " ' * ) +
' ' ) 0 . "/
* * 0 4 "' "+
) ) . "' "0 '/
+ + "/ "+ '/ '+
.
.
.
.
'/
'/
.
.
.
.
.
.
.
.
.
)//
"40 Bna f1bri$a &rodu$e N art$ulos diferentes y utiliza @ su$ursales &ara su distribu$i(n,
variando el &re$io de venta de $ada art$ulo se,>n la su$ursal <ue lo distribuye Para esto
la f1bri$a tiene un $uadro <ue %uestra el &re$io de $ada art$ulo se,>n la su$ursal <ue lo
distribuye Al final de $ada &erodo $ada su$ursal enva a la f1bri$a la $antidad vendida de
$ada arti$ulo, for%1ndose un nuevo $uadro Elaborar un al,orit%o <ue en$uentre las
ventas totales de la f1bri$a &ara $ada uno de los art$ulos y &ara $ada una de las su$ursales
"4- Dos ta6>res se 6an ideado el si,uiente 8ue,oG
Elaboran una tabla de 0 filas &or 0 $olu%nas
El ta6>r A di$eG tiro los dados y $ada uno de ellos %e indi$a una fila de la tabla, lue,o
%ulti&li$o entre s los ele%entos de las dos filas y 3se es %i &unta8eI el ta6>r B di$eG tiro los
dados y $ada uno de ellos %e re&resenta una $olu%na, lue,o su%o los ele%entos
$orres&ondientes y 3se es %i &unta8e
l2e &odr1 de$ir a si%&le vista <ui3n es el ,anadorm
Elabore un al,orit%o <ue entre la tabla y los valores dados &or los dados y $o%&ruebe <ui3n
es el ,anador, sabiendo <ue el ta6>r B tira los dados $uando $ono$e los resultados del ta6>r A
"4. Elaborar un al,orit%o <ue entre una %atriz de @ V N y ordene en for%a $re$iente los
ele%entos de las $olu%nas del arre,lo
"44 Dada una %atriz si%3tri$a, elaborar un al,orit%o <ue la $onvierta a trian,ular inferior ?el
tri1n,ulo su&erior dere$6o debe $ontener $eros, e7$e&tu1ndose la dia,onal &rin$i&alC
'// Elaborar un al,orit%o <ue llene una %atriz de orden N $on $eros, e7$e&to las dos
dia,onales <ue deben $ontener unos
'/" Dada una %atriz ordenada as$endente%ente $on base en la &ri%era $olu%na, insertarle los
ele%entos de un ve$tor, de tal for%a <ue el &ri%er ele%ento de 3ste no destruya el
ordena%iento
'/' Elabore un al,orit%o <ue for%e una %atriz de N V @ ele%entos $on blan$o y n>%eros del
$ero al nueve, dis&ersos en el $uer&o de la %atriz y lue,o bus<ue las &osi$iones <ue
$ontienen n>%eros y los $olo<ue en for%a $onse$utiva desde la fila uno en adelante, &or
e8e%&loG
4 4 6 7 8 9
6 7 1
8 9 1
'/* Dadas dos %atri$es elaborar un al,orit%o <ue obten,a la %atriz &rodu$to
'/) Elaborar un al,orit%o <ue entre una %atriz N V @ y un valor y en$uentre el &rodu$to de
3ste &or la %atriz
'/+ Elaborar un al,orit%o <ue for%e una %atriz de N V @ ele%entos Cada ele%ento del
arre,lo re&resenta las ventas atribuibles a $ada uno de los N vendedores de una e%&resa,
&ara $ada uno de los @ aFos de o&era$iones <ue 6a tenido la %is%a y, lue,o $al$ularG
O El total de ventas de $ada vendedor en los @ aFos
O El total de ventas en $ada aFo
O El ,ran total de ventas de la e%&resa
'/0 Elaborar un al,orit%o <ue a$tuali$e la tabla de $lasifi$a$i(n del Ca%&eonato Profesional
de :>tbol de su &asI lue,o de efe$tuada una fe$6a, el al,orit%o debe leerG
O Bn re,istro &or e<ui&o <ue $onten,a los si,uientes datosG
J C(di,o del e<ui&o
J Partidos 8u,ados
J Partidos ,anados
J Partidos e%&atados
J Partidos &erdidos
J 9oles a favor
J 9oles en $ontra
J Puntos
O Bn re,istro &or &artido <ue $onten,a los si,uientes datosG
J C(di,o del e<ui&o lo$al
J 9oles del e<ui&o lo$al
J C(di,o del e<ui&o visitante
J 9oles del e<ui&o visitante
El al,orit%o debe %ostrar la tabla leda, ordenada de a$uerdo a la &untua$i(n, lue,o de 6aber
$al$ulado los &untos &ara $ada e<ui&o
'/- Dada una %atriz de N filas &or @ $olu%nas <ue debe ser leda, elaborar un al,orit%o <ue
ordene los ele%entos del arre,lo en for%a des$endente &or filas
'/. Bn $aballo est1 ubi$ado en una de las &osi$iones de un tablero de a8edrez Elaborar un
al,orit%o <ue averi,xe <u3 nueva &osi$i(n &odr1 to%ar des&u3s de una 8u,ada,
$ono$iendo el lu,ar ini$ial donde se en$uentra
'/4 2e desea obtener el ,rado de efi$ien$ia de N o&erarios de una f1bri$a &rodu$tora de
tornillos, de a$uerdo $on las si,uientes $ondi$iones <ue se les i%&one &ara un &erodo
deter%inado Condi$ionesG
" Ausen$ia del traba8o *,+ 6oras
' Tornillos defe$tuosos a *//
* Tornillos &rodu$idos b "////
Los ,rados de efi$ien$ia del traba8ador son asi,nados de la si,uiente for%aG
O 2i no $u%&le nin,una $ondi$i(nG 9rado S +
O 2i s(lo $u%&le la &ri%era $ondi$i(nG 9rado S -
O 2i s(lo $u%&le la se,unda $ondi$i(nG 9rado S .
O 2i s(lo $u%&le la ter$era $ondi$i(nG 9rado S 4
O 2i $u%&le la &ri%era y la se,undaG 9rado S "'
O 2i $u%&le la &ri%era y la ter$eraG 9rado S "*
O 2i $u%&le la se,unda y la ter$eraG 9rado S "+
O 2i $u%&le las tres $ondi$ionesG 9rado S '/
Por $ada traba8ador se tiene un re,istro $on los si,uientes datosG
O C(di,o del traba8ador
O #oras de ausen$ia
O Tornillos defe$tuosos
O Tornillos &rodu$idos
Elaborar un al,orit%o <ue $al$ule &ara $ada traba8ador su $orres&ondiente ,rado de
efi$ien$ia e i%&ri%a toda su infor%a$i(n
'"/ Bn $a%&o de ,olf $onsta de ". 6oyos, en ellos debe introdu$irse, su$esiva%ente, una
&elota a base de ,ol&es $on un bast(n En una tar8eta van anot1ndose el n>%ero de ,ol&es
re<ueridos &ara lle,ar a $ada uno de los 6oyos En la %is%a tar8eta &ueden anotarse los
,ol&es de varios 8u,adores, ya <ue 3sta tiene la for%a de una tabla ?%atrizCG los ren,lones
$orres&onden a los 8u,adores y las $olu%nas a $ada 6oyo del $a%&o Por e8e%&lo, si en un
8ue,o &arti$i&an ) 8u,adores la tar8eta tendr1 ) ren,lones y ". $olu%nas El 8ue,o lo ,ana
el &arti$i&ante <ue lle,ue al 6oyo ". $on el %enor n>%ero de ,ol&es
2u&on,a <ue des&u3s de $on$luido el &artido se tiene la tar8eta $on todos los ,ol&es de los N
8u,adores
Elaborar un al,orit%o <ue entre los datos y obten,aG
O La for%a$i(n de un ve$tor $on los no%bres de los &arti$i&antes
O El no%bre de la &ersona <ue o$u&( el &ri%er lu,ar, el se,undo, et$, 6asta el en3si%o
'"" Considere un %initablero de a8edrez de ) V ) y trate de situar $uatro reinas, de tal %odo,
<ue no se coman entre s 5e$uerde <ue una reina $o%e sobre su fila, su $olu%na y las dos
dia,onales <ue &asan &or su &osi$i(n
'"' Bn avi(n dis&one de "./ &lazas, de las $uales 0/ son de no fu%ador y nu%eradas del " al
0/ y "'/ &lazas nu%eradas del 0" al "./ DiseFar un al,orit%o <ue &er%ita reservar
&lazas del avi(n y di,a $u1ntos &asa8eros de $ada $lase o$u&an asientos en el vuelo
'"* Estudiantes &rovenientes de +/ %uni$i&ios 6an de$idido &resentar e7a%en de in,reso a la
universidad 2e re<uiere de una %atriz <ue indi<ue los resultados de las &ersonas de $ada
$ole,io <ue 6an &resentado el e7a%en La entrada est1 $o%&uesta &or el n>%ero de la
$reden$ial, el $(di,o del $ole,io ?de " a +/C y el resultado del e7a%en La salida debe
tener los &untos de los estudiantes &ro$edentes de $ada $ole,io
'") Elabore un al,orit%o <ue entre los ele%entos de una %atriz $uadrada de orden N y
deter%ine si es un CBAD5ADO @A9ICO 2e $onsidera $uadrado %1,i$o a<u3l en el <ue
la su%a de $ada una de las filas, su%a de $ada una, de las $olu%nas y su%a de $ada una de
las dia,onales son la %is%a $antidad
'"+ En las ele$$iones &ara Al$alde del PBEBLITO PAI2A se 6an &resentado tres $andidatos
?A, B, CC El Pueblito est1 dividido en + zonas de vota$i(n
El re&orte de votos de la zona se re$ibe en ordenG &ri%ero la zona ", la ', la *, la ) y &or
>lti%o la zona +
Elabore un al,orit%o <ueG
O :or%e una %atriz de + filas y * $olu%nas <ue $onten,a, en $ada fila, los votos re&ortados
&or las zonas &ara $ada uno de los tres $andidatos
O En$uentre el total de votos obtenidos &or $ada $andidato y el &or$enta8e <ue 3ste re&resenta
O Es$riba un %ensa8e de$larando ,anador a un $andidato, si 3ste obtuvo %1s del +/P de la
vota$i(n
'"0 Elabore un al,orit%o <ue lea el n>%ero de filas y de $olu%nas de una %atriz y la %atriz
%is%a 2e ase,ura <ue los valores de los ele%entos est1n entre " y 0 :or%e 0 ve$tores
$on los ele%entos i,uales a ", ', *, ), + y 0, %uestre el ta%aFo de los ve$tores y di,a $u1l
es la %oda, es de$ir, el ele%ento <ue %1s ve$es se re&ite en la %atriz
'"- Elabore un al,orit%o <ue &ara una %atriz A de orden N V @ obten,aG
O 2u%a de $ada fila i%&ar
O Produ$toria de la dia,onal se$undaria
O N>%ero de valores i,uales a $ero y
O 2u%a de todos los ele%entos de las $olu%nas &ares
'". A es un arre,lo unidi%ensional de N ele%entos
Elaborar un al,orit%o &ara $olo$ar el ve$tor A $o%o dia,onal se$undaria de un arre,lo B
de N V N
'"4 Elaborar un al,orit%o <ue lea una %atriz A de orden N V N y $onstruya otra %atriz B, asG
O Los ele%entos de la dia,onal &rin$i&al y se$undaria son los %is%os de A
O En los de%1s lu,ares deben ir los %>lti&los de + de iz<uierda a dere$6a y de arriba 6a$ia
aba8o
''/ #a$er un al,orit%o <ue $onstruya y es$riba la si,uiente %atrizG
"'0 "'/ "") "/. "/' 40
4/ .) -. -' 00
0/ +) ). )'
*0 */ ')
". "'
0
''" 2e tiene un ,ru&o de N estudiantes identifi$ados $o%o ", ', * NI $ada uno de ellos to%a
las %is%as . %ateriasG ", ', * .I se%estral%ente, el &rofesor de $ada %ateria re&orta a la
ofi$ina de re,istros el $(di,o del estudiante, el n>%ero de la %ateria y la $alifi$a$i(n
obtenida Elaborar un al,orit%o <ue obten,aG
O Las $alifi$a$iones &ro%edio obtenidas &or $ada estudiante, %ostradas en for%a as$endente
O El &ro%edio de notas en $ada uno de . $ursos
O El estudiante $on %ayor &ro%edio
''' Leer una %atriz B de *. V *. y efe$tuar los si,uientes &asosG
O Inter$a%biar los ele%entos de la dia,onal &rin$i&al $on los ele%entos de la dia,onal
se$undaria
O Inter$a%biar la fila "- $on la $olu%na ")
O Es$ribir la nueva %atriz
''* Bna universidad tiene "' $arreras $odifi$adas del " al "' y $ada $arrera tiene "/ se%estres
nu%erados del " al "/ 2e%estral%ente $ada $arrera elabora un re,istro <ue $ontieneG
$(di,o de la $arrera y, a $ontinua$i(n, los "/ $ostos $orres&ondientes a los "/ se%estres
Elaborar un al,orit%o <ue $al$ule e i%&ri%aG
O Costos totales y &ro%edio &or se%estre de todas las $arreras
O Costos &or $arrera en for%a des$endente
O Costo ,lobal de la universidad
O El se%estre %enos $uantioso
'') Es$ribir un al,orit%o <ue lea una fi$6a $on los snto%as de un enfer%o y de a$uerdo $on
la si,uiente tabla %uestre la enfer%edad del &a$ienteG
EN:E5@EDAD 2INTO@A2
" ::::T
' TTTTT
* TTT::
) :TT::
+ ::T:T
*/ T:TT:
2i los snto%as ledos no est1n en las tablas, se debe %ostrar un %ensa8e de error
''+ Elaborar un al,orit%o <ue lea un arre,lo tridi%ensional y en$uentre la su%a de sus
ele%entos
''0 #a$er un al,orit%o <ue en$uentre la su%a de tres arre,los tridi%ensionales
''- Pre&arar un al,orit%o <ue inserte una %atriz al final de un arre,lo de tres di%ensiones y lo
i%&ri%a
''. Dado un arre,lo tridi%ensional $>bi$o, $al$ular e i%&ri%ir la su%a de los ele%entos
ubi$ados en su dia,onal &rin$i&al
''4 Dado $ual<uier arre,lo tridi%ensional del $ual se sabe <ue sus ele%entos son $eros,
elaborar un al,orit%o <ue for%e sus aristas $on unos
'*/ Elaborar un al,orit%o <ue entre un arre,lo tridi%ensional $>bi$o y en$uentre la su%a de
los ele%entos <ue &ertenez$an a $ual<uiera de las dia,onales
'*" #a$er un al,orit%o <ue for%e un arre,lo tridi%ensional, $uyos ele%entos est3n ordenados
$on base en las &osi$iones fila y $olu%na dadas
'*' Bn arre,lo tridi%ensional $ontiene la $antidad de 6o%bres y %u8eres <ue 6ay en 0 $ursos
de $ada una de las "/ fa$ultades de una universidad Donde 2E!O tI, J, Xu re&resenta el
n>%ero de estudiantes del $urso I, de se7o J, de la fa$ultad X En$ontrarG
O Cantidad de 6o%bres en $ada fa$ultad
O Cantidad de %u8eres &or fa$ultad
O La fa$ultad $on %ayor n>%ero de %u8eres
'** Elaborar un al,orit%o <ue su%e dos arre,los tridi%ensionales, ele%ento a ele%ento
'*) Dado un arre,lo de $uatro di%ensiones llenarlo $on $eros, e7$e&to los &ri%eros ele%entos
de la $uarta di%ensi(n <ue deben ser unos
Captulo *
5E9I2T5O2 T A5C#I;O2
*.1. Re/istros
Bn re,istro es una estru$tura de datos $o%&uesta 2e &uede de$ir <ue un re,istro es un
$on8unto de $a%&os variables rela$ionadas <ue, en ,eneral, &ueden &ertene$er a ti&os de datos
diferentes, lla%adas $o%&onentes del ti&o re,istro, donde todas las $o%&onentes &ueden
%ani&ularse ba8o un solo no%bre de variable Por e8e%&lo, si se tiene un re,istro de datos
$o%&uesto &or los $a%&osG $3dula, no%bres, dedu$$i(n y salario, &ode%os re&resentarlo de la
si,uiente for%aG
*'+/0*'" 2AND5A :ONNE95A )//// 0*////
Co%o &uede notarse, dentro del re,istro s(lo 6ay datos ?infor%a$i(nCI es el, &ro,ra%ador
<uien le $olo$a no%bres a $ada dato &ara &oderlos al%a$enar en la %e%oria de la $o%&utadora
2i la infor%a$i(n del e%&leado se fuera a tratar en for%a individual y los no%bres de
variables sele$$ionados &ara $ada $a%&o fueranG CC, NO@, DEDBC y 2AL, al e8e$utarse la
instru$$i(nG
LEAG CC, NO@, DEDBC, 2AL
O$urrir1 en %e%oria lo si,uienteG
?ALTA R8?ICO PA. 2)I LI"RO
La infor%a$i(n de la e%&leada est1 dis&ersa en la %e%oria La idea de usar re,istros es
a,ru&ar toda la infor%a$i(n en una %is%a 1rea de %e%oria ba8o un solo no%bre 2i se to%a la
deter%ina$i(n de <ue E@P" es una variable de tipo registro, o sea, &uede al%a$enar en el 1rea
asi,nada toda la infor%a$i(n de un e%&leado, ,r1fi$a%ente se &uede %irar de la si,uiente
%anera
memoria
< cdula >
< nombres >
< deduccin >
< salarios >
EMP1
Para <ue E@P" sea to%ada $o%o una variable ti&o re,istro, el &ro,ra%ador debe definirla
$o%o tal, de a$uerdo al len,ua8e de &ro,ra%a$i(n <ue est3 utilizandoI es de$ir, el tipo de dato
registro no est1 &redefinido, ya <ue sus $o%&onentes van a de&ender de $ada &ro,ra%a en
es&e$ial A %odo de e8e%&lo, el anterior re,istro en CHH se definira asG
struct empleado
{
long cc;
char nom[36];
double deduc;
double sal;
};
Lo anterior <uiere de$ir <ue el &ro,ra%ador 6a definido un ti&o de dato re,istro lla%ado
empleado y <ue a $ual<uier variable <ue se le asi,ne el ti&o de dato e%&leado, &uede al%a$enar
los valores de las $o%&onentesG $$, no%, dedu$ y sal En CHH se 6ara de la si,uiente for%aG
e%&leado e%&", e%&'I
En la anterior instru$$i(n se define a e%&" y e%&' $o%o variables ti&o re,istro, &or lo tanto,
&ueden al%a$enar todos los valores de los $a%&os <ue $onfor%an al ti&o de dato e%&leado, y su
re&resenta$i(n interna seraG
?ALTA R8?ICO PA. 2)1 LI"RO
Las variables ti&o re,istro e%&" y e%&' son variables $o%&uestasI &ara referen$iar a $ada una
de sus $o%&onentes 6ay <ue $ualifi$arlas, o sea, de$ir en for%a e7&l$ita a $ual de las
$o%&onentes del re,istro se <uiere uno referir La $ualifi$a$i(n se 6a$e asG
7aria.lesTtipoTre/istro.co3ponente.
Por eJe3ploH
e%&"$$ 6a$e referen$ia al valor de la $3dula al%a$enada en el 1rea de datos ?re,istroC
e%&"
e%&'no% 6a$e referen$ia al no%bre <ue 6ay en el 1rea de dato e%&'
e%&"no%t)u referen$ia al $ar1$ter $uarto del no%bre al%a$enado en el 1rea de datos e%&",
?en CHH sera el <uintoC
La instru$$i(nG
LEAG e%&"$$, e%&"no%, e%&"dedu$, e%&"sal, lleva infor%a$i(n a la variable ti&o &
re,istro e%&", $o%o lo %uestra la fi,ura si,uienteG
?ALTA R8?ICO PA. 2)1 LI"RO
2i 6ay ne$esidad de %over la infor%a$i(n de una variable ti&o re,istro a otra, se &uede 6a$er
$o%&onente a $o%&onente o %oviendo toda la infor%a$i(n al %is%o tie%&o Por e8e%&loG
e%&'$$ S e%&"$$
e%&'no% S e%&"no%
e%&'dedu$ S e%&"dedu$
e%&'sal S e%&"sal
sera lo %is%o <ue tenerG e%&' S e%&"
EJercicio resuelto No. )'
:or%ar un re,istro $on los $a%&osG $3dula, no%bre, &a,o, lue,o &asarlo a otro re,istro e
i%&ri%ir la infor%a$i(n
An:lisis
Datos 2e entra2a
O C3dula
O No%bre
O Pa,o
Datos 2e sali2a
O C3dula
O No%bre
O Pa,o
Proceso
#ay <ue definir las dos variables ti&o re,istro est8 ! est:3 se leen los valores de las
$o%&onentes est", lue,o se &asa a est' y se i%&ri%en
De0inicin 2e 7aria.les
est' y est'G ;ariables ti&o re,istro
$$G Co%&onente $3dula
no%G Co%&onente no%bre
&a,oG Co%&onente &a,o
Al/orit3o
NCO
LEA: est1.cc, est1.nom, est1.pago
est2 = est1
ESCRBA: est2.cc, est2.nom, est2.pago
FN_NCO
*.1.1. Arre/lo 2e re/istros
Es una estru$tura de datos de ,ran utilidad e i%&ortan$ia en la &ro,ra%a$i(n de a&li$a$iones,
ya <ue %u$6as ve$es es deseable, desde el &unto de vista de la l(,i$a del &ro,ra%a en
&arti$ular, %antener dis&onible en %e%oria &rin$i&al una serie de re,istro $on infor%a$i(n del
%is%o ti&o &ara su &ro$esoI di$6os re,istros no estar1n dis&ersosI 6ar1n &arte de un arre,lo, lo
<ue fa$ilita su %ane8o
Bn arre,lo de re,istros es %uy &are$ido a un ar$6ivo de datos ?te%a &r(7i%o a tratarC se
diferen$ian en <ue los arre,los de re,istros residen en %e%oria &rin$i&al y los ar$6ivos en
%e%oria au7iliar, &or lo tanto, estos >lti%os tiene e7isten$ia &er%anente
Otra i%&ortan$ia <ue tienen los arre,los de re,istro es <ue $ada uno de sus ele%entos est1
for%ado &or varios $a%&os &ertene$ientes a diferentes ti&os de datos, a diferen$ia de los otros
ti&os de arre,los donde sus ele%entos son de un solo ti&o
EJercicio resuelto No. )(
:or%ar un arre,lo de %17i%o "// re,istros donde $ada ele%ento $onten,aG $3dula,
no%bres y &a,o, lue,o ordenarlo &or el $a%&o no%bre, insertar un nuevo re,istro sin
daFar el ordena%iento e i%&ri%irlo
An:lisis
Datos 2e entra2a
O Los $a%&os $3dula, no%bre y &a,o
Datos 2e sali2a
O La infor%a$i(n del arre,lo de re,istros ordenada alfab3ti$a%ente
Proceso
La infor%a$i(n $3dula, no%bre y &a,o ser1 un re,istro y $ada re,istro ser1 un ele%ento
del arre,lo 2i el arre,lo lo lla%a%os ; y sus $o%&onentesG $$, no% y P, ,r1fi$a%ente se
vera asG
;
;t"u ;t'u ;t"//u
;t"u$$
;t"u
no%
;t"u& ;t'u$$
;t'u
no%
;y'u&
;t"//u
$$
;t"//u
no%
;t"//u
&
vv
vv
El &roble%a se resolver1 a trav3s de %(dulos ?sub&ro,ra%asC
ALGORTMO
LEER MPRMR ORDENAR NSERTAR
El sub&ro,ra%a LEE5 re$ibe la $antidad de ele%entos del arre,lo ?n>%ero de
estudiantesC N y enva el ve$tor ;
I@P5I@I5 5e$ibe N y ;
O5DENA5 5e$ibe N y ; y enva ; ordenado
IN2E5TA5 5e$ibe N y ; y enva N y ;
Otras variables
I, XG ;ariables de $ontrol de $i$los
@ENO5G Al%a$ena el no%bre %enor en el ordena%iento
PO2G Al%a$ena la &osi$i(n donde est1 el no%bre %enor
AB!G ;ariable de ti&o re,istro <ue ,uarda te%&oral%ente un ele%ento
del ve$tor %ientras se 6a$e el ordena%iento
5IG 5e,istros a insertar
PROCEDMENTO LEER (N, V)
PARA = 1, N, 1 HAGA
LEA: V[].CC, V[].NOM, V[].P
FN_PARA
FN_LEER
PROCEDMENTO MPRMR (N, V)
PARA = 1, N, 1 HAGA
ESCRBA: V[].CC, V[].NOM, V[].P
FN_PARA
FN_MPRMR
PROCEDMENTO ORDENAR "N# $%
PARA = 1, N-1, 1 HAGA
MENOR = V[].NOM
POS =
PARA K = +1, N, 1 HAGA
S MENOR > V[].NOM ENTONCES
MENOR = V[K].NOM
POS = K
FN_S
FN_PARA
AUX = V[]
V[] = V[POS]
V[POS] = AUX
FN_PARA
FN_ORDENAR
PROCEDMENTO NSERTAR " N# $# RI %
= 1
MENTRAS ( <= N) (R.NOM > V[].NOM) HAGA
= +1
FN_MENTRAS
N = N+1
PARA K = N, +1, -1 HAGA
V[K] = V[K-1]
FN_PARA
V[K] = R
FN_NSERTAR
Al/orit3o principal
Datos 2e entra2a
O La $antidad de ele%entos del ve$tor
O La infor%a$i(n del ve$tor
O C3dula, no%bre y &a,o a insertar
Datos 2e sali2a
O La infor%a$i(n del ve$tor re,istro
De0inicin 2e 7aria.les
NG Cantidad de ele%entos
AG No%bre del arre,lo
5G ;ariable ti&o re,istro
5CCG C3dula a insertar
5NO@G No%bre a insertar
5PG Pa,o a insertar
OPG O&$i(n a sele$$ionar en el %en>
2I9AG O&$i(n &ara insertar nuevos ele%entos
Al/orit3o
NCO
&EA' N
REPTA
ESCRBA: 1: LEER EL ARREGLO
ESCRBA: 2: MPRMR ARREGLO
ESCRBA: 3: ORDENAR ARREGLO
ESCRBA: 4: NSERTAR ELEMENTO
ESCRBA: 5: SALR
ESCRBA: ELJA OPCN
LEA OP
CASOS DE OP
CASO1: LEER (N, A)
CASO2: MPRMR (N, A)
CASO3: ORDENAR (N, A)
CASO4: REPTA
LEA: R.CED, R.NOM, R.P
NSERTAR (N, A, R)
ESCRBA: DESEA NSERTAR OTRO
ESTUDANTE S/N
LEA: SGA
MENTRAS SGA = 'S'
CASO5: ESCRBA: FN DEL PROGRAMA
MENTRAS OP <> 5
FN_NCO
*.2. Arc5i7os
Bn ar$6ivo es un dis&ositivo l(,i$o donde se &ueden al%a$enar en for%a &er%anente
,randes vol>%enes de infor%a$i(n, dividido en estru$turas de datos ?re,istrosC todas del %is%o
ti&o y rela$ionadas
El %ane8o de infor%a$i(n a trav3s de ar$6ivos es de ,ran utilidad en la &ro,ra%a$i(n, ya <ue
&er%ite la $a&tura de infor%a$i(n al%a$enada en ellos &ara su &osterior utiliza$i(n en diversos
&ro,ra%as, evitando tener <ue entrar en for%a %anual la infor%a$i(n <ue se <uiere &ro$esarI y
al%a$enar ,ran $antidad de infor%a$i(n en es&a$ios redu$idos y $on una alta &re$isi(n en el
%ane8o de los datos
En ,eneral los ar$6ivos se &ueden a,ru&ar en tres ,randes $ate,orasG
O Archi-os de programa: son los &ro,ra%as fuentes <ue se es$riben en un deter%inado
len,ua8e de &ro,ra%a$i(n Estos &ro,ra%as son ,uardados en %edios %a,n3ti$os au7iliares
&ara su &osterior utiliza$i(n Estos ar$6ivos se &ueden $ar,ar del %edio %a,n3ti$o a
%e%oria, $o%&ilarlos, e8e$utarlos, i%&ri%irlos y volverlos a ,uardar donde estaban o en otro
%edio de al%a$ena%iento distinto
O Archi-os de te,to: estos al%a$enan letras, &alabras, frases, &1rrafos y se suelen $rear y
%antener %ediante &ro,ra%as <ue &ro$esan o editan te7to
O Archi-os de datos: son la $lase de ar$6ivos <ue se tratar1n en este $a&tulo y, $o%o su
no%bre lo indi$a, 3stos al%a$enan valores Bn ar$6ivo de datos $ontiene infor%a$i(n <ue un
&ro,ra%a $rea y &osterior%ente &ro$esaI de i,ual for%a &uede usarse &ara al%a$enar los
resultados de la e8e$u$i(n de un &ro,ra%a
*.2.1. Co3ponentes 2e un arc5i7o
Bn ar$6ivo es un $on8unto de datos rela$ionados entre s, $on una or,aniza$i(n 8er1r<ui$a, de
%odo <ue $ada ar$6ivo est3 for%ado &or un $on8unto de re,istros y estos, a su vez, for%ados
&or una serie de $a%&os Bn re,istro es la unidad de %edida de un ar$6ivo, <ue $ontiene la
infor%a$i(n <ue se utiliza en los diferentes &ro,ra%as y son tratados de %anera inde&endiente
Bn re,istro &uede $ontener dentro del $on8unto de $a%&os <ue lo $onfor%an, uno <ue 6a$e
<ue el re,istro en &arti$ular sea >ni$o, es de$ir, lo diferen$ie de los de%1s lla%ado $a%&o $lave
9r1fi$a%ente se &uede %irar un ar$6ivo de datos de la si,uiente for%aG
Co%o se des&rende del ,r1fi$o, los $a%&os $orres&onden a las $olu%nas y los re,istros a las
filas
El ta%aFo o lon,itud de un re,istro se %ide en bytes y ser1 la resultante de su%ar las
lon,itudes de los $a%&os <ue lo $onfor%an Es i%&ortante tener en $uenta <ue los $a%&os <ue
$onfor%an un re,istro deben referen$iar una %is%a infor%a$i(n y de i,ual %anera los re,istros
deben estar rela$ionados $on la raz(n de ser del ar$6ivo
E3plea2os
Co2i/o Depto No3.re !alario
"") /" Elas Jos3 "./ ///
"'" /" 9ra$iela del Car%en '+* )'*
'"" /" Luisa Berta *"' +"0
/44 /' 9uiller%o 2e,undo ''' 0/)
""- /' Albertina Isabel "4" ''"
'"' /' Corina :ran$is$a .'* +")
""4 /* 5ut6 de Jes>s ""4 *'+
"". /* :loren$ia @aria )'+ ///
*"" /) Jairo Antonio *.. -*)
:in del ar$6ivo
Co%o se &uede ver, en un ar$6ivo de datos lo <ue se ,uarda es infor%a$i(n, es el
&ro,ra%ador <uien de$ide <u3 no%bre le $olo$a al re,istro y a $ada uno de los $a%&os
individuales <ue inte,ran el re,istro Otros e8e%&losG
Clientes
C<2ula No3.re Apelli2o Direccin Tel<0ono
").-4+0* :redy Jara%illo Cra "/ No "/J"- '*"/")+
)-.40*'" Leonel Osorno Cll -/ No ""J". )+04.-)
0+.-)"'* :abi1n 5os Cll '/ No "'J4 +.40'/"
-*'.)+0' 9isela 9il Cra )* No "/J'" *'")+0.
EO:
In7entario
C2i/o Descripcin Uni2a2es -alorFuni2a2
-/'""/ Bu8a '// -+//
./'/"/ ;1lvula +/ .+/
4/'""/ @an,uera + *+-+/
EO:
Li.ros
C2i/oFli.ro Ttulo C2i/oFautor Uni2a2es
+/'""+ Antes del fin .)0'"). "'
0/'/"- DoFa B1rbara -4.+0'" '"
4/'""- El t>nel )+0.4*' *'
EO:
EO: si,nifi$a End Of :ile ?:in del Ar$6ivoC, es un indi$ador <ue a&are$e lue,o del >lti%o
re,istro del ar$6ivo, denotando el final del %is%o
*.2.2. Clasi0icacin 2e los arc5i7os se/Rn su uso
O Archi-os permanentes: son ar$6ivos r,idos, ya <ue la infor%a$i(n <ue al%a$enan $a%bia
%uy &o$oI son usados &ara e7traer infor%a$i(n <ue se utiliza en otros ar$6ivos o &ro$esos
Por e8e%&lo, el ar$6ivo <ue $onten,a toda la infor%a$i(n sobre los salarios de los e%&leados
de una e%&resa
O Archi-os maestros: la infor%a$i(n al%a$enada en esta $lase de ar$6ivos %ane8a el estado o
situa$i(n de una entidad o al,>n as&e$to de ella, y su a$tualiza$i(n o $a%bios de los datos de
los re,istros se 6a$e &eri(di$a%ente Por e8e%&lo, un ar$6ivo <ue al%a$ene el inventario de
los bienes de una e%&resa
O Archi-os histricos: son ar$6ivos %aestros <ue ya no se utilizan y <ue su fun$i(n es s(lo de
$onsulta &ara <uienes desean obtener infor%a$i(n sobre el &asado Por e8e%&lo, la
infor%a$i(n $ontenida en las 6o8as de vida a$ad3%i$a de los estudiantes <ue ter%inaron su
$arrera en la d3$ada &asada
O Archi-os de mo-imiento: son te%&orales y su fun$i(n &rin$i&al es $a&tar infor%a$i(n &ara
a$tualizar los ar$6ivos %aestros 2us re,istros %uestran las transa$$iones o %ovi%ientos <ue
se &rodu$en durante un deter%inado &erodo Cuando el ar$6ivo %aestro se a$tualiza, usando
los ar$6ivos de %ovi%iento, 3stos >lti%os &ierden su validez y se &ueden destruir Por
e8e%&loG los $a%bios de au%ento de salarios, dedu$$iones y sobresueldos &rodu$idos
durante un deter%inado &eriodo
*.2.#. Concepto 2e cla7e
La $lave o llave &rin$i&al es el $a%&o o la $o%bina$i(n de $a%&os del ar$6ivo <ue &er%iten
identifi$ar o diferen$iar &lena%ente $ada re,istro de los de%1s Cada ar$6ivo debe tener una
$lave o llave &rin$i&al, $on el fin de &oder en$ontrar y re$u&erar la infor%a$i(n de un re,istro
&arti$ular en un %o%ento dado Para los e8e%&los anteriores anali$e%os $u1l o $u1les $a%&os
$onfor%an las $laves de los ar$6ivos y &or<u3G
Clientes
Ca3po Cla7eU EEplicacin
Tel3fono NO Dos $lientes diferentes &ueden tener el %is%o n>%ero
telef(ni$o Por e8e%&lo, una &are8a de es&osos
Dire$$i(n NO Dos $lientes diferentes &ueden $o%&artir la %is%a
dire$$i(n
A&ellido NO Dos $lientes diferentes &ueden tener el %is%o a&ellido
No%bre NO Dos $lientes diferentes &ueden tener el %is%o no%bre
C3dula 2I La $3dula es >ni$a y diferente &ara $ada $liente
In7entario
Ca3po Cla7eU EEplicacin
;alorJunidad NO Dos o %1s re&uestos &ueden tener el %is%o &re$io
Bnidades NO Es &osible <ue las e7isten$ias de dos o %1s re&uesJ
tos $oin$idan
Des$ri&$i(n NO Aun<ue es &o$o fre$uente, es &osible <ue dos re&uestos
diferentes ten,an la %is%a des$ri&$i(n
C(di,o 2I A $ada re&uesto $orres&onde un $(di,o <ue lo diferen$ia
de los de%1s L(,i$a%ente este $(di,o es diferente &ara
$ada ti&o de re&uesto
Li.ros
Ca3po Cla7eU EEplicacin
Bnidades NO Es &osible <ue de dos o %1s libros se ten,an las %is%as
e7isten$ias
Ttulo NO Dos libros diferentes &ueden tener el %is%o ttulo
C(di,oJautor NO Bn autor &uede es$ribir dos o %1s libros
C(di,oJlibro 2I A $ada libro $orres&onde un $(di,o <ue lo diferen$ia
de los de%1s Este $(di,o es >ni$o y diferente &ara
$ada libro
lCu1l sera el $a%&o $lave en el ar$6ivo de e%&leadosm
a Cla-e simple: un ar$6ivo tiene $lave si%&le si 3sta est1 $onfor%ada &or un solo $a%&o En
los $asos anteriores, todas las $laves son si%&les Para diferen$iarlas de los de%1s atributos,
utilizare%os el $ar1$ter es&e$ial z $o%o &refi8o Por e8e%&loG
zC3dula ?ClientesC, zC(di,o ?InventarioC, z C(di,oJlibro ?LibrosC son $laves si%&les
b Cla-e compuesta: es a<uella <ue est1 $onfor%ada &or dos o %1s $a%&os del ar$6ivo Por
e8e%&loG su&(n,ase un ar$6ivo de &r3sta%os bibliote$arios $on la si,uiente estru$turaG
Pr3sta%oJBlibliote$ario S yC3dulaJalu%no, C(di,oJlibro, :e$6aJ&r3sta%o, :e$6aJ
devolu$i(n{
Anali$e%os a6ora $u1l o $u1les atributos son $andidatos a $lave del ar$6ivo y &or<u3G
Ca3po Cla7eU EEplicacin
:e$6aJdevolu$i(n NO Dos o %1s libros diferentes &ueden ser re,resados
en la %is%a fe$6a
:e$6aJ&r3sta%o NO Dos o %1s libros diferentes &ueden ser &restados
en la %is%a fe$6a
C(di,oJlibro NO 2i $onsidera%os <ue el ar$6ivo debe al%a$enar la
6istoria de los &r3sta%os, enton$es el %is%o libro
&udo 6aber sido &restado a diferentes estudiantes
C3dulaJalu%no NO Bn alu%no &uede 6a$er &r3sta%os de dos o %1s
libros diferentes
A,otada la &osibilidad de estable$er una $lave si%&le, debe%os a6ora &ro$urar estable$er
una $lave $o%&uesta Lue,o de des$artar o&$iones $o%oG
Ca3pos Cla7eU EEplicacin
C3dulaJalu%no H Bn alu%no &uede &restar el %is%o libro en
C(di,oJlibro NO o$asiones diferentes
C3dulaJalu%no H Bn alu%no &uede &restar diferentes libros en la
fe$6aJ&r3sta%o NO %is%a fe$6a
C3dulaJalu%no H Bn alu%no &uede devolver diferentes libros en
fe$6aJdevolu$i(n NO la %is%a fe$6a
Lle,a%os al si,uiente an1lisisG
Ca3pos Cla7eU EEplicacin
C3dulaJalu%no H 2(lo e7iste una o$urren$ia del re,istro en todo
C(di,oJlibro H 2I el ar$6ivo 2e asu%e <ue no es &osible <ue un
:e$6aJ&r3sta%o libro sea &restado dos ve$es en un %is%o da
Por lo tanto &ode%os afir%ar <ueG
Pr3sta%oJBlibliote$ario S yzC3dulaJalu%no, zC(di,oJlibro, z:e$6aJ&r3sta%o, :e$6aJ
devolu$i(n{
Los $a%&os <ue est1n dentro de las llaves son los $o%&onentes del re,istro
*.2.$. Al3acena3iento 2e arc5i7os 9 su acceso a la in0or3acin
E7iste una rela$i(n dire$ta entre la for%a $o%o se al%a$ena la infor%a$i(n en un ar$6ivo y
la %anera $o%o se re$u&era su infor%a$i(n &osterior%ente El %edio de al%a$ena%iento
deter%ina el %odo y velo$idad de a$$eso a los datos En for%a ,eneral se &uede de$ir <ue 6ay
tres %3todos &ara re$u&erar o a$$eder a la infor%a$i(n de un ar$6ivoG se$uen$ial, se$uen$ial
inde7ado y aleatoria o al azar
a Acceso secuencial: En este $aso los re,istros se &ro$esan en el orden en <ue se ,uardaron en
el ar$6ivo Esta $lase de ar$6ivos se utiliza $uando el volu%en de infor%a$i(n es ,rande y
sus datos no $a%bian $ontinua%ente, los re,istros o$u&an &osi$iones de %e%oria
$onse$utivas y la for%a de a$$eder a ellos es de uno en uno a &artir del &ri%ero, no se &uede
ir en for%a dire$ta $o%o en los arre,los o en la otra $lase de or,aniza$i(n a un deter%inado
re,istro Los re,istros se al%a$enan en for%a ordenada, as$endente o des$endente &or su
$a%&o $lave La $lave en este $aso no ,uarda nin,una rela$i(n $on su &osi$i(n fsi$a <ue
o$u&a en el %edio donde se al%a$ena En sntesis, 3ste %3todo 6a$e <ue los re,istros se
e7a%inen uno des&u3s de otro ?si se <uiere bus$ar la infor%a$i(n del re,istro do$e, 6ay <ue
e7a%inar la infor%a$i(n de los &ri%eros on$e re,istrosC Aun<ue los ar$6ivos se$uen$iales
o$u&an &o$o es&a$io, su &ro$eso es %1s lento $o%&arado $on otros %3todos de
al%a$ena%iento, $o%o el aleatorio &or e8e%&lo La a$tualiza$i(n de estos ar$6ivos &uede
6a$erse res$ribiendo un nuevo re,istro en el lu,ar <ue o$u&a un re,istro <ue ya no se
ne$esita o sa$ando una nueva $o&ia del ar$6ivo, donde s(lo se tienen en $uenta los re,istros
<ue se ne$esitan
Para $rear un nuevo ar$6ivo a$tualizado se deber1 leer del ar$6ivo e7istente $ada uno de los
re,istros, $a%biar la infor%a$i(n en %e%oria &rin$i&al y lue,o al%a$enarlos en un nuevo
ar$6ivo Los re,istros <ue no se ne$esitan %odifi$ar se &asar1n al nuevo ar$6ivo, tal $o%o
est1n en el ar$6ivo anti,uo Por e8e%&lo, si se tiene el si,uiente ar$6ivo %aestro de los
$lientes de una e%&resa
Clientes
C<2ula No3.re Apelli2o Direccin Tel<0ono
").-4+0* :redy Jara%illo Cra "/ No "/J"- '*"/")+
)-.40*'" Leonel Osorno Cll -/ No ""J". )+04.-)
0+.-)"'* :abi1n 5os Cll '/ No "'J4 +.40'/"
-*'.)+0' 9isela 9il Cra )* No "/J'" *'")+0.
EO:
2i los $lientes Leonel y 9isela $a%bian de tel3fono, es ne$esario a$tualizar esos $a%bios en
el ar$6ivo de $lientes Co%o se di8o, una de las for%as de 6a$er estos $a%bios en el a$$eso
se$uen$ial es &asar la infor%a$i(n del ar$6ivo a uno nuevo, o sea, 6a$er lo si,uienteG leer el
re,istro de :redy ?&asarlo del %edio de al%a$ena%iento donde se en$uentra el ar$6ivo $lientes
a %e%oria &rin$i&alCI $o%o no 6ay <ue 6a$erle $a%bios se &asa tal $o%o est1 al nuevo ar$6ivo
Lue,o se lee el re,istro de Leonel, se $a%bia el tel3fono &or )'"*.'+ y se &asa al nuevo
ar$6ivoI a $ontinua$i(n se lee el re,istro de :abi1n y se &asa tal $o%o est1I y &or >lti%o se lee
el re,istro de 9isela, se $a%bia el n>%ero telef(ni$o &or '.0--0- y se &asa al nuevo ar$6ivo
Este nuevo ar$6ivo se ,uarda y se borra el anti,uo, si se <uiere se $a%bia el no%bre nuevo &or
$lientes
Nue7o
C<2ula No3.re Apelli2o Direccin Tel<0ono
").-4+0* :redy Jara%illo Cra "/ No "/J"- '*"/")+
)-.40*'" Leonel Osorno Cll -/ No ""J". )'"*.'+
0+.-)"'* :abi1n 5os Cll '/ No "'J4 +.40'/"
-*'.)+0' 9isela 9il Cra )* No "/J'" )+".-'/
EO:
b. Acceso secuencial inde,ado: es una variante en la or,aniza$i(n y re$u&era$i(n de
infor%a$i(n en for%a se$uen$ial En este $aso los re,istros se en$uentran ordenados &or
un $a%&o $lave y 3ste deter%ina su &osi$i(n en el ar$6ivo Cada re,istro se re$ono$e
&or su $a%&o $laveI &ara esto utiliza estru$tura au7iliar $ono$ida $o%o ndi$e Los
ndi$es se &resentan de una %anera $otidiana en nuestras vidas Por e8e%&loG la
b>s<ueda de una &alabra en un di$$ionario se 6a$e %1s r1&ida, ,ra$ias al ndi$e <ue 3ste
&resenta Los ndi$es son una estru$tura for%ada $on los valores de inde7a$i(n, o $lave,
%ediante la $ual se 6a$e la b>s<ueda, las dire$$iones <ue $orres&onden a la lo$aliza$i(n
fsi$a y el %3todo de inde7a$i(n usado &ara realizar la b>s<ueda 9r1fi$a%ente se
&ueden ver de la si,uiente %aneraG
CLA-E DIRECCI%N CAMPO 1 .............. CAMPO N
") '+
"- "-
'" ")
'* '.
'+ '"
'- '-
'. '*
Las b>s<uedas se realizan a trav3s del ndi$e, lo $ual resulta sustan$ial%ente %1s efi$iente
<ue una b>s<ueda se$uen$ial En el e8e%&lo anterior &odra &ensarse en una b>s<ueda binaria,
aun<ue real%ente e7isten %3todos de b>s<uedas a>n %1s efi$ientes utilizando estru$turas un
&o$o %1s $o%&le8as, $o%o 1rboles, entre otras
A diferen$ia de los ar$6ivos se$uen$iales no es ne$esario leer los nJ" re,istros &re$edentes
&ara leer el en3si%o Los %3todos de inde7a%iento, ,eneral%ente, no son $ono$idos &or el
&ro,ra%ador, es de$ir, la b>s<ueda es llevada a $abo ,ra$ias a fun$iones de los len,ua8es de
&ro,ra%a$i(n, &or lo tanto 3stos son trans&arentes &ara el usuario
$ Acceso aleatorio: Este ti&o de or,aniza$i(n &er%ite <ue e7ista una rela$i(n es&e$ial entre la
$lave de un re,istro y la dire$$i(n real de la $laveI esto 6a$e <ue se &ueda leer y es$ribir un
re,istro en for%a aleatoria
La for%a de a$$eder a un re,istro es %ediante su &osi$i(n en el %edio de al%a$ena%iento,
es de$ir indi$ando el lu,ar <ue o$u&a en el $on8unto de re,istros, debido a <ue $ada $lave tiene
una >ni$a dire$$i(n Pri%ero se lo$aliza la dire$$i(n y lue,o se a$$ede a la infor%a$i(n del
re,istro De todos %odos, la rela$i(n $laveJdire$$i(n de&ender1 de los datos del ar$6ivo y del
dis&ositivo de al%a$ena%iento
Bna venta8a de los ar$6ivos de a$$eso dire$to es la ra&idez $on <ue se lle,a a un deter%inado
re,istro 2i se desea a$$eder al re,istro noventa y nueve, se va dire$ta%ente a ese re,istro sin
ne$esidad de re$orrer los noventa y o$6o re,istros anterioresI esta venta8a se des$o%&ensa $on
la ,ran $antidad de es&a$io <ue $onsu%e
El a$$eso dire$to se utiliza $uando las %odifi$a$iones son $ontinuas Por e8e%&loG #a$er las
$onsi,na$iones o retiro de una entidad ban$aria
*.2.&. Procesa3iento 2e arc5i7os
Antes de entrar en detalle, es ne$esario, tener $laros los si,uientes $on$e&tosG
G Apuntador: es un indi$ador l(,i$o <ue los siste%as usan &ara identifi$ar el re,istro <ue se
<uiere referen$iar en un %o%ento deter%inado Cuando se ini$ia el &ro$eso, el a&untador se
$olo$a al &rin$i&io del &ri%er re,istro del ar$6ivoI y $ada vez <ue se 6a,a un &ro$eso de
le$tura o es$ritura sobre el ar$6ivo, el a&untador se %ueve al &rin$i&io del re,istro si,uiente
G #arca de "in de archi-o (End %" )ile o simplemente E%): $uando se ter%ina de 6a$er un
&ro$eso $on un ar$6ivo, es ne$esario 6a$er la o&era$i(n de $errar el ar$6ivoI 3sta 6a$e <ue al
ar$6ivo se le adi$ione un nuevo re,istro donde se $olo$a una %ar$a, $ono$ida $o%o %ar$a
de fin de ar$6ivo, utilizada &ara saber $u1ndo se lle,a al final de los re,istros <ue $ontienen
infor%a$i(n Esta %ar$a se $o%&orta $o%o un re,istro $entinela y &uede inter&retarse $o%o
<ue se lle,( al final del ar$6ivo o no 6ay %1s datos La %ar$a &er%ite i%&le%entar un $i$lo
$ualitativo &ara re$orrer el ar$6ivo <ue finalizar1 $uando 3sta sea dete$tada
a Crear el archi-o. Per%ite rela$ionar una variable ti&o ar$6ivo, lla%ada no%bre interno del
ar$6ivo, $on el no%bre <ue el ar$6ivo tendr1 en el %edio de al%a$ena%iento, lla%ado
no%bre e7terno La instru$$i(nG
C5EA5 ?A, ^CG|DATO2DAT^CG ,enera una $one7i(n entre el no%bre interno A y el no%bre
e7terno del ar$6ivo, dondeG A es la variable $on la <ue se %ane8ar1 el ar$6ivo en el &ro,ra%a
y DATO2DAT es el no%bre <ue se le dar1 al ar$6ivo en el dis$o duro
b Abrir el archi-o. AB5I5?ACG $onsiste en des&rote,er el 1rea donde residir1 o reside el
ar$6ivo, &ara &oder tener a$$eso a la infor%a$i(nI es de$ir, el ar$6ivo <ueda a dis&osi$i(n del
&ro,ra%a <ue lo 6a abierto y el a&untador se ubi$a al &rin$i&io del &ri%er re,istro
$ Escribir en el archi-o. E2C5IBA?A,5CG &asa la infor%a$i(n <ue 6ay en la variable ti&o
re,istro 5 en %e%oria al ar$6ivo $uyo no%bre e7terno est1 rela$ionado $on A, o sea,
adi$iona un re,istro al ar$6ivo
d 0eer de un archi-o. LEA?A,5CG &asa la infor%a$i(n de un re,istro del ar$6ivo a %e%oria
&rin$i&al, el re,istro $uya infor%a$i(n se trans&orta a la %e%oria &uede serG el referen$iado
&or el a&untador en el $aso de un ar$6ivo de a$$eso se$uen$ial, o el en$ontrado %ediante
al,>n %3todo de b>s<ueda i%&le%entado &or $ada len,ua8e, en el $aso de un ar$6ivo
inde7ado, o el re,istro 6allado %ediante un %3todo de b>s<ueda i%&le%entado &or el
&ro,ra%ador en el $aso de un ar$6ivo dire$to 2i el ar$6ivo es se$uen$ial $ada vez <ue se lee
un re,istro salta y &osi$iona el a&untador en el re,istro si,uiente
e Sobreescribir en el archi-o. 2OB5EE2C5IBA?A,5CG a$tualiza o %odifi$a la infor%a$i(n del
re,istro <ue en el %o%ento est3 en %e%oria y lo lleva a la %is%a &osi$i(n donde estaba
f Cerrar el archi-o. CE55A5?ACG esta instru$$i(n 6a$e lo si,uienteG
J Le da &rote$$i(n al 1rea donde reside el ar$6ivo y a$tualiza el dire$torio del %edio de
al%a$ena%iento refle8ando el nuevo estado del ar$6ivo
J Destruye las $one7iones fsi$as y l(,i$as <ue se $onstruyeron $uando se abri( el ar$6ivo
J Adi$iona un re,istro des&u3s del >lti%o ,rabado donde $olo$a la %ar$a de fin de ar$6ivo
Ejemplo- si 5 es una variable ti&o re,istro, $uyos $o%&onentes sonG $3dula, no%bre y salario
y A es el no%bre interno de un ar$6ivo se$uen$ial, donde se <uiere ,uardar la si,uiente
infor%a$i(nG
/
+ ' /
0 * '
4 + -
A l b e r t o
J u a n
A n a
* ' / / /
* + / / /
* / / / /
Al e8e$utar AB5I5?AC, o$urrir1 lo si,uienteG
@ e % o r i a
A & u n t a d o r
@ e % o r i a a u 7 i l i a r
5
a b a s u r a b
a b a s u r a b
a b a s u r a b
La instru$$i(nG LEAG 5CC, 5NO@ 52AL, &asa infor%a$i(n desde un %edio e7terno de
entrada a la dire$$i(n de %e%oria donde reside la variable 5
@ e % o r i a
A & u n t a d o r
5
4 + -
A n a
* / / / / /
@ e % o r i a a u 7 i l i a r
E2C5IBA?A, 5C, &asa la infor%a$i(n al%a$enada en la variable 5 al ar$6ivo
@ e % o r i a
A & u n t a d o r
5
4 + -
A n a
* / / / / /
4 + - A n a * / / / / /
@ e % o r i a a u 7 i l i a r
LEAG 5CC, 5NO@, 52AL, &asa la infor%a$i(n del se,undo re,istro a %e%oria
@ e % o r i a
A & u n t a d o r
5
0 * '
J u a n
* + / / / /
4 + - A n a * / / / / /
@ e % o r i a a u 7 i l i a r
E2C5IBA?A, 5C
@ e % o r i a
A & u n t a d o r
5
0 * '
J u a n
* + / / / /
4 + - A n a * / / / / / 0 * ' J u a n * + / / / /
@ e % o r i a a u 7 i l i a r
LEAG 5CC, 5NO@ 52AL
@ e % o r i a
A & u n t a d o r
5
+ ' /
A l b e r t o
* ' / / / /
4 + - A n a * / / / / / 0 * ' J u a n * + / / / /
@ e % o r i a a u 7 i l i a r
E2C5IBA?A5C
@ e % o r i a
A & u n t a d o r
5
+ ' /
A l b e r t o
* ' / / / /
4 + - A n a * / / / / / 0 * ' J u a n * + / / / /
@ e % o r i a a u 7 i l i a r
Al e8e$utarse la instru$$i(nG CE55A5?AC, o$urre lo si,uienteG
4+- Ana *///// 0*' Juan *+//// +'/ Alberto *'//// KV
5e,istro / 5e,istro " 5e,istro ' 5e,istro
$on la
%ar$a
2obre la %ar$a EO:, se &uede ade%1s de$ir lo si,uienteG
O Es %ane8ada $o%o una $onstante l(,i$a %ane8ada interna%ente &or la $o%&utadora, $uando
el ar$6ivo es abierto su valor es :AL2O y $uando se dete$ta la %ar$a de fin de datos $a%bia
a ;E5DADE5O
O El valor $olo$ado en el re,istro de&ende de la ar<uite$tura de la $o%&utadora y es
trans&arente &ara el &ro,ra%ador, s(lo i%&orta el valor <ue en un %o%ento deter%inado
ten,a la $onstante EO:
O Aun<ue el re,istro donde se $olo$a la %ar$a 6a$e &arte del ar$6ivo, no se tiene en $uenta al
en$ontrar el ta%aFo del ar$6ivo en $antidad de re,istrosI &or lo tanto, el ar$6ivo anterior
tiene un ta%aFo de tres re,istros
*.2.'. Operaciones .:sicas so.re arc5i7os
a Adicin: in,resa nuevos re,istros al ar$6ivo Antes de es$ribir un nuevo re,istro es &re$iso
validar <ue 3ste no e7ista, utilizando la $lave del ar$6ivo
b #odi"icacin: a$tualiza la infor%a$i(n de un re,istro e7istente
$ &etiro: eli%ina un re,istro del ar$6ivo 2i el ar$6ivo es se$uen$ial, ,eneral%ente se utiliza un
]borrado l(,i$o^ ?no fsi$o, es de$ir, fsi$a%ente el re,istro si,ue o$u&ando es&a$io de
al%a$ena%iento, lo $ual &odra $onsiderarse $o%o una desventa8aC El borrado l(,i$o
$onsiste en la destina$i(n de un $a%&o del ar$6ivo &ara ,uardar el estado l(,i$o de $ada
re,istro ?A$tivo ( Ina$tivoC, de tal for%a <ue eli%inar un re,istro sea tan si%&le $o%o
$a%biar su estado de A$tivo a Ina$tivo ?o de " a /C Con ar$6ivos Inde7ados debe
reor,anizase o reinde7arse el ndi$e, lo $ual a ve$es resulta una tarea $o%&le8a, &ero
afortunada%ente es realizada &or 6erra%ientas de los len,ua8es de &ro,ra%a$i(n ?los
as&e$tos rela$ionados $on %3todos de inde7a$i(n y b>s<ueda se en$uentran fuera del
al$an$e de este libroC
Operaciones so.re arc5i7os secuenciales
EJercicio resuelto No. ))
Dado el si,uiente ar$6ivo se$uen$ialG
E2TBDIANTE S yzCDDI9O, NO@B5E, DI5ECCIDN, E2TADO{
DondeG
zG Clave
C(di,oG N>%ero de identidad del alu%no
No%breG No%bre del alu%no
EstadoG Indi$ador nu%3ri$o del estado de $ada re,istro " &ara a$tivo ( / &ara
ina$tivo
a Es$ribir un al,orit%o <ue adi$ione un estudiante al ar$6ivo
b Bn al,orit%o <ue %odifi<ue la infor%a$i(n de un estudiante en el ar$6ivo
$ Al,orit%o <ue retire un estudiante del ar$6ivo
Considera$ionesG
O Ar$6ivo se$uen$ial
O ClaveG CDDI9O
O Antes de adi$ionar un nuevo estudiante debe%os verifi$ar <ue no e7ista
en el ar$6ivo
O Debe%os tener &resente el estado de $ada re,istro, ya <ue es &osible <ue
el $(di,o e7ista, &ero en $aso de <ue el estado sea / ?$eroC esto nos su&one
el e<uivalente a i,norar el re,istro, es de$ir, es $o%o si el re,istro no e7istiera
a. Al/orit3o
NCO
ESCRBA: "DGTE EL CDGO DEL ESTUDANTE A ADCONAR:"
LEA: CODGOAD
ENCONTR = 0
ABRR (ESTUDANTE)
LEA: (ESTUDANTE, R)
MENTRAS (!EOF(ESTUDANTE)) (ENCONTR = 0) HAGA
S (CODGOAD = R.CDGO) (R.ESTADO= 1) ENTONCES
ENCONTR = 1
FN_S
LEA: (ESTUDANTE, R)
FN_MENTRAS
S ENCONTR = 1 ENTONCES
ESCRBA: " EL ESTUDANTE YA EXSTE "
SNO
ESCRBA: " DGTE EL NOMBRE Y LA DRECCN DEL
ESTUDANTE:"
LEA: R.NOMBRE, R.DRECCN
R.CDGO = CODGOAD
R.ESTADO = 1
ESCRBA (ESTUDANTE, R)
FN_S
CERRAR (ESTUDANTE)
FN_NCO
Anotaciones i3portantesH
O En el al,orit%o se asu%e <ue el ar$6ivo e7iste y tiene re,istros, de lo $ontrario debera ser
$reado $on la o&era$i(n Crear ?C
O Ten,a &resente la diferen$ia entre la le$tura de una variable y la le$tura de un ar$6ivo
?LEA?no%bre ar$6ivo, variable ti&o re,istroCC a%bas tienen efe$tos $o%&leta%ente
diferentes
O EO:?no%bre de ar$6ivoCG Indi$ador <ue nos devuelve un valor l(,i$o, indi$ando si se
en$ontr( o no el fin del ar$6ivo
O gG Ne,a$i(n
O gEO:?CG No :in del ar$6ivo
b Al,orit%o <ue %odifi$a la infor%a$i(n de un estudiante
NCO
ESCRBA: "DGTE EL CDGO DEL ESTUDANTE A MODFCAR
LEA: CODMOD
ENCONTR = 0
ABRR (ESTUDANTE)
LEA (ESTUDANTE, R)
MENTRAS (!EOF(ESTUDANTE)) (ENCONTR = 0) HAGA
S (CODMOD = R.CDGO) (R.ESTADO = 1) ENTONCES
ENCONTR = 1
FN_S
S ENCONTR = 0) ENTONCES
LEA: (ESTUDANTE, R)
FN_S
FN_MENTRAS
S ENCONTR = 0 ENTONCES
ESCRBA: "EL ESTUDANTE NO EXSTE "
SNO
ESCRBA: "DGTE EL NUEVO NOMBRE Y LA NUEVA
DRECCN "
LEA: R.NOMBRE, R.DRECCN
R.CDGO = CODMOD
R.ESTADO = 1
SOBREESCRBA: (ESTUDANTE, R)
FN_S
CERRAR (ESTUDANTE)
FN_NCO
$ Al,orit%o <ue retira la infor%a$i(n de un estudiante
NCO
ESCRBA: "DGTE EL CDGO DEL ESTUDANTE A ELMNAR"
LEA: CODELM
ENCONTR = 0
ABRR (ESTUDANTE)
LEA: (ESTUDANTE, R)
MENTRAS (!EOF(ESTUDANTE)) (ENCONTR = 0) HAGA
S (CODELM = R.CDGO) (R.ESTADO = 1) ENTONCES
ENCONTR = 1
FN_S
S (ENCONTR = 0) ENTONCES
LEA(ESTUDANTE, R)
FN_S
FMQ
S (ENCONTR = 0) ENTONCES
ESCRBA: "EL ESTUDANTE NO EXSTE"
SNO
ESCRBA: "EL ESTUDANTE SER ELMNADO DEL
ARCHVO"
R.ESTADO = 0
SOBREESCRBA (ESTUDANTE.R)
FN_S
FN_MENTRAS
CERRAR (ESTUDANTE)
FN_NCO
EJercicio resuelto No. )*
Elaborar un sub&ro,ra%a <ue ,enere el ar$6ivo A* S yzCOD, NO@, PA9O, E2TADO{,
<ue <uede ordenado as$endente%ente &or el $a%&o COD, $ada vez <ue se le adi$ione un
re,istro
PROCEDMENTO ADCONARO "A(%
ABRR (A3)
LEA: CODGOAD
R.COD = CODGOAD
LECTURA (R) // LEE R. NOM Y R. PAGO
ESCRBA (A3, R)
CERRAR (A3)
LEA:CODGOAD
MENTRAS CODGOAD <> 0 HAGA
ABRR (A3)
LEA: (A3, R)
ENCONTR = 0
MENTRAS (!EOF(A3) (ENCONTR = 0) HAGA
S (CODGOAD = R.COD) (R.ESTADO =
1) ENTONCES
ENCONTR = 1
SNO
LEA: (A3, R)
FN_S
FN_MENTRAS
CERRAR (A3)
S ENCONTR = 1 ENTONCES
ESCRBA:EL ESTUDANTE YA EXSTE
SNO
ABRR (A3)
R.COD = CODGOAD
LECTURA (R)
ESCRBA (A3, R)
NR = TAMAO DE (A3)
= NR SW = 0
CERRAR (A3) ABRR (A3)
MENTRAS ( > 0) ( SW = 0)
POSCN (A3, -1)
LEA: (A3, R1)
S CODGOAD < R1.COD ENTONCES
POSCN (A3, )
ESCRBA: (A3, R1)
SNO
SW = 1
FN_S
FN_MENTRAS
POSCN (A3, )
ESCRBA: (A3, R)
CERRE (A3)
FN_S
LEA: CODGOAD
FN_MENTRAS
FN_ADCONARO
La fun$i(n TA@AwO, en$uentra el ta%aFo de un ar$6ivo en $antidad de re,istros y
PO2ICIDN?A,IC, ubi$a el a&untador <ue re$orre el ar$6ivo A al ini$io del re,istro I, 6ay <ue
tener en $uenta <ue los re,istros est1n nu%erados de / a NJ"
EJercicio resuelto No. *I
Elaborar un sub&ro,ra%a <ue $ree el ar$6ivo A* S yz COD, NO@, PA9O, E2TADO{,
ordene alfab3ti$a%ente el ar$6ivo A*, de8ando su $ontenido en el nuevo ar$6ivo A)
PROCEDMENTO ORDENALFA "A(# A)%
ABRR (A3) ABRR (A4)
ADCONARO (A3)
LEA: (A3, R)
MENTRAS (!EOF (A3))
ESCRBA (A4, R)
LEA (A3, R)
FN_MENTRAS
CERRAR (A3) CERRAR(A4)
ORDENAR (A4)
FN_ORDENALFA
PROCEDMENTO ORDENAR "A)%
N = TAMAO DE (A4)
ABRR (A4)
PARA = 0, N-1, 1 HAGA
POSCN (A4, )
LEA: (A4, EST1)
POS = NOMEN = EST1.NOM
PARA K = +1, N, 1 HAGA
POSCN (A4, K)
LEA: (A4, EST2)
S NOMEN > EST2.NOM ENTONCES
POS = K NOMEN = EST2.NOM
FN_S
FN_PARA
POSCN (A4, POS)
LEA (A4, EST2)
POSCN (A4, )
ESCRBA: (A4, EST2)
POSCN (A4, POS)
ESCRBA (A4, EST1)
FN_PARA
FN_ORDEN
Operaciones so.re arc5i7os secuenciales in2eEa2os
EJercicio resuelto No. *1
2i se tiene el ar$6ivo se$uen$ial E2TBDIANTE, inde7ado &or el atributo $(di,o
E2TBDIANTE S yzCDDI9O, NO@B5E, DI5ECCIDN{
a Elaborar un al,orit%o <ue adi$ione un estudiante al ar$6ivo
b Al,orit%o <ue %odifi<ue la infor%a$i(n de un estudiante
$ Al,orit%o <ue retire a un estudiante del ar$6ivo
Consi2eracionesH
O Ar$6ivo se$uen$ial Inde7ado
O ClaveG C(di,o
O jndi$eG C(di,o
O Antes de adi$ionar un nuevo estudiante debe%os verifi$ar <ue no e7ista en el ar$6ivo
O No es ne$esario $onsiderar el estado de $ada re,istro, ya <ue el borrado de los
re,istros, a diferen$ia de los ar$6ivos se$uen$iales es fsi$o, no l(,i$o, lo $ual ofre$e
una venta8a &uesto <ue se &uede utilizar el es&a$io de al%a$ena%iento dis&onible
a. Al/orit3o
NCO
ESCRBA: "DGTE EL CDGO DEL ESTUDANTE"
LEA: CODGOAD
ENCONTR = 0
ABRR (ESTUDANTE)
ENCONTR = BUSCAR (ESTUDANTE, CODGOAD)
S ENCONTR = 1 ENTONCES
ESCRBA: "EL ESTUDANTE YA EXSTE"
SNO
R.CDGO = CODGOAD
ESCRBA: "DGTE NOMBRE Y DRECCN"
LEA: R.NOMBRE, R.DRECCN
ESCRBA (ESTUDANTE,R)
FN_S
CERRAR (ESTUDANTE)
FN_NCO
Anotaciones i3portantesH
O Asu%i%os <ue el ar$6ivo e7iste y tiene re,istros, de lo $ontrario deber1 ser $reado $on la
o&era$i(n Crear ?C
O En nin,>n %o%ento es ne$esario 6a$er referen$ia al indi$ador, EO:, de fin de ar$6ivo
O Bus$ar es una fun$i(n <ue re$ibe $o%o ar,u%entos el no%bre del ar$6ivo y el valor a
bus$ar Nsta devuelve verdadero ?"C si el valor se en$uentra en el ar$6ivo o falso ?/C en $aso
$ontrario Ten,a &resente <ue la fun$i(n es una $a8a ne,ra y su efi$ien$ia &uede variar
de&endiendo del %3todo de inde7a%iento utilizado &or el len,ua8e
b Al,orit%o <ue %odifi$a la infor%a$i(n de un estudiante en el ar$6ivo
Al/orit3o
NCO
ESCRBA: "DGTE EL CODGO DEL ESTUDANTE A MODFCAR"
LEA: CODMOD
ENCONTR = 0
ABRR (ESTUDANTE)
ENCONTR = BUSCAR (ESTUDANTE, CODMOD)
S ENCONTR = 0 ENTONCES
ESCRBA: "EL ESTUDANTE NO EXSTE EN EL ARCHVO"
SNO
ESCRBA: "DGTE NOMBRE Y DRECCN DEL NUEVO
ESTUDANTE"
LEA: R.NOMBRE, R.DRECCN
R.CDGO = CODMOD
SOBREESCRBA (ESTUDANTE, R)
FN_S
CERRAR (ESTUDANTE)
FN_NCO
$ Al,orit%o <ue retira un estudiante del ar$6ivo
NCO
ESCRBA: "DGTE EL CDGO DEL ESTUDANTE A ELMNAR"
LEA: CODELM
ENCONTR = 0
ABRR (ESTUDANTE)
ENCONTR = BUSCAR (ESTUDANTE, CODELM)
S ENCONTR = 0 ENTONCES
ESCRBA: "EL ESTUDANTE NO EXSTE"
SNO
ESCRBA: "EL ESTUDANTE SER ELMNADO"
ELMNE (ESTUDANTE, CODELM)
FN_S
CERRAR (ESTUDANTE)
FN_NCO
Al i,ual <ue BB2CA5, ELI@INA5 es una fun$i(n dis&onible en los len,ua8es de
&ro,ra%a$i(n <ue &er%ite liberar fsi$a%ente el es&a$io <ue o$u&aba el re,istro Esta fun$i(n,
ade%1s, debe en$ar,arse de la reor,aniza$i(n o reinde7a%iento del ndi$e o de los ndi$es
des&u3s de la o&era$i(n, lo $ual a ve$es resulta $o%&le8o &ero ne$esario, teniendo en $uenta los
tie%&os de res&uesta de los %3todos de b>s<ueda <ue utilizan estru$turas $o%&le8as
Aspectos a tener en cuentaH
a Los arre,los son $reados en %e%oria &rin$i&alI &or lo tanto, es bueno $ontrolar su ta%aFo
b Los arre,los de re,istros &er%iten tener ele%entos $on diferentes ti&os de datos
$ El entendi%iento de los arre,los de re,istros, &or su &are$ido, son base funda%ental &ara el
%ane8os de ar$6ivos
d Cuando se $rea un ar$6ivo, 6ay <ue tener en $uenta <ue si e7iste otro ar$6ivo $on el %is%o
no%bre en el %edio de al%a$ena%iento, ser1 destruido
e La instru$$i(n LEA es diferente &ara ar$6ivos y &ara entrada de datos desde te$lado o
$ual<uier otro %edio de entrada
f Cuando se traba8a $on ar$6ivos se$uen$iales inde7ados, no es ne$esario 6a$er referen$ia a la
$onstante interna EO:
, El borrado de un re,istro en un ar$6ivo se$uen$ial es l(,i$o, es de$ir, aun<ue el re,istro no
se tiene en $uenta en el &ro$eso a>n 6a$e &arte del ar$6ivo, %ientras <ue en los ar$6ivos
se$uen$iales inde7ados el borrado es fsi$o
6 El uso de las fun$iones BB2CA5 y ELI@INA5 son trans&arentes &ara el &ro,ra%ador, ya
<ue de una u otra for%a los len,ua8es de &ro,ra%a$i(n las tienen i%&le%entadas
*.#. EJercicios propuestos
'*+ Elaborar un al,orit%o <ue for%e un arre,lo de re,istros <ue $onten,a en $ada ele%entoG
$3dula, no%bre, 6oras traba8adas, valor 6ora traba8ada, &or$enta8e de dedu$$i(n El
al,orit%o debe &rodu$ir un infor%e $on la $3dula, no%bre y salario deven,ado ?ordenado
as$endente%ente &or el $a%&o $3dulaC
'*0 Crear un arre,lo de re,istros $on la si,uiente infor%a$i(n &or ele%entoG $3dula, a&ellidos
y no%bre y $uatro notas $on sus res&e$tivos &or$enta8es Lue,o de $reado el ve$tor se &ide
%ostrar listado ordenado &or a&ellido, insertar un nuevo estudiante, la $alifi$a$i(n
definitiva de $ada estudiante y visualizar el $ontenido del arre,lo
'*- En un $a%&eonato de f>tbol se $uenta $on un n>%ero %17i%o de veinte e<ui&os
&arti$i&antes y un %ni%o de diez Para la realiza$i(n del $a%&eonato los e<ui&os se
dividen en dos ,ru&os De $ada ,ru&o se sa$an los dos e<ui&os <ue ten,an los %ayores
&unta8es y 3stos ser1n los <ue van a la final Para obtener los dos e<ui&os de la final se
6a$e de i,ual %anera, %ediante n>%eros aleatorios, lo %is%o se 6a$e &ara obtener el
$a%&e(n
5eali$e un al,orit%o <ue re&resente en ve$tores de re,istros los e<ui&os &arti$i&antes en
$ada una de las rondas, donde $ada e<ui&o debe $onservar el &unta8e obtenido en $ada
faseI el al,orit%o debe %ostrar en $ual<uier %o%ento los &arti$i&antes en $ada una de las
eta&as del $a%&eonato Bsted les da los no%bres a los e<ui&os
'*. Elabore un arre,lo de re,istros $on la si,uiente infor%a$i(n &or ele%entoG a&ellidos
no%bres, edad, estatura, $olor de los o8os, %edida del busto, %edida de la $intura y %edida
de la $adera, de las $andidatas a un reinado de belleza El al,orit%o debe &ro&or$ionar un
@ENB $on los si,uientes te%sG $andidatas ordenadas &or a&ellido, $andidatas <ue tienen
%edidas &erfe$tas, $andidatas $on o8os azules, y un listado ordenado des$endente%ente
&or estatura
'*4 2e tiene la si,uiente infor%a$i(n de un ,ru&o de &ersonasG $3dula, a&ellidos no%bres,
dire$$i(n, tel3fono, se7o ?@G %as$ulinoI :G fe%eninoC, estado laboral ?"G traba8aI 'G no
traba8aC Elabore un al,orit%o <ue for%e dos ve$tores de re,istros $on la anterior
infor%a$i(nI uno debe al%a$enar las &ersonas <ue traba8an y el otro las <ue no traba8an,
ordenados as$endente%ente &or $3dula
Elabore un al,orit%o <ue for%e y desarrolle el si,uiente @ENBG adi$ionar una nueva
&ersona, retirar una &ersona, $a%bio de estado laboral, bus$ar una &ersona, listar &ersonas
<ue traba8an, listar &ersonas <ue no traba8an, listar %u8eres <ue no traba8an, listar 6o%bres
<ue traba8an
Cuando se adi$ione una nueva &ersona se deben &edir los datos de ella e inter$alarla en el
res&e$tivo ve$tor sin daFar el ordena%iento Para retirar una &ersona, se le debe &edir la
$3dula y su estado laboral y borrarla fsi$a%ente sin daFar el ordena%iento en el ve$tor
donde se en$uentre Para el $a%bio de estado laboral se le &ide la $3dula y su estado
laboral y se adi$iona y se borra del res&e$tivo ve$tor Cuando se bus$a una &ersona, se le
&ide la $3dula y el estado laboral y se %uestra su infor%a$i(n
')/ Bn ,ru&o e$on(%i$o al%a$ena infor%a$i(n de sus e%&resas en un ar$6ivo se$uen$ial $on
la si,uiente $o%&osi$i(nG
9ru&o S ?C(di,oJE%&resa, C(di,oJDe&arta%ento, C(di,oJe%&leado, 2e7oA, TotalJ;entasJ
E%&leado, EstadoC
lCu1l es su $lave &ri%ariam
2abiendo <ue la infor%a$i(n se en$uentra ordenada as$endente%ente &or $ada $(di,o,
es$riba los res&e$tivos al,orit%os y &ro,ra%as en CHH <ue $al$ulenG
" Total de ventas del ,ru&o e$on(%i$o
' C(di,o de la e%&resa $on %ayores ventas
* C(di,o del de&arta%ento $on %enores ventas
) C(di,o del e%&leado $on %ayores ventas &or $ada de&arta%ento de $ada e%&resa
')" Dado el si,uiente ar$6ivo se$uen$ial inde7adoG
Pr3sta%o S yC3dulaJPrestatario, No%breJPrestatario, Ti&o, Des$ri&$i(n, ;alor, :e$6a{
Es$riba los al,orit%os y &ro,ra%as <ueG
'" Adi$ionen &r3sta%os
'' @odifi<uen &r3sta%os
'* 5etiren &r3sta%os
') I%&ri%a todos los no%bres de los $lientes <ue deben entre + y "+ %illones
'+ Per%ita $onsultar los &r3sta%os de una &ersona
(ota Eli8a $on $uidado la $lave e ndi$e del ar$6ivo, ten,a &resente <ue una &ersona &uede
tener varios &r3sta%os, &ero s(lo uno de $ada ti&o
')' Las universidades A y B al%a$enan infor%a$i(n de sus estudiantes en los si,uientes
ar$6ivosG
A S yzC(di,oA, No%breA, Dire$$i(nA, 2e7oA, EdadA{
B S yzC(di,oB, No%breB, Dire$$i(nB, 2e7oB, EdadB{
Es$riba los al,orit%os <ue &er%itan $onsultarG
" A J B
' A B
* A B
) A J ?A J BC
5eali$e $ada $onsulta &ara ar$6ivos se$uen$iales y ar$6ivos se$uen$iales inde7ados
Co%&are los tie%&os de e8e$u$i(n &ara $ada una de ellas de&endiendo de los ti&os de ar$6ivos
utilizados lAu3 &ode%os $on$luirm
Para cada uno de los siguientes e'ercicios constru!a una solucin usando archi-o
secuencial ! otra con secuencial inde,ado.
')* El ban$o EL ANCLA5 2 A, desea $ono$er el estado de sus $lientes &artiendo de un
ar$6ivo <ue tiene el n>%ero de la $uenta, no%bre del $liente, tel3fono del $liente, saldo
a$tual y n>%ero de $6e<ues ,irados en la >lti%a se%ana Con los datos anteriores 6allar el
tel3fono del $liente <ue %enos $6e<ues ,ir(, el n>%ero de $lientes $on saldo en ro8o, el
n>%ero de $lientes $on saldo %ayor a W +/////, el n>%ero de $lientes $on saldo %ayor
<ue $ero y el a$u%ulado de saldos de todos los $lientes
')) La ofi$ina de de&ortes de un &olit3$ni$o desea $ono$er &ersonas &ara inte,rar un e<ui&o de
balon$esto, y &ara ello abri( ins$ri&$iones y re$ole$t( un ar$6ivo $on el no%bre, tel3fono,
edad, se7o ?Q:R J fe%enino, Q@R J %as$ulinoC, estatura ?en $ent%etrosC y &eso ?en MilosC de
&ersonas interesadas 2e re<uiere averi,uar e i%&ri%ir el no%bre y tel3fono de las
&ersonas <ue ten,an entre ". y */ aFos, <ue %idan ",./ %etros o %1s y <ue &esen entre ./
y ""/ MilosI ade%1s, la edad &ro%edio de las &ersonas <ue $u%&lieron $on los re<uisitos
e7i,idos, el n>%ero de 6o%bres $on un &eso %ayor a ""/ Milos, el n>%ero de %u8eres
%enores de ". aFos y el no%bre de la &ersona %1s alta
')+ Bn al%a$3n de $adena tiene un ar$6ivo de art$ulos $on el $(di,o, no%bre, $antidad
e7istente, &re$io unitario de $o%&ra, &re$io unitario de venta y n>%ero de unidades
vendidas 6asta la fe$6a El Ad%inistrador desea saber el $(di,o del art$ulo y el &re$io
unitario de $o%&ra, de los art$ulos <ue se vendieron total%enteI ta%bi3n, el no%bre y la
$antidad restante de los <ue no se vendieron total%ente, y la ,anan$ia bruta del al%a$3n
')0 La e%&resa de $onstru$$i(n @ONTELIBANO 2 A , desea $ono$er terrenos $uya 1rea est3
entre ).// y +)// %etros $uadrados, y <ue su frente y fondo no sea %enor de 0/ y ./
%etros res&e$tiva%ente Para ello re$ole$t( %edidas de terrenos $on el no%bre del
&ro&ietario, tel3fono, dire$$i(n, lon,itud de frente y de fondo en %etros, y desea saber la
infor%a$i(n $o%&leta de los terrenos <ue $u%&lan los re<uisitos, ade%1s de $u1ntos
terrenos $u%&liendo $on el 1rea, no $u%&lieron $on las %edidas de frente y fondo
')- 2e tiene un ar$6ivo de &ersonal de una e%&resa $on la $3dula del traba8ador, no%bre, edad,
tie%&o de servi$io, asi,na$i(n %ensual, estado $ivil ?"G $asadoI 'G solteroI *G viudoC y
n>%ero de 6i8os 2e re<uiere 6allar e i%&ri%ir la si,uiente infor%a$i(n se,>n el $asoG la
$3dula y no%bre de los traba8adores $on %1s de '/ aFos de servi$io y +/ ( %1s aFos de
edadI la $3dula, el n>%ero de 6i8os, y el '/ &or $iento de la asi,na$i(n %ensual de
a<uellos traba8adores <ue ten,an %1s de + 6i8os y %enos de "/ aFos de servi$ioI el n>%ero
total de traba8adores de la e%&resaI la $3dula y el valor a &a,ar &or subsidio fa%iliar &ara
los traba8adores $asados, sabiendo <ue se &a,an W'//// de subsidio &or 6i8oI el &ro%edio
de asi,na$i(n %ensual de los traba8adores de la e%&resa
'). Bna a,en$ia de $o%&ra, venta y arrenda%iento de &ro&iedad raz en la $iudad dis&one de
un ar$6ivo $uyo re,istro est1 $o%&uesto de los si,uientes $a%&osG dire$$i(n de la
&ro&iedad, tel3fono, n>%ero de al$obas, 1rea total, valor de $o%&ra, valor de venta, valor
arrenda%iento, indi$ador de estado ?"G arrendadaG 'G deso$u&adaC Ta%bi3n tiene un
ar$6ivo de novedades de la se%ana, $on los si,uientes $a%&osG dire$$i(n de la &ro&iedad,
tel3fono, n>%ero de al$obas, 1rea total, valor de $o%&raKventaKarrenda%iento, ti&o de
transa$$i(n ?"G $o%&raI 'G ventaI *G se arrend(C #a$er un al,orit%o &ara a$tualizar el
ar$6ivo de &ro&iedades, sabiendo <ueG
O Cuando la &ro&iedad se $o%&ra, sie%&re est1 deso$u&ada, su &re$io de venta es del "+P
adi$ional a su &re$io de $o%&ra, y su &re$io de arrenda%iento en ese %o%ento es $ero
O Cuando la &ro&iedad se vende, debe estar deso$u&ada
Ade%1s se debe i%&ri%ir el valor total de las &ro&iedades $o%&radas, el valor total de las
&ro&iedades vendidas y $u1ntas &ro&iedades se arrendaron
')4 Bna e%&resa de trans&orte a3reo tiene un ar$6ivo $on el si,uiente diseFoG
Descripcin 2el ca3po Tipo ca3po O.ser7aciones
No%bre de la $iudad de destino Alfanu%3ri$o Ciudades del E$uador
;alor del &asa8e Nu%3ri$o
N>%ero de &asa8eros <ue via8aron Arre,lo de do$e ?"'C
en $ada %es del aFo Nu%3ri$o ele%entos
#a$er un al,orit%o &ara 6allar el total re$audado &or trans&orte en la e%&resa lEn $u1l %es
se re$aud( %1s dinero en la e%&resa, en di$ie%bre o en 8uniom No%bre de la $iudad de destino,
n>%ero de &asa8eros <ue via8aron en el aFo y valor re$audado &or trans&orte a $ada una de las N
$iudades de destino, sabiendo <ue la $iudad de ori,en es Bo,ot1 lA $u1l $iudad via8aron %enos
&asa8eros en el aFom
'+/ Bna E%&resa Te7til tiene un ar$6ivo de rollos de tela ter%inada en fondo entero y $on un
an$6o est1ndar de ",+/ %etros, $uyo re,istro est1 $o%&uesto del n>%ero de rollo de tela,
$olor ?"G blan$oI 'G ne,roI, *G verdeC, ti&o de tela ?AG al,od(nI LG linoI 2G sedaC, lar,o en
%etros e7a$tos y valor del rollo #a$er un al,orit%o &ara 6allar el n>%ero de rollos de
tela, su valor total y el &ro%edio de lon,itud de los rollosI el &or$enta8e ?PC de tela en lino
res&e$to de toda la &rodu$$i(nI $antidad de vestidos &ara 6o%bre en al,od(n de $olor
ne,ro, sabiendo <ue &ara $onfe$$ionar $ada vestido se re<uiere de ) %etros de lar,oI
$u1ntas banderas de la &az se &ueden $onfe$$ionar si $ada una re<uiere un %etro de tela
'+" Bna librera dis&one de un ar$6ivo de ventas de la se%ana $on el si,uiente diseFo de
re,istroG
Descripcin ca3po No3.Ne3ot. Lon/. Tipo Co2i0icacin
Ttulo del libro TITL +/ Alfanu%3ri$o
Editorial EDIT )/ Alfanu%3ri$o
;alor unitario de venta ;BNI - Nu%3ri$o
Erea A5EA " Nu%3ri$o " J @ate%1ti$as
* J Es&aFol
+ J 2o$iales
Cantidad vendida CANT ) Nu%3ri$o
#a$er un al,orit%o &ara 6allar la si,uiente infor%a$i(n soli$itada &or el ad%inistradorG
O Ttulo del libro del 1rea de so$iales, de %enor $antidad vendida
O De <ue 1rea entre %ate%1ti$as y es&aFol, se vendieron %1s libros
O Ttulo del libro, editorial y total de ventas de $ada libro
O Total de ventas en la se%ana y &ro%edio de venta de $ada libro
BIBLIO95A:IA
JOTANE2, LuisG )undamentos de programacin, @$95ALJ#ILL, @adrid, "4..
JOTANE2, LuisG Problemas de la metodologa en la programacin, @$95ALJ#ILL, Es&aFa,
"44/
JOTANE2, Luis, YA#ONE5O, I,na$ioG ,Estructura de datos3 algoritmos abstractos ! ob'etos3
@$95ALJ#ILL, Es&aFa, "44.
5IO2 C :abianG Soluciones secuenciales, Editorial B de A, @edelln, "44+
CO55EA, 9uiller%oG Desarrollo de algoritmos ! sus aplicaciones en 4AS*C3 PASCA03
C%4%0 > C. #c?&A@1A*00, Bo,ot1, "44'
BO5E2, 5osario y 5O2ALE2, 5a%onG Computacin1metodologa3 lgica computacional !
programacin, @$95ALJ#ILL, @37i$o, "44*
2ANC#I2, J y @O5ALE2 AG Programacin con lengua'e Pascal, @$95ALJ#ILL Es&aFa,
"4./
2#AB@G Programacin en Pascal, @$95ALJ#ILL, Es&aFa, "4.+
LOYANI, 5 LetvinG Diagramacin ! programacin, @$95ALJ#ILL, Bo,ot1, "4..
BECE55A, CesarG 0engua'e C3 Xi%&res Ltda, Bo,ot1, "44.
CAI5DK9BA5DATIG Estructura de datos, @$95ALJ#ILL, @37i$o, "44*
# PABL, #aidu7G Turbo Pascal %rientado a %b'etos, @$95ALJ#ILL, @37i$o, "44)
;ILLALOBO2, Jor,e G DiseBo ! mane'o de estructuras de datos en CCC, @$95ALJ#ILL,
Bo,ot1, "440
DEITEL } DEITELG Como programar CCC, Pearson, @37i$o, "444
JO ANN 2@IT#G CCC Desarrollo de pro!ectos, In,ra%e7, @37i$o, '//"
INDICE ANALITICO
A
Abrir el ar$6ivo, '40
A$$eso
Aleatorio, '4+
2e$uen$ial, '4*
2e$uen$ial inde7ado, '4*
A$tiva$i(n
De una fun$i(n, ".0
De un &ro$edi%iento, ".'
Adi$i(n, '44
An1lisis del &roble%a, )'
A&untador, '4+
Al,orit%o
Lla%ante, "4"
Al,orit%os, "*, )) Ar$6ivo, "., '.-
Ar$6ivos, '.-
De datos, '.-
De %ovi%iento, '.4
De &ro,ra%a, '.-
De te7to, '.-
#ist(ri$os, '.4
@aestros, '.4
Per%anentes, '.4
2e$uen$iales, '4'
2e$uen$iales
inde7ado, '4)
Ar,u%entos, ".'
De envo, ".'
De re$ibo, ".'
Arre,los, '/"
De una di%ensi(n, '/'
De dos di%ensiones, '*0
De re,istros, '.*
@ultidi%ensionales, '0"
As$ii, '*, ')
Asi,na$i(n, +.
"
Bandera, "/.
Base de datos, "4
Basura, *+
Binaria, '
Bit, ".
Byte, ".
Borrado, '*/
Burbu8a, '''
B>s<ueda, '"-
Binaria, '"4, ''/
2e$uen$ial, '"-
C
Caso, ")4
Cerrar el ar$6ivo, '40
Ca%&o, ".
Constante, ** ;ariable, **
Car1$ter,
Cara$tersti$as de los
al,orit%os, ))
Claridad, )+
Entrada, )+
2alida, )+
:inaliza$i(n, )+
Li%itado, )+
:inito, )+
Ci$lo
@ientras <ue, "0*
Para, "++
5e&etir, ")4
Clasifi$a$i(n de los
ar$6ivos, '.-
Clasifi$a$i(n de los
arre,los, '/'
Clasifi$a$i(n de las
$o%&utadoras, +
Por el avan$e
te$nol(,i$o, +, 0
Por el ti&o de
infor%a$i(n, +
Por la $a&a$idad, 0
Clave
Con$e&to, '4/ Co%&uesta, '4"
2i%&le, '4"
Codifi$a$i(n, )*
Co%&ila$i(n, )*
Co%&ilador, "0, ")
Co%&le%ento, '+
A dos, '+
A r, '+
A rJ", '+
A uno, '+
Co%&onentes de un
ar$6ivo, '.-
Con$e&to de
&ro,ra%a$i(n, +"
Co%&onentes de un
ar$6ivo, '.-
Co%&utadora, ", )
CPB, .
Crear el ar$6ivo, '4+
D
Datos, )'
De$isi(n l(,i$a, 0-
Defini$i(n
De variables, "-'
Del &roble%a, )'
Dia,onal, ')'
Prin$i&al, ')'
2e$undaria, ')'
Dia,ra%a, +'
De flu8o, +'
5e$tan,ular, +*
DiseFo des$endente, +"
Dire$$i(n de %e%oria, "-
Dis$o, 4
Dis<uete, 4
Do$u%enta$i(n, ))
De sub&ro,ra%as, ".-
E7terna, ))
E
Edva$, '
E8e$u$i(n, )*
Elabora$i(n de &ro,ra%as &ara $o%&utadora, "'
Enia$, '
Entrada de datos, -, +.
Ensa%blador, "0
EO:, '.4, '4+
Es$ribir en el ar$6ivo, '40
Es<ue%a, 4+ Cualitativo, "// Cuantitativo, 4+
Estru$tura
Caso, ")4
De$isi(n l(,i$a, 0-
Para, "++
5e&etir, "0*
5e&etitiva, .4
2e$uen$ial, +-
Estru$turas adi$ionales, ")4
E7&onente, */
En base, "0, *" E7&resi(n, *4
Arit%3ti$a, *4
Constante, *4
L(,i$a, )/
;ariable, )/
?
:or%ato ,eneral de los
es<ue%as, "/.
:un$iones, ".)
9enera$i(n de
$o%&utadoras, +
Cuarta, +
Pri%era, +
Auinta, +
2e,unda, +
Ter$era, +
9eneralidades sobre
al,orit%os, *-
9eneraliza$i(n del
al,orit%o, ).
,
#ard=are, "+, '-
#e7ade$i%al, "4
#istoria de la
$o%&utadora, "
I
Infor%a$i(n, *)
Inser$i(n, ''.
Instru$$i(n, +.
De asi,na$i(n, +.
De entrada de datos, +.
De salida de datos, +.
Inter&retador, "0
L
La l(,i$a, *-
Leer de un ar$6ivo, '40
Len,ua8e
De alto nivel,"-
De ba8o nivel, "-
De %1<uina, "-
M
@antisa, '4
@1<uina, 4, "-
@ar$a de fin
de ar$6ivo ?EO:C, '4+
@arM", '
@atri$es, '*0
@atriz, ')"
Cuadrada, ')"
Identidad, ')"
Inversa, ')"
2i%3tri$a, ')"
Trans&uesta, ')"
@e%oria
Au7iliar, -
@odifi$a$i(n, '44
N
N>%eros, "4
O
O,C5, "/
O$tal, "4
O&era$iones $on
arre,los, '"-
O&era$iones sobre
ar$6ivos, '44
2e$uen$iales, '44
2e$uen$iales
inde7ados, */)
O&erador, )/
Binario, )"
Bnario, )"
O&eradores, )/
Arit%3ti$os, *4
Booleanos, )/
L(,i$os, )/
5ela$ionales, )/
Ordena$i(n, ''"
Por burbu8a, '''
Por burbu8a %e8orado, '')
Por inser$i(n dire$ta
?bara8aC, ''-
Por sele$$i(n, ''+
P
Palabra, "-
Pantalla, 4
Par1%etros
De envo, "-', "./ De re$ibo, "-", "./
Pro$edi%iento, "/, *.
Pro$esa%iento
de ar$6ivos, '4+
Pro,ra%a
De $o%&utadora, "'
:uente, "), "0
Ob8eto, ")
Pro,ra%a$i(n
Estru$turada, +"
Prueba de es$ritorio, )', 0)
Pseudo$(di,o, +', +)
Punto flotante, '+, '4
R
5e,istros, '-4, ".
5e&resenta$i(n de
al,orit%os, +'
Dia,ra%a de flu8o, +'
Dia,ra%a re$tan,ular, +*
Pseudo$(di,o, +)
5e&resenta$i(n de datos, ''
Alfanu%3ri$a, '*
Nu%3ri$a, '+
Nu%3ri$a entera, '0
5e&resenta$i(n de
&unto flotante, '+, '4
Con e7&onente en
base "0, *"
Con e7&onente en
base ', */
5e&resenta$i(n nu%3ri$a
Binaria, '"
Del &unto de$i%al, '+
Entera,
#e7ade$i%al, '"
O$tal, '"
2i,no $o%&le%ento
a uno, '0
2i,no $o%&le%ento
a dos, '-
2i,no %a,nitud, '0
5e&resenta$i(n de
sub&ro,ra%as, "-4
5etiro, '44
5o%&i%iento de $ontrol
de e8e$u$i(n, ""0
5esta arit%3ti$a, '4
5u&tura de $i$los, ""*
!
2alida de datos, +4
2e$uen$ia, 0., "++
2e$uen$ial, +-
2i,no, *"
2iste%as n>%eri$os, "4
2obrees$ribir en el
ar$6ivo, '40
2oroban, "
2oft=are, "+
2ub&ro,ra%as, "--
:un$iones, ".) Pro$edi%ientos, "-4
2tru$t, './
2=it$6es, "/.
T
Te$lado, 4
Ter%inal, 4, ""
Ti&os de &ro$esa%iento, "/
En lnea, "/
Por lotes, "/
Trans$ri&$i(n, )*
Transferen$ia de
infor%a$i(n, '0"
U
Bnidad
Arit%3ti$a y
l(,i$a, -, .
De $ontrol, -, .
De entrada, -, .
De %e%oria, -, .
De salida, -, .
Bnive$, *
-
;ariables ti&o $ontador, 4/
;ariables ti&o
a$u%ulador, 4"
;ariables ti&o bandera, "/.
;arianza, '"/
;e$tor, '/', '+"