int JJOO::maximaDistanciaEntreJornadas(Lista<int> jornadas) const { // Puedo asumir que recibo dos o más jornadas. // Guardo acá las distancias calculadas. Lista<int> distancias; // Calculo todas las distancias entre jornadas. int i = 1; while (i < jornadas.longitud()){ distancias.agregarAtras(jornadas.iesimo(i) - jornadas.iesimo(i - 1)); i++; } // Busco la máxima distancia. int maximaDistancia; i = 0; while(i < distancias.longitud()) { if(i == 0 || distancias.iesimo(i) > maximaDistancia) { maximaDistancia = distancias.iesimo(i); } i++; } return maximaDistancia; }
Lista<DNI> Hotel::sacarRepetidos(const Lista<DNI>& dnis) const { Lista<DNI> result; int i = 0; int longitud = dnis.longitud(); //Pc: i == 0 $ \land $ longitud == $ |dnis| $ $ \land $ result == [] //B: i < longitud while( i < longitud ){ //Fv: longitud - i //Cota: 0 //I: 0$ \leq $i$ \leq $longitud $ \land $ longitud == $ |dnis| $ $ \land $ result == [$ dnis_k $| k$ \selec $[0..i), ($ \lnot $$ \exists $j$ \selec $[0..k)) $ dnis_j $ == $ dnis_k $] //Estado e1 //Vale B $ \land $ I if( !result.pertenece(dnis.iesimo(i)) ){ result.agregarAtras(dnis.iesimo(i)); } //Qif:(($ dnis_i $ $ \in $ result) $ \land $ (result == result@e1) )$ \lor $( ($ dnis_i $ $ \notin $ result) $ \land $ (result == result@e1 ++ [$ dnis_i $])) //estado e2 //vale Qif $ \land $ i == i@e1 i++; //estado e3 //vale i == i@e2 + 1 $ \land $ result == result@e2 } //Qc: result == [$ dnis_i $| i$ \selec $[0..longitud), ($ \lnot $$ \exists $j$ \selec $[0..i)) $ dnis_j $ == $ dnis_i $] return result; //vale result == [$ dnis_i $| i$ \selec $[0..longitud), ($ \lnot $$ \exists $j$ \selec $[0..i)) $ dnis_j $ == $ dnis_i $] }
Lista<Atleta> JJOO::losMasFracasados(const Pais p) const { //Crea una lista con los atletas que ganaron medallas int h=0; Lista<Atleta> rank; while(h<competenciasFinalizadasConOroEnPodio().longitud()){ if (competenciasFinalizadasConOroEnPodio().iesimo (h).ranking().longitud()<3){ rank.concatenar(competenciasFinalizadasConOroEnPodio().iesimo(h).ranking()); }else{ // 0, 1 y 2 en vez de 1,2,3 rank.agregar(competenciasFinalizadasConOroEnPodio().iesimo (h).ranking().iesimo(0)); rank.agregar(competenciasFinalizadasConOroEnPodio().iesimo (h).ranking().iesimo(1)); rank.agregar(competenciasFinalizadasConOroEnPodio().iesimo (h).ranking().iesimo(2)); } h++; } //Este ciclo me da una lista de atletas del pais p que no ganaron ninguna medalla Lista<Atleta> atles; int n = 0; while (n < atletas().longitud()){ Atleta competidor = atletas().iesimo(n); if ((competidor.nacionalidad()== p) && !rank.pertenece(competidor)) { atles.agregar(competidor); } n++; } //Divido en dos casos, si la lista es vacia o si tiene al menos un elemento Lista<Atleta> atlesFracasados; if (atles.longitud()==0){ atlesFracasados=atles; } else{ //Acá me fijo cual es el atleta que participó en mas competencias int k = 0, j=0; Atleta maxAp = atles.iesimo(k); Lista<Atleta> atlecomp= participantes(); while (j < atles.longitud()){ if (atlecomp.cantidadDeApariciones(maxAp)>atlecomp.cantidadDeApariciones(atles.iesimo(j))){ maxAp = atles.iesimo(j); } j++; } //Acá creo la lista con todos los atletas que aparecen tantas veces como maxAp atlesFracasados.agregar(maxAp); int m=0; while (m < atles.longitud()){ //No estabas viendo si el que tenia la misma cantidad de apariciones era el mismo if( atlecomp.cantidadDeApariciones(maxAp) == atlecomp.cantidadDeApariciones(atles.iesimo(m)) && !(atles.iesimo(m) == maxAp)) { atlesFracasados.agregar(atles.iesimo(m)); } m++; } } return atlesFracasados; }
Lista<pair<Pais,Lista<int> > > JJOO::ordenarMedallero(const Lista<pair<Pais,Lista<int> > > & medallero) const { // Guardo acá mi copia ordenada del medallero. Lista<pair<Pais, Lista<int> > > ordenado; // Recorro el medallero. int i = 0; while(i < medallero.longitud()) { // Obtengo la tupla país/medallas actual y las medallas (para más legibilidad.) pair<Pais, Lista<int> > tuplaActual = medallero.iesimo(i); int oros = tuplaActual.second.iesimo(0); int platas = tuplaActual.second.iesimo(1); int bronces = tuplaActual.second.iesimo(2); // Guardo acá una copia de las tuplas país/medallas que ya ordené, junto con // la tupla país/medallas actual en la posición correcta. Lista<pair<Pais, Lista<int> > > nuevoOrdenado; bool agregado = false; // Recorro las tuplas país/medallas que ya ordené. int j = 0; while(j < ordenado.longitud()) { int orosOtro = ordenado.iesimo(j).second.iesimo(0); int platasOtro = ordenado.iesimo(j).second.iesimo(1); int broncesOtro = ordenado.iesimo(j).second.iesimo(2); // Ubico a la tupla país/medallas actual en la posición correcta dentro de la lista ordenada. if( !agregado && ((oros > orosOtro) || (oros == orosOtro && platas > platasOtro) || (oros == orosOtro && platas == platasOtro && bronces >= broncesOtro))) { nuevoOrdenado.agregarAtras(tuplaActual); agregado = true; } // Dejo la tupla que ya había ordenado en la posición que le corresponde. nuevoOrdenado.agregarAtras(ordenado.iesimo(j)); j++; } // Si luego de recorrer las tuplas país/medallas ya ordenadas resulta que todavía no agregué // la tupla país/medallas actual, es porque la tupla actual es la que menos medallas tiene, y // por lo tanto su posición es al final de la lista. if(!agregado) nuevoOrdenado.agregarAtras(tuplaActual); // Finalmente, reemplazo el medallero ordenado actual por mi nuevo medallero ordenado, que // incluye a la tupla país/medallas actual. ordenado = nuevoOrdenado; i++; } return ordenado; }
Lista<int> JJOO::generarRanking(const Competencia& competencia) const { // Guardo acá el ranking construído. Lista<int> ranking; Lista<Atleta> participantesSinRankear = competencia.participantes(); // Rankeo todos los participantes hasta quedarme sin participantes para rakear. while(participantesSinRankear.longitud() > 0) { // Busco el participante con menos capacidad entre los que aún no fueron rankeados. Atleta peorParticipante; int i = 0; while(i < participantesSinRankear.longitud()) { Deporte deporte = competencia.categoria().first; Atleta participante = participantesSinRankear.iesimo(i); // En caso de ser el peor hasta el momento, me quedo con el participante i-ésimo. if(i == 0 || participante.capacidad(deporte) < peorParticipante.capacidad(deporte)) { peorParticipante = participante; } i++; } // Agrego el peor participante hallado al principio del ranking. ranking.agregar(peorParticipante.ciaNumber()); // Lo elimino de la lista de participantes sin rankear. participantesSinRankear.eliminarPosicion(participantesSinRankear.posicion(peorParticipante)); } return ranking; }
void MostrarAtletas(Lista<Atleta> atletas, string titulo) { int tam = atletas.longitud(); cout << titulo << endl; for (int i = 0; i < tam; i++) { cout << i << " : " << atletas.iesimo(i).nombre() << endl; } }
bool Competencia::gananLosMasCapaces() const{ Deporte d = categoria().first; Lista<Atleta> rank = ranking(); int i = 0; bool res; while (i<_ranking.longitud()){ if (rank.longitud()<=1){ res = true; i = _ranking.longitud(); } else { if(rank.iesimo(0).capacidad(d) >= rank.iesimo(1).capacidad(d)){ rank.sacar(rank.iesimo(0)); } else { res = false; i = _ranking.longitud(); } } } return res; }
void Cine::cerrarSalasDeLaCadenaC(Lista<Cine> &cs, int e) const{ int i = 0; while (i<cs.longitud()) { Cine csi; csi = cs.iesimo(0); csi.cerrarSalasC(e); cs.agregarAtras(csi); cs.eliminarPosicion(0); i=i+1; } }
void TestTicket() { Ticket a(pelis[0],1,1); Ticket b(pelis[1],2,0); Ticket c(pelis[2],3,1); if(!(a.peliculaT()==pelis[0])) fallo=1,cout<<"Falla peliculaT"<<endl; if(!(b.peliculaT()==pelis[1])) fallo=1,cout<<"Falla peliculaT"<<endl; if(!(c.peliculaT()==pelis[2])) fallo=1,cout<<"Falla peliculaT"<<endl; if(a.salaT()!=1) fallo=1,cout<<"Falla salaT"<<endl; if(b.salaT()!=2) fallo=1,cout<<"Falla salaT"<<endl; if(c.salaT()!=3) fallo=1,cout<<"Falla salaT"<<endl; Lista<Ticket> ts; ts.agregarAtras(b); ts.agregarAtras(b); ts.agregarAtras(b); if(!a.usadoT()) fallo=1,cout<<"Falla usadoT" << endl; if(b.usadoT()) fallo=1,cout<<"Falla usadoT" << endl; if(!c.usadoT()) fallo=1,cout<<"Falla usadoT" << endl; b.usarT(); if(!b.usadoT()) fallo=1,cout<<"Falla usarT" << endl; ts.agregarAtras(b); Lista<Ticket> ts3; ts3 = ts; ts.agregarAtras(a); ts.agregarAtras(c); ts.agregarAtras(a); ts.agregarAtras(c); if(!(a.peliculaMenosVistaT(ts)==pelis[1])) fallo=1,cout<<"Falla peliculaMenosVistaT" << endl; Lista<Ticket> ts2; ts2 = ts; ts = a.cambiarSalaT(ts,2,4); for(int i = 0; i < ts.longitud(); i++) { if(!((ts2.iesimo(i).salaT() == 2 && ts.iesimo(i).salaT() == 4) || (ts2.iesimo(i).salaT() != 2 && ts.iesimo(i).salaT() == ts2.iesimo(i).salaT()))) fallo = 1, cout << "Falla cambiarSalaT" << endl; } if(a.todosLosTicketsParaLaMismaSalaT(ts)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl; if(a.todosLosTicketsParaLaMismaSalaT(ts2)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl; if(!a.todosLosTicketsParaLaMismaSalaT(ts3)) fallo = 1, cout << " Falla todosLosTicketsParaLaMismaSalaT" << endl; ///Ticket ingresarASalaC(Sala s, const Ticket &t); /// }
Lista<pair<Pais, Lista<int> > > JJOO::medallero() const { Lista<Pais> paises = this->paises(); Lista<pair<Pais, Lista<int> > > medallero; // Recorro la lista de países. int i = 0; while(i < paises.longitud()) { Pais pais = paises.iesimo(i); int oros = 0; int platas = 0; int bronces = 0; // Recorro los rankings de todas las competencias y acumulo las medallas del país actual. int j = 0; while(j < competencias().longitud()) { Lista<Atleta> ranking = competencias().iesimo(j).ranking(); if(ranking.longitud() > 0 && ranking.iesimo(0).nacionalidad() == pais) oros++; if(ranking.longitud() > 1 && ranking.iesimo(1).nacionalidad() == pais) platas++; if(ranking.longitud() > 2 && ranking.iesimo(2).nacionalidad() == pais) bronces++; j++; } // Si el país ganó alguna medalla, agrego al medallero la tupla país/medallas. if(oros + platas + bronces > 0) { Lista<int> medallas; medallas.agregarAtras(oros); medallas.agregarAtras(platas); medallas.agregarAtras(bronces); medallero.agregar(make_pair(pais, medallas)); } i++; } // Devuelvo el medallero ordenado return ordenarMedallero(medallero); }
Lista<Pais> JJOO::sequiaOlimpica() const { Lista<Pais> paises = this->paises(); // Guardo acá una lista de tuplas país/máxima cantidad de días que pasaron sin ganar medallas. Lista<pair<Pais,int> > paisDiasSinGanar; // Recorro todos los países. int i = 0; while (i < paises.longitud()) { Pais pais = paises.iesimo(i); // Armo una lista con las jornadas ganadoras de ese país. Lista<int> jornadasGanadoras; // Agrego un cero al principio de la lista para poder calcular // las diferencias entre días (como en la especificación.) jornadasGanadoras.agregar(0); // Recorro las jornadas hasta la actual, excluyéndola. int j = 1; while (j < jornadaActual()){ // Si el país ganó alguna medalla en la jornada // actual, agrego la jornada a la lista. if(ganoMedallasEseDia(pais, j)) { jornadasGanadoras.agregarAtras(j); } j++; } // Agrego la jornada actual al final de la lista, para poder calcular // las diferencias entre días (otra vez, como en la especificación.) jornadasGanadoras.agregarAtras(jornadaActual()); // Calculo la máxima diferencia entre días, y agrego // la tupla país/diferencia de días a la lista. paisDiasSinGanar.agregarAtras(make_pair(pais, maximaDistanciaEntreJornadas(jornadasGanadoras))); i++; } // Busco la máxima cantidad de días que algún país pasó sin ganar medallas. int maximosDiasSinGanar; i = 0; while(i < paisDiasSinGanar.longitud()) { if(i == 0 || paisDiasSinGanar.iesimo(i).second > maximosDiasSinGanar) { maximosDiasSinGanar = paisDiasSinGanar.iesimo(i).second; } i++; } // Me quedo con los países cuya mayor cantidad de días sin ganar medallas // es mayor o igual que la del resto de los países. Lista<Pais> secos; i = 0; while (i < paisDiasSinGanar.longitud()) { if(paisDiasSinGanar.iesimo(i).second == maximosDiasSinGanar) { secos.agregar(paisDiasSinGanar.iesimo(i).first); } i++; } return secos; }
bool JJOO::uyOrdenadoAsiHayUnPatron() const { // Guardo acá la secuencia de mejores países. Lista<Pais> mejoresPaises; // Recorro los juegos día por día. int dia = 1; while(dia <= cantDias()) { // Guardo acá la cantidad de oros por país. Lista<pair<Pais, int> > oros; // Recorro el las competencias de este día. int i = 0; while(i < cronograma(dia).longitud()) { Competencia actual = cronograma(dia).iesimo(i); // Si la competencia actual está finalizada y alguien se llevó el oro, // voy a buscar la nacionalidad del medallista y voy a sumarle un oro a // ese país en mi lista de oros por país. En caso contrario, ignoro // esta competencia. if(actual.finalizada() && actual.ranking().longitud() > 0) { Pais pais = actual.ranking().iesimo(0).nacionalidad(); // Busco el país del medallista en mi lista de oros por país. bool encontrado = false; int j = 0; while(j < oros.longitud() && !encontrado) { // Si encontré el país del medallista en mi lista de oros por país, // aumento en uno la cantidad de oros de ese país. if(oros.iesimo(j).first == pais) { pair<Pais, int> nuevaTupla = make_pair(oros.iesimo(j).first, oros.iesimo(j).second + 1); oros.eliminarPosicion(j); oros.agregarAtras(nuevaTupla); encontrado = true; } j++; } // Si el país del medallista no estaba en la lista de oros por país, // agrego ese país a la lista, con cantidad de oros uno. if(!encontrado) { oros.agregarAtras(make_pair(pais, 1)); } } i++; } // Si hubieron oros este día, busco al mejor país y lo agrego a mejoresPaises. if(oros.longitud() > 0) { // Guardo acá el mejor país hasta el momento (tupla país/oros.) pair<Pais, int> mejorPais; // Recorro la lista de oros por país. i = 0; while(i < oros.longitud()) { // Si el país i-ésimo es el primero de la lista de oros, o si tiene más oros que el mejor país // hasta el momento, o si tiene igual cantidad de oros pero es lexicográficamente menor, // entonces convierto al país i-ésimo en el mejor país hasta el momento. if( i == 0 || oros.iesimo(i).second > mejorPais.second || (oros.iesimo(i).second == mejorPais.second && oros.iesimo(i).first < mejorPais.first)) { mejorPais = oros.iesimo(i); } i++; } // Finalmente, agrego al mejor país del día a la lista de mejores países. mejoresPaises.agregarAtras(mejorPais.first); } dia++; } bool hayPatron = true; // Busco patrón si y sólo si hay tres o más mejores países. if(mejoresPaises.longitud() >= 3) { // Recorro la lista de mejores países hasta el anteúltimo elemento. int i = 0; while(i < mejoresPaises.longitud() - 1) { Pais actual = mejoresPaises.iesimo(i); Pais siguiente = mejoresPaises.iesimo(i + 1); // Recorro todos los países a la derecha del país actual int j = i + 1; while(j < mejoresPaises.longitud() - 1) { // Si el país j-ésimo es el mismo que el actual, verifico que el patrón // se cumpla (el elemento siguiente siempre debe ser el mismo.) if(mejoresPaises.iesimo(j) == actual) { hayPatron = hayPatron && (mejoresPaises.iesimo(j + 1) == siguiente); } j++; } i++; } } return hayPatron; }
JJOO MenuCrearJJOO() { int anio; Lista<Atleta> atletas = Lista<Atleta>(); Lista< Lista<Competencia> > cronograma = Lista< Lista<Competencia> >(); cout << "Ingrese el año del Juego olimpico: " << endl; cin >> anio; bool otraFecha; string eleccion; cout << "¿Desea ingresar una fecha al JJOO? [s/n] "; cin >> eleccion; otraFecha = eleccion == "s"; while(otraFecha) { cout << endl; cout<< "Ingresando nueva Fecha" << endl; Lista<Competencia> nuevaLista = Lista<Competencia>(); bool otraCompetencia; cout << "Desea ingresar una competencia? [s/n] "; cin >> eleccion; otraCompetencia = eleccion == "s"; while(otraCompetencia) { nuevaLista.agregarAtras(MenuCrearCompetencia()); cout << "Desea ingresar otra competencia? [s/n] "; cin >> eleccion; cout << endl; otraCompetencia = eleccion == "s"; } cronograma.agregarAtras(nuevaLista); cout << "¿Desea ingresar otra fecha al JJOO? [s/n] "; cin >> eleccion; otraFecha = eleccion == "s"; } cout << "¿Desea ingresar todos los participantes de las competencias ingresadas? :" << endl; cin >> eleccion; if (eleccion == "s") { for (int i = 0; i < cronograma.longitud(); i++) { for (int j = 0; j < cronograma.iesimo(i).longitud(); j++) { for(int k = 0; k < cronograma.iesimo(i).iesimo(j).participantes().longitud(); k++) { if (!atletas.pertenece(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k))) { atletas.agregarAtras(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k)); } } } } } bool otroAtleta; cout << "Desea ingresar otro atleta? [s/n] " << endl; cin >> eleccion; otroAtleta = eleccion == "s"; while(otroAtleta) { atletas.agregarAtras(MenuCrearAtleta()); cout << "Desea ingresar otro atleta? [s/n] "; cin >> eleccion; cout << endl; otroAtleta = eleccion == "s"; } return JJOO(anio, atletas, cronograma); }
void MenuJJOO() { int maximaOpcion = 2; cout << "Creando competencia" << endl << "0. Volver al Menu Principal" << endl << "1. Crear JJOO" << endl << "2. Cargar JJOO" << endl; if (jjooCreado) { maximaOpcion = 19; cout << "3. Transcurrir dia" << endl << "4. StevenBradbury" << endl << "5. LiuSong" << endl << "6. Los mas fracasados" << endl << "7. Medallero" << endl << "8. De paseo" << endl << "9. Sequia olimpica" << endl << "10. ¿Ordenados asi hay un patron?" << endl << "11. Boicot por disciplina" << endl << "12. Guardar" << endl << "13. Mostrar" << endl << "14. Ver anio" << endl << "15. Ver Jornada actual" << endl << "16. Ver atletas" << endl << "17. Cantidad de dias" << endl << "18. Atleta Prodigio" << endl << "19. Deportes no olimpicos" << endl; } int opt = LeerOpcion(maximaOpcion); LimpiarPantalla(); switch(opt) { case 0: { LimpiarPantalla(); break; } case 1: { LimpiarPantalla(); jjoo = MenuCrearJJOO(); jjooCreado = true; LimpiarPantalla(); MenuJJOO(); break; } case 2: { LimpiarPantalla(); ifstream archivoEntrada; AbrirArchivoParaLeer(archivoEntrada); jjoo.cargar(archivoEntrada); archivoEntrada.close(); jjooCreado = true; LimpiarPantalla(); MenuJJOO(); break; } case 3: { LimpiarPantalla(); cout << "Comenzando a transcurrir dia" << endl; jjoo.transcurrirDia(); cout << "Dia transcurrido" << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 4: { LimpiarPantalla(); cout << "Nombre: " << jjoo.stevenBradbury().nombre() << "CIA Number: " << jjoo.stevenBradbury().ciaNumber() << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 5: { int id; string pais; LimpiarPantalla(); MostrarAtletas(jjoo.atletas(), "Atletas del Juego Olimpico: "); cout << "Indique el atleta y el pais al cual sera nacionalizado :" << endl; cin >> id; cin >> pais; jjoo.liuSong(jjoo.atletas().iesimo(id), pais); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 6: { string pais; cout << "Indique el pais del cual desea conocer sus atletas mas fracasados: "; cin >> pais; MostrarAtletas(jjoo.losMasFracasados(pais), "Los mas fracasados: "); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 7: { cout << "Medallero olimpico" << endl; cout << "Pais" << " " << "Medallas" << endl; for (int i = 0; i < jjoo.medallero().longitud(); i++) { cout << jjoo.medallero().iesimo(i).first << " " << jjoo.medallero().iesimo(i).second << endl; } Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 8: { MostrarAtletas(jjoo.dePaseo(), "Atletas de paseo :"); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 9: { cout << "Sequia olimpica: " << endl; for (int i = 0; i < jjoo.sequiaOlimpica().longitud(); i++) { cout << jjoo.sequiaOlimpica().iesimo(i) << " "; } Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 10: { cout << "¿Hay un patron? " << jjoo.uyOrdenadoAsiHayUnPatron() << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 11: { string deporte, sexo, pais; Sexo sexoFinal; cout << "Indique el deporte y sexo de la categoria y el pais que desea boicotear : "; cin >> deporte; cin >> sexo; cin >> pais; if (sexo == "f" || sexo == "F" || sexo == "femenino" || sexo == "Femenino") { sexoFinal = Femenino; } if (sexo == "m" || sexo == "M" || sexo == "masculino" || sexo == "Masculino") { sexoFinal = Masculino; } jjoo.boicotPorDisciplina(pair<Deporte, Sexo>(deporte, sexoFinal), pais); cout << "Boicot aplicado" << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 12: { LimpiarPantalla(); ofstream archivoSalida; AbrirArchivoParaEscribir(archivoSalida); jjoo.guardar(archivoSalida); archivoSalida.close(); LimpiarPantalla(); MenuJJOO(); break; } case 13: { LimpiarPantalla(); jjoo.mostrar(cout); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 14: { cout << "Anio: " << jjoo.anio() << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 15: { cout << "Jornada actual: " << jjoo.jornadaActual() << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 16: { MostrarAtletas(jjoo.atletas(), "Atletas del Juego olimpico: "); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 17: { cout << "Cantidad de dias: " << jjoo.cantDias() << endl; Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 18: { cout << "El Atleta prodigio es: " << endl; atletaProdigio(jjoo).mostrar(cout); Pausar(); LimpiarPantalla(); MenuJJOO(); break; } case 19: { cout << "Deportes no olimpicos" << endl; Lista<Deporte> deportes = jjoo.deportesNoOlimpicos(); cout << "[ "; for(int i = 0; i < deportes.longitud(); i++) { cout << deportes.iesimo(i) << " "; } cout << "]"; } } }