November 16, 2022 | Author: Anonymous | Category: N/A
Download Guia de Practica - Elementos 1-2018...
Guia de Pr´ a acticas cticas
2 3 3 5 5 F N I -
S S S M U -
Elementos de Programaci´ on on y Estructuras de Datos Universidad Mayor de San Simon Departamento de Inform´ atica atica - Sistemas Ma. Leticia Blanco Coca 2018
B C C L M
S S S M U -
´ Indice general 1. Progra Programaci´ maci´ on Orientada a Ob jetos 2. Recursividad 3. Estructuras de Datos Lineales 4. Estructuras de Datos No Lineales
2 3 3 5 5 F N I B C C L M 1
2 7 45 60
S S S Programaci´ on Orientada a Objetos on M U Cap´ıtulo 1
Dadas las siguientes descripciones, define cuales son candidatas a clase y cuales candidatas a objetos, por qu´e? e? Define De fine el modelo mo delo que mostrar´ıa ıa el ccontexto ontexto y su suss re relacion laciones. es. 1. En una villa se tienen varios pobladores que viven en armonia, ya ya que suelen compartir el lugar de trabajo, y los lugares de distracci´oon. n. Juan Pablo es uno de los habitantes de esta villa que suele ir mucho al Parque “El aguilita” ya que tiene muchos juegos infantiles.
2 3 3 5 5 F N I -
2. Una empresa de telecomunicaciones telecomunicaciones se caracteriza por brindar diferentes servicios, tales como la telefon´ telefon´ıa celular. Una de sus unidades se encarga de atender a los clientes que tiene la empresa y ayuda a resolver problemas que los mismos tengan con algn servicio que ofrecen. La velocidad de respuesta de los operadores de atenci´on on al cliente es crucial ya que esto puede generar una llamada de atenci´on on por la superintendencia de telecomunicaciones. Se dio un caso en el que Maria (una operadora) se tard´o en atender una solicitud de reclamo mas de 20 d´ııas as p por or lo cu´ al al Honorato Orfebre, uno de los mejores clientes elev´o una queja. 3. Un sistema de identificaci identificaci´on ´on de personas en la oficina de lucha contra el crimen desea tener formas m´aass rapidas de construir un dibujo que muestre los rasgos de un sospechoso. Se sabe que los dibujos de las caras se dividen en tres regiones: la parte alta, la parte media y la baja. En la parte media se encuentran elementos como el cabello, la frente, los ojos, las cejas. En la parte media se describe la nariz y en la parte baja la boca y barbilla. De cada elemento se puede tener a su vez ciertos modelos establecidos como: boca
B C C L M
grande y carnosa o boca chica y carnosa. En esta secci´ o on n se plantean descripciones de dominio los mismos que deben ser resueltos utilizando utiliz ando POO.
4. Transfer ransfer es una empresa empresa de transporte transporte p´ u ublico, blico, que tiene una flota de t´axis axis y una variedad de l´ıneas de buses. Los t´aaxis xis tienen un nombre que los identifica ( por ejemplo: Rojo 100), una ubicacin actual, el costo de pasaje b´asico, asico, el costo adicional p por or persona, el estado (o (ocupado/libre) cupado/libre) y la recaudacin del d´ıa. ıa. De los buses se conoce cono ce el nombre de la l´ınea, la ruta, el costo del pasa je b´asico asico y la recaudacin del d´ıa. Los buses debido a que se tiene un costo ´u unico nico se recoge pasajeros de uno en uno, pero los t´axis axis pueden recoger a uno o a muchos muchos pasajeros. pasajeros. Los veh veh´´ıculos deber deber´´ıan poder indicar indicar si pueden pueden llev llevar ar a un pasajero de X a Y. La ruta se considera como una secuencia ordenada de lugares que se puede visitar. La empresa desea automatiz auto matizar ar algunos algunos de sus procesos, mismos que se detal detallan lan a continua continuacin: cin: Se requiere saber las recaudaciones del d´ıa de la empresa Se quiere saber sab er la lista de veh veh´´ıculos que pueden llevar de un lugar X a Y Se desea automatizar el recojo de pasajeros 2
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
5. Se desea tener informaci´ informaci´ oon n de los ambientes que se destinan para dar clases en la FCYT. Nos interesa la capacidad de los ambientes y la ubicaci´on on vertical en la que se encuentran. La ubicaci´on on vertical hace referencia al piso en el que se encuentra un ambiente.
S S S M U -
Se requiere saber: Cu´antos antos ambientes existen con capacidad mayor a X y que est´en en en la ubicacion U Cu´antos antos ambientes en la ubicaci´oon n X existen
Emitir un reporte de todos los ambientes que tiene una facultad
Emitir un reporte de los primeros n ambientes que tengan una capacidad m´ m´ınima de X Indicar si es posible a nadir un ambiente m´aass a una facultad Permitir ingresar un nuevo ambiente mas
Realizar un reporte que indica la suma de todas las capacidades por ubicaci´on
Se sabe que las Facultades tienen a lo sumo 50 ambientes y el edificio mas alto tiene 10 pisos. Realiza el modelo y los m´ etodos etodos que permitan satisfacer los requerimeintos Dados los siguientes siguientes c´ odigos odigos y modelos se pide encontrar una descripci´ on on de lo que resuelven y/o hacen adem´ as as de completar los m´ etodos etodos que se indican. 6. Dado el siguient siguientee c´oodigo, digo, indica a qu´e contexto p pertenece, ertenece, reconstruye el modelo y completa los cuerpos de los m´etodos etodo s que faltan:
2 3 3 5 5 F N I -
import java.util.Arr java.util.ArrayList; ayList; /** * cla clase se que ide identi ntific fica a una col colecc eccion ion de * elem elementos entos comparab comparables les * @au @autho thor r MLBC MLBC * @ver @version sion 5.09.07 5.09.07 */ public publ ic class Coleccio Coleccion n { private ArrayList datos;
B C C L M {
public Coleccion()
datos dato s = new Array ArrayList List(); ); } public publ ic int tama tamano() no() { return datos.size() datos.size(); ; } public publ ic Comp Comparab arable le dato( dato(int int pos) { return datos.get(po datos.get(pos); s); } public publ ic void agre agregar(C gar(Compa omparabl rable e dato dato) ) { datos.add(dato); } public publ ic Comp Comparab arable le busca buscar(Bu r(Buscado scador r busc buscador, ador, Comp Comparab arable le dato dato) )
3
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
{ return buscador.buscar(this, dato); } } /** * clas clase e que iden identifi tifica ca obje objetos tos * que que sa sabe ben n busc buscar ar un dato dato en una * cole coleccion ccion * @au @autho thor r MLBC MLBC * @ver @version sion 05.09.07 05.09.07 */ abstract abst ract public public clas class s Busca Buscador dor { /** * Me Meto todo do que que busc busca a un dato dato en la cole colecc ccio ion n * @pa @param ram col colecc eccion ion la col colecc eccion ion don donde de se bus buscar cara a * @param dato el dato que se buscara *
S S S M U -
2 3 3 5 5 F N I -
* @r @ret etur urn n el dat dato o si se ha enco encont ntra rado do */ abstract abst ract public public Compa Comparabl rable e busca buscar(Co r(Colecc leccion ion cole coleccio ccion, n, Comp Comparab arable le dato dato); ); } /** * clas clase e que iden identifi tifica ca a busc buscador adores es secu secuenci enciales ales * @au @autho thor r MLBC MLBC * @ver @version sion 05.09.07 05.09.07 */ public publ ic class Secuenci Secuencial al exte extends nds Busc Buscador ador { public Secuencial( Secuencial() ) {} public publ ic Comp Comparab arable le busca buscar(Co r(Colecci leccion on cole coleccio ccion, n, Comp Comparab arable le dato dato) ) {
B C C L M
Compar Com parabl able e res = nul null; l; int cant cantidad idad = cole coleccio ccion.tam n.tamano( ano(); ); int posicio posicion n = 0; boolean bool ean enco encontrad ntrado o = fals false; e; while(po whil e(posici sicion on < cant cantidad idad && !enc !encontr ontrado) ado) { if(coleccion.dato(posicion if(coleccion. dato(posicion).compareTo(d ).compareTo(dato)==0) ato)==0) { res = coleccion.dato coleccion.dato(posicion); (posicion); encontrad enco ntrado o = !enc !encontra ontrado; do; } posicion++; } return retu rn res;
} }
4
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
/** * Esc Escrib ribe e la clase clase sec secuen uencia cial l aco acotad tado o * @aut @author hor * @ver @version sion */ public publ ic class Secuenci SecuencialAc alAcotad otado o exten extends ds Busc Buscador ador { public SecuencialA SecuencialAcotado() cotado() {} public publ ic Comp Comparab arable le busca buscar(Co r(Colecci leccion on cole coleccio ccion, n, Comp Comparab arable le dato dato) ) { return retu rn null null; ; } } /** * Esc Escrib riba a el metodo metodo bus buscar car * @aut @author hor * @ver @version sion
S S S M U -
2 3 3 5 5 F N I -
*/ public class Binario public Binario exte extends nds Busc Buscador ador { public publ ic Comp Comparab arable le busca buscar(Co r(Colecci leccion on cole coleccio ccion, n, Comp Comparab arable le dato dato) ) { return retu rn null null; ; } }
7. RTB Los Los sistemas de recomendaci´on on de contenidos se han hecho muy populares en los ultimos ´ultimos a˜ nos. nos. Entre los que se encuentran las recomendaciones de productos en tiendas online, pel´ıculas, ıculas, videos, m´ usica, usica, libros, etc. Para hacer las recomendacione recomendaciones, s, el siste sistema ma analiza y procesa informaci´ informaci´ on on hist´orica orica de los usuarios. El desaf´ıo ıo de administrar admi nistrar las l as series televis televisivas ivas (de elecci elecci´´oon n libre similar a Netflix) y realizar recomendaciones sobre la base de las elecciones de los usuarios mediante una App. Cada vez que los usuarios ven una serie, el sistema registra la serie vista en un historial del usuario, para en un futuro puede hacerle recomendaciones la pr´oxima oxima vez que ingresa a la App. Por cada c ada serie se registra registra:: t´ıtulo y categor´ıa ıa (acci´on, on, comedia, documental, etc).
B C C L M
En una primera etapa del proyecto proyecto las series recomendadas p pertenecen ertenecen a la misma categor´ categor´ıa de la ultima u ´ltima serie vista. Por ejemplo: Si se tiene un registro de series disponibles en la APP:
Big Ban Expedientes secretos Breaking Bad Juego de Tronos Sobrenatural Friends Narcos
Comedia Suspenso Drama Drama Terror Comedia Drama
Si la u ultima ´ ltima serie que vio el usuario fue Juego de Tronos, el sistema le recomendar´a, todas las series que tiene registradas en la categor categor´´ıa Drama por ejemplo: Breaking Bad, Narcos, etc. 5
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
a ) Dise˜ na na el diagrama de Clases que solucione al problema planteado b ) Explic Explicaa los relacionam relacionamien ientos tos de tu modelo c ) El modelo debe tener atributos/m´eetodos todos bien dientificados
S S S M U -
d ) Realiza un modelo que pueda en un futuro administrar los otros tipos de recursos como: m´usica, libros, etc.
2 3 3 5 5 F N I B C C L M 6
S S S M U -
Cap´ıtulo 2
Recursividad
1. Encuentra un m´ etodo etodo que permita p ermita definir la potencia de un n´u umero. mero. Los datos son a y b y lo que se desea es calcular a elevado a la b . 2. Escribe Escribe un proceso recursiv recursivoo que permita decidi decidirr si un n´umero umero natural n es primo o no.
2 3 3 5 5 F N I -
3. Escribe un proceso pro ceso recursivo que permita calcular la cantidad de d´ıgitos ıgitos que tiene un n´umero umero positivo n 4. Se desea encontrar encontrar los factores factores primos de un numer numeroo n .
5. Dise˜ Dise˜ na na una clase Secuencia que represente una secuencia de n´umeros umeros enteros positivos. 6. A˜ nade nade a la clase Secuencia, un m´eetodo todo que p permita ermita sumar los elementos el ementos de la l a secuencia. 7. A˜ nade nade a la clase Secuencia, un m´eetodo todo que p permita ermita encontrar el minimo elemento de la secuencia. 8. A˜ nade nade a la clase Secuencia, un m´eetodo todo que p permita ermita ordenar los elementos de la secuencia. 9. A˜ nade nade a la clase Secuencia, un m´ etodo etodo que permita buscar un elemento x . 10. A˜ nade nade un m´ etodo etodo a la clase Secuencia, que permita aplicar un functor f . Un Functor es una clase de objetos que tiene la finalidad de especificar funciones que se realizar´an an sobre elementos enteros. Cuenta
B C C L M
con las operaciones: operar(int uno) y operar(int uno, int dos) , ambas operaciones a su vez devuelven un int. Por ejemplo se podr´ıa ıa tener el Functor multi, que b´asicamente, asicamente, a trav´eess de sus m´etodos etodos operar permiten multiplicar elementos del tipo int .
11. A˜ nade nade un m´etodo etodo a la l a cl clase ase Secuencia, que permita sumarlo con otra secuencia. 12. Bajo la suposi suposici´ ci´ on on de que un objeto de la clase Secuencia se puede utilizar para representar un vector, a˜ nade nade un m´etodo etodo a la l a clase c lase Secuencia, que permita realizar producto escalar con otro vector. 13. Se desea suma sumarr los numeros primos primos de un nsecu nsecuencia encia de n´u umeros. meros. 14. Escri Escribe be un metodo que permita saber si todos los d´ıgitos de un numero n , son pares.
15. Escri Escribe be un proces procesoo recursivo recursivo que permit permitaa decidir si un numero natu natural ral n es divisible entre 11. Dado que se sabe que un numero es divisible entre 11, si y solo si la suma de los digitos de posici´on on par menos la n suma de d e los lo s d´ıgitos ıgitos de posici´ p osici´on on impar es un m´u ultiplo ltiplo de 11. Por ejemplo: sea = 2341675, entonces (5 + 6 + 4 + 2) - (7 + 1 + 3) = 6, que no es m´u ultiplo ltiplo de 11, por lo tanto n no es divisible entre 11.
7
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
16. Se dic dicee que n es un n´ u umero mero que explota explota,, cuando ´eeste ste expl explota ota en varios fragmentos m´as as chico ch icoss que qu e ´el, el, dada una bomba. Si se tiene que n es el numero y b la bomba, tales que n es mayor que b , se puede hacer que n explote en dos numeros n1 = n / b y n2 = n - (n/b) . Pero b es una bomba que produce una reacci´on on en cadena, si n1 o n2 son mayores que b , ´eestos stos tambi´en en explotan ex plotan con la l a regla regl a anterior, anteri or, hasta que se s e encuentre enc uentre que el numero no es mayor que b , entonces se dice que ya no se puede explotar el numero. Por ejemplo, si n = 10 y b = 3, entonces n explota en los pedazos: 3,2,1,1 y 3. Escribe un proceso que permita mostrar los pedazos del numero n , dado que se tiene la bomba b .
S S S M U -
17. Dado una ca cadena dena c , escrib escribir ir proceso procesoss recur recursivo sivoss para resolv resolver er cada uno de los siguiente siguientess problemas: problemas: a ) Contar la cantidad cantidad de veces que aparece un un car´aacter cter x en c. Ej: para c = “elementos de programaci´on” on” y x =‘e‘, el resultado es 4. b ) Generar una cadena c1 equivalente a la cadena c, pero invertida. Ej: para c =“comer” el resultado es c1 = “remoc”. c ) Contar la cantidad de vocales que tiene c. Ej: para c = “elementos de programacion”, el resultado es 10. 18. Defini Definimos mos n´ umero umero promedio de un n´umero umero entero positivo, al n´ umero umero que se obtiene de sumar sus dgitos de posiciones pares y restar sus d´ıgitos de posiciones impares. Escribir un planteo recursivo para obtener el n´ u umero mero promedio de un entero positivo dado. Ej.: el n´umero umero promedio de 318547 es -2 pues -3+1-8+54+7= -2.
2 3 3 5 5 F N I -
19. Escri Escribir bir una soluci´ soluci´ on on recursiva que calcule la funci´oon n de Ackerman para valores de m y n dados. La funci´oon n de Ackerman Ackerman se describe describe del siguie siguiente nte modo: A(m, n) = n + 1, si m = 0 A(m, n) = A(m-1, 1), si n = 0 A(m,n) = A(m-1, A(m,n-1)), si m es mayor que 0 y n es mayor que 0 20. Escri Escribir bir una soluci´ oon n recursiv recursivaa que retor retorne ne ver verdader daderoo si una palabra palabra es un pal´ pal´ındromo ındromo (una palabra es pal´´ındromo cuando puede leerse igual de izquierda a derecha que de derecha a izquierda). pal 21. Impl Implemen ementar tar una soluc soluci´ i´oon n recursiva que calcule la suma de los primeros n n´ umeros umeros pares que no son m´ ultiplos ultiplos de 4.
B C C L M
22. Escri Escribir bir un proceso proceso recursivo recursivo que muestre una media pir´ aamide mide de d´ıgitos como se muestra en la siguiente figura: 1 21 321 4321 54321 654321 7654321 87654321 987654321 23. Se defi define ne un n´ umero umero de d´ıgitos incrementales increme ntales , a todo n´ u umero mero natural n = dm ... d1 d0, tal que dı+1 es menor igual que dı . Por ejemplo: 1227, 359, 88, 139 son n´umeros umeros de dgitos dgitos incremen incrementales tales.. Escribe un proceso recursivo para decidir si un n´umero umero n es un n´umero umero de d´ıgitos incrementales. incremental es.
8
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
24. Consi Considera dera el anterior anterior ejercicio, ejercicio, pero ad´aaptalo ptalo para decidir si un n´ u umero mero natural n , es un n´ umero umer o de d´ıgi ıgitos tos decrementales. 25. Defini Definimos mos inverso inverso simple de una secuenc secuencia ia de carac caractere teres, s, al inverso inverso de la secuencia sin sus repeticiones repeticiones consecutivas. Por ejemplo, el inverso simple de aaabccdddaaebb es beadcba. Escribe un proceso recursivo para obtener el inverso inverso simple de una secuencia de carac caractere teres. s.
S S S M U -
26. Esc Escrib ribir ir un proceso proceso recursiv recursivoo par paraa rec reconoc onocer er si una cade cadena na dada dada es de la for forma ma anbn; es decir n a’s consecutivas seguidas de n b’s consecutivas. 27. Realizar un proceso recursiv recursivoo que devuelva devuelva el n-´ n- ´ esimo elemento de menor valor en una secuencia de enteros positivos. Por ejemplo, si la secuencia contiene los valores 12, 7, 3, 9, 1, 5, 21 y n = 1 devuelve 1, si n = 2 devuelve 3, si n = 5 devuelve 9 y si n = 28 devuelve -1, que indica que ha habido un error. 28. Dadas dos cad cadenas enas c1 y c2 , dise˜ n nar ar procesos recursivos para:
a ) Decidir si c1 es prefijo de c2 . Ej.: prefijo(“lo”,“lombriz”)= True; prefijo(´aro’,´ aro’,´arboles’)= arboles’)= False. b ) Decidir si c1 es sufijo de c2 . Ej.: sufijo(´ado’,’teclado’)= ado’,’teclado’)= True; sufijo(’soga’,’mantel’)= False
29. Esc Escrib ribir ir un proceso proceso recursiv recursivoo par paraa det determ ermina inarr si un n´ umero umero positivo positivo n es par, usando como pista la
2 3 3 5 5 F N I -
siguiente afirmaci´on: on: Un n´ umero umero n es par si su predecesor es impar; un n´umero umero n es impar si su predecesor es par. 30. Dado un n´umero umero entero n, escribir un proceso recursivo para determinar cu´antos antos dgitos pares ocupan posiciones impares en n . Ej.: para n = 22005 el resultado es 2. Para n = 201414 , el resultado es 1. 31. Escri Escribir bir un proceso proceso recursiv recursivoo que dado un monto en pesos m, imprima el detalle de monedas y billetes para representar esa cantidad con la menor cantidad de billetes y monedas. Tener en cuenta que se tiene billetes de 100, 50, 20, 10, 5 y 2 pesos y monedas de 1 peso, 50, 25, 10, 5 y 1 centavo. 32. Dad Dadoo un n´ umero umero entero positivo, se pide eliminar las segundas ocurrencias repetidas de d´ıgitos. Por ejem ejemplo: plo: n = 2356 235634 342 2 el resultado resultado sera res res = 5634 56342 2
B C C L M
33. Dad Dadoo un n´ umero umero entero positivo, se pide eliminar las primeras ocurrencias repetidas de d´ıgitos. Por ejem ejemplo: plo: n = 2356 235634 342 2 el resultado resultado sera res res = 2356 23564 4
34. Encuentra la subsecue subsecuencia ncia descendente m´ as as larga de una secuencia de elemento elementoss ordenables. ordenables. Por ejem ejemplo: plo: sec = {2, 3, 5, 4, 3, 4, 2} el resultado resultado sera res = {5, 4, 3}
9
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
35. Se pide encon encontrar trar la n-sima fila del tri´ aangulo ngulo de Pascal. El tri´angulo angulo de Pascal es el siguiente: 0 1 2 3 4
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
y asi suces sucesivam ivamente ente..... ...... .
36. Se pide transponer transponer un histograma histograma ascendente ascendente arm´oonico. nico. Por ejem ejemplo: plo: * *** *** **** ****** el resultado resultado sera * * ** **** **** *****
S S S M U -
2 3 3 5 5 F N I -
37. Rotar un unaa onda en campana campana Por ejem ejemplo: plo:
B C C L M *** ***** ******* ********* el resultado resultado sera * ** *** **** **** **** *** ** *
38. Dada una secuencia de elemen elementos tos se pide encon encontrar trar el conj conjunto unto claus clausura ura del mismo. mismo. 10
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Por ejem ejemplo: plo: sec = {1,5,6 {1,5,6} } el resultado resultado sera res = {{},{1}, {{},{1},{5}, {5}, {6}, {1,5 {1,5}, }, {1,6 {1,6}, }, {5,6} {5,6}, , {1,5 {1,5,6}} ,6}}
S S S M U -
39. Dada una cadena extend extendida ida se pide encon encontrar trar su formato reducid reducido, o, el que indica el caracter caracter de la cadena y la cantidad de veces que aparece. Por ejem ejemplo: plo: cad = gggbbdde gggbbddeeewwa eewwasss sss el resultado resultado sera res = g3b2d2e3 g3b2d2e3w2a1s w2a1s3 3
40. Se pide eliminar eliminar las ocurre ocurrencias ncias consec consecutiv utivas as impares de una cadena. Por ejem ejemplo: plo: cad = aaabbabb aaabbabbaa aa el resultado resultado sera res = aabbbb aabbbbaa aa
2 3 3 5 5 F N I -
41. Se pide eliminar eliminar las ocurre ocurrencias ncias consec consecutiv utivas as pares de una cadena. Por ejem ejemplo: plo: cad = aaabbabb aaabbabbaa aa el resultado resultado sera res res = abab ababa a
42. Dada una cad cadena, ena, se pide indicar indicar cu´ aantas ntas veces existe un patron de forma exacta en la cadena original. Por ejem ejemplo: plo: cad = aaabbabb aaabbabbaa aa patron pat ron = abb abba a el resultado resultado sera res = 2
B C C L M
43. Dada una cadena cadena,, se pide decidir si un patro patron n se encue encuentr ntraa dentro de la misma misma por aproximac aproximaci´ i´ on. on. Por ejem ejemplo: plo: cad = aaabbabc aaabbabcaba aba patron pat ron = aba el resultado resultado sera res = 2
Ya que existe por semejanza de caracteres en la subcadena abba y en aba, pero no asi en abca, ya que c genera la desigualdad 11
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
44. Se pide enc encont ontrar rar los n n´ umeros umeros primos de la secuencia de fibonacci. 45. Dado un texto se pide encontrar encontrar las palabras que ocurren en el mismo adem´ ademas ´as del numero de esas ocurrencias. Por ejem ejemplo: plo: cad cad = "lo "lo que que no me mata mata me fort fortal alec ece" e" el resultado resultado sera res = {("lo",1),("que",1),("no", {("lo",1),("que",1),("no",1), 1), ("me",2),("mata",1),("fort ("me",2),("ma ta",1),("fortalece",1)} alece",1)}
S S S M U -
46. Dado un tabler tableroo de a jedre jedrez, z, ubique 8 reinas sin que ninguna de ellas se ataque, es decir corra peligro. peligro. 47. Se conoce que la mafia china china es muy organ organizada izada y protege mucho mucho a sus miembros, miembros, cuando deciden deciden asistir a una reuni´on on se dispone de una cantidad de chinos que asisten, y ellos se ubican de forma que al mirarlos frontalmente generan cierto respeto y temor. A continuaci´oon n se tiene una serie de posibles reuniones y su nivel y la apariencia que se tiene del grupo que va a la reuni´on vistos frontalmente: Nive Nivel l re reun uni’ i’on on 1 2 3 4
2 3 3 5 5 F N I -
Vist Vista a fr fron onta tal l de l la a de dele lega gaci ci’o ’on n (-.-) (-.(-.-).-) (-.(-.(-.-).-).-) (-.(-.(-.(-.-).-).-).-)
Considerando esta descripci´oon, n, dise na los procesos recursivos que permitan mostrar la apariencia del grupo de chinos que asistena a una reunion de nivel n. 48. Se tiene un unaa cadena cadena cad y y se quiere saber cual es la subcadena mas larga que existe en cad que respete un patron pat patron pat . Por ejemplo; si se tienen los siguientes casos de entrada: Caso1 Caso 1 : cad es AAAB AAABBBBC BBBCCABC CABCCCAB CCABCBCAB CBCABCBBB CBBBAAAB AAABBB BB pat pat es ABC ABC
B C C L M Caso2 Cas o2 : pat cad pat Caso3 Cas o3 : cad pat pat Caso4 : cad pat pat
es es es es es es
AAA AAABBB BABCBB CBBB B ABC AB CBBBBAB AAA AAABBB BBBB B ABC ABC A ABC ABC
Las salidas ser´an: an:
Caso Caso1 1 Caso Caso2 2 Caso Caso3 3 Caso Caso4 4
: : : :
9 3 0 0
49. Se tiene una caden cadenaa que representa representa una onda digital de se nales L (Low) y H (High). Se pide encontrar la cantidad de ondas que respresenta. Por ejemplo si se tiene la cadena HHHHLLLLHHHHHLLHHLLHH, su onda digital se puede ver algo asi: 12
UMSS ____
_____ |____|
Gu´ıa ıa de Pr´ acticas acticas __
|__|
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
__ | |_ __|
en esta linea se observan 5 ondas marcadas. Por lo que la respuesta es 5.
S S S M U -
50. Se tiene una caden cadenaa que representa representa una onda digital de se |} }, tal como se nales L (Low) y H (High). Se pide mostrar la onda que representa utilizando { _ , | muestra en el siguiente ejemplo: si se tiene la cadena HHHHLLLLHHHHHLLHHLLHH, su onda digital se puede ver algo asi: ____
_____ |____|
__ |__|
__ | |_ __|
51. Se pide hacer el (los) m´etodo(s) etodo(s) recursivo(s) necesarios para rotar a derecha los elementos de una matriz en n posiciones a 0. Si por ejemplo se tiene una matriz de 5x6 6
5
3
6
4
2
4 5 5 1
6 6 6 8
7 7 3 9
9 2 4 3
2 3 2 2
4 1 1 0
2 3 3 5 5 F N I -
y un n de rotaci´on on 3 el resultado ser´a: a: 6 2 1 5 1
4 4 5 6 8
2 4 6 3 9
6 6 7 4 3
5 7 2 2 2
3 9 3 1 0
Pero si se considera la matriz de 5x6
B C C L M 6 2 1 5 1
4 4 5 6 8
2 4 6 3 9
6 6 7 4 3
5 7 2 2 2
3 9 3 1 0
y el nivel de rotacion fuera 7, el resultado se obtiene en dos vueltas: La primera: 3 2 5 3 3
6 4 6 4 2
4 4 7 2 0
2 6 2 1 1
6 7 3 5 8
5 9 1 6 9
La segunda: 13
UMSS 6 9 5 3 3
5 2 6 4 2
3 4 7 2 0
6 4 2 1 1
4 6 3 5 8
Gu´ıa ıa de Pr´ acticas acticas
2 7 1 6 9
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S S M U -
52. Una red de mensajes mensajes en cade cadena na ha encon encontrado trado una forma de reparti repartirr los mismos mismos de manera manera que se pueda cubrir a la mayor gente posible......Para posible...... Para ello han decidido usar una teor´ teor´ıa, la misma que empieza enviando X mensajes, y a partir de este n´u umero mero se van enviando los mensajes de acuerdo a una teor´ııaa progresiva. progresiva. Se termina de entregar los mensajes una vez que se encuentra 1. Sin embargo, no se sabe a ciencia cierta la teor´ııa, a, lo unico u ´ nico que se tiene son algunas f´ormulas ormulas sueltas: X/2 X/2
y X ∗ 3 + 1.
y ejemplos de c´omo omo se aplica:
CASO 1: CASO 5, 16, 8, 4, 2, 1 CASO CAS O 2: 9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2 , 1 CASO CAS O 3: 10, 5, 16, 8, 4, 2, 1 CASO CAS O 4: 6, 3, 10, 5, 16, 8, 4, 2, 1 CASO CAS O 5: 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
2 3 3 5 5 F N I -
a. En base a los casos deduce la teor´ııaa que se aplica para enviar los mensajes b. Escrib Escribee el (los) m´etodo(s) etodo(s) RECURSIVO(S) necesario(s) para saber cu´aantos ntos mensajes se han enviado en total si se empieza con X mensajes. Este resultado se obtiene sumando la cantidad de mensajes sucesivos que se envian. Para dar un ejemplo: en el CASO 1: se envian 36 mensajes. 53. Se puede mo mostrar strar un n´ u umero mero a trav´es es de una sucesi sucesi´on ´on de funciones matem´aticas aticas de sin dado que se tiene las siguientes definiciones: sin(4 sin((n))) sin(2 sin(3 sin(1 − sin Sea An = sin(1 (4 + sin (2 + sin (3 − sin
B C C L M
Sea S n = (( A1 + n)A2 + n − 1)A ((A 1)A3 +
+ 2)An + 1
S n Dado un n imprimir imprimir S
Se sabe que la entrada n es un n´umero umero entero, tal que 1 ≤ n ≤ 200
Y la salida del proceso ser´a una l´ınea que contiene S n
sin((1) + 3)sin sin(1 sin(2)) + 2)sin sin(1 Por ejemplo, si la entrada n es 3, entonces la salida es: (( ((sin (1 − sin( (1 − sin(2 sin sin(3))) + 1 (2 + sin(3))) Escribe el (los) m´ etodo(s) etodo(s) RECURSIVO(S) necesario(s) para dado un n´umero umero entero n , permite mostrar mostrar S n
54. Se tien tienee un peque˜ no no saltarin que camina sobre una cinta el´ectrica ectrica hacia atr´ as as o hacia adelante, esta cinta tiene etiquetada cada celda con una letra, el trabajo del saltarin es indicar los saltos y de que tama˜no no deberia hacer para poder formar una palabra en base a sus saltos. Una condici´on es es q que ue deber´ d eber´ııaa saltar a 14
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
la posici´on on m´as as proxima v´aalida lida para lograr su objetivo de formar la palabra. En caso de que se tengan dos opciones iguales se debe privilegiar el salto “adelante”. Por ejemplo, si se tiene la cinta con las letras ,m,r, t,a,e,i,v,u,r, ,a,e,i,v,u,r, w, f,g,s,r,y, f,g,s,r,y, f,z,e,u,a,t, f,z,e,u,a,t, j } {s,m,r, Y el saltarin empieza en la posici´oon n 0 y se quiere formar la palabra fuerza palabra fuerza,, el saltarin deberia dar los siguientes saltos: 12 adelante, 3 atr´aas, s, 3 atr´aas, s, 3 atr´aas, s, 15 adelante, 3 adelante.
S S S M U -
Realiza el (los) m´etodo(s) Realiza etodo(s) RECURS RECURSIVOS IVOS necesarios necesarios para po poder der dar el reporte reporte correcto correcto del saltarin, saltarin, en busca de su objetivo. Si no puede lograr el objetivo se debe emitir mensaje “IMPOSIBLE”. 55. Dada una se secuenc cuencia ia de n´u umeros meros enteros positivos, encuentre la secuencia de secuencias que permita tener tantos enteros como sean posibles de acuerdo al siguiente comportamiento: CASO 1: CASO ENTRADA: sec = {5, 16, 8, 4, 2, 1} SALIDA: secSec secS ec = {{1,2 {{1,2,3,4 ,3,4,5}, ,5},
2 3 3 5 5 F N I -
{1,2}} CASO 2: CASO ENTRADA: sec = {9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1} SALIDA: secSec = {{1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, {1, 2, 3, 4, 5}, {1, 2}} CASO CAS O 3: ENTRADA: sec = {10, 7, 16, 8, 4, 2, 1} SALIDA: secSec = {{1, 2, 3, 4, 5, 6, 7}, {1, 2}} CASO CAS O 4: ENTRADA: sec = {6, 10, 16, 8, 4, 1} SALIDA: secS secSec ec = {}
B C C L M
Escribe el (los) m´ etodo(s) etodo(s) RECURSIVO(S) necesario(s) para obtener la secuencia de secuencias resultante, dado que se tiene una secuencia origen.
56. Un n´ umero umero es divisible por 7 cuando separando la primera cifra de la derecha, multiplic´andola andola por 2, restando este producto de lo que queda a la izquierda y as sucesivamente, da cero o m´ ultiplo ultiplo de 7. Por ejemplo, ejemplo, los siguie siguiente ntess n´ u umeros meros son divisibles entre 7, porque:
15
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Ejemplo 1: Ejemplo 2’1 1*2 = 2 -2 === 0 es divi divisi sibl ble e ent entre re 7 Ejemplo Ejem plo 2: 2633’4 4*2 = 8 -8 ==== 2625 262’5 5*2 = 10 -10 === 252 25’2 2*2 = 4 -4 === 21
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S S M U -
2 3 3 5 5 F N I -
2’1 1*2 = 2 -2 === 0 es divi divisi sibl ble e ent entre re 7
Cuando la diferencia es mayor que 9 el proceso se repite.
Prueba este m´ etodo etodo con el ejemplo el 467, que no es divisible entre 7. Define el (los) proceso(s) necesario(s) recursivo(s) para resolver si un numero n es divisible entre 7. 57. Se di dice ce que un n´ umero umero es autocontenido b´aasico sico de base n, cuando leido de izquierda a derecha este representa una secuencia ascendente de las potencias de n. Ademas se quiere saber la cantidad de autocontenci´on que tiene el n´umero, umero, dado que la autocontenci´oon n se define como la cantidad de potencias que existen en el n´ umero. umero. En caso de que no sea un numero autocontenido, la respuesta es -1. Por ejemplo:
B C C L M
CASO 1: CASO numero = 1101001000100 110100100010000100000100000 001000001000000 0 base = 10 La respuesta respuesta es 6 auto autoconte contencio nciones nes CASO CAS O 2: numero nume ro = 13927 1392781 81 base = 3 La respuesta respuesta es 5 auto autoconte contencio nciones nes CASO CAS O 3: numero nume ro = 12481 124816325 63254 4 base = 2 La respuesta respuesta es -1 auto autocont contenci enciones ones
Realiza el(los) procesos RECURSIVOS necesarios para resolver el problema 58. Una entid entidad ad bancaria proporciona proporciona un n´u umero mero de identificaci´on on personal (un entero positivo) a cada uno de sus usuarios. El usuario de una tarjeta debe teclear su n´umero umero de identificaci´oon n para poder utilizarla. 16
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Las terminales de la entidad traducen dicho n´u umero mero a una forma cifrada (tambi´ (tambi´en en un entero positivo). Si ´eesta sta clave coincide con la forma cifrada grabada en la tarjeta, el usuario podr´ po dr´a utilizarla para llevar a cabo las operaci operaciones ones deseadas. umero umero de Un n´ umero umero de identifica identificaci´ ci´ on on cuy cuyaa repre represen sentaci´ taci´ on on dec decima imall sea sea d1 d2 ... dn (donde n es el n´ eerico rico compre comprendido ndido entre 0 y 9; por ejemplo ejemplo para 2145, 2145, n = 4 y cifras y cada cifra di es un valor num´ d1 = 2, d2 = 1, d3 = 4, d4 = 5) se transforma en su correspondiente clave de la siguiente manera:
S S S M U -
n = 1 la clave es d Si Si n es d 1 ∗ 7.
Si Si n n > 1 la clave es (d (dn mod mod 3) 3) + dn ∗ c siendo siendo c c la clave de d de d 1 d2 ...dn−1 .
Se pide escribir el los m´ etodos etodos RECURSIVOS RECURSIVOS necesarios necesarios para que dado un n´ umero umero de identificaci´oon n la transforme en su clave de identificaci´on. on. 59. Debes escribir un programa que permita dada una cadena cadena y un numero que inde indentifica ntifica el ancho ancho de columna, partir esta cadena de tal manera que quepa en el ancho estipulado por la columna. Debes tratar de que las palabras no sean cortadas y debes justificar al ancho. Como un procesador de textos, la ultima linea por supuesto no debe ser justificada y mas bien debe generar un retorno de linea. Ejemplo 1 Si 1 Si se tiene como entrada:
2 3 3 5 5 F N I -
Esta Esta es una una prue prueba ba de lo qu que e se pued puede e escr escrib ibir ir en 10 100 0 espa espaci cios os. .
y el numero de columna es: 100 La salida es:
Esta Esta es una una prue prueba ba de lo qu que e se pued puede e escr escrib ibir ir en 10 100 0 espa espaci cios os. .
Ejemplo 2 Si 2 Si se tiene como entrada:
Esta Esta es una una prue prueba ba de escr escrib ibir ir un text texto o en colu column mnas as de 50 de anch ancho. o. Que Que es muy diferent diferente e a lo que se pue puede de esc escrib ribir ir en 100 espa espacio cios. s.
y el numero de columna es: 50
B C C L M La salida es:
Esta es una prueba de escribir un texto en colu column mnas as de 50 de anch ancho. o. Qu Que e es muy muy dife difere rent nte e a lo que se puede puede escrib escribir ir en 100 esp espaci acios. os.
Sobre la base de esta descripci´oon n se requiere que realices el (los) m´etodo(s) etodo(s) necesario(s) RECURSIVOS para resolver el problema.
60. Se dice que un n´ umero umero es siames, si la mitad del n´ umero umero es igual a la otra mitad del n´ umero. umero. Por ejemplo: 123123 es un n´ umero umero siames, pero 434 no lo es. La condici´oon n es que hagas el m´etodo etodo siames recursivo, si tienes que usar otros m´eetodos todos ´estos estos tambi´en en deben ser recursivos. recursi vos.
61. Escriba el(los) m´eetodo(s) todo(s) recursivo(s) necesario(s) para dado un numero de dos cifras n, se pueda dibujar ya sea: una V, un tri´aangulo, ngulo, una U o un rect´angulo. angulo. La cifra de las unidades de este n´u umero mero define el alto de la figura, figura, y la cifra de las decenas define qu´e figura se tendr´a. a. Si la cifra de las decenas es par y m´u ultiplo ltiplo de 4, entonces se dibuja una V, si es si es 17
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
impar y m´ ultiplo ultiplo de 3 se dibuja un tri´aangulo, ngulo, si es par, m´u ultiplo ltiplo de 2 y no de 4, entonces se dibuja una U, para el resto de los casos se dibuja un rect´angulo. angulo. Por ejemplo, considerando la figura 61 y si se tiene: el n´ umero umero 43, se dibujar´ıa ıa la l a figura de la opci´oon n a),
S S S M U -
en caso de que sea 93 se dibujaria lo que se muestra en el inciso c), si se tiene 63 se dibujar´ııaa lo que se tiene en b) y
finalmente si se tiene 13 se dibuja lo que se muestra en inciso d).
2 3 3 5 5 F N I -
Para realizar este dibujo puedes utilizar asteriscos. debes considerar los espacios que tienen estas figuras para verse bien. 62. Dad Dadoo un n´ u umero mero entero positivo, se pide conseguir un n´u umero mero que no contemple repetici´oon n de d´ıgitos. ıgi tos. Se debe eliminar las segundas segundas oocurre currencias ncias de repetic repetici´ i´on on de los d´ıgi ıgitos. tos. Por ejem ejemplo: plo: Si el nume numero ro es: es: n = 345 345436 436456 456 El numero numero resultan resultante te sera sera: : res res = 3456 3456
Realiza el (los) proceso(s) recursivo(s) necesario(s) para resolver el problema
B C C L M
63. Un n´ u umero mero puede ser transformado para volver a ser el mismo. Para ello se toma el digitos de las unidades del numero y se junta con el digito de las unidades del numero resultante de la suma de los digitos del numero original Por ejemplo, por ejemplo el 26 sufre de 4 transformaciones para volver a ser el mismo
Inic Inicio io Sume Sume l los os d dos os d dig igit itos os Comb Combin ine e lo los s do dos s di digi gito tos s ------------------------------------------------------------------------------------------------------26: 2+6=08: "6"y"8"=68 68: 6+8=14: "8"y"4"=84 84: 8+4=12: "4"y"2"=42 42: 4+2=06: "2"y"6"=26
Realiza el (los) proceso recursivos necesarios para dado un numero entero positivos entre 0 y 99 inclusive, indique la cantidad de transformaciones que se requieren para poder volver a generar el n´umero original.
18
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
64. En un pa´ pa´ıs de los acertijos, se tiene definida una f´oormula rmula secreta de construcci´on on de paredes que permite administrar de mejor forma los ladrillos que se tienen para construir las paredes. Antes de construir se requiere saber la cantidad de paredes que se pueden hacer en base a los ladrillos que se tienen y todas sus
S S S M U -
posibili posibilidades . La condic condici´ oon n siguientes es tratar de hacer paredes cuadradas. Por ejemplo si se tienen 1234 ladrillos de 1x1,dades. se pueden hacer i´ las opciones: (1 de 35x35), (1 de 3x3); (1 de 34x34), (1 de 8x8), (1 de 3x3), (1 de 2x2), (1 de 1x1); (1 de 33x33), (1 de 12x12), (1 de 1x1); y asi sucesivamente
No se quiere tener dos paredes de la misma dimensi´on. Entonces se tiene como entrada el n´u umero mero de ladrillos y las dimensiones de los ladrillos ladrillos l l y a a y y en base a las mismas, se quiere obtener las secuencias posibles de paredes que se pueden construir. Realiza el (los) m´ etodo(s) etodo(s) recursivo(s) necesario(s) para obtener las distintas opciones de construcci´ on. on. 65. Hacer el( el(los) los) m´etodo(s) etodo( s) recurs recursivo(s) ivo(s) neces necesario(s) ario(s),, para cal calcular cular la ra ra´´ız c´ubica ubica de un n´umero umero de la siguiente manera: Si Si Si Si
N=1 N=2 N=3 N=4
el el el el
cubo cubo cubo cubo
se se se se
2 3 3 5 5 F N I -
obtiene de 1 = 1 obtiene de 3 + 5 = 8 obtiene de 7 + 9 + 11 = 27 obtiene de 13 + 15 + 17 +19 = 64
y as sucesivamente.
66. Se pid pidee dise˜ nar nar proceso(s) pro ceso(s) recursivo(s) necesario(s) para encontrar la cantidad de l´ıneas que se requieren para construir hex´agonos agonos de crecimiento de nivel n, como se muestra en la figura 66.
B C C L M Tautograma si las palabras que est´an 67. Se dice que una fra frase se es un Tautograma si an en la frase comienzan con la misma letra. 19
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Caso Caso 1 Si la fras frase e es: es: Flowers Flow ers Flou Flourish rish from Franc France e
S S S M U -
La respue res sta es ver verdad dad Caso Caso 2puesta Si la fras frase e es: es: Sam Simm Simmonds onds speaks speaks softl softly y La respue respuesta sta es ver verdad dad Caso Caso 3 Si la fras frase e es: es: Peter Pete r EpIc EpIckEd kEd PePP PePPers ers La respue respuesta sta es fal falso so
Escribe el (los) m´etodo(s) etodo(s) recursivo(s) necesario(s) para dada una frase, decidir si es o no tautograma no tautograma.. 68. Den Dentro tro el mundo matem´ matem´ atico atico hay muchas relaciones numerales interesantes una de ellas son los numeros poligonales. Se pueden formar pent´agonos agonos de distintos niveles de crecimiento, juntando circulos como muestra en la
2 3 3 5 5 F N I -
Figura 2.1. Dada esta relaci´on on se pide escribir el (los) proceso(s) necesarios RECURSIVOS para encontrar la cantidad de circulos necesarios para tener un pent´aagono gono de nivel n.
Figura 2.1: N´ u umero mero pentagonal
B C C L M
69. En el pa´ pa´ıs de los acertijos, nuestro matem´ aatico tico reconocido Ibn Albania, ha encontrado una relaci´on on interesante entre n´ umeros umeros y operaciones aritm´ eeticas. ticas. Entre ellas una de las m´ as as curiosas es la siguiente 9 x 9 + 7 = 88 98 x 9 + 6 = 888 987 x 9 + 5 = 8888 9876 x 9 + 4 = 88888 98765 x 9 + 3 = 888888 .......... Y asi suce sucesiva sivament mente e
En base a esta relaci´on, on, se desea dado un n´umero umero entero de entrada encontrar su equivalente en terminos de la operaci´on on de la multiplicaci´on on y suma si es posible. Por ejemplo, ENTRADA: ENTR ADA: 8
20
UMSS SALIDA SAL IDA: :
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
"No e es s posibl posible" e"
ENTRADA: ENTR ADA: 8888 SAL ALID IDA: A:
S S S M U -
"9 "98 87 x 9 + 5"
ENTRADA: 675 ENTRADA: SALIDA SAL IDA: : "No e es s posibl posible" e"
Realiza el(los) m´ etodo(s) etodo(s) RECURSIVO(S) necesario(s) para resolver el problema.
70. En la qu qu´´ımica org´aanica nica se tienen cadenas de Carbono e Hidr´ogenos ogenos juntos, que forman distintas clases de alcanos; que se diferencian unos de otros por la cantidad de carbonos que existen. La forma de encontrar ademas adem as la nominaci´ nominaci´ oon n correcta es considerando la cadena lineal m´as as larga que se pueda tener, la misma que da la nominacion b´asica asica y encima de esa se obtienen otras mas, que se basan en las ramificiones existentes sobre la cadena lineal principal. Lo importante por el momento es identificar la cadena mas larga lineal de carbono que se pueda hallar en una composici´on. on. Por ejemplo si se tiene, la composici´on: on: . C . . . . .
C C C C C C C
. . . . C . .
. C C C C . .
. . . . C . .
. . . . C . .
. . . . C . .
. . . . C . .
. . . . C . .
. . C C C . .
. . . . . . .
. . . . . . .
2 3 3 5 5 F N I -
donde el C el C , significa la existencia existencia de Carbono y . y . la la no existenc existencia ia de Carbono, Carbono, se tiene que la cadena cadena lineal mas larga es de 15 Carbonos. Se pide, dada una composici´on on - que eess una matriz de s´ımbolos ımbolo s { C,.}, encontrar la cadena lineal m´as as larga de carbonos; para ello debes considerar tu soluci´on on de forma RECURSIVA. 71. Se desea hacer proceso(s) proceso(s) recursivo recursivo(s) (s) necesario necesario(s), (s), para poder eliminar eliminar las ocurrencias ocurrencias consecutiv consecutivas as de un mismo caracter siempre y cuando sea ocurrencias impares, por ejemplo: si se tiene aaa se reduce a aa, en cambio las a se reduce a la cadena vacia. Por supuesto si se tiene la cadena aabab esta se reduce a aa. Por lo tanto, la cadena resultante puede tener m´as as de una ocurrencia consecutiva de un caracter siempre y cuando sea en una cantidad par. A continuaci´on, se muestran dos ejemplos m´as as complejos con sus soluciones:
B C C L M
Ejemplo Ejem plo 1 Entr Entrada: ada: aabbaaaaccaabbccacda Salida: aabbaaaaccaabbcc Ejemplo Ejem plo 2 Entr Entrada: ada: bbbdhhsggguyyyrrmmddee Salida: bbhhggyyrrmmddee
72. Dado un conjunto de enteros positivos desordenad desordenados, os, se pide encontrar la suma de ascendientes mas grande que existelas en secuencias la secuencia. Por ejemplosiguientes: si se tiene (1, la siguiente 1, 4, 5, 36, 8, 9, 2, 4, 27. Se tienen ascendientes 4), (3, 5, secuencia: 36), (2, 6, 8, 9),3,(3), (2,2, 4,6, 27), la3, respuesta debiera debie ra ser 44. Realiza el (los) metodo(s metodo(s)) RECURS RECURSIVOS IVOS necesario(s) necesario(s) que permitan permitan resolver resolver el problema. problema. 21
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
73. Realizar el (los) proceso(s) recursivos(s) que devuelva(n) el primer t´ermino ermino de la serie de n´ n umeros u ´meros primos que cumpla que tiene “n” d´ıgitos. El par´ ametro ametro del proceso es “n”. 74. Dado un con conjun junto to de n´ umeros, umeros, se desea encontrar el conjunto clausura = n. A continuaci´on se tienen tres casos como ejemplo:
S S S M U -
Ej1. Dado el conjunto A conjunto A = = {3, 5, 6, 2, 8, 10, 10, 23, 23, 9}, se quiere encontrar el conjunto clausura = 2, el resultado seria: A2 = {{3, 5}, {3, 6}, {3, 2}, {3, 8}, {3, 10}, {3, 23}, {3, 9}, {5, 6}, {5, 2}, {5, 8}, {5, 10}, {5, 23}, {5, 9}, {6, 2}, {6, 8}, {6, 10}, {6, 23}, {6, 9}, {2, 8}, {2, 10}, {2, 23}, {2, 9}, {8, 10}, {8, 23}, {8, 9}, {10 10,, 23}, {10, 10, 9}, {23, 23, 9}} Ej2 Dado un conjunto A = {4, 3, 8, 10, 10, 34}, se quiere encontrar el conjunto clausura = 3, el resultado seria: A3 = {{4, 3, 8}, {4, 3, 10}, {4, 3, 34}, {3, 8, 10}, {3, 8, 34}, {8, 10 10,, 34}} Ej3 Dado un conjunto A conjunto A = = {5, 6, 2, 3}, se quiere encontrar el conjunto clausura = 6, el resultado seria: 6 A = {} RECURSIVOS necesario(s) Escrib e el (los) m´eetodo(s) Escribe todo( s) RECURSIVOS necesario(s) para encontrar el conjunto clausura = n, dado un conjunto de enteros.
2 3 3 5 5 F N I -
75. Se di dice ce que un n´ umero umero es autocontenido b´aasico sico de base n, cuando leido de izquierda a derecha este representa una secuencia ascendente de las potencias de n. Ademas se quiere saber la cantidad de autocontencion que tiene el numero, dado que la autocontenci´oon n se define como la cantidad de potencias que existen en el n´ umero. umero. En caso de que no sea un numero autoncotenido, la respuesta es -1. Por ejemplo:
CASO 1: CASO numero = 1101001000100 110100100010000100000100000 001000001000000 0 base = 10 La respuesta respuesta es 7 auto autoconte contencio nciones nes CASO CAS O 2: numero nume ro = 13927 1392781 81 base = 3 La respuesta respuesta es 5 auto autoconte contencio nciones nes CASO CAS O 3: numero nume ro = 12481 124816325 63254 4 base = 2 La respuesta respuesta es -1 auto autocont contenci enciones ones
B C C L M
Realiza el(los) procesos RECURSIVOS necesarios para resolver el problema
76. Un mafioso mu muy y conocido ha decidido irse a vivir a una gran ciudad, ciudad, en la que tiene una gran cantidad cantidad de familia. Cada familiar vive sobre una misma avenida en distintas calles las mismas que est´an an numeradas. Don Vito, quiere ubicarse en la ciudad y quiere minimizar la distancia de su casa a las casas de sus familiares. Escribe un programa que ayude a Don Vito a encontrar la mejor ubicaci´on dado que tiene las direcciones de sus parientes y adem´aass la meno menorr distancia que recorrera recorrera si visita de casa en casa de acuerdo a una secuencia dada. Por ejemplo si tiene 6 familiares y sus casas est´aan n en las calles: 2, 5, 3, 7, 4, 2. La mejor ubicaci´on para comprarse una casa es: la calle 3, a que tiene la suma de la distancia mas ´optima de llegar a sus familiares. RECURSIVO(S) para Realiza el (los) ( los) m´eetodo(s) todo( s) nec necesario( esario(s) s) RECURSIVO(S) para resolver el dilema de Don Vito. 22
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
(los ) m´ etodo(s) etod o(s) RECURS RECURSIVO(S) IVO(S) necesarios necesar ios para 77. Realiz Realizaa el (los) para poder calcular los n´ u umeros meros primos meo ostenes. stenes. La Criba de Eratostenes es un procedimiento nores que N que N con con el algoritmo de la Criba la Criba de Erat´ que permite hallar todos los n´u umeros meros primos menores que un n´umero umero natural dado N dado N.. Se forma una tabla N y seque con todos n´ umeros umeros manera: naturalescuando comprendidos entre 2uny entero vanno tachando los n´ umeros umeros no son primos de los la siguiente se encuentra ha sido tachado, ese que n´ umero umero es declarado primo, y se procede a tachar todos sus mltiplos. El proceso termina cuando el cuadrado del mayor n´ umero umero confirmado como primo es mayor que N que N..
S S S M U -
Ejemplo:
Determinemos Determin emos, , medi mediante ante este proc procedim edimient iento, o, la list lista a de los nume numeros ros primos pri mos men menore ores s de 20. Para Par a ello ello defini definirem remos os el * com como o "ma "marca rcado" do" y el - com como o "ta "tacha chado" do". . Sea N = 20
Primer paso: Primer Escrib Esc ribamo amos s la lista lista de los num numero eros s nat natura urales les com compre prendi ndidos dos ent entre re 2 y 20.
2 3 3 5 5 F N I -
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20
Segundo paso Segundo paso: : Marcam Mar camos os el primer primer num numero ero no tac tachad hado o ni mar marcad cado o com como o num numero ero pri primo. mo. 2*, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20
Tercer paso: Tercer Tacham Tac hamos os tod todos os los mul multip tiplos los del num numero ero que aca acabam bamos os de mar marcar car com como o pri primo. mo. 2*, 2*, 3, 4-, 5, 6-, 7, 8-, 8-, 9, 10-, 10-, 11, 12-, 12-, 13, 14-, 14-, 15, 16-, 16-, 17, 17, 18-, 18-, 19, 19, 2020-
B C C L M
Cuarto paso: Cuarto Si el cuadra cuadrado do del nume numero ro rec recien ien marca marcado do es inf inferi erior or a 20, entonc ent onces es rep repeti etimos mos el seg segund undo o pas paso. o. Si no, el pro proces ceso o ter termin mina, a, y tod todos os los ent entero eros s no tac tachad hados os son dec declar larado ados s pri primos mos. . Como Como 3^2 3^2 = 9 < 20, 20, volv volvem emos os al segu segund ndo o paso paso: : 2*, 2*, 3*, 3*, 4-, 4-, 5, 6-, 7, 8-, 9-, 9-, 10-, 10-, 11, 12-, 12-, 13, 14-, 14-, 1515-, , 16-, 16-, 17, 17, 18-, 18-, 19, 19, 2020-
En el cuar cuarto to paso paso, , el prim primer er nume numero ro que que no ha sido sido tach tachad ado o ni marcado es 5. Como su cuadrado es mayor que 20, el proceso termina y con consid sidera erarem remos os primos primos tod todos os los num numero eros s que no han sid sido o tachados. RESULT RES ULTADO ADO: : Los num numero eros s pri primos mos com compre prendi ndidos dos ent entre re 2 y 20 son son: :
23
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
2, 3, 5, 7, 11, 13, 17, 19.
S S S M U -
Se dise˜ n nar ar es proceso(s) recursivo(s) para si unalnumero es un supernumero. Se dice quepide un numero un supernumero, si y necesario(s) solo si la suma de decidir sus d´ıgitos cuadrado, es menor que la suma de los digitos mas significativos (excluyendo el digito de la unidad) al cubo y esta suma a su vez es menor que la suma de los digitos mas significativos (excluyendo las decenas) elevadas a la cuarta, y asi sucesivamente. Caso 1: Caso n = 1111 111111 11 no es supe super r nume numero ro ya que que la sum suma a de sus dig digit itos os al cuad cuadra rado do 6 es mayor mayor a la suma de los los cubo cubos s del del nume numero ro sin sin unid unidad ades es que que es 5. Caso Cas o 2: n = 5543 55432 2 si es supe supern rnum umer ero, o, ya que que la suma suma de los los digi digito tos s al cuad cuadra rado do es 79 y meno menor r que que la sum suma a de los digi digito tos s al cub cubo o que que es 341 341, , y 341 341 es men menor or que la suma suma de los dig digito itos s mas sig signif nifica icativ tivos os exc excluy luyend endo o dec decena enas s elevad ele vado o a la cuarta cuarta que es 1506.
2 3 3 5 5 F N I -
1506 1506 a su vez vez es meno menor r que que 6250 6250 que que vend vendri ria a a ser ser la suma de los los digi digito tos s a la 5 excluy excluyend endo o las cente centenas nas. . Y por por ulti ultimo mo 6250 6250 es meno menor r a 1562 15625. 5.
78. En la selva selva se han mimetizado mimetizado var varios ios leones, grrrrr....., grrrrr....., debemos pasar la selva.... selva.... es necesario.. necesario.... .. pero p ero no queremos morir....... :S, - piensa Hugo; pero como debe guardar compostura y mantener la calma con sus hermanos Paco y Luis; no muestra su temor. Mas al contrario ha decidido buscar cu´antos antos leones leones hay mimetizados para saber el n´u umero mero de balas que debe cargar si es necesario tomar alguna medida de emergencia. Pero hay un problema y es que la selva de letras que deben atravesar puede ser muy tupida y complicada; por lo que ha decidido decidido recordar sus dotes de progr programad amador or y no ha tenido tenido ´exito. exito. Por lo que ha solicitado solicitado que escribas un programa RECURSIVO para encontrar el n´umero umero de leones, dado que se tiene la selva de letras. Por ejemplo, si se tiene la selva:
B C C L M
SELVADELEJEMPLODONDESEENC SELVADELEJEM PLODONDESEENCUNETRANDOSLEO UNETRANDOSLEONES NES
La respuesta ser´a 2.
Sin embargo si se tiene la siguiente selva: LEONIDASUNGRANGUERRERODEL LEONIDASUNGR ANGUERRERODELAANTIGUAGRECI AANTIGUAGRECIA A
La respuesta ser´a 1.
79. Busca Buscando ndo el nido especial est´ estan ´an dos pajaritos. Pues dir´as as cu´al al es el problema?, y la respuesta es que estos pajaritos tienen requerimientos muy exquisitos del lugar donde quieren vivir. Ellos son dos p´ajaritos de cuello azul y les gustar´ gustar´ıa vivir en la zona que haya m´ as as pajaritos azules y por supuesto siempre y cuando exista un nidito libre. Para ello la pajarit Para pa jaritaa ha conse conseguido guido un plano de la ubicaci´ on on de los nidos libres y los vecinos vecinos que circundan circundan esos nidos. El plano es rectangular en el que los nidos libres se especifican con un * y la cualidad de 24
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
los pajaritos con un letra, que es la inicial del color del pajarito vecino, es asi que: A especifica al color “AZUL”, V al “VERDE” y asi...... debes considerar que no es posible que dos colores distintos sean explicados con la misma letra.
S S S M U -
Debes ayudar a estos pajaritos a hallar su nido perfecto o casi perfecto!!! Por ejemplo, si se tiene el siguiente plano de posibilidades: A A A A V V V V A A A
A A A A V V V V A A A
A V A A V V V V A A A
* V A A V V * V A A V
V V A A V V V V A A A
V * A A V V V V A * A
V V A A V V V V A A A
V V A A V V V V A A A
V V A A V * V V V V V
N V A A V V V V A A A
N V A A V V V V A A A
N V A A V V V V A A A
N V A A V V V V V V V
* A A A V A A A A A A
N A A A V A A A A A A
N A A A V A A A A A A
2 3 3 5 5 F N I -
A A A A A A A A V A A V V V * V V V V A A A A A V A V V V A A A
Los pajaritos con esta informaci´oon n han decidido irse a vivir al nido ubicado en (1, 4) ya que la comunidad de sus cong´ eneres eneres a los que puede llegar es la mayo mayor, r, que con los otros nidos. En caso de que haya m´ as as de un nido que cumpla la condici´on, on, debes responder la ubicaci´oon n del primer nido que hayas hayas encontrado encontrado.. Como habr´as a s podido notar, a los pajaritos les parece mejor vivir en la “orilla” de una zona de sus cong´ eneres, eneres, si eso les l es da mayor mayor posibilidad de relaci´oon n con los de su clase, que vivir al medio de los de su clase con un circulo social menor. Es que.... en resumidas cuentas la pajarita quiere hacer mucha vida social. 80. Con Consid sidera era el proble problema ma de los pajaritos pajaritos,, pero ahor ahoraa se ha a˜ nadido nadido un dato m´as as y es la informaci´on on del A,3,, significa que en esa posici´on numero de integrantes de cada familia, entonces, A,3 on vive una familia de p´ aajaros jaros azules con tres integrantes.
B C C L M
Se te pideon cual nidopiensan correcto para esta pareja de pajaritos, si ahora se tiene la siguiente informaci´ onencontrar de la regi´ oon n eneslaelcual comprar su nidito. A,2 A,2 A,1 A,1 A,2 A,2 A,1 A,1 V,2 V,2 V,1 V,1 V,1 V,1 V,2 V,2 A,1 A,1 A,2 A,2 A,2 A,2 A,2 A,2
A,1 A,1 A,1 A,1 A,2 A,2 A,1 A,1 V,1 V,1 V,2 V,2 V,1 V,1 V,3 V,3 A,1 A,1 A,2 A,2 A,3 A,3 A,1 A,1
A,1 A,1 V,1 V,1 A,2 A,2 A,2 A,2 V,1 V,1 V,4 V,4 V,2 V,2 V,4 V,4 A,1 A,1 A,2 A,2 A,1 A,1 A,1 A,1
*,0 *,0 V,1 V,1 A,2 A,2 A,3 A,3 V,1 V,1 V,3 V,3 *,0 *,0 V,5 V,5 A,1 A,1 A,2 A,2 V,1 V,1 A,1 A,1
V,1 V,1 V,1 V,1 A,3 A,3 A,4 A,4 V,1 V,1 V,2 V,2 V,1 V,1 V,5 V,5 A,1 A,1 A,2 A,2 A,2 A,2 A,1 A,1
V,1 V,1 *,0 *,0 A,7 A,7 A,5 A,5 V,2 V,2 V,3 V,3 V,5 V,5 V,2 V,2 A,1 A,1 *,0 *,0 A,1 A,1 A,1 A,1
V,1 V,1 V,1 V,1 A,3 A,3 A,1 A,1 V,2 V,2 V,2 V,2 V,3 V,3 V,2 V,2 A,1 A,1 A,2 A,2 A,2 A,2 A,1 A,1
V,1 V,1 V,2 V,2 A,3 A,3 A,4 A,4 V,2 V,2 V,6 V,6 V,3 V,3 V,1 V,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1
V,1 V,1 V,3 V,3 A,8 A,8 A,5 A,5 V,6 V,6 *,0 *,0 V,2 V,2 V,4 V,4 V,3 V,3 V,2 V,2 V,5 V,5 V,1 V,1
N,2 N,2 V,1 V,1 A,3 A,3 A,9 A,9 V,7 V,7 V,3 V,3 V,1 V,1 V,5 V,5 A,1 A,1 A,1 A,1 A,2 A,2 A,1 A,1
N,3 N,3 V,1 V,1 A,3 A,3 A,2 A,2 V,8 V,8 V,3 V,3 V,1 V,1 V,7 V,7 A,1 A,1 A,2 A,2 A,2 A,2 A,1 A,1
N,2 N,2 V,1 V,1 A,3 A,3 A,3 A,3 V,5 V,5 V,2 V,2 V,1 V,1 V,8 V,8 A,4 A,4 A,3 A,3 A,1 A,1 V,1 V,1
N,2 N,2 V,1 V,1 A,2 A,2 A,2 A,2 V,6 V,6 V,2 V,2 V,4 V,4 V,3 V,3 V,1 V,1 V,1 V,1 V,5 V,5 V,1 V,1
*,0 *,0 A,5 A,5 A,2 A,2 A,2 A,2 V,4 V,4 A,1 A,1 A,1 A,1 A,1 A,1 A,2 A,2 A,1 A,1 A,1 A,1 V,1 V,1
N,1 N,1 A,7 A,7 A,2 A,2 A,4 A,4 V,5 V,5 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,2 A,2 A,1 A,1 *,0 *,0
N,1 N,1 A,6 A,6 A,2 A,2 A,5 A,5 V,4 V,4 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 V,1 V,1
V,1 V,1 V,1 V,1 V,1 V,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 A,1 V,1 V,1 A,1 A,1 V,1 V,1 V,1 V,1 V,1 V,1 A,1 A,1 A,1 A,1 A,1 A,1
25
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
81. Se tien tienee una secuen secuencia cia de n´u umeros meros se te pide encontrar la cantidad de n´ umeros umeros pares que existe en el l s. in int´ t´erval er valoo li y ls Realiza el (los) m´ etodos etodos recursivos necesarios para resolver el problema. NOTA: concentr concentrate ate en resol resolver ver el proble problema, ma, y no as as´´ı en la interacci interacci´on, ´on, puedes asumir que m´ etodos etodos constructores ya est´an an hechos. No olvides definir tus condiciones de contexto
S S S M U -
82. Una cadena canc cancerosa erosa es aquella que se forma por creci crecimien miento to y aplicaci´ aplicaci´ on on de un formato recurrente dado que se tiene como datos dos caracteres y un nivel de crecimiento de cancer. b , se define como sigue el problema: Por ejemplo, si los caracteres fueran a y b, cancerCad(a,b,1) cancerCad(a,b,2) canc cancer erCa Cad( d(a, a,b, b,3) 3) cancerCad(a,b,4) cancerCad(a, b,4)
= aba = abababa = abab ababab abab abab abab abab aba a = abababababab ababababababababababababa abababababababa ba
Se te pide construir el (los) m´ etodos etodos recursivos necesarios para poder encontrar cancerCad(a,b,n) encontrar cancerCad(a,b,n) NOTA: concentr concentrate ate en resol resolver ver el proble problema, ma, y no as as´´ı en la interacci interacci´on, ´on, puedes asumir que m´ etodos etodos
2 3 3 5 5 F N I -
constructores ya est´an an hechos. No olvides definir tus condiciones de contexto 83. Un jueg juegoo ic´oonico nico por computadora es “PACMAN”, que consiste en un individuo identificado con una “carita” que se dedica a comer diferentes frutas y objetos. Cada uno de estos elementos comibles tiene un “bono”,, de acuerdo “bono” acuerdo al siguie siguiente nte detalle detalle:: C F N M X L
-
Cer Cereza eza 100 puntos puntos. . Fres Fresa a 300 300 punt puntos os. . Nar Naranj anja a 500 puntos. puntos. Man Manzan zana a 700 puntos. puntos. Fen Fenix ix 100 1000 0 pun puntos tos. . Lla Llave ve 500 5000 0 pun puntos tos. .
Pero hay un problema ya que en el camino existen “Fantasmas” que los etiquetaremos con G y “Obst´acuaculos” que los etiquetaremos con O, de los Fantasmas se escapa y los Obst´aculos no se atraviesan..... Un camino libre de “Fantasmas” y “Obstaculos” se denota con un ‘.’(punto). El PACMAN (etiquetado con P) se mueve Arriba, Abajo, a la Derecha y a la Izquierda s´olamente. olamente. A diferencia del juego original los “Fantasmas” no se mueven.....
B C C L M
Nuestro PACMAN, tiene vida limitada y s´olo olo puede recorrer a lo sumo dos caminos de sus posibilidades y adem´aass debe maximizar la cantidad de “bonos” que puede acumular. Ayuda a PACMAN a lograr su cometido, dado que se tiene un plano del juego que es rectangular con los elementos descritos arriba. Debes recordar que cada fruta y objeto tiene asociado a si un “bono” que es numerico. Por ejemplo, una abstracci´on on del plano con letras es:
OOOOOOOOOOOOOOOOOOOO O...N..OL...O..L..LO O.OO..COOXGOOM..OOGO O.OG.OC..P...XO..O.O O.OOGO.OOOOOO.OGOO.O OF...G...G...G.N...O OOOOOOOOOOOOOOOOOOOO
26
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Donde O y G significan que son elementos “impasables” y el resto de las letras son elementos “pasables”. Y la posici´on on del PACMAN es (3,9).... El PACMAN, PACMAN, podr´ıa ıa comer frutas frutas y objetos por arriba con “bonos” 5000 + 1000 haciendo haciendo un total de 6000, por la derecha 1000 + 700 + 5000 + 5000 con un total de 11700, por abajo come 0 y por la izquierda 100 + 100 + 500 + 300 con un total de 1000. Como tiene solo dos posibilidades se elige arriba y la derecha haciendo un total de 17700 “bonos”.
S S S M U -
Puedes considerar: que jam´as as el PACMAN ACMAN puede andar en c´ırculos, ırculos, que se tiene el plano del juego y la posici´on on inicial del PACMAN. Ya se ha adelantado algo de la soluci´on on y se tiene el modelo de la Figura 3.1:
- int bono
+ int getBono() - Elemento[][] plano; - int posXP, posYP;
2 3 3 5 5 F N I -
+ int caminoMax()
Figura 2.2: Modelo
Se te pide sobre la base de este modelo estructurar tu soluci´on, on, utilizando recursividad. recursividad. Estas en libertad libertad de escribir los l os m´etodos etodos que consideres necesarios adicionales a lo que se tiene en el modelo. 84. En el pa´ıs ıs de las letras existen unas muy juguetonas que se encuentran escondidas en su calificativo. Por ejemplo: la palabra “lirica” no es juguetona ya que no contiene todas las letras de su calificativo “jugueton”, es m´as as la pobre palabra es muy seria :(. Sin embargo, la palabra “jeringuito” es una juguetona palabra, otra palabra juguetona es: “esterojiligrantapus” o “supermegamentojaso”
B C C L M
Tu tarea es decidir dada una palabra si es o no una palabra “juguetona” 85. Un virus muy fero ferozz ha atacado la computadora computadora de Lul´ u u,, y ha da˜ nado nado algunos a lgunos documentos docume ntos que ten´ ten´ıa, como es previsora ella tiene un backup de su informaci´oon, n, y es posible que reupere sus documentos. Sin embargo, inquieta inquie ta como es se ha dado a la tare tareaa de av averigu eriguar ar qu´ e cambios cambios ha hecho hecho el virus en los documentos, documentos, y recopilar en orden las letras que ha eliminado el virus comparando con su documento del backup. Al poco tiempo se ha dado cuenta que es tedioso y ser´ ser´ıa interesante construir un programa que le permita hacer este trabajo. A continuaci´on on te brindamos un ejemplo reducido de la situaci´on on que Lul´ u tiene: st s una una sori soria a de mieo mieo, , las las ltas ltas dsap dsapar arcn cn in aber abero o y son son asen asenad adas as r esta est a es una his histor toria ia de mis mister terio, io, las let letras ras des desapa aparec recen en sin sab saberl erlo o y son ase asesin sinada adas s por
donde en primer texto es el da˜nado nado por el virus, el segundo es el que tiene en su backup Entonces la cadena de las letras que el virus ha eliminado es: 27
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
eaehitteriereeesslesipo
Realiza el (los) procesos recursivos necesarios, para que dado un texto da˜nado, nado, un texto recuperado del
S S S M U -
backup; indique las letras que han sido eliminadas por el virus. 86. En la guer guerra ra de los “Kbots” los “Kbots” se se han dise˜n nado ado robots que permiten explorar caminos seguros en campos minados. Los humanos deben caminar por este campo minado buscando documentos secretos que est´an ubicados en alg´ un un lugar del campo. La misi´oon n de estos robots es indicar cu´al al es el camino m´as as seguro, adem´ aass de informar en qu´ e posiciones est´an an las minas para que los exploradores humanos no las pisen y puedan cumplir con su objetivo. En este campo minado existen alambres de p´uas uas que no pueden ser sobrepasad sobrepasados, os, espacios seguros de camino, minas, el lugar donde est´aan n los exploradores humanos y el lugar donde se encuentran los documentos secretos. Por ejemplo: PPPPPMPPMM PESSSSMSSP SSSPPPPSSS SMSSPPPMSM SSSSSDSSMS PPPSSSSMSS SSMSMSMSMS
2 3 3 5 5 F N I -
Donde E representa la posicion en la que los exploradores est´an, P identifica la existencia de p´ uas, uas, M indica la existencia de una mina y D indica el lugar donde estan los documentos secretos. Los robots s´olo olo se s e mueven en l´ınea recta, es dec decir ir jam´aass diagonal, considerando estas condiciones encuentra el camino m´as as seguro de exploraci´on. on. Tomando en cuenta el ejemplo anterior, el camino m´as as seguro ser´aa:: (R,S),(D,S),(D,S),(D,S),( (R,S),(D,S), (D,S),(D,S),(R,S),(R,S),(R R,S),(R,S),(R,D) ,D)
B C C L M
En este caso se ha encontrado un camino sin minas, pero en caso de que no exista tal camino, se debe devolv dev olver er el camino camino que tiene me menos nos min minas as e inf inform ormar ar d´ onde onde estan para que los explorador exploradores es tengan cuidado. Para aclarar, en el camino se tiene una lista de pasos que deben dar, cada uno de estos pasos es de la forma (DIRECCION, SITUACION), por ejemplo (R,S) dice que el movimiento es a la derecha=RIGHT y la situacion es segura=S.(Para completar la direccion puede ser: R=derecha, L=izquierda, D=abajo, U=arriba; U=arr iba; la situaci´ situaci´on on puede ser: M=mina, D=documento, S=segura)
Realizaa el (lo Realiz (los) s) proceso procesoss recurs recursiv ivos os nec necesa esario rios, s, par paraa que dado dado un campo campo minado minado,, la ubicac ubicaci´ i´ on o n de los exploradores, la ubicaci´on on de los documentos; se encuentre el camino “m´aas” s” seguro de exploraci´on. on.
NumeroLandia,, existen diferentes ciudadanos y entre ellos existen los curiosos, ´estos 87. En En NumeroLandia estos cumplen una condici´ on on interesante y es que la suma del factorial de sus digitos da el mismo numero, por ejemplo 145 es un n´ u umero mero curioso, pero el 77 no es numero curioso. Realiza el (los) procesos recursivos necesarios, para que dado un n´umero, umero, indique si es o no curioso.
28
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
88. En la toma de ex´amenes amenes se ha detectado que hay dos personas que siempre andan juntas e intentan sentarse juntas, esto es por dem´as as sospechoso para los profesores. Por lo que se te ha dado la tarea de evitar que estas dos personas se sienten juntas, para lo cual te dan como datos una lista de estudiantes y
S S S M U -
los nombres de las dos personas en cuestion. Por ejemplo, si se tiene: luis orian darla tom orian oria n darl darla a
Los primeros 4 nombres corresponden a la lista de los estudiantes, y la ultima fila tiene los nombres de las personas sospechosas. Con esta informaci´on on se debe obtener todas las posibles conformaciones de ubicacion de los estudiantes de tal manera que los sospechosos jamas queden juntos. La respuesta se veria asi: luis lui s orian orian tom dar darla la luis darla luis darla tom ori orian an orian ori an lui luis s darla darla tom orian ori an lui luis s tom dar darla la orian ori an tom lui luis s dar darla la orian ori an tom dar darla la luis luis darla dar la lui luis s orian orian tom darla dar la lui luis s tom ori orian an darla dar la tom lui luis s ori orian an darla dar la tom ori orian an luis luis tom ori orian an lui luis s dar darla la tom dar darla la lui luis s ori orian an
2 3 3 5 5 F N I -
Tu tarea es encontrar una soluci´on on RECURSIVA que permita resolver este problema, dado que se da una lista de nombres y un par de nombres que no se pueden sentra juntos.
B C C L M
89. considerando Se tiene un plano de las zonas rurales rurale s de nue nuestro stro depar departame tamento a los cualesdesarrollar llegar´ a la un se˜ nal nprograma al del sat´eelite, li te, el espectro de alcance del satelite denotado por nto A. Se requiere RECURSIVO que permita decidir a cuanta poblaci´on on beneficiara b eneficiara el sat´elite elite si esta ubicado en la coordenadas X e Y y tiene un alcance A. La figura 4.12 el incisio a). muestra un ejemplo del plano y de la densidad poblacional de las areas, y el inciso b). muestra cuales serian las zonas a las que el sat´ elite elite alcanzar´ıa ıa si estuviera ubicado en la la p posicion osicion (4,5) y su alcance fuera de 3; el resultado que es la poblaci´on beneficiada ser´a 8126
90. Se desea saber si un numero es monticulo, monticulo, se dice que los es si imaginariamen imaginariamente te tu puedes puedes formar una onda o un pico creciente-decreciente, con los valores del numero. Considerando cada digito como valor. Por ejemlo el numero 12346321 es un monticulo, ya que se puede formar: * * ** **** ****** ********
29
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S S M U -
Figura 2.3: Ejemp Ejemplo lo del problema
Si embargo el numero 12342345, no lo es porque se puede apreciar mas de un pico: * * ** ** *** *** ******* ********
2 3 3 5 5 F N I -
Realiza un programa recursivo que dado un numero me permita decidir si es monticulo o no. 91. Cape Caperuc rucita ita roja esta en el bosque, bosque, cam camino ino a casa casa de su abuelita abuelita;; ella en los ultimos u ´ ltimos a˜ nos nos se hizo muy amiga del lobo, pero ahora tiene miedo de otros animales que suelen vivir en caba˜nas. Horror!!! cu´anto anto ha cambiado el mundo, lo que ella quiere es llegar a la casa de su abuelita con la mayor cantidad de flores que pueda recoger. Ayudale a decidir cu´antas antas flores puede recoger. Ella actualmente debe recorrer el camino a la casa de su abuelita y recoger la mayor cantidad de flores, cada que ve una caba˜ na na ella jamas se acerca a ella aunque all´ı hayan flores, si se topa con el lobo, lo l o saluda cortezmente y continua recogiendo flores.
B C C L M
El terreno que debe recorrer la caperucita se puede planear como un plano rectangular en el que se encuentran los distintos elementos antes descritos: Flores(F), Via libre (V), Lobo(L), Caba˜na( C ) y Casa de abuelita(A). Caperucita siempre empieza su recorrido en la posici´on on 0,0. Un ejemplo de recogida de flores seria: VVVVVFFFFFCCCCC VVVVVCCCCCCCCCC CCCVVVVVVVVLFFF CCVVVVVVVVVFFFF CCCCCCCVVVVVFFF CCFFFFCCCVVVFCC CCCFFCCCCVVVACC CCCCCCCCCFFFFFF
La respuesta es 22 flores. Escribe un programa recursivo que ayude a caperucita roja llenar su cesta con la mayor cantidad de flores, debes devolver el numero de flores recolectada. 30
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
NumeroLandia,, hay variedad de numeros que cumplen ciertas cualidades, no podian faltar los n´ 92. En En NumeroLandia umeumeros sociables. sociables. Se dice que varios numeros son sociables si: La suma de los divisores del primer n´umero da el segundo,
S S S M U -
la suma de los del segundo da el tercero, y as sucesivamente. La suma de los divisores del ´ultimo ultimo da el primer n´ umero umero de la lista. Por ejemplo los n´u umeros meros 12496, 14288, 15472, 14536 y 14264 son n´umeros umeros sociables. Ya que: los divisores de: 12496; son: 1, 2, 4, 8, 11, 16, 22, 44, 71, 88, 142, 176, 284, 568, 781, 1136, 1562, 3124, 6248 y su suma es 14288. Del mismo modo los divisores de 14288 son: 1, 2, 4, 8, 16, 19, 38, 47, 76, 94, 152, 188, 304, 376, 752, 893, 1786, 3572, 7144 y su suma es 15472. A su vez los divisores de 15472 son: 1, 2, 4, 8, 16, 967, 1934, 3868, 7736 que sumados dan 14536. Los divisores de 14536 son: 1, 2, 4, 8, 23, 46, 79, 92, 158, 184, 316, 632, 1817, 3634, 7268 y su suma es 14264. Finalmente los divisores de 14264 son: 1, 2, 4, 8, 1783, 3566, 7132 que suman 12496, que vendr´ vendr´ıa a cerrar el c´ırculo de amistad. Dado un conjunto de n´umeros umeros determina si son sociables o no, considerando la descripci´on on del problema. Para ello debes escribir un programa recursivo 93. 1 La vida no es ning´un un pasillo recto y f´acil acil que recorremos libres y sin obst´aculos, aculos, sino un laberinto de pasadizos, en el que tenemos que buscar nuestro camino, perdidos y confusos, detenidos de vez en cuando,
2 3 3 5 5 F N I -
por un callej´ on onde sinqueso, salida.algunas Esto lode entienden Hem y Haw dosfrescos, hombrecitos atrapados en un (F), laberinto, donde existen minas ellas contienen quesos deliciosos y nutritivos otros quesos podridos y a veces veces mortales mortales (M), tam tambi´ bi´ en en exist existen en pasad pasadillos illos libres (L) que no contienen contienen nada pero es posible transitar por ellos, las paredes (P) que no se pueden atravesar y por supuesto a salida secreta (S). Ayudemos a encontrar la salida a Hem y Haw, dise˜ nando nando una soluci´on on recursiva, el mismo que debe adem´ as as indicar cuantas minas de queso fresco encontraron en el camino mas corto, como comprenderas ellos no estan interesados en encontrar minas de queso sino m´as bien salir del laberinto. Un ejemplo de laberinto es: L L L L P
P F P F P
L F P F P
M P M F L
P L L F L
P P P F P
P F P F P
L L L L L
B C C L M P M P F P P F P P P
L L F F P L F L L L
P F P P P L L L P M
P F P F F F F L P P
L L L F L L F F F F
P F P F M P F P M L
P F P F L P F S P L
P F P F P P F P P L
Adem´ as as se tiene la posici´oon n inicial de Hem y Haw que denotaremos posIX y posIY. Por otro lado se tiene la posicion de la salida secreta salX y salY. Hem y Haw no pueden saltar las paredes y tampoco caminar en diagonal. Nunca Hem y Haw inician en una posici´on on que no sea una L. 1
Propuesto Propue sto por Lic. Rossmery Torrico
31
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
94. Se tiene un po poema ema escrito escrito con muc mucha ha matem´ aatica, tica, que es eso? te preguntar´as as y la respuesta es que dado un numero (usualmente de trascendencia matem´atica atica como PI o E o algun otro) otro) n, y un poema debes decidir si es un poema matem´atico atico de n de n Por ejemplo: si n si n es 31415926535897932384 y el poema es: Soy y ser sere e a todos todos def defini inible ble. . Mi nombre nombre ten tengo go que dar daros; os; cociente coci ente diametral diametral siem siempre pre inme inmedible dible soy de los red redond ondos os aro aros s
S S S M U -
El poema cumple con ser de naturaleza matem´atica atica 31415926535897932384 Pero si n si n es 31415926535897932 y el poema es: Soy P ell ella a I somos somos cam camara aradas das. . La quiero quiero muc mucho, ho, que si des descui cuido do cerebrit cere brito o nues nuestro tro pequ pequenito enito rey PI.
2 3 3 5 5 F N I -
El poema cumple con ser de naturaleza matem´atica atica 31415926535897932. Pero si n si n es 2718281828459 (que es el valor de E) y el poema es: Soy E val valor or aureo, aureo, como com o el sol y las estr estrell ellas. as. Trascend Tras cendente ente en vari varias as formulas form ulas de conteo. conteo.
El poema NO cumple con ser de naturaleza matem´atica atica 2718281828459. Averigua c´omo omo se decide si un poema es matem´aatico tico a n, y luego escribe una soluci´on on recursiva que permita decidir dado un n un n y un poema un poema,, si el poema es matem´atico atico de n de n o no 95. Una de las cosas mas maravillos maravillosas as de la naturaleza naturaleza es la nieve, y en especial su part´ part´ıcula m´as as peque˜ na na que es el copo de nieve. Kotch ha planteado en su articulo “Acerca de una curva continua que no posee tangentes y obtenida por los m´eetodos todos de la geometr geometr´´ıa elemental”, una manera interesan i nteresante te de describir un copo de nieve, que es una curva que se forma de tres partes iguales.
B C C L M
La forma de conseguir conseguir cada una de las partes partes es recurren recurrente te y consideran considerando do varios niveles niveles de aplicacion de la forma. En la figura 2.4, se muestra la forma que asume cada parte de la curva, considerando un nivel de profundidad:
Para nuestro problema, debes escribir una soluci´on on recursiva que dado un nivel de aplicaci´on on a la curva de Kotch me genere la cantidad de triangulos que se necesitan para generar una parte de la misma. En la figura 2.4 se muestra que si se tiene nivel 1 de aplicaci´on se requiere 1 triangulo, si se quiere nivel 2 se necesitan 5, para nivel 3 se requieren de 21 y para nivel 4 de 85, y asi sucesivamente.
96. En mat matem´ em´ aticas aticas hay muchas muchas teor´ teor´ıas y conjeturas interesantes, una de ell ellas as es la sucesi´ on on al´ııcuota cu ota de un n´ u umero mero entero positivo es una descomposici´oon n del numero hasta llegar a 0. Te mostramos a continuaci´oon n la suceci´ suceci´ oon n al al´´ıcuota de 10: que es { 10,5,2,1,8,4,2,1,7,1,1,0} Lo que se hace para conseguir esto es ir reduciendo de la siguiente manera:
32
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
niv1 = 1
niv2 = 5
S S S M U -
niv3 = 21
niv4 = 85
Figura 2.4: Nive Niveles les de aplic aplicaci´ aci´ oon n de la curva continua de Kotch 10 8 7 1
2 3 3 5 5 F N I -
--> 10 + 5 + 2 + 1 - 10 = 8 --> 8 + 4 + 2 + 1 - 8 = 7 --> 7 + 1 - 7 = 1 --> 1 - 1 = 0
Escribe el (los) m´ Escribe etodo(s) etodo(s) RECURSIVO RECURSIVOS S neces necesarios arios para poder encontrar encontrar la suceci´ suceci´ oon n al al´´ıcuota de un n´ u umero n mero n.. 97. 2 “La vida de un cr´ cr´ıtico es sencilla en muchos aspectos, arriesgamos poco, y tenemos poder po der sobre aquellos que ofrecen su trabajo traba jo y su servicio a nuestro juicio. Prosp Prosperamos eramos con las cr cr´´ıticas negativas, divertidas de escribir y leer- pero la triste verdad que debemos afrontar, es que en el gran orden de las cosas, cualquier basuraa tiene m´as basur as significado que lo que deja ver nuestra cr cr´´ıtica. Pero en ocasiones el cr cr´´ıtico si se arriesga cada vez que descubre y defiende algo nuevo.. el mundo suele ser cruel con el nuevo talento, las nuevas
B C C L M
creaciones.. creacione s.. lo nuevo, nuevo, necesita amigos. amigos... Lo u unico ´ nico predecible de la vida es que es impredecible..” En resumen resumen equilibrar equilibrar la vista de un cr´ııtico tico no es nada f´acil. acil. Para ello se ha encontrado una manera interesante de saber si una apreciaci´on on es esquilibrada: se divide la cr cr´´ıtica en dos porciones p orciones de palabras y se suman las letras de estas porciones si son iguales es equilibrada (no hay palabra de desequilibrio), caso contrar con trario io se pide encontrar encontrar la palab palabra ra del deseq desequilibri uilibrio, o, que se busca siempre siempre en la porci´ p orci´ on on que haya dado mayor suma. Este trabajo se hace varias veces hasta ya no poder realizar la divisi´on. on. Si se toma s´olo olo una porci´on on de la rese˜ n na: a:
cualqu cua lquier ier bas basura ura tie tiene ne mas sig signif nifica icado do que lo que dej deja a ver nue nuestr stra a cri critic tica a Per Pero o
Se obtiene el siguiente resultado de las letras que tienen las palabras: 9, 6, 5, 3, 11, 3, 2, 3, 4, 3, 7, 7, 4 2
Propuesto Propue sto por Lic. Rossmery Torrico
33
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
La suma de la primera mitad es: 9 + 6 + 5 + 3 + 11 + 3 que es 37, y la suma de la segunda mitad es: 2 + 3 + 4 + 3 + 7 + 7 + 4 que es 30, entonces la palabra del desequilibrio esta en la primera mitad ya que su suma es mayor, si sigues haciendo esto la palabra del desequilibrio es “basura”.
S S S M U -
Si se tiene, la siguiente rese˜na: na: “tengo yo la razon”, esa no tiene palabra de desequilibrio. Para realizar este problema puedes asumir que los acentos se excluyen de la rese˜na, na, asi mismo solo se tiene las letras del alfabeto ingles. 98. Hay un gusanito viajero y viejito, que quiere visitar una zona que esta conformada conformada de varias lomas, lomas, sin embargo como comprender´as as para ´el el es dificil subir las cuestas cuestas empinadas empinadas por muy chicas chicas que sean e incluso bajarlas, y ha decidido solamente visitar una loma de la zona. Por lo que se te ha pedido que le puedas decir cual es la loma que deberia visitar de manera que no implique mucho esfuerzo por el tema de las pendientes, pendientes, ya sea al subir o al bajar. En la Figura 4.4 se muestra muestra un conjunto conjunto de lomitas a visitar, visitar, en la l´ınea de abajo se tienen las lomas con datos discretos (secuencia de n´u umeros) meros) que es lo que tendr´aass como dato de entrada.
2 3 3 5 5 F N I -
Figura 2.5: Las lomas que existen en la zona de visita del gusanito p,, esa ya no es una loma Debes considerar que para el gusanito si se tiene una pendiente mayor o igual a p deseable desea ble para ´el. el. Debes indicar cual es la loma de may mayor or superficie superficie que puede visitar visitar y que no incumpla incumpla la cuesti´ cuesti´ on on de la pendiente. La pendiente entre dos puntos se puede calcular como la diferencia entre ellos. En definitiva para resolver el problema, te dar´aan n la secuencia de n´ umeros umeros que representan las lomas y la pendiente p que siempre ser´a una n´ pendiente p u umero mero entero positivo.
B C C L M
Por ejemplo, ejemplo, si se considera la secuencia de la Figura 4.4 y pendiente pendiente 3, se tendr´ tendr´ıa:
sec = {3, 5, 4, 3, 3, 2, 3, 5, 7, 8, 7, 5, 3, 2, 3, 5, 6, 7, 3, 1, 3, 7, 9, 7, 1} p = 3
Entonces hay 4 posibles lomas de visita: loma1 loma2 loma3 loma4
= = = =
{3, {2, {2, {1,
5, 3, 3, 3,
4, 5, 5, 7,
3, 7, 6, 9,
3, 8, 7, 7,
2} 7, 5, 3, 2} 3, 1} 1}
La loma1 y loma2 cumplen la condici´on on de la pendiente, sin embargo la loma3 y la loma4 no, ya que al bajar de 7 a 3 hay una pendiente mayor a p, lo mismo en la loma4, subir de 3 a 7, o bajar de 7 a 1 son mayores que p que p.. Entre dos7,lomas v´aalidas lidas es no la existir loma2 porque cubre superficie, lo que el el resultado resultado es: { 2, las 3, 5, 8, 7, 5, 3, 2}, la enmejor caso de una loma con mayor las condiciones delpor gusanito seria: {} . 34
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Se te pide realizar realizar el (los) m´eetodo(s) todo(s) recur recursivo sivoss necesarios necesarios para poder dar la loma que cumpla cumpla con las condiciones del gusanito. 99. Se tiene el siguient siguientee problema problem´ problem´ atico, atico, de generar una cadena parsimoniosa y armoniosa que va asi: parmoniosa(1) = **\/** parm parmon onio iosa sa(2 (2) ) = ++\* ++\**\ *\/* /**/ */++ ++ parmoniosa(3) parmoniosa(3 ) = **\++\**\/**/++/** **\++\**\/**/++/**
parmoniosa((n). Se te pide encontrar la soluci´oon n recursiva para para parmoniosa
S S S M U -
100. Dado un tablero de n*m, en el que puede haber verd verduras uras (V) o nada (N), se pide indicar cuan cuantas tas de las verduras un caballo puede comer si se asume que la forma de moverse de este caballo se asemeja a las de una pieza de ajedrez - es decir - se mueve en L. Para ello se te pide ralizar los metodos RECURSIVOS necesarios para resolver el problema. 101. 3 Una tienda quiere optimizar el tiempo de atenci´oon n con la ayuda de un programa que permita determinar c´ omo omo devolver cambios a sus clientes. Por ejemplo se tienen organizado el dinero de la siguiente forma: monedas de 1, 2 y 5 bolivianos, y billetes de 10, 20 y 50 Bs, para simplificar el problema los precios en la tienda no contienen centavos por lo que calcular un cambio siempre llevar´a a un monto sin centavos. El programa debe dado un monto obtener todas las posibles maneras de devolver el cambio.
2 3 3 5 5 F N I -
Por ejemplo: si se tiene el monto 7 Bs, el resultado deberia ser: 1 Bs: Bs: 1 mone moneda da, , 2 Bs: Bs: 3 mone moneda das s 1 Bs: Bs: 2 mone moneda das, s, 5 Bs: Bs: 1 mone moneda da 2 Bs: Bs: 1 mone moneda da, , 5 Bs: Bs: 1 mone moneda da
Escribe el (los) m´etodo(s) etodo(s) RECURSIVOS necesarios para poder encontrar las diferentes maneras de devolver el cambio dado un monto m. m . 102. Mama Gallina Gallina llev´ o a sus pollitos a la fiesta de Urkupi˜ n na, a, y tuvo grandes complicaciones a la hora de alimentarlos, ya que no tuvo la previsi´on on de comprar los asientos de manera que pueda pasar la comida entre los pollitos.. FUE TODO UN DRAMA!! Mama Gallina previsoria como es, ha decidido tomar sus
B C C L M
recaudos para el proximo a˜ no no y te pide que le ayudes a ubicar cual seria la mejor ubicaci´on para ella y sus sus n pollitos, como sabes ya se aproxima el desfile de Cochabamba y quiere hacer una prueba de tu soluci´ on, on, ella tiene mu˜n neca eca con las que venden las graderias y tiene la informaci´on on de las filas y asientos libres y ocupados; y sobre la base de ello tiene que dar las opciones de donde puede comprar los asientos de manera que pueda pasar la comida entre los pollitos sin molestar a nadie. Por ejemplo, si planea ir con 5 de sus pollitos y se tiene la siguiente configuraci´on on de la graderia (O = ocupado, L = libre) de 5 filas y 14 asientos por fila:
3
fila1 fila1 fila2 fil a2 fila3 fil a3 fila4 fil a4
1 12345678901234 OOOOOO OOOOOOOOO OOOOOO OOOOO OO OOOOOO OOOOOOOOO OOOOOO OOOLO LO LLOOOO LLOOOOOOL OOLLOO LOOLO LO OOOOOO OOOOOOLLO LLOOLL OLLOO OO
fila5 fil a5
OOOOOO OOOOOOOOO OOOOOO OOOOO OO
Propuesto Propue sto por Lic. Helder Fernand ernandez ez
35
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
no existe un buen bloque de asientos que permita a Mami Gallina alimentar sin dificultad a sus pollitos :(, entonces probablemente no ira al desfile, en este caso le debes decir que “No existe asientos”. Pero si consigue una graderia asi:
fila1 fila1 fila2 fil a2 fila3 fil a3 fila4 fil a4 fila5 fil a5
1 12345678901234 OOOOOO OOOOOOOOO OOOOOO OOOOO OO OOOOOO OOOOOOLLO LLOOOO OOOLO LO LLOOOO LLOOOOLLO LLOOOO OOOLO LO OOOOOL OOOOOLLOO LOOOOO OOOOO OO OOOOOO OOOOOOOOO OOOOOO OOOOO OO
S S S M U -
Deber´ıa comprarse los asientos (fila2,7), (fila2,8), (fila3,7), (fila3,8), (fila4,6), (fila4,7); recuerda que tienes Deber´ que considerar el asiento para Mama Gallina. Mama Gallina no quiere pasar la comida por encima de la cabeza de uno que no sea sus pollitos. Ayuda a Mama Gallina y define los metodos necesarios RECURSIVOS para indicar que asientos deberia comparse, dado que se tiene el plano de la graderia y la cantidad ed pollitos que iran con Mami Gallina.
2 3 3 5 5 F N I -
103. Se desea saber cuanto de tinta se gastara en mililitros para poder imprimir una flor inscrusta inscrustada, da, se sabe que por cada centimetro se usa 1 mililitro; ademas se sabe que la flor mas peque˜ na na esta incrustada en un cuadrado de lado 1 cm y para esta flor se requiere 10.28 ml, cuando se quiere hacer la flor de tama˜no no 2, esta incrustada incrustada en un cuadrado de lado 1.5 cm, es decir, el lado del nuevo nuevo cuadrado es siempre 50 % mas grande y la cantidad de tinta que se requiere es 25.70 ml, y asi sucesivamente. Para darte mas ayuda de lo que se esta hablando en la Figura 2.6 se te muestra su formaci´on. (NOTA: (NOTA: per´ per´ımetro de un circulo es 2 ∗ radio ∗ π) Dado este contexto se pide realizar el(los) m´ etodo(s) etodo(s) RECURSIVOS necesarios para hallar la cantidad de n.. tinta que se requiere para imprimir una flor incrsutada de nivel n 104. 4 “Los sem´anticos” anticos” es un grupo de j´ovenes ovenes investigadores que estan estudiando reconocimiento sem´antico antico de documentos, para decidir de que se trata el documento y poder identificar palabras claves del mismo. Paraa ello han tomado Par tomado una t´ eecnica cnica senci sencillisima llisima que es identificar identificar todas aquellas aquellas palabras palabras del documento documento longi y que sean mayores a una longitud longi y contar su frecuencia de aparici´on. on. Por el momento ellos est´aan n
B C C L M
concentrados en obtener saber cuales son las de palabras del documento que cumplen queon es mayor a longi,, y quieren longi un reporte las palabras que cumplen esta condici´ osu n ylongitud NO quieren que el reporte contenga palabras repetidas - por el momento. Por ejemplo si longi si longi es es 3 y se tiene el siguiente texto:
NO TE RINDAS RINDAS AUN ESTAS ESTAS A TIE TIEMPO MPO DE ALC ALCANZ ANZAR AR Y COM COMENZ ENZAR AR DE NUE NUEVO; VO; ACEP ACEPTAR TAR TUS SOM SOMBRA BRAS, S, ENTERR ENTERRAR AR TUS MIE MIEDOS DOS, , LIB LIBERA ERAR R EL LAS LASTRE TRE, , RET RETOMA OMAR R EL VUE VUELO. LO. NO TE RINDAS RINDAS QUE LA VID VIDA A ES ESO ESO, , CON CONTIN TINUAR UAR EL VIA VIAJE, JE, PERSE PERSEGUI GUIR R TUS SUEN SUENOS, OS, DESTRA DES TRABAR BAR EL TIEMPO TIEMPO, , COR CORRER RER LOS ESC ESCOMB OMBROS ROS Y DES DESTAP TAPAR AR EL CIE CIELO; LO; NO TE RIN RINDAS DAS POR FAVOR, FAVOR, NO CEDAS CEDAS AUN AUNQUE QUE EL FRI FRIO O QUE QUEME ME AUN AUNQUE QUE EL MIE MIEDO DO MUE MUERDA RDA, , AUN AUNQUE QUE EL SOL SOL SE ESCO ESCOND NDA A Y SE CALL CALLE E EL VIEN VIENTO TO AUN AUN HAY HAY FUEG FUEGO O EN TU ALMA ALMA AUN AUN HAY HAY VIDA VIDA EN TUS SUEN SUENOS. OS.
el reporte deberia ser: 4
Propuesto Propue sto por Lic. Rossmery Torrico
36
UMSS
Gu´ıa ıa de Pr´ acticas acticas
2 3 3 5 5 F N I -
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S S M U -
Figura 2.6: Flores incrustadas
{RINDAS, ESTAS, {RINDAS, ESTAS, TIEM TIEMPO, PO, ALCA ALCANZAR NZAR, , COME COMENZAR NZAR, , NUEVO NUEVO, , ACEP ACEPTAR, TAR, SOMB SOMBRAS, RAS, ENTERRAR ENTE RRAR, , MIED MIEDOS, OS, LIBE LIBERAR, RAR, LAST LASTRE, RE, RETO RETOMAR, MAR, VUELO VUELO, , VIDA VIDA, , CONT CONTINUA INUAR, R,
B C C L M
VIAJE, PERSE VIAJE, PERSEGUIR GUIR, , SUEN SUENOS, OS, DEST DESTRABA RABAR, R, CORR CORRER, ER, ESCO ESCOMBRO MBROS, S, DEST DESTAPAR APAR, , CIELO, CIEL O, FAVOR FAVOR, , CEDA CEDAS, S, AUNQ AUNQUE, UE, FRIO FRIO, , QUEM QUEME, E, MIEDO MIEDO, , MUER MUERDA, DA, ESCO ESCONDA, NDA, CALLE, CALL E, VIENT VIENTO, O, FUEG FUEGO, O, ALMA}
Puedes asumir que el texto esta escrito con el alfabeto en INGLES y que las palabras estan e may´usculas. Dado el contexto se te pide hacer el (los) m´etodo(s) etodo(s) recursivo(s) necesario(s) para resolver el problema.
105. Numerin Numerin es un chico muy activo en cuestiones cuestiones de buscar retos matem´ aticos aticos y se ha puesto la tarea de averiguar: cual es la m´axima axima suma que se puede conseguir de los valores positivos desde un punto inicio a un punto destino; dentro de un plano de n´umeros umeros enteros. Numerin tiene prohibido pasar sobre los n´ u umeros meros negativos, s´oolo lo debe considerar los positivos, Numerin ama a pit´agoras agoras por lo que solamente camina en diagonal jamas de forma recta, ´eell piensa que es mejor la hipotenusa hip otenusa que los catetos ;). Dise˜ na na el (los) m´etodos etodos recursivos necesarios para lograr el prop´ osito osito de Numerin. Por ejemplo si se dessea llegar desde la posici´on on inicial (0,0) a la posici´on on final (3,5), en el siguiente plano: 1 -1 -3 1
2 6
4 6 7 8 7 -1 -1 -4
37
UMSS 6 3
5 6
3 3 8 -4
2 6
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
8 -5 7 1
S S S M U -
El resultado ser´a: a: 1+1+6+6+3+7+2+7 que permite obtener la m´axima axima suma: 33. Obviamente una vez que considera un n´umero umero en un camino no lo puede considerar de nuevo, es decir no puede volver a pasar por el n´ umero umero en un mismo camino. 106. Se aproxima la navidad y hay hay que armar el arbolito para ello necesitamos saber cuantas esferas de navidad se necesitan, lo cual depender´a del nivel del ´aarbol rbol que se quiera armar. En la figura 2.7, se muestra la cantidad de esferas de acuerdo al nivel del ´arbol, arbol, dise˜ na na los procesos recursivos necearios para poder encontrar el numero de esferas si se quiere armar un arbol de nivel n.
Nivel 1: 6
2 3 3 5 5 F N I Nivel 2: 13
Nivel 3: 22
Figura 2.7: Arbol de navidad
107. Un numerito preocupado le dice a su pap´a, a, “so “somos mos muy aburr aburrido idoss los n´umeros, umeros, siempre siempre valemos valemos lo mismo” mis mo”,, su pap´ papa´ se rie y le dic dice, e, “es “esoo no es tot totalm almen ente te verda verdad, d, podemos podemos mimeti mimetizar zarnos nos de much muchas as formas. form as. Por ejemplo, ejemplo, t´u hijo mio, que en valor eres un 8, puedes verte como: 1+1+1+1+1+1+1+1, 1+1+1+1+1+2, 1+1+1+1+2+2, 1+1+2+2+2, 1+1+1+1+1+3, 1+1+3+3, 1+1+1+1+4, 1+1+1+2+3, 1+1+1+5, 1+1+2+4, 1+1+6, 1+3+4, 1+2+5, 1+7, 2+2+2+2, 2+2+4, 2+3+3, y asi.. hay muchos tus :D”
B C C L M
El numerito se va muy alegre ya que su pap´a le ha demostrado que no es aburrido!!. Dado un numero encuentra las diferentes formas en las que se puede mostrar, es bueno obviar los iguales, por ejemplo 1+1+1+1+1+1+2, es igual a 2+1+1+1+1+1+1. El orden no importa, lo que importa es encontrar todas las representaciones diferentes.
108. El mol de Hilbert es una curva rara que tiene un comporta comportamien miento to de fractal como se muestr muestraa en la figura 2.8, lo que se quiere es calcular la l a cantidad de l´ıneas que se requieren para imprimir el mol de Hilbert Hi lbert 109. En un pa´ıs ıs de las maravillas, se dice que hay muchas cosas maravillosas, entre ellas los vi nedos, n ˜ edos, en los que se producen vinos de altura. De estos vi˜ n nedos edos se tiene el registro de la producci´on on por parcela; de cada parcela se tiene el tipo de uva y la cantidad, en el caso particular de este vi˜ nedo nedo le interesa demasiado las uvas Moscatel de Alejandria las mismas que est´aan n identificadas por la letra M. Y las cantidades est´an expresadas en miles. (M,70) (M,7 0) (A,30 (A,30) ) (V,2 (V,20) 0) (M,4 (M,45) 5) (M,3 (M,34) 4) (M,3 (M,32) 2) (M,43 (M,43) ) (M,2 (M,23) 3) (M,1 (M,10) 0) (A,10) (M,34 (A,10) (M,34) ) (V,2 (V,20) 0) (N,6 (N,65) 5) (M,7 (M,70) 0) (N,1 (N,10) 0) (N,30 (N,30) ) (M,4 (M,45) 5) (N,4 (N,45) 5) (N,10) (N,1 0) (A,30 (A,30) ) (V,2 (V,20) 0) (M,4 (M,45) 5) (M,3 (M,34) 4) (M,3 (M,32) 2) (M,43 (M,43) ) (M,2 (M,23) 3) (M,1 (M,10) 0) (A,10) (A,1 0) (A,34 (A,34) ) (M,2 (M,20) 0) (N,6 (N,65) 5) (M,7 (M,70) 0) (N,1 (N,10) 0) (N,30 (N,30) ) (M,6 (M,65) 5) (N,6 (N,65) 5)
38
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Figura 2.8: Mol de Hilbert
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S S M U -
(A,70) (A,30 (A,70) (A,30) ) (V,2 (V,20) 0) (M,4 (M,40) 0) (N,3 (N,34) 4) (M,3 (M,32) 2) (M,43 (M,43) ) (M,2 (M,23) 3) (M,2 (M,20) 0) (N,10) (N,1 0) (M,34 (M,34) ) (M,2 (M,20) 0) (N,6 (N,60) 0) (M,9 (M,90) 0) (V,1 (V,10) 0) (N,30 (N,30) ) (M,4 (M,45) 5) (N,5 (N,59) 9)
Se quiere encontrar la posici´on on a partir de la cual se puede recoger la mayor cantidad de uva Moscatel
2 3 3 5 5 F N I -
de Alejandria, si se sabe que los cosechadores no pueden cosechar otra uva que no es la indicada, y s´oolo lo pueden manejar el coche de cosecha en linea recta. Solo se puede mover arriba, abajo, derecha o a la izquierda. Hotel, hay demasiados secretos, tantos que se necesita guardar muchos de ellos en cajas de 110.. En el Gran 110 el Gran Hotel, seguridad que tienen una clave de acceso. Las cajas de seguridad, se abren s´olamente olamente si se hacen girar los rodillos de la clave en las direcciones correctas y adem´as as para asegurar la imposibilidad de hackeo, con la m´ınima cantidad de giros. giros... Se necesita saber cual ser’a la manera correcta de abrir las cajas. Por ejemplo si la clave fuera 456392000137458637, al cerrar la caja los cilindros se establecen con puros 0s, en nuestro ejemplo ser’a asi: 000000000000000000. Al terminar se debe emitir el siguiente reporte: (4 arriba)(5 arriba)(4 abajo)(3 arriba)(1 abajo)(2 arriba)(0 arriba)(0 arrib a)(0 arriba)(0 arriba)(0 arrib arriba)(1 a)(1 arriba arriba)(3 )(3 arrib arriba)(3 a)(3 abajo)(4 arriba)(5 arriba)(2 arriba)(2 abajo)(4 abajo)( aba jo)(33 arriba)(3 arriba)(3 abajo). Debes considerar que la clave puede ser de muchos d´ıgitos, ıgitos, inclusive 100
B C C L M
111. 5 La clasificaci´on on es una t´eecnica cnica que ““aprende” aprende” autom´aticamente aticamente c´omo omo clasificar objetos. Este aprendizaje se basa en datos previamente etiquetados (clasificados), el proceso de “etiquetar” autom´aticamente tiene un alto costo en tiempo y esfuerzo. esfuerzo. Todos Todos los d´ıas se publican publican noticias noticias en Twitter, Twitter, muchas muchas de ellas son similares. Se tienen diversos retos como generar una lista de palabras clave, que permitan agrupar dichas noticias de forma autom´aatica. tica. En este sentido para formar parte del equipo de desarrollo tienes que probar tus destrezas de programaci´oon n por lo que tienes la misi´oon n de aportar al M´odulo odulo de clasificaci´on on autom´atica, atica, implementando implementan do m´ etodos etodos recursivos que: devuelva la cantidad de titulares que contienen la palabra clave que se est´a procesando, con esta informaci´oon n se tomar´a la decisi´on on si vale o no la pena crear un grupo con el tema que describe la palabra clave. Se crea un grupo grupo nu nuev evoo si el tema tema des descri crito to por la palabra palabra clave clave supera supera el 30 % del total total de titulare titularess publicados. Por ejemplo: Tenemos un texto que contiene 6 titulares de tweets publicados recientemente. Los mismos est´an an separados por *: Los grandes grandes pa´ pa´ıses amenazan amenazan con unirse unirse para aislar a Trump* rump* La victoria victoria de Trump reaviva reaviva temores escondidos* Borrachos a los 13 a˜n nos* os* Donald Trump ser´a destituido, dice el profesor 5
Propuesto Propue sto por Lic. Rossmery Torrico
39
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
que predijo su triunfo electoral* Obama se despide del mundo con una defensa apasionada de la inmigraci´on* on* El ‘muro’que Trump no se esperaba Si la palabra palabra clave es “Trump”, “Trump”, existe existen n 4 de 6 titulares que lo contiene contiene eso equiv equivale ale 66 % porce p orcentaje ntaje que es mayor mayor al 30 % por tanto tanto SI se debe generar un grupo nuevo nuevo con el tema “Trump “Trump”. ”. Si la palabra clave clave fuesee “Obama”, fues “Obama”, existe 1 de 6 titul titulares, ares, es decir 16 % porcen porcentaje taje que es menor al 30 % por lo tanto tanto NO se debe generar grupo nuevo con el tema “Obama”.
S S M U -
112. Piensa Piensa en el juego de “Las damas”, damas”, en ese juego tu puedes “comer” fich fichas as enemigas salta saltando ndo sobre ellas, asume que tienes fichas Negras (N), fichas Blancas (B) y espacios Vacios (.). Por ejemplo si tienes una Negra una Blanca y un espacio Vacio - NB. - la negra puede saltar sobre la Blanca (“comersela”) dejando la configuracion asi espacio Vacio, espacio Vacio y Negra - ..N. Imagina el tablero como una grilla de valores N, B y .; entonces se puede pasar de la situaci´on o n 1 a la 2 moviendo la ficha N de la posici´oon n 0,2 a la posici´oon n 0,4 “saltando” sobre la blanca; asi se ha “comido” la ficha blanca; de la misma manera la situaci´on on 3 a la situaci´on on 4, muestra que la ficha N de la posici´on 1,3, puede saltar sobre la ficha B y ubicarse e la posici´oon n 3,1, en consecuencia se gano una ficha blanca m´as. as. a). situacion 1
b). situacion 2
NBNB.NNB ..NN.B.N N.BN.NBN B..N.N.N N..BNBNN ...N.N.B ...BNNBN
c). situacion 3
2 3 3 5 5 F N I NB..NNNB ..NN.B.N N.BN.NBN B..N.N.N N..BNBNN ...N.N.B ...BNNBN
NB..NNNB ..NN.B.N N.BN.NBN B..N.N.N N..BNBNN ...N.N.B ...BNNBN
d). situacion 4 NB..NNNB ..N..B.N N..N.NBN BN.N.N.N N..BNBNN ...N.N.B ...BNNBN
Realiza el (los) procesos recursivos que permitan de forma automatica indicar cuantas fichas Blancas Maximo Max imo se han comido comido siguie siguiendo ndo las reg reglas las del jue juego, go, en est estaa versi version on es posible posible saltar saltar en todas todas las direcciones. 113.. Se dice 113 dice que un n´ umero umero es polidivisible si: Es mayor que cero.
B C C L M
El n´ umero umero form formado ado por su d´ıgito m´ as as significativo es m´ u ultiplo ltiplo de 1 (esto lo cumplen todos los n´u umeros). meros). El n´ umero umero formado por sus dos d´ıgitos m´ as as significativos es m´ ultiplo ultiplo de 2. El n´ umero umero formado por sus tres d´ıgitos m´ as as significativos es m´ultiplo ultiplo de 3. El n´ umero umero formado por sus cuatro d´ıgitos m´as as significativos es m´ ultiplo ultiplo de 4. .. y asi sucesivamente.
En general, el n´ umero umero formado por sus i sus i d´ d´ıgit ıg itos os m´aass significativos es m´ ultiplo ultiplo de i de i..
Por ejemplo, el n´umero umero 2016 es polidivisible de 4 d´ıgitos, pues es mayor que cero y 2 es divisible por 1, 20 es divisible por 2, 201 es divisible por 3 y, por ´ultimo, ultimo, el propio 2016 es divisible por 4.
Sin embargo, el n´ u umero mero 2225 no es polidivisible pues a pesar de que el 2 es divisible por 1, el 22 lo es por 2 y el 222 por 3, el propio 2225 no es divisible por 4. Se quiere saber cu´ales ales son los n´ u umeros meros polidivisibles polidivisibles de k de k d d´´ıgi gito tos. s. Por ejemplo, si k si k es 3, la respuesta seria: { 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, 900, 960} Implementaa el (los) m´eetodos Implement todos necesarios recursivos para encontrar a los numeros polidivisibles de k de k d d´´ıg ıgiito tos. s. 40
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
114. Mirar una estrella estrella en su plenitud es hermoso, si se pudie pudiera ra ver a detalle detalle tendriamos tendriamos estrellas estrellas estrelladas, estrelladas, pues bien, el trabajo es determinar la cantidad de lineas rectas que se necesitan para dibujar una estrella estrellada de nivel n. En la fig figur uraa 2.9 2.9,, se muest muestra ra el n´ umero umero de l´ıneas que se requiere para formar una
S S M U -
estrella de nivel 1, de nivel 2 y de nivel 3. Se te pide calcular el n´ umero umero de l´ıneas rectas que se requieren n . para formar una estrella estrella estrellada estrellada de nive nivell n.
2 3 3 5 5 F N I -
Figura 2.9: N´ u umero mero de l´ıneas que se utiliza para estrellas estrelladas 115. Los caballos caballos en el a jedr jedrez ez son fichas que se mue mueven ven de manera peculiar peculiar,, si se tiene un caballo caballo ubicado en la celda (x, y) del tablero se quiere saber todas las posiciones a las cuales puede moverse el caballo. (ver figura 2.10) Debes cui cuidar dar de no repetir las posiciones. posiciones. Realiza el (los) m´etodos Realiza etodos necesarios necesarios recu recursiv rsivos os para determinar determinar la lista de TODAS TODAS las posiciones posiciones (no repetidas) a las que puede llegar un caballo haciendo uso de sus movimientos movimientos caracter´ caracter´ısticos.
B C C L M
116. Nosila y Anairda son muy inteligen inteligentes tes y les gusta los reto retos. s. Han encontrado encontrado unas secuencias secuencias de n´ umeros; umeros; y se han puesto a la tarea de averiguar cu´antas antas subsecuencias { al , al+1 , aa+2 ,...ar } cuando 1 ≤ l ≤ r ≤ n, k.. que cumplen que todos sus elementos tienen una diferencia menor igual a k Por ejemplo:
{3, 5, 7, 1, 2, 4, 5, 7, 2}
y k es 3, ellas han encontrado que el resultado es 13, ya que las subsecuencias que siguen a continuaci´on on cumplen con la condici´on: on: {3}, {3} , {1}, {1}, {2}, {2}, {2} {2}, , {3, {3,5}, 5}, {5, {5,7}, 7}, {1, {1,2}, 2}, {1, {1,2,4 2,4}, }, {2, {2,4}, 4}, {2, {2,4,5 4,5}, }, {4, {4,5}, 5}, {4, {4,5,7 5,7}, }, {5, {5,7} 7}
RECURSIVOS necesario(s) Implementa el (los) m´eetodo(s) todo( s) RECURSIVOS necesario(s) para resolver el problema. 117. RTB Indique TB Indique de forma detallada cu´aall es la ssecuencia ecuencia num´eerica rica generada por el m´etodo etodo recursivo recursi vo f() en e n el listadoo siguiente listad siguiente si la llamad llamadaa es f(1) f(1),, f(2), f(2), f(3) f(3),, f(4)...f(1 f(4)...f(10). 0). 41
UMSS
Gu´ıa ıa de Pr´ acticas acticas
2 3 3 5 5 F N I -
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
Figuraa 2.10: Ejemplo del problema Figur problema
p u b l ic i c l o ng ng f ( i n t n ) { lon g num; i f (n == 0 | | n == 1) num = 1; els e i f (n % 2 = == = 0) num = 2 + f (n − 1 ) ; else num = 3 + f (n − 2 ) ; retu rn num ; }
B C C L M
118. HF Se HF Se dispone de un tablero de 8 casillas similar al que se muestra a continuaci´oon: n: X
O
X
X
O
O
O
X
En la situaci´on on inicial, las casillas est´an an ocupadas por cuatro O cuatro O y y cuatro X cuatro X distribu distri bu´´ıdas de forma for ma aleatoria. ale atoria. En cada paso la unica u ´ nica operaci´on on posible es intercambiar dos fichas adyacentes. Programar de la forma m´aass eficiente posible el proceso que devuelva la secuencia de intercambios para ordenar el tablero de forma que todas las fichas tengan al menos otra igual adyacente. El el ejemplo que se dio la secuencia ´optima optima de movimientos, considerando las celdas del tablero desde la posici´oon n 1 es: intercambiar 2 con 3, intercambiar 4 con 5, intecambiar 5 con 6, intercambiar 6 con 7. Tu soluci´oon DEBE n DEBE SER RECURSIVA
119. HF Escribir Escribir un programa busque de 5, rellenar n´umeros ulos meros en e nc´ una cuadr´ ıla cula con que las la s condiciones cond iciones dadas . Se solicita colocar que los n´ umeros umerosla1,forma 2, 3, 4, 6, 7, 88en ocho c´ırculos en ıcula figura se muestra enen la figura 119, de tal manera que ning´ u un n n´ u umero mero sea adyacente a un n´umero umero que est´e al lado de 42
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
la secuencia. Por ejemplo, 1 no debe ser adyacente a 2, pero puede ser adyacente a 3, 4, 5, 6, 7, 8. De manera similar para otros. Lo que se ve en la figura es un ejemplo de ubicaci´on, on, realiza el(los) proceso(s) necesario( nece sario(s) s) para indicar todas las posible p osibless soluc soluciones iones al problema problema
Puedes imaginar la imagen de la siguiente manera: . V .
V V V
V V V
. V .
V deben ser reemplazados por los valores del 1 al 8. Donde los los V
2 3 3 5 5 F N I -
S S M U -
120. MLBC Considera MLBC Considera los n´ umeros umeros de la siguiente secuencia: 1 2 3 4 5 . . 10 .....
1 12 123 1234 12345
123 2345 456 67891 78910 0
B C C L M
Cada uno de ellos est´a en una posici´oon, n, por ejemplo el n´umero umero de secuencia de la posici´on on 5, es 12345. Lo que se pide es dado una posici´on n on n,, indique cuantos n´umeros umeros de la secuencia es divisible entre 3.
7 , la respuesta es 4 Por ejemplo, si n si n es 7, es 4,, ya que cuatro n´ umeros umeros de la serie del 1 del 1 al 7 son divisibles entre 3. Realiza el (los) m´etodos etodos necesarios recursivos para determinar la cantidad de n´umeros umeros de los n los n n´ n umeros u ´meros de la secuencia son divisibles entre 3. Cuida tus precondiciones para tu soluci´on.
Conceptuales
1. Indica Indica que aseveracio aseveraciones nes son ver verdader daderas as y porque. a ) Se tiene la interfaz: Rastreable interfaz: Rastreable public publ ic inte interfac rface e Rast Rastreabl reable e { int calcularPosi calcularPosicion(); cion(); String Stri ng direc direccion cion(int (int p); }
43
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
¿Cu´al al pedazo de c´oodigo digo compilar´ compilar´ıa? (Seleccionar todas las que se aplican) interface Loza Lozaliza lizable ble impl implement ements s Rast Rastreabl reable e {} 1) interface abstract t clas class s Misil extends Rast Rastreab reable le {} 2) abstrac abstract clas class s Avion impl implemen ements ts Rast Rastreab reable le {} 3) abstract 4) abstrac abstract t clas class s Nave impl implement ements s Rast Rastreabl reable e {
S S M U -
public int calc public calcularP ularPosic osicion() ion() { retu return rn 0;}} class Clas Class2 s2 imple implement ments s Rastr Rastreabl eable e { 5) class int cal calcul cularP arPosi osicio cion( n( ) { ret return urn 0; } String Str ing direcci direccion( on(int int p) { ret return urn "Pos "Posici icion on " + p; }}
b ) Si se tiene la siguiente jerarqu´ jerarqu´ıa de clases: public int public interf erface ace A { int metA metA1(); 1(); String metA2(); } public pub lic cla class ss B imp implem lement ents s A{ public publ ic int metA metA1(){ 1(){...} ...} public publ ic Strin String g emtA emtA2(){. 2(){...} ..} public publ ic doubl double e metB metB1(){. 1(){...} ..} }
2 3 3 5 5 F N I -
¿C´oomo mo ej ejecutar´ ecutar´ıa ıa cada pedazo de c´odigo? odigo? Asume condiciones ideales para cada ejecuci´on. on. 1) A obj = new B(); obj1 = new new B(); B(); 2) B obj1 instanceof of B 3) obj instance obj1 = (B)obj (B)obj; ; 4) obj1 5) obj.metA1(); 6) obj1.metB1();
B C C L M 44
S S Estructuras de Datos Lineales M U Cap´ıtulo 3
Esta cap´ cap´ıtulo tiene ejercicios ejercici os extra´ııdos dos de ex´amenes amenes de la materia y algunos son adaptados de ejercicios de la ACM ICPC.
2 3 3 5 5 F N I -
1. Dada una Lista Lista de Simple Enlace: Enlace: a ) Cont Contar ar la cantidad cantidad de elemen elementos tos que tiene la lista.
b ) Aplicar un Functor que reduzca los elementos de la lista. Todo Functor, sabe reducir de dos modos: 1) Si recibe dos elementos devuelve uno y 2) Si recibe uno devuelve otro. Por ejemplo sea f un Functor, entonces se puede enviar los siguientes mensajes a f : f.reducir(elem1, elem2) o f.reducir(elem). En ambos casos el resultado es un elemento. c ) Inv Invertir ertir los enlaces enlaces de la Lista Lista..
d ) Concatenarla con otra lista de simple enlace. Debes tener cuidado de no tener elementos repetidos en la lista resultante. e ) Dividirla en dos listas de longitudes lo m´as as similares posible. Asume que no puedes usar el m´ etodo etodo contar elementos. f ) ) Que contiene elementos Comparables, realiz realizaa los m´ etodos etodos que permiten permiten insertar insertar lo elemento elementoss de
B C C L M
forma ordenada ascendentemente. 2. Se desea modelar una soluci´ soluci´on on para resolver el problema de atenci´on on al cliente en una entidad p´ublica. ublica. Se sabe que los clientes vienen a la instituci´oon n por distintos motivos, b´asicamente asicamente por 5 tipos de quejas: q 1, q 2, q 3, q 4 y q 55.. Para ello se ha dispuesto 3 ventanillas de atenci´on: vent ,vent22 y vent vent3. on: vent11,vent 3. Las ventanillas vent11 y vent vent vent33 se especializan en atender quejas del tipo q 2 y q 5, 5, en caso de emergencias y cuando existe demanda pueden atender quejas q quejas q 3. 3. La vent La vent22 atiende las quejas q quejas q 1, q 3 y q 4. 4. La unica u ´ nica vez que la ventanilla vent11 o vent vent vent33 atienden una queja queja q 3, 3, es cuando la vent la vent22 solicita ayuda. En este caso se da la prioridad vent11 o vent vent3. de atenci´on on al cliente con queja q queja q 3 en ya sea la ventanilla vent 3. a ) Descr Describe ibe que estructura(s) estructura(s) de datos datos se adec´ u uaa mejo mejorr para resolver resolver el problema. problema. b ) Describe la estructura de los elementos que se almacenar´ almacenar´aan n en la(s) estructura(s) de datos que elegiste. c ) Imple Implemen menta ta la funci funcionalid onalidad ad necesaria para permitir la llegada de los clientes clientes a la entidad. entidad. d ) Imple Implemen menta ta la funci funcionalid onalidad ad necesaria para permitir la atenci´ atenci´on on de los clientes. e ) Si adem´as as el gerente de la entidad requiere saber cu´al al ha sido la productividad de cada una de las ventanillas, venta nillas, indica que cambios realizar´ realizar´ıas a tu anterior soluci´on. on.
45
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
3. Dada Dada una pila a ) Inv Invierte ierte los elemento elementoss de la Pila
S S M U -
b ) Busca si existe un elemento c ) Se quiere saber cual es el elemento que est´a en la base de la Pila
d ) Imagina un modo que permita migrar los elementos de la pila en una cola, de modo que el tiempo en el que ingresaron los elementos en la pila sea lo que rija el orden de inserci´on en la cola. 4. Se tiene una mesa redonda tradicional tradicional para compart compartir ir comida china. Luis es uno de los comensales comensales que comparten de la comida; se desea saber en instantes espec´ııficos ficos de tiempo qu´e plato tiene delante de ´eel. l. Dado que los platos platos se encue encuentr ntran an en una platafo plataforma rma que gira en el centro de la mesa, mesa, lo unico u ´ nico que se sabe n es que se tienen comensales, y cada uno de ellos ha pedido una variedad distinta de plato. Entonces uno de los comensales puede servirse de alguno de los platos, para ello debe girar la plataforma central hasta tener el plato de su elecci´oon n al frente. En ese instante de tiempo, obviamente es probable que Luis tiene delante dela nte de ´eell alg alg´ un u ´n plato p lato particu particular, lar, es en ´eeste ste momento que el programa deber´ııaa sacar un reporte report e de qu´e plato tiene en frente Luis. a ) Descr Describe ibe que estructura(s) estructura(s) de datos datos se adec´ u uaa mejo mejorr para resolver resolver el problema. problema.
2 3 3 5 5 F N I -
b ) Describe la estructura de los elementos elementos que se almacenaran en la(s) estructura(s) estructura(s) de datos que eleg elegiste. iste. c ) Implementa la funcionalidad necesaria para permitir la petici´ on de un plato espec´ on espec´ıfico por p or uno de los l os comensales. d ) Implementa la funcionalidad necesaria para saber qu´e plato de comida tiene Luis al frente. 5. Sean A, B y C conjuntos conjuntos de elemen elementos, tos, se desea: a ) Realizar la union de A y B en C
b ) Realiz Realizar ar la intersecci´ intersecci´ oon n de A y B en C c ) Realizar la diferencia de A y B en C 6. Dados dos polinomios polinomios,, se desea: a ) Sumarlos
B C C L M b ) Multi Multiplicar plicarlos los
7. Se desea saber si un mapa se pue puede de colorear colorear con dos col colore ores, s, dado dado que se tie tiene ne la inf inform ormaci aci´on ´o n de las conexiones entre las regiones del mapa. Las conexiones son duplas que se representan de la siguiente ,reg2). forma: (reg (reg11,reg 2). Cada regi´on on tiene nombre y color de pintado (si estuviera pintado). Tu trabajo es decidir si el mapa puede ser o no pintado de dos colores.
8. En un gran restauran restaurante te de tres estrellas estrellas “mich “michelin”, elin”, se sirven desayunos desayunos y como es de suponer, la presenpresentaci´ on on es un detalle que no debe descuidare a tiempo de servir todas las comidas. Una de las opciones de desayuno que tiene es panqueques franceses, el chef elabora un pedido de n panqueques y va poni´eendolos ndolos en un pl platillo atillo a medida que los cocina, al finalizar el chef deber´ııaa entregar el plato con los n los n panqueques puestos de forma que el panqueque de mayor di´ametro ametro vay ayaa siempre siempre abajo y el de menor arriba. Ayuda a chef para saber cu´aantos ntos movimientos se necesitan hacer para ponerlos en el orden estipulado, recuerda que los panqueques est´an an uno sobre otro, por lo que para cambiarlos de lugar probablemente necesites voltear una pila de panqueques.
46
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
9. Se desea tener tener una aplicaci´ aplicaci´ oon n que permita registrar las solicitudes de una tienda que s´olo olo atiende a clientes v´ıa cor correo reo electr´ elec tr´onico. onico. Los pedidos que llegan deben tener un cliente, direcci´on on - zona y una lista de objetos que se pide. pi de. Cada objeto deber deb er´´ıa tener un peso que defina su p posibilidad osibilidad de atenci´ on on y en base a la suma
S S M U -
de los pesos de los objetos de los pedidos se define el orden de atenci´on de estos pedidos. Los pedidos jam´ as as pesan p esan 100 ptos. y lo m´ınimo que pesan es 10 ptos. las solicitudes solicitudes se organizan de acuerdo acuerdo al peso que tienen, del 10 al 19, del 20 al 29, y asi sucesivamente del 90 al 99. Cada vez que se atiende el pedido, se debe a su vez registrar el pedido de acuerdo a la direcci´on del cliente. Al finalizar el d´ıa, la tienda, saca un listado que tiene los pedidos organizados por direcci´oon n - zona, cosa que al d´ıa siguiente siguiente su personal personal de reparto se haga cargo de la entrega de un conjunto de pedidos, se sabe que el personal de reparto se divide el trabajo por zonas a ) Elige la(s) estru estructura ctura(s) (s) de datos m´as as adecuada(s) para representar el problema.
b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que viven en la estru estructura ctura de datos elegida. elegida.
c ) Escribe el (los) m´eetodo(s) todo(s) necesario(s) para p poder oder atender el requerimiento de un cliente y registrarlo para su posterior entrega. Debes cuidar que la estructura que elijas debe ser lo m´as as eficiente posible. d ) Escribe el (los) m´ etodo(s) etodo(s) necesario(s) para poder encontrar la lista que permita planificar las entregas ca cada da d´ııa. a.
2 3 3 5 5 F N I -
10. Lic. R. Salazar Dada una cadena se pide encon encontrar trar su cadena cadena extendida. extendida. Esta cadena se extiende por las vocales fuertes que tiene (se llaman vocales fuertes a la a, e y o), cada vez que aparece una vocal fuerte en la l a cadena cad ena a ´esta esta se debe de be anteponer con la vo vocal cal d´eebil bil m´as as cercana y posponer la vocal d´ebil ebil mas lejana a ella. Por ejemplo: la cadena extiende se transforma en ieuxtieundieu, la unica u ´ nica regla es que si ya una de las vocales d´ebiles ebiles la antepone o pospone (en el orden) ya no deber´ deber´ıa considerarse, en el ejemplo, ante la extiende nde,, ya esta antepuesta con i por lo tanto ya no es necesario ponerle de segunda aparici´on on de la e en en exti nuevo la i. Otro ejemplo es la palabra cuando que se transforma en cuiaundiou, en este caso la primera vocal d´ebil ebil mas cercana es i no u , por lo que se antepone la i a la a y se pospone la u .
´ ADECUADA(S) para representar el problema. a ) Elige la(s) estru estructura ctura(s) (s) de datos M AS b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que viven en la estru estructura ctura de datos elegida. elegida. c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para dada una cadena encontrar la extendida. 11. En una fiesta de colores se ha decidido, decidido, invita invitarr a persona personass que tienen que tener una pareja. Cada persona
B C C L M
invitada, inv itada, “elige” su o. parej y se supone que tarea ´eesta sta pareja deber´ deber ´ıa venir venesir posible con el mismo de ropa que la persona que la aeligi´ opareja . Porasupuesto, en esta de elegir parejas que unacolor persona necesite vestirse de mas de un color - lo cual no es permitido.
Dada una secuencia secuencia de persona personass invitadas invitadas y sus “elegidas “elegidas”, ”, indica cu´ ales ales son las parejas posibles, e indica cu´ aales les personas NO PUEDEN ir a la fiesta - que son aquellas que se les pide vestirse de m´as de un color. a ) Elige la estructu estructura ra de dato datoss mas adecuada adecuada para resolver resolver el problema problema b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que se almacenar´ almacenar´ an an en tu estructura de datos c ) Escribe el (los) m´eetodo(s) todo(s) neces necesario( ario(s) s) para indicar indicar las parejas parejas v´ alidas alidas y las personas que quedan fuera de la fiesta.
12. La embotellado embotelladora ra bolem necesita un programa que le ayude a distribuir sus productos estrella: Koka&Kolla y Fantas-tiK por Fantas-tiK por la ciudad. Para ello acude a la UMSS en busca de personas que le solucionen el problema. Se decide que la modalidad de elecci´oon n de los estudiantes que ser´an an contratados para resolver el problema, es pidiendo a los estudiantes puedan resolver el siguiente problema m´as as sencillo. La empresa tiene un cami´on on que debe repartir sus productos en la ciudad a sus distribuidores. Los pedidos de productos se anotan en una cola. Para cada pedido se anota la cantidad de unidades y el distribuidor. Un 47
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
distribuidor puede ser mayorista o minorista. El mayorista siempre pide el producto por cajas. El minorista las pide por cantidad de botellas. De cualquiera de ellos, bolem ellos, bolem anota anota el nombre del distribuidor (que se denomina raz´on on social) y su direcci´on. on. Estos pedidos deben ser puestos en la cola de espera por prioridad:
S S M U -
los mayoristas son prioritarios a los minoritarios. Para realizar el despacho se procede como sigue: hay que llenar el cami´oon n con cajas de bebidas. El cami´oon n puede llevar hasta 20 cajas de bebidas (cada caja tiene 12 botellas), aunque la empresa est´a pensando en la posibilidad de comprar un cami´on on con mayor capacidad. El cami´on on se llena con tantos pedidos como sea posible en el orden en que fueron catalogados para su atenci´oon. n. Es posible que un pedido no se pueda satisfacer totalmente, ya que el cami´on on no tiene la suficiente capacidad como para atenderlo de una sola vez, entonces se carga el cami´on on con tantas cajas como sea posible, dejando anotada la cantidad que queda pendiente a ser despachada. En base a esta descripci´oon n se debe: a ) Elegir las estructuras estructuras de datos m´ as as ADECUADAS que permitan representar los pedidos y el cami´oon n de la empresa. b ) Realiza un modelo que muestre las estructuras elegida elegidas, s, la empresa y los elementos de las estructuras. c ) Escribir el c´odigo odigo en Java Java de los m´etodos etodos necesarios para realizar una carga del cami´ on on a partir de
2 3 3 5 5 F N I -
los pedidos. pedidos. Caso Prueba 1 Un 1 Un ejemplo para el inciso c) es:
---------------------------------------------------------------------------------------------------------------------*** LIS LISTA TA DE PED PEDIDO IDOS S POR ORD ORDEN EN DE LLE LLEGAD GADA** A*** * Los Mol Molino inos s c. flores flores 123 123, , tot total al ped pedido ido: : 10, que quedan dan: : 10, uni unidad dad: : bot botell ellas as Don Pele av. asi asia a 432 4321, 1, tot total al ped pedido ido: : 10, queda quedan: n: 10, unida unidad: d: caj cajas as Los Mol Molino inos s c. flores flores 123 123, , tot total al ped pedido ido: : 10, que quedan dan: : 10, uni unidad dad: : bot botell ellas as Saltener Salt eneria ia Tucu Tucuman man av. arge argentin ntina a 10, tota total l pedi pedido: do: 50, queda quedan: n: 50, unidad: botella botellas s Superm Sup ermerc ercado ado Lo Car Caro o c. fra franci ncia a 440 440, , tot total al ped pedido ido: : 30, que quedan dan: : 30, uni unidad dad: : caj cajas as PEDIDOS PEDI DOS ALMA ALMACENA CENADOS DOS POR PRIO PRIORIDA RIDAD D
Don Pele av. asi asia a 432 4321, 1, tot total al ped pedido ido: : 10, queda quedan: n: 10, unida unidad: d: caj cajas as Superm Sup ermerc ercado ado Lo Car Caro o c. fra franci ncia a 440 440, , tot total al ped pedido ido: : 30, que quedan dan: : 30, uni unidad dad: : caj cajas as Los Mol Molino inos s c. flores flores 123 123, , tot total al ped pedido ido: : 10, que quedan dan: : 10, uni unidad dad: : bot botell ellas as Los Mol Molino inos s c. flores flores 123 123, , tot total al ped pedido ido: : 10, que quedan dan: : 10, uni unidad dad: : bot botell ellas as Saltener Salt eneria ia Tucu Tucuman man av. arge argentin ntina a 10, tota total l pedi pedido: do: 50, queda quedan: n: 50, unidad: botella botellas s
B C C L M
PRIMERA SALI PRIMERA SALIDA DA DEL CAMI CAMION ON Cargando Carg ando 10 cajas. cajas. Cargan Car gando do 10 cajas. cajas. Que Quedan dan 20 caj cajas as pen pendie diente ntes s al ped pedido ido 2 SEGUNDA SALI SEGUNDA SALIDA DA DEL CAMI CAMION ON Cargando Carg ando 20 cajas. cajas. Qued Quedan an pedi pedidos dos pend pendient ientes es TERCERA SALI TERCERA SALIDA DA DEL CAMI CAMION ON Cargando Carg ando 1 cajas. cajas. Cargando 1 cajas. Cargando cajas. Cargando Carg ando 5 cajas. cajas. No qued quedan an pedi pedidos dos pendient pendientes es ---------------------------------------------------------------------------------------------------------------------
48
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
13. Fisgon, ha tratado de capturar lo que se transmite en la red muchas veces, pero siempre ha fallado, debido a que Vac siempre encuentra alguna forma de evitar que esto suceda. Vac lo que hace es cifrar los mensajes que se transmite transmiten n y as´ as´ı evita evitarr que sean vistos por Fisgon. Se conoce que Vac cifra los mensajes por el
S S M U -
sig siguient uientee m´etodo: eto do: a ) El borra todos los espacios y marcas de puntuaci´on on del mensaje original
b ) El reemplaza todas to das las letras sucesivas id´eenticas nticas por una instancia de la l a letra
c ) El inserta pares de letras l etras id´enticas enticas en distintos lugares muchas muchas veces y de forma aleatoria.
La tarea que se debe hacer es el proceso inverso, es decir hay que tratar de restaurar un mensaje cifrado. Para esto, hay eliminar todos los pares de letras id´eenticas nticas insertadas en el tercer paso del procedimiento. Como entrada se tiene un texto que contiene un mensaje cifrado por Vac. El mensaje consiste de puras letras en min´ usculas. usculas. La salida es el mensaje restaurado
Ejemplo: Entrada
Salida ffl
2 3 3 5 5 F N I -
wwstdaadier itzzzirsaaooazrrz mc ff ceoorpprnrioo ceoorpprnriooirsaaoo azrrzjooeqqnl jooeqqnlln ln eeexafaafmccessndd
stierlitz mensaje examen
a ) Define la estructur estructuraa de datos adecuada para represent representar ar el problema. problema. b ) Define la estruct estructura ura de los eleme elemento ntoss de tu estruct estructura ura de datos. c ) Escribe el (los) m´etodo(s) etodo(s) necesarios para dado un mensaje mensa je cifrado, me permita restaurar y obtener el mensaje restaurado. 14. Una em empresa presa de de gesti´ oon n de campa˜ n nas, as, se encarga de hacer entre muchas cosas, la elaboraci´on on de banderines multicolores, los mismos que deben cumplir que jam´as as en la tira resultante de banderines se tenga dos consecutiv conse cutivos os del mismo color. color. Par Paraa ello, disponen de una secuenc secuencia ia de banderines banderines de los colores de los que se desea construir la tira de banderines. Esta secuencia se da en forma desordenada y aleatoria en colores, jam´ as as en esta secuencia de entrada se tienen m´as as de 3 banderines de un mismo color seguidos. rojo,, v es violeta y a es Por ejemplo:: si se tiene la siguiente entrada de banderines de color, donde r es es rojo es violeta anaranjado anaranjado:
B C C L M arrvvrvrarvaaarvva
La salida correcta que permita tener una tira de banderines tricolor mezclado seria: arvrrvrvrarvaravava
En la entrada, se tiene la misma cantidad de banderines de distintos colores, en el ejemplo de cada color se tiene 6 banderines, por lo que, siempre es posible tener una tira de banderines que cumplan las condiciones especificadas. Por otro lado, si se tiene la siguiente secuencia: arrvvrvrrvaaaraavv
La salida correcta que permita tener una tira de banderines tricolor mezclado seria: 49
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
aravrrvrvrvaravava
a ) Escog Escogee la estructura estructura de datos adecuada para resolv resolver er el problema. problema.
S S M U -
b ) Descr Describe ibe la estructura estructura de los elementos elementos que almacenar´ almacenaras ´as en las estructuras que elegiste en el inciso a. c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para poder po der dad una secuencia de entrada de banderines conseguir la tira de bande banderines rines correct correcta. a. d ) Imagina que no existe la condici´on on de que en la entrada se tiene la misma cantidad de banderines por color, ¿tu soluci´on on a´ un un func funciona iona?? ¿¿Por Por qu´e? e? 15. Los nav navegadores egadores web est´ aandares ndares contienen caracter caracter´´ısticas para moverse moverse hacia atra’s y hacia adelante entre las p´aginas aginas recientemente visitadas. Una manera de implementar estas caracter´ caracter´ısticas es usar dos pilas para guardas el rastro de las p´aginas, aginas, que pueden ser alcanzadas movi´endose endose hacia atr´ as as o hacia adelante. Los navegadores cuentan con los siguientes comandos:
BACK: Poner la p´agina agina actual en el cima de la pila adelante. Retirar la p´agina agina del tope de la pila atras, haciendo de ella la nueva p´agina agina actual. Si la pila atras est´a vacia, el comando es ignorado. FORWARD: Poner la p´aagina gina actual en el tope de la pila atras. Retirar la p´agina agina del tope de la pila adelante, haciendo de ella la nueva p´agina agina actual. Si la pila adelante es vacia, el comando es ignorado. VISIT < VISIT < url >: >: Poner la p´aagina gina actual en el tope de la pila atras, y hacer que el URL especificado sea la nueva p´agina agina actual. La pila adelante es vaciada.
2 3 3 5 5 F N I -
QUIT: Permite salir del navegador.
Asuma que el navegador inicialmente carga la p´agina agina web en la URL http://www.acm.org/ A continuaci´on on se muestra un ejemplo de c´omo omo deber´ııaa comportarse el navegador navegador si se tiene la siguiente secuencia de ejecuci´on: on: VISIT http://acm.a http://acm.ashland.edu/ shland.edu/ VISIT http://acm.b http://acm.baylor.edu/acm aylor.edu/acmicpc/ icpc/ BACK BACK BACK FORWARD VISIT http://www.i http://www.ibm.com/ bm.com/ BACK BACK FORWARD FORWARD FORWARD QUIT
B C C L M La salida seria:
http://acm.ashland.edu/ http://acm.baylor.edu/acmicpc/ http://acm.ashland.edu/ http://www.acm.org/ Ignored http://acm.ashland.edu/
50
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
http://www.ibm.com/ http://acm.ashland.edu/ http://www.acm.org/ http://acm.ashland.edu/ http://www.ibm.com/ Ignored
S S M U -
Como podr´as as notar, las palabras: VISIT, BACK, FORWARD, QUIT , indican indican las diferentes diferentes acciones que se pueden hacer en el nav navegado egador. r. Y cada ll´´ınea de la salida responde responde a cada una de las instruccio instrucciones. nes. Cuando no es posible, ya sea ir adelante o atr´aass se debe generar un mensaje Ignored. a ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para poder responder la acci´oon n VISIT.
b ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para poder responder la acci´oon n BACK.
c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para poder responder la acci´oon n FORWARD. d ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para poder responder la acci´oon n QUIT.
16. Lul´ u una ni˜ na na muy inquieta, para navidad quiere regalarle un collar a su mejor amiga, pero no quiere que sea uno m´as as del mont´oon n por lo que ha decidido comprar piedras de distinto color y hacer un collar colorido. Pero ella jam´aass quiere formar el collar juntando piedras de color morado y negro, naranja y negro, ni juntar dos piedras del mismo color, pues le parece de mal gusto. Debes ayudar a Lul´ u a indicar si la cantidad y variedad de piedras que ha comprado le servir´an an para hacer un collar como ella quiere y cual seria la disposici´on on de las piedras. En caso de no poder hacer el collar debes decir “No es posible”. Por ejemplo:
2 3 3 5 5 F N I -
Caso 1: Caso ENTRADA: {morado, {mor ado, negro, verd verde, e, mora morado, do, verde verde, , negr negro, o, negr negro, o, mora morado} do} SALIDA: No es posibl posible e Caso Cas o 2: ENTRADA:
B C C L M {morado, {mor ado, SALIDA: {morado, {mor ado, Caso Cas o 3: ENTRADA: {morado, {mor ado, SALIDA: {morado, {mor ado,
negro, amar amarillo, illo, verde, naran naranja, ja, negro negro, , rojo rojo, , blanc blanco, o, amar amarillo illo} }
amarillo amarillo, , negr negro, o, verd verde, e, naran naranja, ja, rojo, negro, blanc blanco, o, amar amarillo illo} }
negro, negr negro, o, mora morado, do, verde verde, , verd verde, e, amar amarillo illo, , naran naranja, ja, blanc blanco, o, rojo rojo} } verde, negr negro, o, verd verde, e, negr negro, o, amar amarillo illo, , mora morado, do, naran naranja, ja, blanc blanco, o, rojo rojo} }
´ ADECUADAS para representar el problema. a ) Elige la(s) estru estructura ctura(s) (s) de datos M AS b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que viven en la estru estructura ctura de datos elegida. elegida. c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para dada la lista de piedras que tiene Lul´ Lul u, u ´, intentar generar un collar de acuerdo a las necesidades y condiciones de Lul´ u u..
17. Jolly Jum Jumpers, pers, es una notaci´ notaci´ oon n que se asigna a una serie de n´umeros umeros cuya distancia permite realizar saltos mas peque˜ nos nos que la cantidad de n´ umeros umeros que tiene la secuencia. Por ejemplo: 3, 4, 5, 7, 2, 3 es un Jolly Jumper, ya que la cantidad de n´umeros umeros que tiene es 6 y los saltos que debe hacer entre n´umero umero y n´ umero umero 51
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
siempre son menores que 6; del 3 al 4 salto de 1, del 4 al 5 salto de 1, del 5 al 7 salto de 2, del 7 al 2 salto de 5 y as as´´ı sucesivamente. sucesi vamente. Realiza el programa que dado una serie de n´u umeros meros enteros positivos, me permita decidir si es un Jolly Jumper o no y adem´aass indicar el (los) lugares donde se ha generado ruptura del Jolly Jumper. Es de m´aass decir que una secuencia de 1 elemento es Jolly Jumper!!! Sobre la base de esta descripci´on on se pide:
S S M U -
a ) Iden Identifica tificarr las estructur estructuras as de datos MAS adecuad adecuadas as para modelar el dominio dominio del problema. problema.
b ) Definir de forma clara la estructura estructura de los eleme elemento ntoss que contendr contendr´an ´an las estructuras de datos antes elegidas c ) Implementar Implementar el (los) m´eetodo(s) todo(s) necesario(s) para dada una secuencia de n´ n umeros u ´ meros decidir si es o no Jolly Jumper y adem´as as registrar las rupturas en la secuencia si existiesen Por ejemplo: ENTRADA 3 4 5 7 2 3 2 4 6 1 7 1 12 2 24 24 21 21 3 10 23 43 2 12
SALIDA 3 4 5 7 2 3
Jolly Jumper
2 3 3 5 5 F N I -
2 4 6 1 7 1 12 2 24 24X 2 21 1 No J Jo olly J Ju umper 3 10X 23X 43X 2X 12 No Jolly Jumper
18. Se desea te tener ner una aplicaci´ aplicaci´ oon n que permita registrar las solicitudes de una tienda que solo atiende a clientes v´ıa correo corr eo electr´ elec tr´onico. onico. Los pedidos que llegan deben tener un cliente, direcci´on on - zona y una lista de itemes que se pide y cada item deber´ıa ıa tener un peso p eso que defina su posibilidad de atenci´oon n y en base a la suma de los pesos de los objetos de los pedidos se define el orden de atenci´on on de estos pedidos. Los pedidos jam´as as pesan 100 ptos o m´ as. as. y lo m´ınimo ınimo que pesan es 10 ptos. Las solicitudes se organizan de acuerdo al p peso eso que tienen, del 10 al 19, del 20 al 29, y as as´´ı sucesivamente del 90 al 99. Cada vez que se atiende el pedido, se debe a su vez registrar el pedido de acuerdo a la direcci´ on on del cliente. Al finaliz finalizar ar el d´ıa, la tiend tiendaa saca un listad listadoo que tiene los pedidos organizados organizados por direcci´ direcci´ on on - zona, cosa que al d´ıa siguiente si guiente su personal de reparto se har´a cargo de la entrega de un conjunto de pedidos, se sabe
B C C L M
que el personal de reparto se divide el trabajo por zonas. a ) Elije la(s) estru estructur ctura(s) a(s) de datos m´as as adecuada(s) para resolver el problema. b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos (T) que se almacenan almacenan en la estructura estructura de datos elegida. elegida. c ) Escribe el(los) m´ etodo(s) etodo(s) necesario(s) para poder p oder atender el requerimiento de un cliente y registrarlo para su posterior entrega. Debes cuidar que la estructura que elijas debe ser lo m´as as eficiente posible.
d ) Escribe el(los) m´etodo(s) etodo(s) necesario(s) para poder po der encontrar la lista que p permita ermita planificar las entregas ca cada da d´ııa. a.
19. Se ha desarrollad desarrolladoo una estru estructura ctura de datos lineal que pretende mejor mejorar ar la b´ usqueda usqueda de un dato. Esta estructura se llama ListaHilada, que es b´aasicamente sicamente de un solo enlace al siguiente elemento, pero cada cuatro elementos elem entos ´estos esto s est´aan n enlazados de manera tambi´een n simple hacia adelante. El modelo de la ListaHilada se muestra en la Figura 3.1. Un ejemplo de cambio de estado en la ListaHilada haciendo inserciones se muestra en la Figura 3.2. Todos los elementos en la ListaHilada se tienen ordenados ascendentemente.
odigo 1 se tiene detalle de los atributos y operaciones de la ListaHilada. En el C´odigo 52
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
Figura 3.1: Modelo ListaEnlazada
2 3 3 5 5 F N I -
Figura 3.2: Ejecuci´oon n de inserciones en ListaHilada public class ListaHil public ListaHilada< ada> { private priv ate Nodo NodoD D ini; public ListaHilada ListaHilada() () { ini = null; } public publ ic bool boolean ean vaci vacia() a() { retu return rn ini ini == null null; ; } public publ ic void inserta insertar(T r(T d) { Nodo NodoD< D T> p = new No Nodo doD< D T>(d (d); ); if (vac (vacia ia() ()) ) ini ini = p; else insertar(ini, p, 1, ini);} privat pri vate e void void ins insert ertar( ar(Nod NodoD< oD T> q, Nod NodoD< oD T> p, int i, Nod NodoD< oD T> h) {// {// meto metodo do que que inse insert rta a a p cami camina nand ndo o con con q // y depe depend ndie iend ndo o del del esta estado do del del hilo hilo de h // y la posi posici cion on de i se ac actu tual aliz iza a el hilo hilo} } public pub lic T buscar buscar(T (T d) {// HAC HACER ER EST ESTO} O} } public publ ic class NodoD imple implement ments s Compa Comparabl rable {
B C C L M
private privat e T dat dato; o; private priv ate Nodo NodoD D sig, hilo hilo; ; public publ ic Nodo NodoD(T D(T d){. d){...} ..}
53
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
public Nodo public NodoD D sig() sig(){... {...} } public publ ic Nodo NodoD D hilo( hilo(){.. ){...} .} public publ ic void sig( sig(NodoD NodoD s){. s){...} ..} public public public publ ic public publ ic public publ ic public
void hilo hilo(Nodo (NodoD D s){. s){...} ..} void dato(T s){. s){...} ..} T dato dato(){. (){...} ..} int comp compareT areTo(No o(NodoD< doD T> otro otro){.. ){...} .} String toString(){.. toString(){...} .}
}
S S M U -
Real iza el m´eetodo Realiza to do T buscar(T d) , que busca un elemento y lo devuelve si lo encuentra, caso contrario null.. El m´ devuelve null etodo etodo debe deb e ser eficiente, aprovecha aprovecha los enlaces de los hilos.... hilos. ... 20. Lic. R. Salazar La Salazar La sombra de un ArbolBB de tama˜ no no d, es aquel ArbolBB que puede formarse considerando los elementos que se encuentran hasta el nivel d. R Real ealiza iza un m´etodo eto do ArbolBB< T > sombra(ArbolBB< T > orig, int d), que construya la sombra del ArbolBB orig dado que el tama˜no no de la sombra es d . 21. Una librer librer´´ıa quiere tener almacenados los itemes que tiene a la venta. Cada uno de estos itemes i temes est´ a dentro
2 3 3 5 5 F N I -
de una clasificaci´ on onest´ y tiene precio por menor y por adem´ as de latiene unidad. Por ejemplo: hojas existe una variedad, pero a clasificada como hojas. Lasmayor, hojas por paquete un precio y otro por caja. En este ejemplo ejemplo el item es hojas, la descripci´ oon np podr odr´´ıa ser ”de color“ la unidad de venta por menor es paquete y la unidad de venta al por mayor es caja. La librer´ librer´ıa quiere tener velocidad cuando pregunta acerca de un item y su precio, por supuesto, el programa deber´´ıa indicar las posibilidades de oferta que tiene para vender. deber a ) Elige la estructura de datos m´as as adecuada para representar el problema. b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que viven en la estru estructura ctura de datos elegida. elegida. c ) Escribe el (los) m´eetodo(s) todo(s) necesario(s) para p poder oder atender el requerimiento de un cliente. Por ejemplo: hojas bond oficio. 22. Dada una cadena cadena,, se pide encontrar encontrar el patr´ oon n de composici´oon n reducido correspondiente. Por ejemplo: si aaaabbbbccdebb cdebbbf bfff ss el ss el patr´oon a 4b4c2d1e1b3f f 22s2. se tiene tiene aaaabbbbc n reducido ser´a a4
B C C L M
a ) Elige la(s) estru estructura ctura(s) (s) de datos M A AS ´ S ADECUADAS para representar el problema. b ) Descr Describe ibe la estructur estructuraa de los elemen elementos tos que viven en la estru estructura ctura de datos elegida. elegida. c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para dada una cadena encontrar la cadena patr´oon n reducida.
>, se pide separar los 23. Dada una Lista Circular de Simple Simple Enlace tipificada como: como: ListaCSE < Integer >, elementos en dos Listas Circulares de Simple Enlace, dado un dato n, de acuerdo al siguiente criterio, todos los elemento elementoss meno menores res a n se ponen en una de las listas y los que no lo son, en la otra.
24. Dada una torre que con contiene tiene eleme elemento ntoss de dos tipos, se necesita necesita organizar organizar los elemento elementoss de la misma, de forma tal que siempre existan elementos intercalados. Se tiene como condici´on on de manejo que jam´aass se ingresa tres elementos del mismo tipo consecutivamente. La torre esta implementada en base a una pila, realice el (los) m´eetodo(s) todo(s) neces necesario( ario(s) s) que permit p ermitan an ingresar ingresar element elementos os a la torre de acuerdo acuerdo a las especificaciones descritas. 25. La asigna asignaci´ ci´ on on de memoria es uno de los problemas m´as as interesantes que existen dentro el desarrollo de los siste sistemas mas operativos operativos y el meca mecanismo nismo de GARBAGE GARBAGE COLLECTION COLLECTION tambi´ tambi´ een n lo es. El GARBAGE GARBAGE COLLECTION consiste en liberar espacio de memoria que no es utilizado en un espacio de tiempo X. 54
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
En general la forma de organizar la memoria es por “bloques” de UN tama˜no no espec´ espec´ıfico. Cada que se quiere “utilizar memoria”, se busca si hay un bloque que permita atender la solicitud. La solicitud de asignaci´on on indica que ha fallado s´oolamente lamente si ning´ u un n bloque tiene espacio, caso contrario se dice que ha sido exitosa. Cuando una asignaci´oon n ha sido exitosa, s´olamente olamente permanece en la memoria si se lo usa en un periodo no mayor a X (por ejemplo 10). Por supuesto hay que cuidar que el espacio libre del bloque sea consistente despu´es es de una asignaci´ oon. n. Se tienen tres datos muy importantes: a) el tama˜no no de una solicitud siempre es menor que el tama˜no no de un bloque, b) que en un bloque jam´as as se asignan m´aass de dos solicitudes y c) nunca dos solicitudes usando la memoria tienen el mismo tama˜no. no.
S S M U -
Del mismo modo cuando se requiere requiere acceder a un bloque, se indica que ha tenido ´exito exito s´olamente olamente si el bloque est´a asignado con la solicitud buscada y si el tiempo de almacenamiento no ha pasado, caso contrar con trario io se dice que el reque requerimie rimiento nto ha fallado. fallado. Un dato importante es que jam´as as el bloque queda asignado por m´as as de X periodos de tiempo sin haberlo utilizado, de tal manera utilizado, manera que a tiempo de asignar el bloque se necesita indic indicar ar el tiempo en el que se realiz´ o la solicitud, del mismo modo cuando se solicita acceder a un bloque se debe indicar el tiempo en el que se est´ a intentando hacer el acceso. Por ejemplo, si se supone que se tiene una memoria organizada en 15 bloques cada uno de 500 de tama˜no,
2 3 3 5 5 F N I -
todas libres al inicio y si se tiene un requerimiento de asignaci´on que tiene el siguiente formato: 1 200
donde 1 es el tiempo en el que se pide asignar alg´un un bloque de memoria y 200 es el tama˜no no de la solicitud. La solicitud solicitud ser´a exitosa e informa en que bloque se asign´o, o, en este caso se asigna en el primer bloque. Si se tiene un requerimiento de acceso que tiene el siguiente formato: 7 10 200
donde 7 significa el tiempo en el que se requiere el acceso, 10 es el n´umero de bloque que se quiere quiere acceder y 200 es el tama˜ no no de la solicitud, deb deber er´´ıa indicar que el requerimiento fall´o ya que en ese bloque no hay nada asignado.
B C C L M
Si el requerimiento de acceso fuera: 7 1 200
el acceso es exitoso; ya que no ha pasado a´un un X (10) periodos de tiempo y el bloque 1 est´a asignado con la solicitud 200. Si el requerimiento de acceso fuera: 12 1 200
el acceso es exitoso; ya que no ha pasado m´as de X (10) periodos de tiempo desde su asignaci asignaci´on ´on y/o ultimo u ´ltimo acceso Peroo si el requerimie Per requerimiento nto de acce acceso so fuera fuera:: 27 1 200
55
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
el acceso fall´o; o; ya que ha pasado m´aass de X (10) periodos de tiempo desde su asignaci´on on y/o ultimo u ´ltimo acceso y el bloque 1 ya habr´ habr´ıa sido li liberado berado autom´aaticamente ticamente (GARBAGE COLLECTION). Entonces si se tiene la siguiente secuencia de uso de memoria, considerando por ejemplo 15 bloques de 500: ENTRADA 1 200 2 300 3 400 5 250 6 350 9 1 200 13 1 250 20 2 300 21 1 200 22 1 250 22 150 2 23 4 25 30 31
1 1 1 2 3
32 00 00 150 300 400
RESULTADO exito exito exito exito exito exito fallo fallo fallo fallo exito
2 3 3 5 5 F N I fa al ll lo o f exito fallo fallo
S S M U -
Por supuesto, como se puede observar en el ejemplo, las solicitudes se hacen en orden cronol´ogico. ogico. Se puede asumir que los n´umeros umeros de bloque siempre son correctos correctos.. a ) Elige la estructura de datos que m´as as se adecue para resolver el problema. b ) Describe la estructura de los elementos que residir´aan n en la estructura de datos que elegiste (realiza el modelo). modelo). c ) Escribe el (los) m´etodo(s) etodo(s) que permitan asignar memoria a una solicitud. d ) Escribe el (los) m´etodo(s) etodo(s) que permitan acceder a un bloque de memoria.
B C C L M
26. En Las Vega Vegass un juego mu muy y popular es el blackja blackjack ck que consiste en jugar con a lo sumo tres cartas contra contra el croupier (persona que reparte cartas y es personal del casino); el objetivo es que las cartas sumadas se aproximen sin sobrepasar a 21. Para ello la banca (se llama as as´´ı a la mesa en la que se juega considerando un maso de cartas completas) reparte 2 cartas a cada jugador incluyendo al crupier; los valores de las cartas son: el as vale 1 u 11, las figuras valen 10, y las cartas num´ericas ericas su valor natural; pudiendo cambiar el valor del as seg´un un la jugada. El jugador despu´es es de repartir las dos cartas tiene la posibilidad de plantarse (quedarse con las cartas que tiene) o pedir carta, sin pasarse del 21 ya que pierde autom´aticamente. aticamente. Gana finalment finalmentee el que tenga el n´ u umero mero m´as as alto, cercano al 21, o saque un blackjack blackjack (sea igual a 21). Por su parte el croupier croupier tiene reglas r´ıgidas a las que atenerse: atenerse: si su puntaci´ puntaci´ on on inicial fuera 16 o menor est´a obligado a tomar otra carta, y se plantar´a siempre que su puntuaci´oon n alcance 17 o mayor. Estas reglas las aplicar´ a independientemente de las jugadas que tengan cada uno de los jugadores. El maso de cartas original, est´a formado por ‘n’ cartas las mismas que est´aan n barajadas de forma aleatoria; de este maso se va repartiendo cartas a los ‘m’jugadores del juego. Jam´as las cartas van saliendo del medio del maso siempre salen de la parte de arriba del maso; que tiene las cartas volcadas para mantener la emoci´on on del juego. 56
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Las cartas que hay en el maso son: (1 (as), 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K) cada uno de ellos en cuatro palos diferentes (C(corazon), D(diamante), T(trebol), E(espada)), en total existen 52 cartas en el maso original.
S S M U -
Entonces en este juego hay dos rondas: la primera que permite repartir dos cartas a los jugadores, la segunda que permite repartir una carta m´as as a los que deseen, salvo el croupier. Despu´es es de estas dos rondas r ondas se decide de cide qui´een n es el ganador g anador del juego. ju ego.
a ) Elige las estructur estructuras as de dato datoss adecu adecuadas adas para resolver resolver el problema. problema.
b ) Descr Describe ibe la estructur estructuraa de lo datos que contend contendr´ r´ an an tus estructuras de datos.
c ) Escribe el(los) m´eetodo(s) todo(s) necesario(s) para realizar la repartija en la primera ronda a los ‘m’ jugadores, no olvides al croupier. d ) Escribe el(los) m´etodo(s) etodo(s) nece necesario( sario(s) s) para realizar la repartija repartija en la segunda segunda ronda a los ‘m’ jugadores, no olvides que las reglas del croupier son especificas y fijas en esta ronda. Para el resto de los jugadores puedes asumir que la solicitud de una carta m´ as as es aleatoria. 27. Se tienen las estru estructura cturass de datos p, b, a, l que que son una pila de enteros, una bicola de enteros, un ´arbol arbol
2 3 3 5 5 F N I -
binario de b´ usqueda usqueda de enteros y una lista de enteros, respectivamente: Pila Pila BiCola ArbolBB< Arbo lBB ger> Lista< Lis ta r>
p b a l
= = = =
new new new new new
P Pil ila< a r>() (); ; BiCo BiCola(); ; Arbo ArbolBB< lBB( er>(); ); Lista ListaSE< SE( r>(); );
Considera las siguientes instrucciones: 1 2 3 4 5 6
a.insertar(16); a.insertar(20); a.insertar(10); a.insertar(40); a.insertar(30); vaciar(a.preorden(), p);
B C C L M 7 8 9
vaciar(p, b); vaciar(b, a); l = a.inorden();
El m´ etodo etodo vaciar es uno que permit p ermitee pasar los eleme elemento ntoss de una estructura estructura (origen) a otra (destino), (destino), destruyendo la origen. Puedes asumir que su comportamiento es correcto. a ) Muestra “graficamente” “graficamente” (dibuja), el estado de las estructuras a, p, b, l a a medida que se realizan los procesos. b ) ¿La pila p est´a ord ordenada enada despu´es es de la instrucci i nstrucci´on ´on 7? c ) Al terminar el proceso (en la instrucci´on on 9), ¿el ´arbol arbol a es el mismo en estructura que antes de los procesos vaciar?
28. En un jueg juegoo denominado denominado “¿hola quien llama? - la llama que llama” , se ha planeado registrar registrar todos e llama llama a que llama . Todos los registros los mensajes en un sistema. Lo que se desea es saber qu´ al es la llama que llama? , por lo que la posici´ tienen un orden de aparici´on on y se quiere saber ¿cu´ oon n de registro es importante. Por ejemplo, si se tienen los siguientes registros:
57
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
hola? hola? hola? quien qui en quien quien hola? quien qui en quien qui en
es la llama llama que llama llama? ? es la llama llama que llama llama? ? es la llama llama que llama llama? ? es la llama llama que llama llama? ?
Se tendr´a el siguiente reporte: La La La La
llama llam a llama llama llama llama llama llama
3 2 4 1
Considerando este ambito de aplicaci´oon: n:
2 3 3 5 5 F N I -
S S M U -
a ) Elige la estructu estructura ra de dato datoss que se adecua mas para resolv resolver er el problema problema de manera eficiente eficiente b ) Explic Explica/defi a/define ne cu´ al al es la estructura de los elementos que contendr´a tu estructura de datos
¿qu´ ´ e l la lama ma c ) Escribe el (los) m´etodo(s) etodo(s) necesario(s) para permitir p ermitir dado una lista de registros, definir ¿qu llama?
29. Se quiere aumen aumentar tar una operaci´ oon n a toda lista, que consiste en hacer un split − division de la lista en otras mas peque˜ nas nas de tama˜ no n no n.. Por ejemplo si se tiene la lista: {2, 4, 5, 7, 2, 8, 10, 14, 19, 23, 59, 10, 14}
Y se quiere hacer un split de 2, se tendr tendr´´ıa el siguiente resultado:
{{2, {{2, 4}, 4}, {5, {5, 7}, 7}, {2, {2, 8}, 8}, {1 {10, 0, 14}, 14}, {19, {19, 23}, 23}, {59, {59, 10 10}, }, {14} {14}} }
Para realizar esta tarea puedes elegir la lista de tu preferencia: ListaSE, ListaDE, ListaCSE o ListaCDE.. Lo u taCDE split((n), es una unico ´ nico que debes cuidar es que si por ejemplo la lista original a la que le pides pides split ListaDE, entonces la lista resultante tambi´ en en lo ser´a, a, adem´as as de cada una de las listas que aparecen en el resultado.
B C C L M
30. El manejo de los objetos en jdk, en particular, particular, consider consideraa conceptos conceptos de asignaci´ asignaci´ on on de memoria din´aamica mica que puede ocasionar algunos funcionamientos “raros”. Cuando una Cola de Prioridades permite realizar er() la operaci´oon v n ver () retorna el dato del frente de la cola y desde donde lo solicitaron es posible cambiar el dato,, por ejemplo dato ejemplo observa observa el siguie siguiente nte c´oodigo: digo: 1 2 3 4 5
Cola ColaPrior Prioridad idad cola = new Cola ColaPrior Prioridad idad(); ); Estu Estudiant diante e est; est = new Est Estudi udiant ante(" e("Lui Luis", s", 50) 50); ; cola.encolar( cola.encolar(est); est); est = new Est Estudi udiant ante(" e("Mar Maria" ia", , 30) 30); ;
6 cola.encolar( cola.encolar(est); est); 7 est = new Est Estudi udiant ante(" e("Sar Sara", a", 100 100); ); 8 cola.encolar( cola.encolar(est); est);
58
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
9 est = new Est Estudi udiant ante(" e("Jos Jose", e", 10) 10); ; 10 cola.encolar( cola.encolar(est); est); 11 est = col cola.v a.ver( er(); ); 12 est.setNota(5 est.setNota(50); 0);
S S M U -
Para ubicar un estudiante en la cola, se utiliza su nota como prioridad. En la instrucci´on 11, se recupera el estudiante del frente y en la 12 se ha cambiado su informaci´on on que es ademas su prioridad!!, ¿c´omo omo queda la cola? ¿Sigue respetando la prioridad? Arregla lo que consideres necesario para que din´amicamente amicamente la cola pueda mantenerse siempre consistente, a pesar de que un dato que aun esta en la cola cambie. 31. Dada una Pila de elemento elementoss ordenables ordenables se te pide obtener los elemen elementos tos en otra pila, de tal manera manera que los elementos queden ordenados de manera descendente, es decir el elemento mas peque˜no no en el tope de la pila. Recuerda no debes alterar las prestaciones de servicio de las pila. Es posible apoyar con estructuras que consideres necesarias tu soluci´oon. n. Hay que siempre considerar la mejor opci´on. on.
2 3 3 5 5 F N I B C C L M 59
S S Estructuras de Datos No Lineales M U Cap´ıtulo 4
Para todos los ejercicios debes utilizar adecuadamente Estructuras de Datos.
1. Dado un arbol ´arbol Binario indique si este es balanceado. Se dice que un ´arbol arbol es balanceado si la altura de la
2 3 3 5 5 F N I -
descendencia izquierda difiere en a lo sumo 1 de la altura de la descendencia derecha. 2. Dado un ´arbol arbol binario se desea mostrar los elementos de la estructura de la siguiente manera: siempre empezar por el u ultimo ´ ltimo nivel e ir mostrando primero el elemento m´as as a la izquierda del nivel, luego el que esta m´aass a la derecha del nivel; luego el segundo m´aass a la izquierda iz quierda y despu´ desp u´eess el segundo m´as as a la derecha, y as´ı sucesivamente hasta agotar todos lo l o elementos del nivel y cubrir todos los niveles del ´arbol. arbol.
3. Dados dos aarboles ´rboles binarios se desea saber si son semejantes. Se dice que dos ´arboles arboles son semejantes cuando estructuralmente ambos son iguales sin importar su contenido. 4. Se desea desea saber cu´ antos antos nodos de un ´aarbol rbol binario tienen s´olamente olamente una descendencia. 5. Suponga Suponga que el el arbol ´arbol binario tiene datos que son comparables, emita un reporte de los elementos menores por cada nivel del arbol. ´arbol. 6. Suponga Suponga que el el arbol ´arbol binario tiene datos que son comparables, emita un reporte de los elementos menores
B C C L M
por cada rama del ´arbol. arbol. 7. Se desea desea saber saber si en un ´aarbol rbol binario todos sus nodos son completos. 8. Dado Dado un arbol a´rbol binario de b´ u usqueda, squeda, se desea encontrar el ´aarbol rbol binario de modo que el ´aarbol rbol resultante sea el resultado de hacer un repmin en el arbol ´arbol binario de b´ usqueda. usqueda. Se dice que el proceso repmin, consiste en encontrar en contrar el elemento m´ınimo del arbol ´arbol y reemplazarlo en los nodos hoja. 9. Realice Realice el constructo constructorr que permita permita en base a una cadena que conti contiene ene una expresi´ on on en forma prefija, construir un ´arbol arbol binario de expresi´oon n correcto.
10. Dado un ´arbol arbol binario de b´u usqueda, squeda, se quiere recoger los elementos que est´ en en en el int´ ervalo ervalo [x, y], de forma eficiente. 11. Dad Dadoo un arbol a´rbol binario de b´ u usqueda, squeda, se quiere recoger los elementos del camino de x a y . 12. Dad Dadoo un aarbol ´rbol binario, se quiere recoger los elementos del camino de x a y . 13. Realice el m´etodo etodo evaluar de un ´aarbol rbol binario de expresi´oon. n.
60
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
14. Dis Dise˜ e˜ na n a un ´arbol arbol que permita representar una expresi´on on no necesariamente binaria, es decir, representar no l´ ogico o gico ra ra´ ´ ız cuad cu adra rada da el operador , el , etc. o representar el operador ternario if then else que tiene el cond??cuerpoSI : cuerpoNO formato cond formato
S S M U -
15. Un pa´ııss no posee de carreteras la u unica ´nica v´ıa de transp transporte orte es la fluvial. fluvial . Este pa´ pa´ıs se comunica a trav´eess de los r´ıos, y los lo s pueblos pu eblos est´aan n a llaa rivera de los r´ıos. Todos los r´ıos desemboca des embocan n en el e l mar. Se pide pid e determinar determi nar cu´ aales les pueblos est´an an adem´as as de la rive rivera ra del r´ıo a orilla orillass del mar. Dado, que desde la capital capital del pa´ pa´ıs, solamente existe una ruta hacia cada pueblo del mismo, se desea adem´as encontrar el camino para llegar de un pueblo a otro por las orillas del mar. 16. Dado un conjun conjunto to de pares ordenados, ordenados, indique si es posible que esta informac informaci´ i´on on forme un ´arbol. arbol. Estos pares ordenados, tienen la intenci´oon n de ser pares ordenados de la forma: (padre, hijo), entonces el par ordenado (5,6) significa que el padre es 5 y el hijo es 6. Hay que recordar que un elemento no tiene padre, y es el elemento ra´ ra´ız del ´aarbol. rbol. Por ejemplo, los pares {(3,5),(3,7),(3,8),(7,1),(7,2),(8,10) } forman un ´arbol, cuya ra´ arbol, ra´ız es el 3, los elemen elementos tos del nivel 1 son: 5, 7 y 8; y los del nivel 2 son: 1, 2 y 10. En cambio, los pares { {(10,2),(2,5),(5,10),(2,6),(6,7),(7,9),(10.3),(10,9) (10,2),(2,5),(5,10),(2,6),(6,7),(7,9),(10.3),(10,9) } no forman la informaci´on o n de un arbol. ´arbol. Con la informaci´on on de entrada como una lista de pares ordenados, construye el ´arbol que corresponde si fuera posible, caso contrario, se deb deber er´´ıa crear un ´arbol arbol vacio.
2 3 3 5 5 F N I -
17. Se quiere modelar una red con una topolog´ııaa en forma estrella. Todos los puntos se conectan a un punto central de distribuci´oon n y desde all´ all´ı hacia los distintos puntos de la red. Dada una ruta se desea saber si es una ruta posible dentro la red. Elige la estructura estructura de dato datoss adecuada adecuada para resolv resolver er y represent representar ar el problema. problema. Describe la estructura de los elementos que residiran en la estructura de datos que elegiste. Escribe el (los) m´etodo(s) etodo(s) necesario(s) para saber si una ruta dada por entrada es v´alida alida en la red. Adem´ as as debes indicar en que punto, si hubiera, existe una ruptura de la red. 18. Consi Consider deraa un ´aarbol rbol bin binari arioo en el que se alm almace acenan nan datos que pueden pueden ser reduci reducible bles, s, se pide pide enconenconListaSE SE < Reducib Reducible le > trar la lista de reducibles del ´arbol arbol por niveles. Para ello realiza el proceso Lista reducidos((Arbo reducidos ArbolBin lBin < Reducible Reducible > a, Reduct Reductor or r), r ), como notar´as as en este caso se requiere de informaci´oon n r, cuya misi´oon adicional que es un Reductor un Reductor r, n es dado un Reducible encontrar otro o dados dos Reducibles encontrar otro. Por ejemplo si se tiene el siguiente ´aarbol rbol de enteros y el factor de reducci´on on es la suma, se
B C C L M
tendr´ a el siguiente resultado. 12
3
8
{12, 21, 48, 21}
11
10
20
2
23
7
1
5
19. Dad Dadoo un arbol ´arbol binario, en el que se tienen elementos que son de tipo entero, se pide encontrar todos los elementos m´ ultiplos ultiplos de un dato n dado como par´ametro ametro de entrada. La Figura 4.11 muestra un ejemplo del resultado del proceso. proceso. 61
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Figura 4.1: Ejemplo
S S M U -
20. Dad Dadoo un Arbol Binario, Binario, se quiere quiere dar la vuelta vuelta la ram ramaa m´ as as peque˜ na na del arbol. ´arbol. Por ejemplo observe la figura 4.2, muestra un ejemplo particular del resultado de este trabajo.
2 3 3 5 5 F N I 12
3
5
2
30
35
4
41
14
3
15
2
15
20
10
40
20
30
34
35
27
4
12
10
40
5
41
34
27
14
ENTRADA
B C C L M
SALIDA
Figura 4.2: Ejemplo
21. Dad Dadoo un Arbol Arbol Binario Binario de B´ usqueda usqueda de n´ u umeros meros enteros, se quiere encontrar la mediana de cada nivel. Por ejemplo observe la figura 4.3, muestra un ejemplo particular del resultado de este trabajo. Debes considerar la solucion m´as as eficien eficiente te para realizar esta tarea. tarea.
22. Se tiene en un Arbol Binario represen representado tado un mapa de rutas fluviales de una cuenca. Esta cuenc cuencaa empieza en un punto, a partir de este punto se van ubicando pueblos a las orillas de los rios que a su vez son puntos de bifurcaci´on on en dos rios.... la informaci´on on que se tiene de cada punto en el mapa es el nombre del pueblo y el tiempo que toma llegar a ´eell desde el anterior pueblo. Un via viajero jero quiere conocer los pueblos m´ as as lejanos a los que pueda llegar, el gran problema de este via viajero jero es el tiempo, ´el el solamente cuenta con X cantidad de tiempo y quisiera en ese tiempo conocer la mayor cantidad de pueblos que pueda. Por Por ejem ejemplo plo de la Figura Figura 4.4, 4.4, se mu muest estra ra un mapa de la cuenca ”Bora”: Si un viajero con tiempo X = 120 quisiera la ayuda para decidir cual es la mejor opci´on on de recorrido. Para este requerimiento la respuestaa vendr´ respuest vendr´ıa a ser: {Notar, {Not ar, Nejo NejoCo, Co, Dill DillaR, aR, Onom Onom} }
62
UMSS
Gu´ıa ıa de Pr´ acticas acticas
60
30
20
18
10
63
54
74
87
47
35
S S M U -
{60, 46, 47, 52, 50, 40}
70
42
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
91
40
ENTRADA
SALIDA
2 3 3 5 5 F N I Figura 4.3: Ejemplo
B C C L M Figura 4.4: Mapa de Cuenca Bora
63
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Las otras opciones no permiten al viajero conocer la mayor cantidad de pueblos. a ) Realiz Realizaa el modelo adecuado adecuado que describ describaa el problema. problema.
S S M U -
b ) Realiz Realizaa el (los) m´ etodo(s) etodo(s) necesario(s) necesario(s) para ayudar ayudar a un viajero via jero a encontrar encontrar cual es la ruta que le permita visitar la mayor cantidad de pueblos dado que tiene un tiempo X . 23. Se tiene el pa´ııss de los “PSK2” lleno de tesoros, los que son una atracci´oon n para los piratas de la zona. Los ciudadanos ciuda danos del pa´ pa´ıs se han preparado preparado bien a las invasion invasiones es de los piratas, es asi que han puesto fuertes en sus regiones mediterr´aneas, aneas, ya que ellos saben que en las costas del mar, les es imposible hacer frente a los piratas, ya que ellos invaden a “PSK2” por la rivera del mar. Los piratas han decidido no correr demasiados riesgos, por lo que su invasion la planifican desde el puerto mas seguro y que les permita llegar en un viaje via je de ida y vuelta a la mayo mayorr cantida cantidad d de regio regiones nes con menor riesgo. De cada regi´ on on mediterr´anea anea se conoce el n´umero umero de personas personas en sus fuertes y el monto monto del tesoro tesoro de la regi´ on, on, se dice que es una regi´oon n de poco riesgo para los piratas si el numero de personas en el fuerte no los sobrepasa. Tu tarea es ayudar a los piratas a decidir la ruta mas conveniente de manera que no corran riesgos y que adem´as indique la cantidad de tesoro acumulado en la ruta. Es posible que no exista tal ruta, por lo que en ese caso debes emitir un reporte “IMPOSIBLE”. Se sabe que “PSK2” es un pa´ pa´ıs bien conectado, es decir siempre hay ´ SOLO UNA ruta entre una regi´oon n y otra del p´aais, is, tambi´ en en se sabe que todas to das la regiones siempre pueden
2 3 3 5 5 F N I -
desembocar en el mar. Un dato importante, es que los piratas deben empezar y terminar su invasi´on en el mismo puerto, por obvias razones de transporte. a ) elige la estructu estructura ra de datos mas adecu adecuada ada para resolver resolver el problema problema b ) elige la estructu estructura ra de los elemento elementoss que se almacen almacenar´ ar´ an an en tu estructura de datos c ) escribe el (los) m´etodo(s) etodo(s) necesario(s) para indicar a los piratas la ruta m´ as as conveniente de invasi´oon n a “PSK2” 24. Dad Dadoo una Arbol Arbol Bin Binari arioo de B´ u usqueda, squeda, se pide mostrar los elementos del ´arbol arbol intercalados, es decir: el primer menor, el primer mayor, el segundo menor, el segundo mayor, y asi sucesivamente...... 25. Se quiere modelar el mundi mundial al de futbol a partir de los octavos octavos de final. Para ellos se deben registrar registrar los pa pa´´ıses que se enfrentan, qui´eenes nes ganan, qui´eenes nes pasan a cuartos de final y qui´en en es el campe´on on del mundo. Adem´ as as de registrar esta infomaci´oon n se requiere tener los datos de los goles que cada selecci´on on en cada partido ha anotado y tambi´ en en los goles en contra.
B C C L M
Al terminar el campeonato, se desea saber la lista de los equipos que llegaron a los octavos de final. La selecci´ on on que ha anotado m´aass goles, la selecci´oon n que ha recibido mas goles en contra.
Debes considerar que a partir de octavos de final los partidos definen a sus ganadores para pasar a la siguiente fase. Es muy importante tambi´ en en que las selecciones recuerden los datos de los goles a favor y en contra al llegar a los octavos de final, y a partir de ese momento es importante que se registre los goles a favor y en contra por partido jugado. Dada esta informaci´oon: n:
a ) elija la estructura de datos que m´as as se adecua para resolver el problema b ) descr describe ibe la estuctura estuctura de los eleme elemento ntoss de la estrudt estrudtura ura de datos que elegiste elegiste c ) escribe el (los) metodo(s) necesarios para saber qu´e equipos estan en octav o ctavos os de final
d ) escribe el(los) m´etodos etodos necesarios para saber que selecci´ on on ha anotado m´as as goles, indicando el detalle de los partidos en los cuales los ha obtenido 26. Se tiene un ´aarbol rbol binario, en el que se tienen elementos que son de tipo entero, encuentre la lista de la suma de los elementos por nivel, que tiene el ´arbol. Considere el siguiente ejemplo cuyo resultado del proceso se observa en la parte derecha de la Figura 4.11. 64
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Figura 4.5: Ejemplo
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
27. Dado un ´arbol arbol binario de caracteres ordenado, listar todas las hojas del mismo, este proceso se repite hasta terminar vaciando el arbol. ´arbol.
2 3 3 5 5 F N I Figura 4.6: Ejemplo
Si se toma el ´arbol arbol de llaa figura 4.6, el resultados ser´ ser´ıa
B C C L M BDHPY CM GQ K
´ 28. Dad Dadoo un Arbol Bi nario, realice el (los) m´ Binario, eetodo(s) todo(s) necesario(s), para poder po der hacer un “mirror”del arbol. ´arbol. Es decir, todo lo que se encontraba en descendencia izquierda ahora ser´a descendencia derecha. Por ejemplo, en la figura 4.7 se observ observaa la ejecuci´ ejecuci´ oon n de “mirror” sobre el arbol ´arbol A .
29. Implement Implementar ar una aplicaci´ oon n que permita: a ) Crear un ´arbol arbol binario de b´ u usqueda squeda con datos ingresados en una lista. La lista contiene n´umeros umeros enteros. b ) Almac Almacenar enar en una estructura estructura adecuada la rama m´as as larga del arbol. ´arbol. c ) Encontrar la lista de elementos que son may mayores ores a la media aritm´ etica etica de los elementos del ´arbol. arbol. La m = (min min + may))/2 media aritm´eetica tica se define como: m = + may 65
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
Figuraa 4.7: Ejemplo de aplica Figur aplicaci´ ci´ on on de mirror
30. En una alde aldea, a, por decisi´ oon n de las autoridades han decidido sembrar en cada regi´oon n un tipo de tub´erculo. erculo. Es as´ıı,, que por p or ejemplo ej emplo la rregi´ egi´on on A s´olo olo siembra Oca y as´ı lo hacen todas las regiones. Desde la capital de esta aldea, se tiene una sola forma de llegar a cada regi´on. on. Se ha tenido un embate clim´aatico tico muy fuerte, y el responsable de econom´ econom´ıa ha di dispuesto spuesto y encargado que se le l e d´e un reporte del camino m´as as productivo de la aldea. Se dice que el camino m´as as productivo es aquel en el que puede cosechar la mayor diversidad de tu tub´ b´ercul erc ulos. os.
2 3 3 5 5 F N I -
a ) Elige la estructura MAS ADECUADA que permita modelar y representar el problema b ) Describe la ESTRUCTURA de los elementos que residir´an an en la estructura de datos que elegiste en el anterior inciso c ) Define el (los) m´etodos etodos necesarios para responder el requerimiento del responsable de econom´ııaa de la aldea 31. Dados dos arboles a´rboles binarios de elementos de tipo T que son fusionables, se desea encontrar el ´aarbol rbol binario fusionado si es posible. Se dice que un elemento es fusionable ya que pueden unirse a otros elementos de tipo T, a trav´eess de un m´etodo eto do cuya firma es: T fusionar(T ) Se dice que se puede fusionar dos ´aarboles rboles de elementos fusionables, si son semejantes. Se dice que dos ´arboles arboles son semejantes, si tienen la misma estructura (ver Figura 4.8)
B C C L M Figura 4.8: Ejemplo de semejanza de ´arboles arboles En caso de que no sean semejantes, la respuesta deber deber´´ıa ser un ´arbol arbol binario vacio. 32. Dado un Arbol caracte caracteres, res, sedepide encont encontrar rar una lista que conte contenga, nga, las hojas que tiene el arbol ´arbol por niveles. PorBinario ejemplodedado el arbol la figura 4.9 Del Arbol A el resultado seria: 66
UMSS
Gu´ıa ıa de Pr´ acticas acticas
3 3 5 5 2 F N I -
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
Figura 4.9: Arbol A
{{}, {{}, {}, {e, {e, f, c}, {g}, {g}, {a, {a, h}} h}}
33. Dados A y B ´aarboles rboles binarios, se requiere saber si cumplen la condici´on on de igualdad de contenido. Se dice que dos ´arboles arboles tiene igualdad de contenido si sus datos en contenido son los mismos y adem´aass ´eesto s toss est´ an an en el mismo nivel en ambos ´arboles. arboles. Condiciones: dos ´aarboles Condiciones: dos rboles binarios son iguales si tienen el mismo nivel y los elementos por nivel son iguales, no importa el orden. Entonces, se averigua si tienen mismo nivel si es as as´´ı se empieza a probar los elementos nivel por nivel, basta que encuentre un nivel en el que los elementos no sean iguales entonces los ´arboles no son iguales.
B C C L M
Se da por hecho que los ´aarboles rboles saben dar su nivel, sin embargo no saben dar sus elementos por niveles. Tambi´ ambi´ een n se da por hec hecho ho que las listas saben responder de form formaa correcta correcta a la pregunta pregunta de si es igual de contenido con otra. a ) Define el m´etodo etodo en la clase Arbol Bi Binario, nario, que permita p ermita recoger los elementos de un nivel N b ) Escribe el m´ etodo etodo iguales en una clase aparte que reciba dos ´arboles arboles binarios A y B y decida si cumplen cump len la condic condici´ i´oon n de igualdad de contenido.
34. Se tien tienee un Arbol Arbol Bin Binari arioo A, se desea sabe saberr si A tiene tiene una podaci´ on on copa, se dice que un ´arbol arbol binario tiene podaci´on on copa si para todas las ramas del ´aarbol rbol se cumple que tiene por lo menos la mitad de los nodos de la rama m´as as larga larga.. Realic Realicee el(los el(los)) m´ etodo(s) etodo(s) que permit permitan an decidir decidir si un Arbol Binario Binario tiene podaci´ on on copa. ´ 35. Se tien tienee un Arbol Binario de B´ u usqueda squeda A de n´ u umeros meros enteros, se desea saber si el ´arbol arbol tienen por lo menos una secuencia creciente seguida en pasos d. Se dice que B es una secuencia creciente seguida en todo b i , bi+1 que pertenece a B, se cumple que pasos d si se da lo siguiente: B = b = b 1 , b2 , b3 , b4 ,...,bn y para todo b 67
67
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
bi+1 − bi = d. Escriba el (los) m´ etodo(s) etodo(s) necesario(s) para saber sab er si A tiene por p or lo menos alguna secuencia creciente seguida en pasos d.
S S M U -
36. Se tiene un Arbol Binar Binario io A, se desea saber si A tiene una podaci´on on sim´ s im´etrica, etrica, se dice d ice que un ´arbol arbol binario tiene podaci´on on sim´etrica etrica si para todos los niveles del arbol se cumple cumple que tiene por p or lo menos menos la mitad de los nodos permisibles. Se sabe que la cantidad m´axima axima de nodos permisibles en un nivel es 2niv . Realice el(los) metodo(s) que permitan decidir si un Arbol Binario tiene podaci´on on si sim´ m´eetri t rica. ca. 37. Se tiene un Arbol Binario A, se desea saber si este ´arbol es tambi´ tambi´en en balanceado por compensaci´ on. on. Un arbol binario es balanceado por compensaci´on on si la altura alterna de sus subarboles difiere en a lo sumo 1, es decir si en el ´arbol arbol el subarbol derecho es mas alto (a lo sumo con uno) que el subarbol izquierdo, entonces en estos subarboles subarbol es correspondientes deber´ deber´ıan los respectivos resp ectivos subarboles izquierdos ser mas altos que los derechos, y en la pr´oxima oxima validaci´oon n nuevamente los derechos y luego los izquierdos y asi sucesivamente... sucesiva mente... Realiza el (los ) m´ etodo(s) etodo(s) necesarios para poder po der decidir si un arbol ´arbol binario es balanceado por compensaci´on on 38. Dad Dadoo dos aarboles ´rboles binarios de enteros A y B, se desea saber si ellos son sempeso n. Se dice que dos ´arboles arboles son sempeso n, si tienen la misma estructura y ademas la suma de sus elementos difiere en a lo sumo n . Por ejemplo, ejemplo, considera considerando ndo la Figura 4.10; los ´aarboles rboles A1 y B1 son sempeso para n = 10, pero los ´aarboles rboles A1 y C1 no lo son (son semejantes en estructura pero no cumplen la condici´on on del peso) y tampoco A1 y D1 (cumplen la condici´on on del peso pero no de la semejanza de estructura).
3 3 5 5 2 F N I -
B C C L M
Figura 4.10: Ejemplo de arboles con sempeso
39. Un prin principe cipe est´ esta´ en edad de contrae contraerr nupcias, para ello necesita necesita encontrar encontrar a una princesa; princesa; por p or lo que, pide a su asesor realizar la tarea de encontrar a la afortunada, pero... el principe tiene condiciones que debe considerar el asesor: a) tiene una comarca definida en la cual se buscar´a a la princesa, b) no est´a dispuesto a arriesgar su vida y c) no tiene la m´ınima intenci´oon n de recorrer caminos largos. El asesor ha analizado la comarca indicada por el principe y ha notado que a todas las regiones de las mismas se puede llegar a partir partir de un punto punto inicial, y por fortuna fortuna tiene el dato de los lugares donde vive alguna princesa, princesa, as´ as´ı mismo los lugares donde habitan feroces dragones y regiones donde habitan bondadosas hadas. Con esta informaci´ on on el asesor debe cumplir la tarea que el principe le ha encomendado y retornar con los datos de la princesa que cumple con las condiciones del principe, en caso de que existiera. a ) Elige la estructura MAS ADECUADA que permita modelar y representar el problema
68
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
b ) Describe la ESTRUCTURA de los elementos que residir´an an en la estructura de datos que elegiste en el anterior inciso c ) Define el (los) m´etodos etodos necesarios para ayudar al asesor del palacio a responder el requerimiento del principe.
S S M U -
40. Se desea validar un discurso que tiene v varias arias frases, para ello se ha dispuesto de un diccionario de palabras permitidas (sin contar acentos) y otro de palabras denomidas stop denomidas stop.. Debido a que el discurso tiene mucha importancia import ancia se ha decidido decidido quitar del discur discurso so aquellas frases que contengan contengan mas del 50 % de palabras palabras no v´ alidas. alidas. stop:: Por ejemplo: si se tiene el diccionario de palabras v´aalidas lidas y el de de stop D I C C I O N A R I O cerca superacion ahora constancia hora corriente concurso tezon examen excluido competencia clasificacion
S T O P y es o un de una la esa el con
se su sus lo a
les
3 3 5 5 2 F N I -
cantidad valor
Y el siguiente discurso:
| | | | | | | |
las los
que por
en le
estimados estima dos competid competidore ores s est esta a es una pru prueba eba que les permi permitir tira a lle llegar gar mas all alla a de lo que esperan espe ran exit exito o en sus empr emprendi endimien mientos tos adel adelante ante con tezo tezon n cons constanc tancia ia esfu esfuerzo erzo y sacr sacrific ificio io el tezo tezon n y esfu esfuer erzo zo que que uste ustede des s le pone ponen n a la comp compet eten enci cia a es un exam examen en a la ho hora ra de la clasif cla sifica icacio cion n la consta constanci ncia a es cam camino ino a la sup supera eracio cion n y aho ahora ra que se ace acerca rca el fin final al de la compet competenc encia ia es hor hora a de dem demost ostrar rar su val valor or con consta stanci ncia a y sup supera eracio cion n
La primera frase tiene 14 palabras no permitidas de las 16 que no son stop, por lo tanto debe ser desechada del discurso. La segunda frase tiene 6 palabras no permitidas de las 20 que no son stop, por lo tanto debe ser incluida en el discurso.
B C C L M
Sobre la base de esta descripci´on on se pide: a ) iden identifica tificarr las estructura estructurass de datos MAS adecuadas adecuadas para modelar el dominio dominio del problema: problema: diccionarios y discurso b ) defini definirr de forma clara la estructura estructura de los elem element entos os que contendr contendr´an ´an las estructuras de datos antes elegidas c ) imple implemen mentar tar el (los) m´eetodo(s) todo(s) necesario( necesario(s) s) para dado un discu discurso, rso, generar generar otro con las frases frases correctas, rrect as, de acuer acuerdo do a descr descripci´ ipci´ oon n del problema
41. Los gigant gigantes es de acero, acero, son robots luchado luchadores res que han generado generado un movimiento movimiento econ´ omico omico muy grande en las casas de apuesta y competencias de esta naturaleza. Sin embargo muchas de estas casas son ilegales y s´olamente olamente las personas involucradas en el negocio saben de estos lugares. Existe una red bien montada de estas casas, las mismas que est´an an distribuidas estrat´egicamente, egicamente, de tal manera que para llegar de una casa a otra se tiene exactamente un camino. En estas casas, se tiene una lista de las personas que han apostado, han perdido y no han pagado. Por lo que cuando una persona desea apostar, lo primero que se hace es consultar los datos para verificar si no es una persona con deudas, si es asi se deja a la persona apostar, pero si no es imposible que esta persona pueda realizar una apuesta en esa casa, es m´as.... as.... es
69
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
posible que corra riesgo estando alli. Max, es un apostador empedernido que ha trazado una ruta v´alida de las casas en las que quier quieree jugar jugar,, pero tambi tambi´´een n es una persona que no ha respetado respetado sus deudas, deudas, por lo que debes ayudarle a cuidarse de entrar en los sitios en los cuales debe dinero producto de anteriores apuestas. El programa debe decirle en que casas puede entrar a apostar. Para ellos Max s´olo cuenta con los nombres de las casas.
S S M U -
Por ejemplo, si se tiene la siguiente informaci´on on de las casas: de donde se llega, su nombre y la lista de deudores.... ANTERIOR Tron Tron Mega Masa Masa Klavera Dinamo
NOMBRE Tr Tron on Masa Mega Kron Tera Klavera Dinamo Klaus
Mega Zoo Kron
Zoo Museo Mauso
LISTA DEUDORES Max, ax, Luis Luis, , Pac aco, o, Orian rian, , Ame meri rica ca Paco, Lucas, Orian, Viola Lucas, Violeta, Orian, Marcos Hugo, Orian, Laura Luis, Max, Orian, Cornelius Joana, Juan, Orian, Luis Paco, Hugo, Orian, Luis Lucas, Max, Orian
3 3 5 5 2 F N I Luis, Orian, Joana Carla, Orian, Carlos Orian, Carla
Y Max quiere realizar la siguiente ruta {Dinamo, Klavera, Masa, Tron, Mega, Zoo}, s´olamente olamente podr´a entrar sin correr ning´ un un riesgo a: { Klavera, Mega, Zoo}. Por supuesto, supuesto, como es de esperarse esperarse es posible que la lista resultado sea vacia, ya que hay jugadores que ya no lo son, y m´as bien son embaucadores como Orian que ya no tiene pisada en ninguna de las casas. En este caso, debes proveer de generalidad a tu programa de tal manera que dado el nombre de un apostador y una ruta tentativa, tentativa, p permita ermita encontrar la lista de casas que puede visitar. Por razones estrat´ egicas egicas es imposible que las casas est´een n aglomeradas alrededor de una casa, por p or lo que partir de una casa s´olo olo se puede llegar a dos casas y as´ as´ı sucesivam sucesivamente. ente. Sobre la base de esta descripci´on on se pide:
B C C L M
a ) iden identifica tificarr las estructura estructurass de datos MAS adecuadas adecuadas para modelar el dominio dominio del problema. problema. b ) defini definirr de forma clara la estructura estructura de los elem element entos os que contendr contendr´an ´an las estructuras de datos antes elegidas c ) implementar el (los) m´eetodo(s) todo(s) necesario(s) para dada una ruta tentativa tentativa y un apostador, encontrar la ruta sin riesgo.
HINT: las casas en las que NO puede entrar son aquellas en las que la cantidad de vecinos en los que HINT: tiene deuda son mayores o iguales a la cantidad de casas en las que no tiene deuda. ( ( ross) ross)
´ 42. Dad Dadoo un Arbol Binario de enteros, se te pide decidir si est´a ordenado en alguno de los ordenes de recorrido. OPTIMO para resolver el problema. Trata de hacer un proceso EFICIENTE proceso EFICIENTE Y OPTIMO para 43. Un equipo de desarrollo soft softwar ware, e, est´ a trabajando en un nuevo sistema operativo y requiere implementar una t´ecnica ecnica de almac almacenam enamient ientoo que obliga al usuar usuario io a almacenar almacenar en una ruta desde la raiz raiz c: de la computadora, considerando que jam´as as las bifurcarciones desde la raiz c: raiz c: y y los directorios de la PC pueden ser m´aass de dos.
70
UMSS
Gu´ıa ıa de Pr´ acticas acticas
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
Cada vez que se guarda un archivo se almacena su respectivo identificador (nombre), su ruta de acceso y adem´ as as el momento en el que fue almacenado; esto p permite ermite tener una cronolog´ cronolog´ıa de almacenamiento. almacenamiento. La tarea que tiene este equipo de desarrollo de cabeza, es que deben plantear la inserci´oon n del archivo en la PC, considerando como criterio de ordenaci´on on el nombre del archivo. Por otro lado est´an an presionados respecto al uso de memoria por lo cual la informaci´on de todos los archivos en este sistema operativo se deben almacenar en una sola estructura de datos.
S S M U -
Un otro requerimiento es que sobre la base de esta informaci´on on se debe reportar los ‘n’ primeros archivos almacenados, los ‘n’ u ultimos ´ ltimos archivos almacenados. El equipo equipo de desarr desarroll olloo est´ esta´ lidiando con otros problemas m´as, as, propio propioss del desarr desarroll olloo de un sis sistem temaa operativo, por lo que han solicitado que les ayudes en las tareas antes descritas; para ello: a ) elige la estructura de datos que m´as as se adecue para resolver el problema.
b ) descr describe ibe la estru estructur cturaa de los elemen elementos tos que residir´ an an en la estructura de datos que elegiste (realiza el modelo). NOTA recuerda c ) escri escribe be el (los) m´eetodo(s) todo(s) que permit permitan an encon encontrar trar los ‘n’ archivo archivoss m´ as as recientes. NOTA recuerda que el orden cronol´ogico ogico es u unico ´ nico y que cada archivo conoce su orden cronologico de ingreso; por lo
3 3 5 5 2 F N I -
que el equipo espera que les brindes una soluci´oon n OPTIMA ´ mejor si se puede resolver en una sola pasada en la estructura. No confundas orden con tiempo 44. Piensa en un ´arbol arbol ternario de b´u usqueda squeda parcial- ArbolTriBP, en el que sus descendencias son izq − med − der una peculiaridad de este ´aarbol rbol es que sus datos estan ordenados parcialmente, es decir que izq < med < der. der. Un ejemplo de un ´aarbol rbol ternario de b´ usqueda usqueda parcial se muestra en la figura 4.11 inciso a). a). Puedes asumir que el ´aarbol rbol nunca genera un nivel a menos que el anterior este lleno. Por otro lado siempre se inserta en el primer lugar que se tiene libre considerando una inserci´oon n por amplitud. 20
10
7
20
30
10
7
9
11
21
2
30
15
B C C L M
9
11
21
1
2
15
b) ArbolTr ArbolTriBP iBP despues de insertar 1, se realiza el cambio entre los hermanos involucrados
a) ArbolTriBP
Figura 4.11: Ejemplo
b se muestra como seria el resultado de insertar 1 en la estructura. En la figura figura 4.11, 4.11, inciso inciso b
Se te pide escribir el m´ etodo etodo insertar un dato en el ArbolTriBP ArbolTriBP,, l´ıneas aba jo se te muestra parte del c´odigo odigo de un ArbolTriBP:
public publ ic class ArbolTri ArbolTriBP { privat pri vate e T rai raiz; z; private priv ate Arbo ArbolTri lTriBP BP izq, med, der; public ArbolTriBP( ArbolTriBP(){ ){ raiz rai z = nul null; l; izq = med = der = null;
71
UMSS
Gu´ıa ıa de Pr´ acticas acticas
} public publ ic void insertar insertar(T (T d){ // debes debes defi definirl nirlo o } }
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
45. El c´ odigo odigo gen´etico etico ADN tiene la fu funci´ nci´on on de “guardar informaci´oon”. n”. Es decir, contiene las instrucciones que determinan la forma y caracter´ caracter´ısticas de un organismo y sus funciones. Cient´ Cient´ıficos Bi´ologos ologos almacenaron muestras de ADN en una estructura de ´aarbol rbol y detectaron muestras de especies desaparecidas, para una mejor organizaci´on on de su informaci´on on desean, eliminar de dichas estructuras de almacenamiento todas las muestras muestras que corresponden corresponden a estas especies desaparec desaparecidas. idas. La informaci´ informaci´ on on que almacena el ADN est´ a representada por secuencias de caracteres que s´olo olo pueden ser cuatro: A (Adenina), T (Timina), C (Citosina) o G (Guanina). Y el gen que identifica a estas especies desaparecidas son “ATA”, si por ejemplo se tiene la cadena genetica “ACAGA” esta no tiene el gen de una especie desaparecida. por lo que se mantiene, pero si fuera “ACA “ACAT TA”, esa cadena tiene el gen de especie desaparecida y deber´ıa ıa eliminarse del arbol. ´arbol. Este ´aarbol rbol es muy especial como se ve en la figura 4.12, en este ´arbol hay 10 cadenas gen´eticas eticas registradas.
3 3 5 5 2 F N I Figura 4.12: Arbol de ADN
B C C L M
a ) Deter Determima mima que tipo de arbol requi requieres eres para resolver resolver de manera manera eficiente eficiente el problema. problema. b ) Escribe los m´ etodos etodos necesarios necesarios que permit permitan an elimin eliminar ar las muestras muestras de las especies especies desaparec desaparecidas idas almacenadas. La desaparicion debe ser EFICIENTE, mejor si lo haces en una pasada.
46. Un equipo de desar desarrollo rollo est´ a trabajan trabajando do en la imple implemen mentaci´ taci´ on on de un verificador de discursos, de acuerdo a un estudio realizado la mayor mayor´ıa de llaa p poblaci´ oblaci´oon n tiene dificultades en la redacci´on, on, tienden a repetir una misma palabra varias veces en un p´aarrafo. rrafo. En una primera etapa se tiene el desaf´ desaf´ıo de dado un p´ arrafo arrafo verifique si existe o no palabras repetidas m´as as de dos veces. El reporte deberia darlo de manera ordenada con las palabras que se repiten y ademas de la cantidad de veces que se repiten a ) Elije la estructur estructuraa de datos adecu adecuada ada para resolve resolverr de manera manera eficiente eficiente el problema problema b ) Descr Describe ibe la estructur estructuraa de los datos que almacenaran almacenaran tus estructu estructuras ras de datos datos c ) Escribe los m´ eetodos todos necesari necesarios os que permit permitan an verificar verificar si el p´ arrafo arrafo tiene o no m´as as de dos palabras repetidas. d ) Escribe el m´ etodos etodos que te permita recoger el reporte de las palabras repetidas y sus frecuencias
72
UMSS
Gu´ıa ıa de Pr´ acticas acticas
3 3 5 5 2 F N I -
Mgr. Lic. Ma. Leticia Leticia Blanco Coca
S S M U -
Los ejercicios planteados en este documento, fueron creados para realizar pr´ a acticas cticas en clase y recopilados de ex´ amenes amenes de la materia. Algunos extra extra´ ´ıdos de fuentes externas y otros son la creaci´ on on de docentes y auxiliares de la materia, de distintas gestiones. Esta pr´actica actica est´a en constante actualizaci´on, on, si observas alg´ un un error, reportalo a:
[email protected]. Muchas gracias !!!!
B C C L M