Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EJERCICIO 1: Análisis de Clase CarritoCompra - Documente la clase CarritoCompra indicando: - Complejidad algorítmica de cada método - Marque como deprecado el método listarProductosTexto() - Incluya documentación Javadoc para la clase y métodos

import java.util.ArrayList;

class Producto {
    private String nombre;
    private double precio;
    
    // Constructor y métodos getter/setter
}

public class CarritoCompra {
    private ArrayList<Producto> productos = new ArrayList<>();
    final static double IVA = 0.21;
    
    public void agregarProducto(Producto p) { /* ... */ }
    
    public double calcularTotal() {
        double subtotal = productos.stream().mapToDouble(Producto::getPrecio).sum();
        return subtotal * (1 + IVA);
    }
    
    @Deprecated
    public String listarProductosTexto() {
        String resultado = "";
        for(Producto p : productos) {
            resultado += p.getNombre() + "\n";
        }
        return resultado;
    }
    
    public String generarTicket() {
        StringBuilder sb = new StringBuilder();
        productos.forEach(p -> sb.append(p.getNombre()).append("\n"));
        return sb.toString();
    }
}

EJERCICIO 2: Optimización de Clase ProcesadorDatos: - Optimice los métodos marcados y justifique los cambios:

import java.util.Arrays;

public class ProcesadorDatos {
    int[] valores = {12, 5, 7, 12, 8, 5};
    
    boolean contiene(int numero) {
        boolean encontrado = false;
        for(int n : valores) {
            if(n == numero) encontrado = true;
        }
        return encontrado;
    }
    
    int contarMayoresQue(int limite) {
        int contador = 0;
        for(int i=0; i<valores.length; i++) {
            if(valores[i] > limite) contador++;
        }
        return contador;
    }
    
    int[] obtenerModa() {
        int maxRepeticiones = 0;
        int[] modas = new int[valores.length];
        for(int i=0; i<valores.length; i++) {
            int repeticiones = 0;
            for(int j=0; j<valores.length; j++) {
                if(valores[i] == valores[j]) repeticiones++;
            }
            if(repeticiones > maxRepeticiones) {
                maxRepeticiones = repeticiones;
                modas[0] = valores[i];
            }
        }
        return modas;
    }
}

EJERCICIO 3: Pruebas Unitarias:

  • Cree tests JUnit 5 para:
    • contiene
    • contarMayoresQue
    • obtenerModa

EJERCICIO 4: Refactorización de Clase PersonajeJuego: Mejore la estructura del código:

public class PersonajeJuego {
    enum Tipo {GUERRERO, MAGO, ARQUERO}
    
    private String nombre;
    private int vida = 100;
    private Tipo tipo;
    private boolean estado = true;
    
    public boolean puedeAtacar() {
        if(vida <= 0) {
            return false;
        } else {
            if(estado) {
                return true;
            } else {
                return false;
            }
        }
    }
    
    public double calcularDanio() {
        switch(tipo) {
            case GUERRERO: 
                return vida * 0.25 + furia * 0.7;
            case MAGO: 
                return vida * 0.15 + mana * 0.5;
            case ARQUERO: 
                return vida * 0.20 + agilidad * 0.6;
            default: 
                return 0;
        }
    }
}

About

Practica para el examen final de Contornos de 1ºDAM

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages