Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nombres y Apellidos: Eddy Gonzalo Ortiz Machicado Cedula de Identidad: 3469141 Lp.
Materia: Lab-131 Paralelo: B
Fecha: 01/Marzo/2023 Gestión: I - 2023
Docente: Lic. Victoria Hurtado Cerruto
Tema: Estructura de Datos (Pilas)
PRACTICA N° 1
a) Enunciado
Dada una pila de Libros donde los atributos de la clase Libro son Libro<autor, titulo, precio>
Determinar:
a) Cuántos libros tienen el autor (Z).
b) Cuáles son los libros más caros.
c) A cuánto asciende el valor de los libros.
b) Diagrama de Clases
Libro
- autor: String
- titulo: String
- precio: double
+ Libro()
+ Libro(autor, titulo, precio)
PilaLibros + getters()
+ setters()
- n: int + ToString()
- tope: int + leerL(): void
- v[]: Libro + mostrarL():void
+ PilaLibros()
+ esVacia(): boolean
+ esLLena(): boolean
+ adicionar(it:Libro): void
+ eliminar(): Libro
+ llenar(): void
+ mostrar(): void
+ vaciar(z: PilaLibros):
c) Código Java
Main
// Cargar Libros
cargarPila(pl);
pl.mostrar();
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION A
.....................................");
System.out.print("Buscar Autor (Z) ---> ");
String z = teclado.nextLine();
solA(pl,z);
System.out.println(".......................................................
..............................");
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION B
.....................................");
solB(pl);
System.out.println(".......................................................
..............................");
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION C
.....................................");
pl.mostrar();
solC(pl);
System.out.println(".......................................................
..............................");
}
// SOLUCION A
private static void solA(PilaLibros PL, String Z) {
int cont=0;
PilaLibros aux = new PilaLibros();
Libro elem;
while (!PL.esVacia()) {
elem = PL.eliminar();
if(elem.getAutor().equalsIgnoreCase(Z)) {
cont++;
}
aux.adicionar(elem);
}
PL.vaciar(aux);
if(cont>0) {
System.out.println("El Autor: "+Z+", tiene "+"("+cont+")"+"
libros.");
}
else {
System.out.println("No existe en la Pila el Autor: "+Z);
}
}
// SOLUCION B
private static void solB(PilaLibros PL) {
int x=PL.nroElem();
int n=((x/2)+1);
ordenarPila(PL);
// SOLUCION C
private static void solC(PilaLibros PL) {
double c=0;
PilaLibros aux = new PilaLibros();
Libro elem;
while (!PL.esVacia()) {
elem = PL.eliminar();
c=c+elem.getPrecio();
aux.adicionar(elem);
}
PL.vaciar(aux);
System.out.println("TOTAL \t "+c+" bs.");
}
// CARGAR PILA
private static void cargarPila(PilaLibros PL) {
PL.adicionar(new Libro("Victor Chungara","Calculo I",35.5));
PL.adicionar(new Libro("Homero","Iliada",18));
PL.adicionar(new Libro("Victor Chungara","Calculo II",45));
PL.adicionar(new Libro("Alvarez Huayta","Fisica Mecanica",34));
PL.adicionar(new Libro("Nataniel Aguirre","Juan de la Rosa",25));
PL.adicionar(new Libro("Carlos Medinacelly","Chaskañawi",25));
PL.adicionar(new Libro("Alvarez Huayta","Teoria de Errores",30));
PL.adicionar(new Libro("Victor Chungara","Calculo III",40.5));
PL.adicionar(new Libro("Franz Tamayo","La Prometeida",80));
PL.adicionar(new Libro("Oscar Alfaro","Paisajes",25));
PL.adicionar(new Libro("Homero","La odisea",15));
}
// ORDENAR PILA
private static void ordenarPila(PilaLibros PL) {
PilaLibros aux = new PilaLibros();
PilaLibros R = new PilaLibros();
while(!PL.esVacia()) {
Libro mayor = PL.eliminar();
while (!PL.esVacia()) {
Libro elem = PL.eliminar();
if(elem.getPrecio() > mayor.getPrecio()) {
aux.adicionar(mayor);
mayor = elem;
}
else {
aux.adicionar(elem);
}
}
PL.vaciar(aux);
R.adicionar(mayor);
}
PL.vaciar(R);
}
while(!PL.esVacia()) {
elem = PL.eliminar();
aux1.adicionar(elem);
aux2.adicionar(elem);
}
PL.vaciar(aux1);
copia.vaciar(aux2);
return copia ;
}
}
Clase Libro
// Getters y Setters
public String getAutor() {
return autor;
}
// To String
@Override
public String toString() {
return "Libro [autor=" + autor + ", titulo=" + titulo + ", precio=" +
precio + " bs.]";
}
d) Prueba de Corrida