You are on page 1of 22

Problemario para CI-2126: Computacin II

(versin 1)
Rosseline Rodrgue
!epartamento de Computacin "
#ecnologa de la In$ormacin
%niversidad &imn 'olvar
R(P)R#( I*#(R*)
ALCANCE DE VARIABLES. LOCALIDAD Y GLOBALIDAD
1.- En el siguiente programa uste e!e "eri#i$ar %ue las e$lara$iones e las "aria!les son $orre$tas& luego 'a$er la $orria
el programa $on el o!(eto e "isuali)ar el al$an$e e las "aria!les.
/* archivo p1 */
int k,x;
void r1(int a, int b)
{
int i;
i=0;
a=2*b;
r3(i);
printf("%d %d,x,y);

!ain()
{
k=1;
x=2;
r1(x,x);
printf("%d",x);

/*archivo p2*/
int r2(int i)
{
i=i"3;
if (k #= 2)
printf("%d %d",i,k)
r$t%rn(i"k"a);

void r3(int a)
{
int x,y;
a=i"k;
x=r2(a);
y=r2(2*a);
printf ("%d %d",x,y);

*.- A $ontinua$i+n se presentan "arios programas ilustrati"os e lo %ue o$urre al $om!inar las reglas e al$an$e e "aria!les
, pasa(e e par-metros en una #orma no mu, organi)aa. Su a$ti"ia $on$reta es ar los resultaos e la $orria e estos
programas atenieno a i$'as reglas. Es$ri!a e nue"o los programas usano reglas e !uen estilo e programa$i+n
a)
void pr(int x,int y,int *&);
!ain() {
int a=',b=(,c=3;
pr(a,b,)c);pr(*,a"b"c,)a); pr(a*b,a /b,)c);

void pr(int x,int y,int *&)
{*&=x"y"*&; printf("%d%d%d",x,y,*&);
b)
void r1(int *a; int b);
int r2(int i,int a,int k);
void r3(int *a, int i, int k);
!ain()
{
int k=1,x=2;
r1()x,x,k);
printf(+%d,,x);

void r1(int *a, int b,int y)


{
int i=0;
a=2*b;
r3()i,a,y);
printf(+%d %d,,x,y);

c) !ain() {
int i,-,k;
i=0; -=1; k=2;
p2(0,)k);p2(1,)i); p2(2,)-);

void p1(int *i,int -,int k)


{ (*i)"";
printf(+%d %d %d,,*i,-,k);

void p2(int h,int *-,int k) {


int i=-;
if (h==0) p1(*-,-,k)
$./$ if (h==1) p1()i,*-,k);
$./$ p3()i,*-,k);
printf(+%d %d %d,,i,-,k);

void p3(int *i)


{ (*i)"";
..- /Es este un programa $orre$to en C0& e no serlo se1ales los errores e ini%ue posi!les $orre$$iones. Si #uera $orre$to&
enton$es 'aga la $orria el programa
!ain ()
{
int f=2,h=10;
a(f,h,010); a(h,f,020);

void int 1(int *x,int *y,char /)


{
int b,c;
b=x;
if (2(b) 3= 40) c=5(6');
$./$ c=5(b*2);

void 5 int p
{
f=f"1; p=p"f; printf(f);

void 2(int *r)


{
int a,f;
a=10; f=a*a;
r=r*a; printf(r);
r$t%rn(r);

A23N4ADORES Y ARREGLOS
1.- Conteste $aa una e las siguientes preguntas. Caa parte el e(er$i$io e!er- utili)ar los resultaos e las partes
anteriores one sea apropiao5
a6 De$lare un arreglo e tipo f.oat& llamao n%!b$r/ $on 17 elementos& e ini$iali$e los elementos a los "alores 7.7&
1.1& *.*&...8.8. Suponga %ue la $onstante sim!+li$a 789: 'a sio e#inia $omo 17.
!6 De$lare un apuntaor n;tr& %ue apunte a un o!(eto e tipo f.oat.
$6 Imprima los elementos el arreglo n%!b$r/& utili)ano nota$i+n e su!9ni$e e arreglos. 3tili$e una estru$tura for&
, suponga %ue se 'a e$larao la "aria!le e $ontrol entera i.
6 2ropor$ione os instru$$iones por separao& %ue asignen la ire$$i+n ini$ial el arreglo n%!b$r/ a la "aria!le e
apuntaor n;tr.
e6 Imprima los elementos el arreglo n%!b$r/& utili)ano :ni$amente la "aria!le n;tr.
#6 Imprima los elementos el arreglo n%!b$r/& utili)ano el nom!re el arreglo $omo un apuntaor.
g6 Imprima los elementos el arreglo n%!b$r/ meiante su!9ni$es el apuntaor n;tr.
'6 Suponieno %ue n;tr apunta al prin$ipio el arreglo n%!b$r/& /$u-l es la ire$$i+n re#eren$iaa por n;tr"( 0
/ $u-l es el "alor alma$enao en esa posi$i+n0
i6 Suponieno %ue n;tr apunta a n%!b$r/<'=& /%u; ire$$i+n es re#eren$iaa por n;tr=n;tr64 0 /$u-l es el
"alor alma$enao en esta posi$i+n0

*.- En$uentre el error en $aa uno e los segmentos e programas siguientes. Suponga5
int *&;tr;
int *a;tr = >?@@;
void */;tr = >?@@;
int n%!b$r,i;
int &<'= = {1,2,3,4,';
/;tr=&;
""&;
n%!b$r = &;tr; /* %/o d$. ap%ntador para obt$n$r $.
pri!$r va.or d$. arr$A.o */
n%!b$r = *&;tr<2=; /* a/iAna $. va.or 3 a n%!b$r*/
n%!b$r = */;tr;/* a/iAna $. va.or ap%ntado por /;tr a n%!b$r */
for (i=0;i#=';i"") /* i!pri!$ $. arr$A.o & */
printf(+%d,,&;tr<i=);
..- 2ara $aa uno e los siguientes enun$iaos& es$ri!a el tro)o e $+igo $orresponiente. Suponga %ue se 'an e$larao
las "aria!les num1 , num2 e tipo #lotante.
a6 De$lare la "aria!le fPtr $omo apuntaor a un #lotante
!6 Asigne la ire$$i+n e la "aria!le num1 a la "aria!le fPtr
$6 Imprima el "alor el o!(eto se1alao por fPtr
6 Asigne el "alor el o!(eto se1alao por fPtr a la "aria!le num2
e6 Imprima el "alor e num2
#6 Imprima la ire$$i+n e num1. 3tili$e el espe$i#i$aor e $on"ersi+n %p
g6 Imprima la ire$$i+n alma$enaa en fPtr utili)ano %p /Es el "alor impreso el mismo e la ire$$i+n e num10
<.- Reali$e la $orria el siguiente programa para o!ser"ar los $uatro m;toos para re#eren$iar los elementos e un arreglo.
Diga la i#eren$ia entre los $uatro m;toos5
Binc.%d$ #/tdioCh3
!ain()
{
int i, b<=={10,20,30,40,'0;
int *b;tr = b;
printf("1rr$A.o i!pr$/o con notaciDn d$ /%bEndic$/");
for (i=0; i#=4; i"")
printf("b<%d= = %d Fn",i,b<i=);
printf("Fn");
printf("1rr$A.o co!o ap%ntador y d$/p.a&a!i$nto");
for (i=0; i#=4; i"")
printf("*(b"%d) = %d Fn",i,*(b"i));
printf("Fn");
printf(">otaciDn ap%ntador6/%bEndic$/");
for (i=0; i#=4; i"")
printf("b;tr<%d= = %d Fn",i,b;tr<i=);
printf("Fn");
printf(">otaciDn ap%ntador y d$/p.a&a!i$nto");
for (i=0; i#=4; i"")
printf("*(b;tr"%d) = %d Fn",i,*(b;tr"i));

=.- 2ara el siguiente programa& reali$e la $orria o!ser"ano lo %ue o$urre en la pila e in"o$a$i+n. >oi#i%ue el programa
para %ue los par-metros e la #un$i+n sean toos por re#eren$ia. Reali$e la $orria $on el programa moi#i$ao5
void pr(int x,int y,int &);
!ain() {
int a=',b=(,c=3;
pr(a,b,c);
printf("%d%d%d",a,b,c);
pr(b,c,a);
printf("%d%d%d",a,b,c);
pr(c,b,a);
printf("%d%d%d",a,b,c);

void pr(int x,int y,int &);


{
&=x"y"&;

?.- Coi#i%ue en lengua(e C un e@tra$to e $+igo %ue ao un arreglo e enteros $uente por $aa elemento o n:mero el 7
al 8& $uantas "e$es se repite el elemento entro el arreglo. 2or e(emplo5
Entraa Arreglo A B*&.&1&8&*&C&8&8&*&1&*D
Salia 1 se repite * "e$es
* se repite < "e$es
. se repite 1 "e)
8 se repite . "e$es
C se repite 1 "e)
los em-s igitos apare$en 7 "e$es.
E.- El modo e un arreglo e n:meros es el n:mero m en el arreglo %ue se repite $on ma,or #re$uen$ia. Si se repite mas e
un n:mero $on #re$uen$ias iguales& no e@iste un modo. Es$ri!a un e@tra$to e $+igo en C %ue ao un arreglo e n:meros&
retorne el moo o un mensa(e e %ue el mismo no e@iste.
E(emplo5 si se toma el e(emplo anterior el moo e arreglo ser9a *.
C.- 2rograme en C un e@tra$to e $+igo %ue ao os $aenas e $ara$teres reali$e la $on$atena$i+n e las mismas.
E(emplo5 Entraa5 F2ala!ra1 A GmarG 2ala!ra* A G,solG6 Salia5 Gmar,solG
8.- De#ina un arreglo e $ara$teres , utili$elo para alma$enar polinomios& e tal manera %ue $aa 9ni$e el arreglo
represente la poten$ia e la "aria!le , el "alor $ontenio en ese 9ni$e el $oe#i$iente el mismo. Coi#i%ue en C un e@tra$to
e $oigo %ue aos os polinomios alma$enaos en esta #orma sea $apa) e reali)ar la suma e polinomios , alma$enar en
un ter$er arreglo el polinomio resultao. E(emplo5
Entraa5
;o.in1 A @
=
H =@
.
H ?@
*
H 1
Alma$enao en #orma e arreglo ser9a A B1&7&?&=&7&1D
;o.in2 A *@
=
H .@
<
H @
*
H .@
El arreglo seria A B7&.&1&7&.&*D
Salia5
el polinomio resultao e la suma A .@
=
H .@
<
H =@
.
H E@
*
H .@ H 1
17.- Implemente una #un$i+n orenar %ue re$i!a $uatro n:meros en las "aria!les a& !& $ , , los retorne orenaos e
menor a ma,or $ontenios en las mismas "aria!les. E(emplo5
Iun$i+n ord$nar (a,b,c,d)
Valores e entraa5 a A <& ! A *& $ A 8& A 17
Valores e salia5 a A *& ! A <& $ A 8& A 17
11.- Implemente una #un$i+n %ue ao un string Farreglo e $ara$teres6 etermine su longitu.
E(emplo5 #un$i+n contarGcaract$r$/(arr$A.o) one la "aria!le arreglo es e tipo /trinA.
Valores e entraa5 arr$A.o A JIngenier9a Ele$tr+ni$aJ
Valores e salia5 **
1*.- Implementar una #un$i+n r$$!p.a&ar %ue ao un arreglo v$ctor1 e enteros e n posi$iones sustitu,a toas las
o$urren$ias el "alor va.or1 por el "alor va.or2. E(emplo5
Iun$i+n H$$!p.a&ar (v$ctor1,va.or1,va.or2)
Valores e entraa5 v$ctor1B*&=&.&=&*&E&CDK va.or1 A *K va.or2 A 1=
Valores e salia5 v$ctor1B1=&=&.&=&1=&E&CD
1..- Dao un arreglo e enteros $omo entraa& uste e!e ser $apa) e re$orrerlo , eliminar el mismo a%uellos elementos
%ue apare)$an repetios se$uen$ialmente& prou$ieno $omo salia el arreglo sin estas se$uen$ias repetias.
Ai$ionalmente& e!e ini$ar $uantos elementos en total e!i+ eliminar para prou$ir el nue"o arreglo. La$er el programa
prin$ipal para pro!ar la #un$i+n. E(emplo5
Iun$ion $.i!r$p$ticion(1HH:2@I,.onA)
Valores e entraa5 1HH:2@IA B1&1&1&*&1&=&?&?&*&*&C&8&*&1&<&<D
@onA A 1?
Valores e salia5 1HH:2@IA B1&*&1&=&?&*&C&8&*&1&<D
:.i!inado/A =
2RE Y 2OS4 CONDICIMN
1.- Es$ri!a el en$a!e)ao Fprototipo& es$rip$i+n& pre , post$oni$i+n6 e la #un$i+n %ue resuel"e $aa uno e los siguientes
pro!lemas5
a6 Dao un "e$tor J orenao insertar un elemento en la posi$i+n %ue $orrespona para %ue mantenga el oren.
!6 Dao un "e$tor J en$ontrar el ma,or elemento el "e$tor.
$6 Cal$ular el #a$torial e un n:mero >
6 Dao un "e$tor J e > posi$iones sin elementos repetios& orenar i$'o "e$tor.
e6 Cal$ular el "alor a!soluto e un entero >
#6 Dao una lista e "alores en la entraa agregar orenaamente i$'o "alores a un "e$tor J e K1L posi$iones&
suponga %ue la primeras > posi$iones est-n o$upaas
g6 In"ertir los elementos e un "e$tor J e > posi$iones
'6 Sumar los elementos e un "e$tor J , retornar el resultao
i6 Determinar si os "e$tores J1 , J2 e > posi$iones son iguales
(6 Reempla)ar en un "e$tor J e > posi$iones toas las o$urren$ias el "alor x1 por el "alor x2
N6 Imprimir toos los elementos el "e$tor J e > posi$iones %ue son ma,ores al "alor L.
l6 Rotar K posi$iones a la i)%uiera los elementos e un "e$tor J e > $asillas.
m6 Compa$tar un "e$tor J e > posi$iones& es e$ir& toos los elementos i#erentes e $ero e!en estar en la parte ini$ial
n6 En$ontrar el elemento %ue apare$e un ma,or n:mero e "e$es en un "e$tor e tama1o >.
3SO DE ARREGLOS Y S4R3C4 2ARA CREAR ES4R3C43RAS CO>2LEOAS
1.- Reali$e una #un$i+n %ue aas os matri$es Fe longitu #i(a >x>6 e(e$ute la suma e las mismas. Implemente os
"ersiones e la misma #un$i+n e la siguiente #orma5
a6 Pue imprima el resultao por pantalla.
!6 Pue retorne la matri) resultao al programa prin$ipal.
*.- Dise1e una estru$tura %ue alma$ene los atos e un programa para $ontrolar las pantallas e "ieo %ue muestran las
salias , llegaas e "uelos en un aeropuerto. De!e $ontener la in#orma$i+n e los "uelos %ue llegan o salen& es e$ir& el
nom!re e la l9nea a;rea& $iua e la %ue pro$ee el a"i+n& puerta en la %ue llegar- el a"i+n& 'ora e llegaa.
..- Crear una estru$tura e atos para alma$enar los atos e $aa empleao e una empresa. La in#orma$i+n %ue se esea
alma$enar es la siguiente5 C;ula e ientia el empleao& $arnet en la empresa& Nom!re $ompleto& #e$'a e na$imiento&
suelo !-si$o& suelo !onos. Es re$omena!le posteriormente $rear otra estru$tura one puean alma$enarse toas las
estru$turas anteriores. Se esea %ue implemente posteriormente una serie e #un$iones para reali)ar $iertas opera$iones
!-si$as5
+uncin !atos de (ntrada !atos de &alida
Crear un nue"o empleao Datos el empleao Empleao $reao
>oi#i$ar un empleao Empleao %ue se %uiere moi#i$ar& atos a
moi#i$ar.
Empleao >oi#i$ao.
Cal$ular el suelo total e un
empleao
Empleao a $al$ular el suelo Suelo total A Suelo
!-si$o H suelo !onos
Cal$ular el promeio e
suelo total e la empresa
Con(unto e Empleaos e la empresa Suelo total promeio A
suma e suelos totales e
toos los empleaos Q
total e empleaos
Ela!ore un programa %ue integre la estru$tura , las #un$iones anteriores. Di$'o programa e!e presentar un men: en
pantalla %ue permita utili)ar las #un$iones implementaas& e esta #orma las op$iones ser-n las siguientes5 $rear un nue"o
empleao& moi#i$ar un empleao& $al$ular el suelo total e un empleao& , $al$ular el promeio e suelo total e la
empresa. Los resultaos e $aa una e las opera$iones e!en ser presentaos por pantalla.
<.- Crear una estru$tura e atos para representar polinomios e 'asta grao N e implementar las siguientes #un$iones %ue la
manipulen5
+uncin !atos de (ntrada !atos de &alida
Crear un 2olinomio Grao el polinomio& "alores e los $oe#i$ientes 2olinomio Creao
>oi#i$ar un
polinomio
2olinomio $reao& moi#i$a$iones a reali)ar 2olinomio >oi#i$ao.
>ultipli$ar 2olinomios 2olinomio 1 , 2olinomio * a multipli$ar 2olinomio Resultante
Cal$ular la primera
eri"aa e un
polinomio
2olinomio a $al$ular la eri"aa 2olinomio Resultante
E(emplo5 Sea el polinomio 2 A . H R
*
H <R
.
H *R
=
& $on grao A =& los "alores e los $oe#i$ientes e menor a ma,or son5 .&
7& 1& <& 7& *. Ela!ore un programa %ue integre la estru$tura , las #un$iones anteriores. Di$'o programa e!e presentar un
men: en pantalla %ue permita utili)ar las #un$iones implementaas& e esta #orma las op$iones ser-n las siguientes5 $rear un
polinomio& moi#i$ar un polinomio& multipli$ar polinomios& $al$ular la primera eri"aa e un polinomio& salir el
programa. Los resultaos e $aa una e las opera$iones e!en ser presentaos por pantalla.
=.- 3n eportista $umple urante un a1o $on un $on(unto e a$ti"iaes. El mismo esea poer lle"ar un registro e las
puntua$iones o!tenias $aa mes el a1o en $aa una e las a$ti"iaes %ue e!e e(e$utar. 2ara ello se le 'a o$urrio
alma$enar esto en una matri) one las #ilas representan los meses el a1o& , las $olumnas las a$ti"iaes. De esta #orma
una posi$i+n (i,-) e la matri) ini$a una puntua$i+n o!tenia aa una a$ti"ia , un mes parti$ular. Se esea %ue uste
le propor$ione un pe%ue1o programa $on el $ual puea e(e$utar #-$ilmente las siguientes opera$iones5
a6 Crear una nue"a matri) e registro. La $ual $rea una nue"a matri)& $on una eti%ueta& %ue ienti#i$a al a1o parti$ular el
$ual se %uiere e#e$tuar el registro. Nue"amente es importante men$ionar %ue las #ilas "ienen representaas por los
meses el a1o& , las $olumnas por las a$ti"iaes a registrar.
!6 Cargar una nue"a puntua$i+n e una a$ti"ia& para un mes& , un a1o aos. 2ara ello e!er- propor$ionarse la matri)
%ue ienti#i$a al a1o& el mes& la posi$i+n %ue ienti#i$a la a$ti"ia& , la puntua$i+n a insertar.
$6 >oi#i$ar la puntua$i+n o!tenia en un a1o parti$ular& aos la a$ti"ia , el mes aso$iaos. De!e propor$ionarse la
posi$i+n e la a$ti"ia , el nue"o "alor a $olo$ar.
6 O!tener los promeios el eportista por $aa a$ti"ia al #inal el a1o& el $ual es el resultao e sumar $aa una e las
puntua$iones $orresponientes para toos los meses , i"iir $aa resultao entre o$e.
Es importante %ue re$uere el $orre$to uso e pasa(e e par-metros , #un$iones. E(emplo5
REGIS4ROS188C A
>eses A$ti"iaes
A$t1 A$t* A$t.
Enero 17 = 8
Ie!rero * = 17
>ar)o C . 1
A!ril 8 8 C
...... ...... ..... .....
Dise1e una estru$tura %ue alma$ene los atos e un programa para $ontrolar las pantallas e "ieo %ue muestran las salias
, llegaas e "uelos en un aeropuerto. De!e $ontener la in#orma$i+n e los "uelos %ue llegan o salen& es e$ir& el nom!re e
la l9nea a;rea& $iua e la %ue pro$ee el a"i+n& puerta en la %ue llegar- el a"i+n& 'ora e llegaa.
REC3RSION
1.- Implementar las siguientes #un$iones en #orma re$ursi"a& en $aa $aso es$ri!a la e#ini$i+n re$ursi"a e manera
matem-ti$a. No ol"ie $olo$ar la pre , post-$oni$i+n e $aa #un$i+n.5
a6 int contar (int v<=,int $.$!)M $uenta el n:mero e "e$es %ue apare$e $.$! en el arreglo v
!6 Iun$i+n %ue imprima los elementos e un arreglo e tama1o >
$6 Iun$i+n %ue imprima en oren in"erso los elementos e un arreglo e tama1o >
6 Determinar si os "e$tores J1 , J2 son iguales
e6 Iun$i+n %ue suma > enteros positi"os leios e la entraa
#6 De$iir si un elemento $.$! est- en un arreglo J& el arreglo est- esorenao
g6 En$ontrar el menor "alor e un "e$tor J.
'6 De$iir si un "e$tor se en$uentra orenao
i6 Cal$ular el n:mero e "alores i#erentes %ue se en$uentran en un "e$tor
(6 Dao un elemento , un "alor i& en$ontrar la i-;sima o$urren$ia el elemento en un arreglo J.
N6 En$ontrar el elemento %ue apare$e un ma,or n:mero e "e$es en un arreglo J
l6 Daos os "e$tores J1 , J2 e tama1o >& en$ontrar el "e$tor J %ue resulta e me)$lar los os "e$tores. J1 , J2
est-n orenaos as$enentemente.
m6 Dao un "e$tor J , elemento $& eliminar toas las o$urren$ias el elemento en el "e$tor J.
n6 Dao un polinomio ; e grao !& alma$enao en un arreglo& en$ontrar la e"alua$i+n el polinomio para el "alor L.
o6 Daas os matri$es A , B en$ontrar la suma e ellas
p6 Daas os matri$es 1 , N& en$ontrar el prou$to e ellas
%6 Daos os string 71 , 72& es$ri!ir una #un$i+n %ue e"uel"a 0 si son iguales& 1 si 71 3 72 , 61 si 71 # 72
*.- Es$ri!a un algoritmo iterati"o , uno re$ursi"o para los siguientes pro!lemas.
a6 Cal$ular la e"alua$i+n e la serie e 4a,lor

7
T
sen
n
n
x
n
x & en un @ ao
!6 El n:mero $om!inatorio
6T F T
T
m n m
n
m
n

,
_


..- Es$ri!ir una #un$i+n re$ursi"a %ue e"uel"a a*b Fprou$to e a , b6 usano la ai$i+n& , suponga %ue a , b son
enteros no negati"os.
<.- Sea /$c1 , /$c2 se$uen$ias e $ara$teres representaas $on arreglos. Ela!orar un programa %ue etermine si /$c2
se en$uentra $ontenio en /$c1. 3tili)ar re$ursi+n.
=.- Es$ri!ir una #un$i+n re$ursi"a %ue e"uel"a a
b
Fpoten$ia e a ele"ao a la b6.
?.- Es$ri!a una #un$i+n re$ursi"a %ue implemente el algoritmo e Eu$lies para el $-l$ulo el m-@imo $om:n i"isor e os
n:meros p , O (p3O). Las $oni$iones el algoritmo son5
KP5(p,O)=O si el resto e la i"isi+n p/O es $ero
KP5(p,O)=KP5(O,r) para los otros $asos& one r es el resto e la i"isi+n p/O
E.- 3na #orma e $al$ular el $om!inatorio e os "alores r , N es
r
k
r
k
r
k
con r k y
n n
n
n

_
,

_
,

_
,

_
,

_
,


1 1
1
7
7
1
.
Es$ri!a una #un$i+n re$ursi"a %ue $al$ule el n:mero $om!inatorio para r , k
C.- Sea p un arreglo e $ara$teres& p es un pal9nrome si se $umple %ue al in"ertirlo se o!tiene la misma se$uen$ia e
$ara$teres. Es$ri!a la e#ini$i+n re$ursi"a , una #un$i+n en lengua(e C %ue retorne QH?: si p es un pal9rome , R1@7:
en $aso $ontrario
8.- Daos os strings 71 , 72 es$ri!a una #un$i+n re$ursi"a %ue "eri#i%ue si 72 se en$uentra en 71. En $aso e en$ontrarse
e"uel"a la posi$i+n entro el string 71 one $omien)a 72 en $aso $ontrario e"uel"a el mensa(e GNo en$ontraoG.
17.- Daos tres string 71,72,73 , un n:mero entero x. Es$ri!a una #un$i+n re$ursi"a %ue "eri#i%ue $u-ntas "e$es , en
%ue posi$iones 71 se en$uentra a menos e x $ara$teres e istan$ia e 72 entro el string 73. La #un$i+n e re$orrio el
string 73 es re$ursi"a , al #inali)ar el re$orrio e!e imprimir las posi$iones en las %ue 71 est- a menos e x $ara$teres e
72.
11.- Implemente la siguiente #un$i+n en C5

'

>

no si x f x
x si
x si
x f
6 1 F U
7 7
177 1
6 F
1*.- Se tiene un arreglo 1 e n:meros enteros i#erentes& , e longitu n& $on la $oni$i+n %ue el primer elemento es menor
%ue el :ltimo elementoK es e$ir 1<0=#1<n61=C Se $ono$e $on el nom!re e as$enso una posi$i+n i one
1<i=#1<i"1=C Es$ri!a una #un$i+n re$ursi"a %ue $al$ule una posi$i+n one se en$uentre un as$enso el arreglo. No se
puee moi#i$ar los elementos el arreglo. E(emplo5 en el siguiente arreglo& las posi$iones e los as$ensos est-n su!ra,aas
arreglo5 < * 1= E 1 = C ? 1C 11
posi$i+n5 7 1 * . < = ? E C 8
1..- Es$ri!a una #un$i+n re$ursi"a en C %ue in"ierta una $aena e $ara$teres. La #un$i+n re$i!e $omo par-metros las
ire$$i+n el primer elemento , la el :ltimo elemento e la $aena.
1<.- Se e#ine el punto e ensillaura e una matri) e tama1o !xn $omo la posi$i+n i,- %ue $ontiene al m9nimo "alor e
la #ila i %ue $orrespone al m-@imo "alor e la $olumna -. 2or e(emplo& si la matri) es la siguiente F!xn=3x265
1 =
1< 8
C ?
La misma posee un punto e ensillaura en la posi$i+n 2,2 Fm9nimo "alor e la #ila 2 %ue $orrespone al m-@imo "alor e
la $olumna 26. Es$ri!a una #un$i+n en C %ue es$ri!a los "alores e i , e - el punto e ensillaura e una matri) aa en
el $aso e e@istir. En $aso $ontrario e!e e"ol"er los "alores 61,61C
1=.- La #igura el $a!allo Fen a(ere) 6 posee un mo"imiento mu, parti$ular so!re el ta!lero& ,a %ue se espla)a tres
posi$iones siguieno e@a$ta , :ni$amente mo"imiento NO iagonales& e tal manera %ue se espla)a os posi$iones en
algun sentio , luego una posi$i+n 'a$ia su ere$'a o 'a$ia su i)%uiera ea$uero a su sentio original F#ormano una
espe$ie e L6. So!re una matri) e (x( %ue simula el ta!lero el a(ere) Fno importa el $olor el $a!allo& ni e los $uaros6
, aas las posi$iones i,- Fone se en$uentra ini$ialmente el $a!allo6 , la posi$i+n f,c Fam!as entro e los l9mites e
la matri)6& e$iir utili)ano una #un$i+n re$ursi"a& si e@iste un $amino ese i,- 'asta f,c. Ini$ialmente el ta!lero tiene
el "alor e $ero F06 en toas sus $asillas , la #un$i+n por uste ise1aa e!e ir mar$ano el $amino re$orrio por el $a!allo
$on el "alor e uno F16 en $aa $asilla "isitaa. 2uee 'a!er "arios $aminos o ninguno. Re$uere %ue no se le est- piieno
un $amino parti$ular& :ni$amente la in#orma$i+n e e@isten$ia o no e $aminos.
1?.- Daa una matri) nxn e n:meros enteros , un par (x,y). Es$ri!a una #un$i+n re$ursi"a %ue re$orra la matri)
partieno e la posi$i+n (x,y) , $olo$ano los "alores en un "e$tor. O!"iamente el "e$tor es e tama1o n*n. La regla
para el re$orrio es la siguiente5 partieno e la posi$i+n (x,y) e!e mo"erse a la posi$i+n "e$ina %ue $ontenga el n:mero
e ma,or magnitu , $olo$arlo en el "e$tor. Esta posi$i+n se mar$a $omo "isitaa. De!e $ontinuar 'asta #inali)ar $on la
matri) sin mo"erse a posi$iones ,a "isitaas. 2uee mo"erse "erti$al& 'ori)ontal o iagonalmente.
1E.- Ela!orar un programa re$ursi"o %ue re$i!a una matri) %ue sim!oli$e un la!erinto& e manera %ue una $asilla $on "alor
L ienti#i%ue a una pare Fno pase6 , una $asilla $on el $ara$ter J!lan$oJ ienti#i%ue un $amino li!re Fsi paso6. Aem-s e!e
re$i!ir una posi$i+n (i,-) %ue re#le(a la posi$i+n ini$ial entro e la matri). El programa e!e ini$ar si el la!erinto&
representao por la matri)& tiene salia. La iea es 'a$er un programa %ue simule el re$orrio entro el la!erinto a tra";s
e los $aminos li!res.
1C.- Si se tiene la siguiente #un$i+n re$ursi"a para $al$ular la se$uen$ia e Ii!ona$$i 'asta un entero n5
int fib (n)
int n;
{
if (n # = 1)
r$t%rn(n);
$./$
r$t%rn(fib(nS2)"fib(nS1));

Reali$e la $orria e la #un$i+n anterior para un n ao Fpor e(emplo n=T6 e ini%ue los am!ientes e #un$i+n %ue se $rean
en la $orria. Ini%ue tam!i;n el "alor e n en $aa punto e la e(e$u$i+n Fre$orar a%u9 la e@isten$ia e un am!iente glo!al
, am!ientes lo$ales e #un$iones por $aa llamaa6.
18.- Supongamos %ue se %uiere $al$ular la siguiente sumatoria

n
i x
xT. Si se asume %ue el el l9mite superior e in#erior e
la sumatoria son "aria!les& programe en C una #un$i+n re$ursi"a %ue ao i , n $omo entraas& sea $apa) e retornar el
resultao el $-l$ulo e la #un$i+n anterior. Colo%ue las pre$oni$iones %ue $onsiere ne$esarias para %ue su #un$i+n
tra!a(e $orre$tamente.
3SO DE 4I2OS ABS4RAC4OS DE DA4OS
1.- 3n $on(unto es una $ole$$i+n e elementos one $aa uno e i$'os elementos o$urre a lo sumo una "e). El oren e
los elementos entro el $on(unto no tienen importan$ia. Se esea e#inir el Q15 PI>U?>QI para poer mane(ar o!(etos
tipo $on(unto& $on las siguientes opera$iones5
PGcr$arM void PI>U?>QI
PGd$/tr%irM PI>U?>QI void
PG%niDnM PI>U?>QIxPI>U?>QI PI>U?>QI
PGint$r/$cciDnM PI>U?>QIxPI>U?>QI PI>U?>QI
PGp$rt$n$c$M :@:KxPI>U?>QI boo.
PGvacEoM PI>U?>QI boo.
PG$xtra$rM PI>U?>QI :@:K

a6 2ara $aa una e las opera$iones espe$i#i$aas es$ri!a sus prototipos.
!6 Es$ri!a las opera$iones e interse$$i+n , uni+n. usano las em-s primiti"as el Q15 PI>U?>QI
$6 Es$ri!a la opera$i+n PGiA%a.$/M PI>U?>QIxPI>U?>QI boo. %ue iga si os $on(untos son iguales.
6 Es$ri!a la opera$i+n PG/%bcon-%ntoM PI>U?>QIxPI>U?>QI boo. %ue iga si un $on(unto es
su!$on(unto e otro.
*.- Se e#ine el 4AD VEC4OR $omo una $ole$$i+n e atos uniimensional el mismo tipo ELE>& $on las siguientes
opera$iones !-si$as5
VSCrear5 VEC4OR
QU De"uel"e un "e$tor $on el tama1o ini$ao UQ
VSDestruir5 VEC4OR "oi
QU Elimina un "e$torUQ
VSAsignarElem5 VEC4OR @ ELE> @ VEC4OR
QU Inserta un elemento en la posi$i+n aa entro el "e$torUQ
VSElemento5 VEC4OR @ ELE>
QU Retorna el elemento %ue se en$uentra en la posi$i+n aa el "e$tor UQ
VSLongitu5 VEC4OR
QU Retorna la longitu el "e$tor UQ
Suponga %ue las siguientes opera$iones para el mane(o el 4AD ELE> est-n isponi!les5
ESIguales5 ELE> @ ELE> BOOL
QU Retorna 4R3E si los elementos aos son iguales UQ
ES>a,or5 ELE> @ ELE> BOOL
QU Retorna 4R3E si el primer elemento ao es ma,or %ue el segunoUQ
ESSVap5 ELE> @ ELE>
QU Inter$am!ia am!os elementos UQ
a6 Es$ri!a la $on$eptuali)a$i+n e la estru$tura
!6 Es$ri!a el prototipo para $aa #un$i+n.
$6 3sano las primiti"as anteriores& $oi#i%ue en C las siguientes opera$iones5
VSIguales5 VEC4OR @ VEC4OR BOOL
QU Retorna 4R3E si los "e$tores son iguales UQ
VS>9nimo5 VEC4OR ELE>
QU Retorna el m9nimo elemento e un "e$tor ao UQ
VSOrenarSAs$enente 5 VEC4OR "oi
QU Orena e manera as$enente el "e$tor ao UQ
6 Es$ri!a un #un$i+n %ue sume os "e$tores , retorne el "e$tor resultao5
VEC4OR sumaVe$tor FVEC4OR V1& VEC4OR V*6K
Suponieno %ue est- implementaa esta e#ini$i+n e VEC4OR& es$ri!a una #un$i+n %ue 'a$ieno uso e las primiti"as
anteriores e(e$ute una suma e matri$es.
..- Se e#ine el 4AD >A4RIW e "alores enteros& $on las siguientes opera$iones !-si$as5
>SCrear5 @ >A4RIW
QU De"uel"e una matri) $on el tama1o !iimensional ini$ao UQ
>SDestruir5 >A4RIW "oi
QU Elimina una matri)UQ
>SAsignarElem5 >A4RIW @ @ @ >A4RIW
QU Asigna a la $asilla aa el entero ao UQ
>SIn#orma$i+n5 >A4RIW @ @
QU Retorna el "alor %ue se en$uentra en la $asilla aa e la matri) UQ
>SIilas5 >A4RIW
QU Retorna el n:mero e #ilas e la matri) UQ
>SColumnas5 >A4RIW
QU Retorna el n:mero e $olumnas e la matri) UQ
a6 Es$ri!a la $on$eptuali)a$i+n e la estru$tura
!6 Es$ri!a el prototipo para $aa #un$i+n.
$6 3sano las primiti"as anteriores& $oi#i%ue en C las siguientes opera$iones5
>SIguales5 >A4RIW @ >A4RIW BOOL
QU Retorna 4R3E si las matri$es aas son iguales UQ
>SCopiar5 >A4RIW >A4RIW
QU De"uel"e una $opia e la matri) aa UQ
>SImprimir5 >A4RIW "oi
QU Imprime una matri) aa UQ
>SCargar5 IILE >A4RIW
QU Llena una matri) $on los atos el ar$'i"o ini$ao UQ
>SSal"ar5 >A4RIW @ IILE "oi
QU Es$ri!e una matri) en el ar$'i"o ini$ao UQ
>SSumar5 >A4RIW @ >A4RIW >A4RIW
QU Retorna la matri) suma e las os matri$es aas UQ
>S>ultipli$ar5 >A4RIW @ >A4RIW >A4RIW
QU Retorna la matri) prou$to e las os matri$es aas UQ
>S4raspuesta5 >A4RIW >A4RIW
QU Retorna la matri) traspuesta e una matri) aa UQ
>SCuarao>-gi$o5 >A4RIW BOOL
QU Retorna 4R3E si las matri) es un $uarao m-gi$o. Es e$ir si el resultao e sumar los elementos e $aa una e
las #ilas es el mismo a a suma e los elementos e $aa una e las $olumnas , a la suma e los elementos e $aa una
e las iagonales. E(emplo5
C 1 ?
. = E
< 8 *
Es un $uarao m-gi$o por%ue sus #ilas& sus $olumnas , sus iagonales suman 1= UQ
<.- Se e#ine el 4AD DICCIONARIO e "alores enteros& $on las siguientes opera$iones !-si$as5
DSCrear5 "oi DICCIONARIO
QU Constru,e un i$$ionario sin pala!ras UQ
DSDestruir5 DICCIONARIO "oi
QU Destru,e un i$$ionarioUQ
DSAgregar2al5 DICCIONARIO @ S4RING @ S4RING DICCIONARIO
QU Agrega una pala!ra , su signi#i$ao al i$$ionario. La pala!ra no esta!a en el i$$ionario UQ
DSAgregarSig2al5 DICCIONARIO @ S4RING @ S4RING DICCIONARIO
QU Agrega un nue"o signi#i$ao a una pala!ra e@istente el i$$ionario UQ
DSSigni#i$ao2os5 DICCIONARIO @ S4RING @ S4RING
QU Retorna el signi#i$ao ini$ao por su posi$i+n e una pala!ra el i$$ionario UQ
DSCuantosSig5 DICCIONARIO @ S4RING
QU Retorna el n:mero e signi#i$aos e la pala!ra aa en$ontraos en el i$$ionario UQ
DSEliminar2al5 DICCIONARIO @ S4RING DICCIONARIO
QU Elimina una pala!ra $on toos sus signi#i$aos el i$$ionario UQ
a6 Es$ri!a la $on$eptuali)a$i+n e la estru$tura
!6 Es$ri!a el prototipo para $aa #un$i+n.
$6 3sano las primiti"as anteriores& $oi#i%ue en C las siguientes opera$iones5
DSRela$ionaos5 DICCIONARIO @ S4RING @ S4RING BOOL
QU Retorna 4R3E si la pala!ra , el signi#i$ao aos est-n rela$ionaos UQ
DSSin+nimas5 DICCIONARIO @ S4RING @ S4RING BOOL
QU Retorna 4R3E si las pala!ras aas son sin+nimas. Es e$ir $omparte al menos un signi#i$ao UQ
DSNumSigIguales5 DICCIONARIO @ S4RING @ S4RING
QU Retorna el n:mero e signi#i$aos %ue $omparten os pala!ras aasUQ
=.- El pro#esor Carlos R tra!a(a en una institu$i+n e Eu$a$i+n Superior , i$ta "arios $ursos rela$ionaos $on la $arrera
e $omputa$i+n. Caa trimestre i$ta apro@imaamente e $uatro a $in$o $ursos. 2or $aa uno e los $ursos Carlos R&
$onstru,e unas listas e registros e sus estuiantes $lasi#i$aos seg:n el siguiente $riterio5 Lista15 los estuiantes $on
9ni$e a$umulao en un $urso parti$ular entre 1 , . in$lusi"eK Lista*5 los estuiantes $on 9ni$e entre .&1 , <K Lista.5 los
estuiantes entre <&1 , =. En $aa $urso los estuiantes pueen ser $ual%uiera e los %ue est-n a$tualmente parti$ipano en
la $arrera& lo $ual signi#i$a %ue puee tener alumnos repetios en sus $ursos Fes e$ir el estuiante 2epe1& puee estar
$ursano urante un trimestre os $ursos o m-s $on el pro#esor Carlos R6. Al #inal e $aa trimestre& Carlos R esea poer
$olo$ar las listas e los alumnos en . granes listas $lasi#i$aas por las mismas $ategor9as& para o!ser"ar $omportamientos
generales e sus estuiantes Fpor e(emplo& para "er %ue estuiantes 'an poio estar entro e un rango ao en toas las
materias "istas $on el en ese per9oo6. E(emplo5
Curso15
Lista1 A BCarlos1D
Lista* A B2epe1& >anuel1& Sanra1D
Lista. A B>anuel*D
Curso*5
Lista1 A BD
Lista* A B2epe1& >anuel1D
Lista. A BSanra1D
Curso.5
Lista1 A B>anuel1D
Lista* A BSanra1D
Lista. A BD
Listas #inales5
Lista1 A BCarlos1& >anuel1D
Lista* A B2epe1& >anuel1& Sanra1D
Lista. A B>anuel*& Sanra1D
De esta manera al #inal el per9oo anterior& por e(emplo& el estuiante 2epe1& se mantu"o siempre entro el rango e ..1 a
<& en los $ursos %ue tomo $on el pro#esor Carlos R.
Se esea %ue uste a,ue al pro#esor , %ue utili)ano la e#ini$i+n el Q15 PI>U?>QI , sus primiti"as& e#ina la rutina
ne$esaria para $rearle las listas #inales por $ategor9a %ue in$lu,a a toos los $ursos , estuiantes i$taos por el urante un
per9oo ao.
?.- La ar%uite$tura e la ma,or9a e los $omputaores est- !asaa en un es%uema monopro$esaor. Sin em!argo& mu$'os e
estos $omputaores tienen %ue soportar el ser usaos por m:ltiples usuarios a la "e). 2ara aministrar el uso el pro$esaor
por los i"ersos usuarios se apli$a un es%uema e tiempo compartido en el $ual se asigna un lapso e tiempo a $aa
pro$eso e los usuarios.
El programa el sistema e opera$i+n en$argao e aministrar el tiempo e C23 a los pro$esos se llama
sc,eduler. Es el s$'euler el %ue $ontrola el lapso e tiempo urante el $ual $aa pro$eso e e(e$uta. El s$'euler mane(a
un $on(unto e pro$esos a$ti"os. Este $on(unto puee estar "a$9o en el momento en %ue toos los pro$esos el $on(unto 'an
terminao su e(e$u$i+n. En $ual%uier instante un nue"o pro$eso puee in$orporarse al $on(unto& , se i$e %ue el pro$eso
pasa a estar a$ti"o Fen e(e$u$i+n6. Los pro$esos salen el $on(unto $uano termina su e(e$u$i+n.
Caa pro$eso tiene un tiempo e e(e$u$i+n urante el $ual reali)a su la!or. Caa "e) %ue el s$'euler le asigna un
lapso e tiempo al pro$eso& se e$rementa en uno F16 el tiempo restante e e(e$u$i+n. Cuano este llega a $ero termina el
pro$eso& por lo %ue sale el $on(unto e pro$esos a$ti"os , e!e ser estru9o. Si no termina %uea en espera e %ue el
s$'euler le asigne otro lapso e tiempo. El lapso e tiempo %ue el s$'euler ei$a a $aa pro$eso es igual para toos sin
importar el tipo e pro$eso %ue sea.
De esta #orma& para implementar el s$'euler es ne$esario usar os 4AD !-si$os5 el 4AD 2ROCESO , el 4AD
AC4IVOS.
El 4AD 2ROCESO& el $ual $ontiene la ienti#i$a$i+n el pro$eso , su tiempo e e(e$u$i+n& posee las siguientes
opera$iones !-si$as5
;HIP:7I ;GPr$ar>%$vo (int ti$!po);
QU e"uel"e un pro$eso $on un ID , $on tiempo e e(e$u$i+n el ini$ao UQ
void ;G5$/tr%ir (;HIP:7I p);
QU estru,e el pro$eso p UQ
NII@ ;G:-$c%tar (;HIP:7I p, int t);
QU ao un pro$eso p& lo e(e$uta un lapso e tiempo t& e"uel"e QH?: si termin+& R1@7: si noUQ
El 4AD AC4IVOS $ontiene el $on(unto e pro$esos a$ti"os , sus opera$iones son las siguientes5
;HIP:7I7 1ctG1ct%a.(1PQ8JI7 P1);
QU e"uel"e el pro$eso a$tual el $on(unto e pro$esos a$ti"os UQ
1PQ8JI7 1ctG1van&ar (1PQ8JI7 P1);
QU Cam!ia el pro$eso a$tual al siguiente UQ
NII@ 1ctGJacio (1PQ8JI7 P1);
QU i$e si no 'a, m-s pro$esos a ser"ir& 4R3E si el $on(unto es "a$9o UQ
1PQ8JI7 1ctG8n/$rtar;roc$/o (1PQ8JI7 P1, ;HIP:7I p);
QU inserta el pro$eso p en el $on(unto CA $omo anterior al a$tual UQ
1PQ8JI7 1ctG$.i!inar;roc$/o (1PQ8JI7 ca, int 85);
QU sa$a o elimina el pro$eso ienti#i$ao $omo ID el $on(unto CA UQ
a6 Es$ri!a la estru$tura el 4AD 2ROCESO F$on$eptuali)a$i+n e implementa$i+n6. De!e ser un apuntaor a un /tr%ct.
!6 El 4AD AC4IVOS se ise1a $omo una lista $ir$ular $on un en$a!e)ao& %ue tiene un apuntaor al pro$eso a$tual.
Es$ri!a la estru$tura el 4AD F$on$eptuali)a$i+n e implementa$i+n6.
$6 Es$ri!a la implementa$i+n e la opera$i+n ;Gcr$ar>%$vo(int ti$!po). Suponga %ue e@iste una #un$i+n int
;85() %ue e"uel"e un nue"o ienti#i$aor para pro$eso.
6 Es$ri!a la opera$i+n NII@ 1ctGvacio (1PQ8JI7 P1);
e6 Suponga %ue est-n implementaos los 4AD 2ROCESO , AC4IVOS. Es$ri!a la #un$i+n s$'euler Fsi a tiempo si no
asigna$i+n6.
#6 De(ar para ellos $omo repaso la implementa$i+n el resto e las #un$iones %ue $omponen los 4AD.
E.- 3sano el Q15 PI>U?>QI ela!ore un programa %ue lo use $omo una li!rer9a. Di$'o programa e!e presentar un men:
en pantalla $on las siguientes op$iones5
a6 Crear un $on(unto.
!6 Insertar un elemento en un $on(unto.
$6 Eliminar un elemento en un $on(unto.
6 >ostrar un $on(unto.
e6 Generar la interse$$i+n e os $on(untos.
#6 Salir el programa.
C.- 3na $aena e $omia r-pia posee un ser"i$io e aten$i+n en el $arro& e tal #orma %ue el $liente puea peir su $omia
para lle"ar sin !a(arse e su autom+"il. La empresa esea poer registrar este pro$eso e aten$i+n en el $arro. En este
sentio se %uiere poer alma$enar $iertos atos el auto Fmoelo& pla$a& $olor& a1o6& atos el $onu$tor Fnom!re& $i6& ,
espe$9#i$os el peio Flista e $omia& monto& #orma e pago6. A too este $on(unto e in#orma$i+n le ser- llamao un
ini"iuo. Caa ini"iuo tenr- aem-s un est-tus aso$iao %ue epener- el punto e aten$i+n en el %ue se en$uentre
Fini$ialmente estatus A en espera& una "e) %ue le 'a,a sio tomao su peio& estatus A $on peio& $uano 'a,a e#e$tuao
el pago& estatus A $o!rao& , una "e) %ue le 'a,a sio entregao el peio& simplemente se elimina el registro6. De esta
#orma la empresa lo 'a $ontratao a uste para %ue reali$e las siguientes a$ti"iaes5
a6 Con$eptuali)ar e implementar un 4AD para el registro e toa esta in#orma$i+n.
!6 Implementar un $on(unto e opera$iones !-si$as para el 4AD& e apo,o al pro$eso5
Crear un nue"o registro e aten$i+n.
Insertar un nue"o ini"iuo& Festatus ini$ial A en espera6.
4omar el peio e un ini"iuo. Con esta #un$i+n el ini"iuo pasa e estatus A en espera al e $on peio.
E#e$tuar el $o!ro a un ini"iuo& $am!iano el estatus e $on peio a $o!rao.
Entrega e peio& a$$i+n $on la $ual se e!e eliminar al ini"iuo el registro.
>oi#i$ar alg:n ato aso$iao a un ini"iuo& puee ser el auto& el $onu$tor o el peio. 2ara la moi#i$a$i+n e
este :ltimo e!e "aliarse el estatus a$tual el ini"iuo& el $ual e!e ser al menos $on peio.
I>2LE>EN4ACIMN DE 4I2OS ABS4RAC4OS DE DA4OS
1.- Se e#ine el 4AD LIS4A $on la siguiente estru$tura $on$eptual
Xe1&e*&e.&...enY one n7 , e@iste un elemento ei& llamao "entana& %ue es el elemento "isi!le e la lista
, $u,as opera$iones son5
a6 @GPr$arM void 63 @87Q1 QU De"uel"e una lista "a$9a. La "entana est- ine#inia UQ
!6 @G8n/$rt1ntM @87Q1 x :@:K 63 @87Q1 QU De"uel"e una lista $on el elemento insertao en la posi$i+n
anterior a la "entana& la "entana %uea so!re el elementoUQ
$6 @G8n/$rt;o/tM @87Q1 x :@:K 63 @87Q1 QU De"uel"e una lista $on el elemento insertao en la posi$i+n
posterior a la "entana& la "entana %uea so!re el elementoUQ
6 @G:.i!inarM @87Q1 63 @87Q1 QU Elimina el elemento a$tual e la "entana UQ
e6 @G8nfoM @87Q1 63 :@:K QU De"uel"e la in#orma$i+n el elemento "isi!le en la "entanaUQ
#6 @G;ri!$r@i/taM @87Q1 63 @87Q1 QU >ue"e la "entana al primer elemento e la listaUQ
g6 @G?.ti!o@i/taM @87Q1 63 @87Q1 QU >ue"e la "entana al :ltimo elemento e la listaUQ
'6 @G7iA%i$nt$M @87Q1 63 @87Q1 QU >ue"e la "entana al elemento siguiente e la listaUQ
i6 @G1nt$riorM @87Q1 63 @87Q1 QU >ue"e la "entana al elemento anterior e la listaUQ
(6 @GQa!aVoM @87Q1 63 int QU De"uel"e el tama1o e la lista UQ
N6 @GRina.M @87Q1 63 NII@ QU De"uel"e 4R3E si es el :ltimo elemento e la lista UQ
3sano estas primiti"as implemente las siguientes opera$iones so!re el 4AD LIS4A5
a6 @GJaciaM @87Q1 63 boo. QU Di$e si la lista es "a$9a UQ
!6 @G;roy$ctarM @87Q1 x int 63 :@:K QU Retorna el elemento e la posi$i+n aa UQ
$6 @G8n/$rt;o/icM @87Q1 x int 63 @87Q1 QU Inserta un elemento en la posi$i+n aa UQ
6 @G:.i!;o/icM @87Q1 x int 63 @87Q1 QU Elimina el elemento e la posi$i+n aa UQ
e6 @G8!pri!irM @i/ta 63 void QU Imprime el $ontenio e una lista UQ
#6 @GPopiarM @87Q1 63 @i/ta QU De"uel"e la $opia e la lista UQ
g6 @GPoncat$narM @87Q1 x @87Q1 63 @87Q1 QUDe"uel"e una lista $on la $on$atena$i+n e las os listas
aasUQ
'6 @G8nv$rtirM @87Q1 63 @87Q1 QU De"uel"e una nue"a lista $on el resultao e in"ertir la lista original UQ
i6 @GN%/carM @87Q1 x :@:K 63 void QU Colo$a la "entana en el elemento !us$ao. Si el elemento no est- la
"entana %uea ine#iniaUQ
(6 @G@oca.i&arM @87Q1 x :@:K 63 void QU Colo$a la "entana en el elemento !us$ao. Si el elemento no est-&
la "entana %uea ine#inia UQ
N6 @G:.i!inarQodo/M @87Q1 x :@:K 63 @87Q1 QU Elimina toas las o$urren$ias el elemento.UQ
l6 @G8A%a.$/M @87Q1 x @87Q1 63 NII@ QUDi$e si os listas son iguales Ftienen la misma longitu& , los
elementos son iguales en la misma posi$i+n6.UQ
m6 @GIrd$nadaM @87Q1 63 NII@ QU Di$e si una lista est- orenaa. Suponga %ue e@iste una #un$i+n %ue i$e si un
elemento es menor %ue otro.UQ
n6 @G5$/tr%irM @87Q1 63 void QU Destru,e el o!(eto lista li!erano toa la memoria o$upaa. UQ
o6 @G7%b.i/taM @87Q1 x @87Q1 63 NII@ QU Di$e si la seguna lista es su!lista e la primera. UQ
p6 @G1Ar$AarM @87Q1 x :@:K 63 @87Q1 QU Agrega el elemento al #inal e la lista UQ
%6 @G7%/tit%irM @87Q1 x :@:K 63 @87Q1 QU Sustitu,e el $ontenio a$tual e la "entana por el "alor el
elemento UQ
r6 @GN%/carM @87Q1 x :@:K 63 NII@ QU Di$e si un elemento est- en la lista UQ
s6 @G1nt$riorM @87Q1 63 void QU Colo$a la "entana en el elemento anterior e la lista. UQ
t6 @G7i!p.ificarM @87Q1 63 @87Q1 QU Elimina los elementos repetios e la lista. Puea una sola o$urren$ia
e $aa elemento UQ
u6 @G>%!5if$r$nt$/M @87Q1 63 int QU De"uel"e el n:mero e elementos i#erentes e la lista UQ
"6 @G>%!Ic%rr$ncia/M @87Q1 x :@:K 63 int QU De"uel"e el n:mero e o$urren$ias e un elemento entro
e la lista. UQ
V6 @GHotarM @87Q1 x int 63 @87Q1 QU De"uel"e la lista rotaa n posi$iones. Rotar una posi$i+n signi#i$a pasar
el primer elemento e la lista a la :ltima posi$i+n , espla)ar toos los em-s elementos una posi$i+n a la i)%uiera. UQ
@6 @GIrd$narM @87Q1 63 @87Q1 QU Orena as$enentemente la lista. UQ
,6 @GK$&c.arM @87Q1 x @87Q1 63 @87Q1 QU De"uel"e la me)$la e os lista orenaas as$enentemente UQ

*.- Implemente en C $aa una e las primiti"as el 4AD LIS4A
..- Se e#ine el 4AD 2ILA $omo una $ole$$i+n e elementos Xe1&e*&e.&...enY one n7 , e1 se llama el tope e la pila. Las
opera$iones primiti"as e este 4AD son5
a6 ;GQopM ;8@1 63 :@:K QU De"uel"e el tope e la pila UQ
!6 ;G;opM ;8@1 63 ;8@1 QU E@trae el primer elemento e la pila UQ
$6 ;G;%/hM ;8@1 x :@:K 63 ;8@1 QU Colo$a un elemento en el tope e la pila UQ
6 ;G:!ptyM ;8@1 63 NII@ QU Di$e si la pila est- "a$9a UQ
Implemente el 4AD 2ILA usano la e#ini$i+n , las opera$iones el 4AD LIS4A
<.- Se e#ine el 4AD COLA $omo una $ole$$i+n e elementos Xe1&e*&e.&...enY one n7 , e1 es el ini$io e la $ola , en es el
#inal e la $ola. Las opera$iones primiti"as e este 4AD son
a6 PG8n/$rtM PI@1 x :@:K 63 PI@1 QU Inserta un elemento al #inal e la $olaUQ
!6 PGH$!ov$M PI@1 63 PI@1 QU Elimina el primero e la $ola UQ
$6 PGRir/tM PI@1 63 :@:K QU De"uel"e el primer elemento e la $ola UQ
6 PG:!ptyM ;8@1 63 NII@ QU Di$e si la $ola est- "a$9a UQ
Implemente el 4AD 2ILA usano la e#ini$i+n , las opera$iones el 4AD LIS4A
=.- /Pu; puee moi#i$ar el 4AD LIS4A para %ue el mane(o el 4AD 2ILA , el 4AD COLA sea mas e#i$iente.0
?.- Ela!orar un programa %ue use el 4AD 2ILA $omo una li!rer9a. El programa e!e presentar un men: en pantalla $on las
siguientes op$iones5
a6 Crear una pila.
!6 Insertar un elemento en una pila.
$6 Eliminar un elemento e una pila.
6 >ostrar por pantalla los elementos e una pila.
e6 >ostrar el tope la pila.
#6 De$ir si la pila est- "a$9a.
g6 Salir el programa.
E.- 3sano las primiti"as el 4AD COLA ela!orar un programa %ue use i$'o 4AD $omo una li!rer9a. Di$'o programa
e!e presentar un men: en pantalla $on las siguientes op$iones5
a6 Crear una $ola.
!6 Insertar un elemento en una $ola.
$6 Eliminar un elemento e una $ola.
6 >ostrar por pantalla los elementos e una $ola.
e6 >ostrar el su$esor e un elemento e una $ola.
#6 >ostrar el ante$esor e un elemento e una $ola.
g6 Salir el programa.
C.- D; una implementa$i+n in-mi$a el 4AD 2ILA sin usar el 4AD LIS4A. Re$uere implementar la estru$tura , las
opera$iones primiti"as.
8.- D; una implementa$i+n in-mi$a el 4AD COLA sin usar el 4AD LIS4A. Re$uere implementar la estru$tura , las
opera$iones primiti"as.
17.- D; una implementa$i+n est-ti$a el 4AD 2ILA usano un arreglo. /Pu; "enta(as , es"enta(as o!ser"a e esta
implementa$i+n $on respe$to a la implementa$i+n in-mi$a0
11.- D; una implementa$i+n est-ti$a el 4AD COLA usano un arreglo. /Pu; "enta(as , es"enta(as o!ser"a e esta
implementa$i+n $on respe$to a la implementa$i+n in-mi$a0
1*.- Es$ri!a una implementa$i+n in-mi$a el 4AD 2ILA usano listas $ir$ulares. /Pu; me(oras tiene esta implementa$i+n
$on respe$to a las listas simples0 /Pu; es"enta(as o!ser"a0
1..- Es$ri!a una implementa$i+n in-mi$a el 4AD COLA usano listas $ir$ulares. /Pu; me(oras tiene esta
implementa$i+n $on respe$to a las listas simples0 /Pu; es"enta(as0
1<.- Es$ri!a una implementa$i+n in-mi$a el 4AD 2ILA usano listas o!lemente enla)aas. /Pu; me(oras tiene esta
implementa$i+n $on respe$to a las listas simples , a las listas $ir$ulares0 /Pu; es"enta(as0
1=.- Es$ri!a una implementa$i+n in-mi$a el 4AD COLA usano listas o!lemente enla)aas. /Pu; me(oras tiene esta
implementa$i+n $on respe$to a las listas simples , a las listas $ir$ulares0 /Pu; es"enta(as0
1?.- Es$ri!a una implementa$i+n in-mi$a el 4AD 2ILA usano listas o!lemente enla)aas $ir$ulares. /Pu; me(oras
tiene esta implementa$i+n $on respe$to a las otras implementa$iones0 /Pu; $ompli$a$iones0
1E.- Es$ri!a una implementa$i+n in-mi$a el 4AD COLA usano listas o!lemente enla)aas $ir$ulares. /Pu; me(oras
tiene esta implementa$i+n $on respe$to a las otras implementa$iones0 /Pu; $ompli$a$iones0
1C.- En los Sistemas Distri!uios e@isten pro$esos& %ue permiten usar m-s e#i$ientemente los re$ursos& $+mo es el $aso el
pro$eso %ue $ontrola la $ola e un impresora. La impresora est- $one$taa a uno e los $omputaores. Cual%uiera e ellos
puee en"iar a tra"e) e la re un Z(o! e impresi+n[& es e$ir un ar$'i"o a imprimir. En la ma,or9a e los $asos estos se
insertan al #inal e la $ola , son ser"ios por oren e llegaa& pero e@iste algunos tra!a(os %ue por su urgen$ia re%uieren
ser impresos antes %ue toos los %ue apare$en en la $ola. Se i$e %ue el (o! tiene ma,or prioria %ue los em-s. Las $olas
%ue permiten este tipo e inser$i+n se $ono$en $omo ZColas e 2rioria[ one los (o! se sir"en ea$uero a la prioria
%ue tienen. Si 'a, un $on(unto e pro$esos %ue tiene la misma prioria enton$es se sir"en en oren e llegaa.
a6 Dise1e F$on$eptuali$e6 e implemente en C& la estru$tura para el 4AD OOB %ue $ontiene la in#orma$i+n re%ueria para
$aa ar$'i"o a imprimir. Re$uere %ue e!e es$ri!ir la estru$tura , las opera$iones primiti"as.
!6 Es$ri!a una estru$tura est-tica para el 4AD COLA2RIO F$on$eptuali)a$i+n e implementa$i+n6& $on las opera$iones
P;G:nco.arM PI@1;H8I x UIN 63 PI@1;H8I QUinserta en la $ola ea$uero a la prioria el OOBUQ
P;G5$/$nco.arM PI@1;H8I 63 UIN QUDe"uel"e el primer (o! e la $olaUQ
P;GJacEaMPI@1;H8I 63 NII@ QU Di$e si la $ola est- "a$9a UQ
$6 Es$ri!a una estru$tura din-mica para el 4AD COLA2RIO F$on$eptuali)a$i+n e implementa$i+n6& $on las mismas
opera$iones5
6 3sano las opera$iones el 4AD OOB , 4AD COLA2RIO es$ri!a una #un$i+n %ue tra!a(e $omo el ser"ior e la $ola
e impresi+n.
ORDEN DE ALGORI4>OS FO grane6
1.- Cal$ular la $omple(ia e los siguientes tro)os e $+igo5
a6
L = 1;
W = 2;
9 = 3;
!6
for (i = 0; i # X; i"")
a<i= = 0;
*.- Cal$ular la $omple(ia e la siguientes #un$iones5
a6
int fact(int n%!)
{
int i, ac%!;
i = 0;
ac%! = 1;
Yhi.$ (i # n%!)
{
i"";
ac%! * = i;

r$t%rn(ac%!);

!6
void prodG!at (int n)
{
int i, - , k;
for (i = 1; i # n; i"")
for (- = 1; - # n; -"")
{
c<i=<-= = 0;
for (k = 1; k # n; k"")
c<i=<-= = c<i=<-= " a<i=<k= * b<k=<-=;

$6
void !i/t$rio (int n)
{
int i, - , k;
for (i = 1; i # n61; i"");
for (- = 1; - # n61; -"")
for (k = 1; k #= -; k"")
printf("Ki/t$rio");

6
void !%yGi!par (int n)
{
int i, -, x, y;
for (i = 1; i # n; i "")
if i!par(i)
for (- = i; - # n; -"")
x"";
$./$
for (- = i; - # n; -"")
y"";

e6
int r$c%r/iva (int n)
{
if n # = 1
r$t%rn(1);
r$t%rn(r$c%r/iva(n61) " r$c%r/iva(n 6 2));

..- Daa la #un$i+n re$ursi"a %ue e"uel"e a


b
Fpoten$ia e a ele"ao a la b6& representaa por la siguiente e#ini$i+n5
f(a,b) = 1 /i b = 0
f(a,b) = a* f(a,b61) /i b3 0
Coi#i%ue en C la #un$i+n anterior. Cal$ule la $omple(ia e la #un$i+n $oi#i$aa.
<.- 2ara las siguientes opera$iones el 4AD LIS4A ini%ue $u-l es el oren e la opera$i+n5
a) @87Q1 @GPr$ar();
b) @87Q1 @G8n/$rt1nt(@87Q1,:@:K);
c) @87Q1 @G8n/$rt;o/t(@87Q1,:@:K);
d) @87Q1 @G:.i!inar(@87Q1);
$) :@:K @G8nfo(@87Q1);
f) @87Q1 @G;ri!$r@i/ta(@87Q1);
A) @87Q1 @G?.ti!o@i/ta(@87Q1);
h) void @G7iA%i$nt$(@87Q1);
i) int @GQa!aVo(@87Q1);
-) NII@ @GRina.(@87Q1);
=.- 2ara las siguientes opera$iones el 4AD 2ILA ini%ue $u-l es el oren e la opera$i+n para $aa una e las
implementa$iones e los e(er$i$ios .-1E e la se$$i+n pasaa5
a6 ELE> ;GQop(;8@1);
b) ;8@1 ;G;op(;8@1);
c) ;8@1 ;G;%/h(;8@1,:@:K);
d) NII@ ;G:!pty(;8@1);
?.- 2ara las siguientes opera$iones el 4AD COLA ini%ue $u-l es el oren e la opera$i+n para $aa una e las
implementa$iones e los e(er$i$ios .-1E e la se$$i+n pasaa5
a) PI@1 PG8n/$rt(PI@1,:@:K);
b) PI@1 PGH$!ov$(PI@1);
c) :@:K PGRir/t(PI@1);
d) NII@ PG:!pty(;8@1);
E.- 2ara $aa una e las opera$iones el 4AD LIS4A implementaas en el e(er$i$io 1 e la se$$i+n anterior& $al$ule el oren
e la opera$i+n.
REC3RSIMN EN 4AD.
1.- 2ara $aa una e las siguientes opera$iones el 4AD LIS4A es$ri!ir una implementa$i+n re$ursi"a , iga el oren e la
opera$i+n5
a6 @87Q1 @GPoncat$nar(@87Q1, @87Q1); De"uel"e una lista $on la $on$atena$i+n e las os listas aas
!6 @87Q1 @G8nv$rtir(@87Q1); De"uel"e una nue"a lista $on el resultao e in"ertir la lista original
$6 void @GN%/car(@87Q1,:@:K); Colo$a la "entana en el elemento !us$ao. Si el elemento no est- la "entana
%uea ine#inia
6 @87Q1 @G:.i!inarQodo/(@87Q1,:@:K); Elimina toas las o$urren$ias el elemento.
e6 NII@ @G8A%a.$/(@87Q1,@87Q1); Di$e si os listas son iguales Ftienen la misma longitu& , los elementos son
iguales en la misma posi$i+n6.
#6 NII@ @GIrd$nada(@87Q1); Di$e si una lista est- orenaa. Suponga %ue e@iste una #un$i+n %ue i$e si un
elemento es menor %ue otro.
g6 void @G5$/tr%ir(@87Q1); Destru,e el o!(eto lista li!erano toa la memoria o$upaa.
'6 NII@ @G7%b.i/ta(@87Q1,@87Q1); Di$e si la seguna lista es su!lista e la primera.
i6 @87Q1 @G1Ar$Aar(@87Q1,:@:K); Agrega el elemento al #inal e la lista
(6 @87Q1 @G7i!p.ificar(@87Q1); Elimina los elementos repetios e la lista. Puea una sola o$urren$ia e
$aa elemento
N6 int @G>%!5if$r$nt$/(@87Q1); De"uel"e el n:mero e elementos i#erentes e la lista
l6 int @G>%!Ic%rr$ncia/(@87Q1,:@:K); De"uel"e el n:mero e o$urren$ias e un elemento entro e la lista.
m6 @87Q1 @GIrd$nar(@87Q1); Orena as$enentemente la lista.
n6 @87Q1 @GK$&c.ar(@87Q1,@87Q1); De"uel"e la me)$la e os lista orenaas as$enentemente
ORDENA>IEN4O
1.- Anal9$e el siguiente algoritmo& $ono$io $omo GOrenamiento por inser$i+n ire$taG e implem;ntelo en lengua(e C. Este
m;too se usa generalmente por los (ugaores e $artas. Los items est-n i"iios en una se$uen$ia estino a1&...&ai-1 , una
se$uen$ia origen ai&..&an. En $aa paso empe)ano $on iA*& se toma el elemento i e la se$uen$ia origen , se trans#iere a la
se$uen$ia estino insert-nolo en el sitio apropiao.
Arreglo ini$ial 5 << == 1* <* 8< 1C 7? ?E
i A * << == 1* <* 8< 1C 7? ?E
i A . 1* << == <* 8< 1C 7? ?E
i A < 1* <* << == 8< 1C 7? ?E
i A = 1* <* << == 8< 1C 7? ?E
i A ? 1* 1C <* << == 8< 7? ?E
i A E 7? 1* 1C <* << == 8< ?E
i A C 7? 1* 1C <* << == ?E 8<
Algoritmo e Inser$i+n ire$ta
2ara i* 'asta n 'a$er
@aBiD
aB7D @
(i-1
>ientras @X aB(D 'a$er
aB(H1D aB(D
((-1
aB(H1D @
#in
*.- Anal9$e el siguiente algoritmo& $ono$io $omo G Orenamiento por sele$$i+n ire$ta G e implem;ntelo en lengua(e C.
Este m;too se !asa en os prin$ipios5 sele$$ionar el art9$ulo $on $le"e m9nima& inter$am!iarlo $on el primero. a
$ontinua$i+n se repite el pro$eso $on los items n-1&n* et$ 'asta %ue %uee un :ni$o item& el ma,or.
Arreglo ini$ial 5 << == 1* <* 8< 1C 7? ?E
7? == 1* <* 8< 1C << ?E
7? 1* == <* 8< 1C << ?E
7? 1* 1C <* 8< == << ?E
7? 1* 1C <* 8< == << ?E
7? 1* 1C <* << == 8< ?E
7? 1* 1C <* << == 8< ?E
7? 1* 1C <* << == ?E 8<
Algoritmo e Sele$$i+n ire$ta
2ara i1 a n-1 'a$er
Ni
@aBiD
2ara (iH1 a n 'a$er
i# aB(DX@ enton$es
N(
@aB(D
aBND aBiD
aBiD @
#in
..- Anal9$e el siguiente algoritmo& $ono$io $omo G Orenamiento por inter$am!io ire$to Fo m;too e la !ur!u(a6G e
implem;ntelo en lengua(e C. La $ara$ter9sti$a ominante es el inter$am!io e items. Se $omparan items a,a$entes 'asta
%ue toos est;n orenaos. Se 'a$en repetias pasaas so!re el arreglo 'asta %ue el elemento e $la"e m9nima %uee en el
e@tremo i)%uiero. Si se mira el arreglo en $oni$i+n "erti$al& los items se $onsieran !ur!u(as $on i#erentes pesos& one
$aa !ur!u(a su!e , se $olo$a en el peso %ue le $orrespone
ini$ial iA* iA. iA< iA= iA? iAE iAC
<< 7? 7? 7? 7? 7? 7? 7?
== << 1* 1* 1* 1* 1* 1*
1* == << 1C 1C 1C 1C 1C
<* 1* == << <* <* <* <*
8< <* 1C == << << << <<
1C 8< <* <* == == == ==
7? 1C 8< ?E ?E ?E ?E ?E
?E ?E ?E 8< 8< 8< 8< 8<
Algoritmo Bur!u(a
2ara i * a n 'a$er
2ara (n a i 'a$er
i# aB(-1DYaB(D enton$er
sVapFaB(-1D&aB(D
#in
<.- Anal9$e el siguiente algoritmo& $ono$io $omo G >;too R-pio o Pui$Nsort G e implem;ntelo en lengua(e C. Se !asa
en el 'e$'o e %ue los inter$am!ios e!en reali)arse pre#eri!lemente so!re istan$ias largas para %ue sean e#e$ti"os. Se
toman ar!itrariamente un elemento F@6& se inspe$$iona el arreglo e i)%uiera a ere$'a 'asta en$ontrar un item aiY@ ,
enton$es se inspe$$iona el arreglo e ere$'a a i)%uiera 'asta en$ontrar un item a(X@. A $ontinua$i+n se iter$am!ian los
os items , se $ontin:a este pro$eso e inspe$$i+n e inter$am!io 'asta %ue los re$orrios en am!as ire$$iones se
en$uentren en alg:n punto situao apro@imaamente en la mita el arreglo. Como resultao se o!tiene el arreglo partio en
os5 los menores %ue @ , los ma,ores %ue @. R a$t:a $omo $entinela en el pro$eso. Si se toma @A<* el arreglo se parti$iona
en os $ompara$iones
Arreglo ini$ial 5 << == 1* <* 8< 1C 7? ?E
7? == 1* <* 8< 1C << ?E
7? 1C 1* <* 8< == << ?E
Luego se repite el pro$eso $on $aa parti$i+n. Note %ue es re$ursi"o
Algoritmo Pui$Nsort Fi)%uiero&ere$'o6
ii)%uiero
(ere$'o
@aBFi)%uieroHere$'os6Q*D
'a$er
mientras aBiDX@ 'a$er
iiH1
mientras @XaB(D 'a$er
(H1
i# iXA( enton$es
sVapFaBiD&aB(D6
iiH1
((-1
mientras iXA(
i# i)%uiero X ( enton$es Pui$NsortFi)&(6
i# iXere$'o enton$es Pui$NsortFi&ere$'o6
#in
=.- Es$ri!a un programa re$ursi"o para orenar un arreglo a el moo siguiente. Suponga %ue N es el 9ni$e el elemento
intermeio el arreglo. Orene los elementos 'asta e in$lu,eno aBND. Orene los elementos espu;s e aBND. Inter$ale los
os su!arreglos en un solo arreglo orenao. Este m;too se enomina ordenamiento por intercalacin. E(emplo5
Entraa5
arreglo A B=&.&*7&8&1&*&?&1C&<D
2ro$eimiento5
2aso 15 N A <
2aso *5 arregloBND A 1
resultao e orenar la primera mita el arreglo in$lu,eno aBND B1&.&=&8&*7D
2aso .5
Resultao e orenar la seguna mita ese aBNH1D 'asta el :ltimo elemento B*&<&?&1CD
2aso < , salia5 arreglo A B1&*&.&<&=&?&8&1C&*7D

You might also like