jueves, 29 de septiembre de 2011

Como Programar en Java: Ejercicio 5.26

Aquí esta el ejercicio 5.26 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de simular una salida de un ciclo
 * sin utilizar break.
 * Ejercicio 5.26
 * @author LorettoTG
 * @version 1.0
 */
public class NoBreak {
    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        int cuenta = 0;

        do {
            cuenta++;
            System.out.printf("%d ", cuenta);
        } while (cuenta != 5);

        System.out.printf("\nSalio del ciclo en cuenta = %d\n", cuenta);
    }
}

martes, 27 de septiembre de 2011

Como Programar en Java: Ejercicio 5.25

Aquí esta el ejercicio 5.25 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

import java.util.Scanner;

/**
 * Clase encargada de imprimir un Rombo
 * con asteriscos.
 * Ejercicio 5.25
 * @author LorettoTG
 * @version 1.0
 */
public class RomboTamano {
    /**
     * Método encargado de imprimir un Rombo
     * con asteriscos.
     * @param numero int Con un numero impar, si no
     * fuera impar el metodo lo indicara.
     */
    public void imprimir(int numero) {
        if (numero < 0 || numero > 19) {
            System.out.println("Debe estar entre 1 y 19 el numero.");
        } else {
            if (numero % 2 == 0) {
                System.out.println("No es un número impar.");
            } else {
                int media = numero / 2 + 1;
                for (int renglon = 1; renglon <= numero; renglon++) {
                    for (int columna = 1; columna <= numero;
                            columna++) {
                        if (renglon <= media) {
                            if (((media - renglon) < columna)
                                    && (columna < (media + renglon))) {
                                System.out.print('*');
                            } else {
                                System.out.print(' ');
                            }
                        } else {
                            if (((renglon - media) < columna)
                                    && (columna < (media * 2
                                    - (renglon - media)))) {
                                System.out.print('*');
                            } else {
                                System.out.print(' ');
                            }
                        }
                    }
                    System.out.println();
                }
            }
        }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        RomboTamano rombo = new RomboTamano();

        //Se crea un objeto Scanner para obtener la entrada
        //de datos del usuario.
        Scanner entrada = new Scanner(System.in);

        System.out.println("Deme un número impar: ");
        int numero = entrada.nextInt();
        rombo.imprimir(numero);
    }
}

lunes, 26 de septiembre de 2011

Como Programar en Java: Ejercicio 5.24

Aquí esta el ejercicio 5.24 de Como Programar en Java séptima edición.


package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de imprimir un Rombo
 * con asteriscos.
 * Ejercicio 5.24
 * @author LorettoTG
 * @version 1.0
 */
public class Rombo {
    /**
     * Método encargado de imprimir un Rombo
     * con asteriscos.
     */
    public void imprimir() {
        int media = 9 / 2 + 1;
        for (int renglon = 1; renglon <= 9; renglon++) {
            for (int columna = 1; columna <= 9; columna++) {
                if (renglon <= media) {
                    if (((media - renglon) < columna)
                            && (columna < (media + renglon))) {
                        System.out.print('*');
                    } else {
                        System.out.print(' ');
                    }
                } else {
                    if (((renglon - media) < columna)
                            && (columna < (media * 2 - (renglon - media)))) {
                        System.out.print('*');
                    } else {
                        System.out.print(' ');
                    }
                }
            }
            System.out.println();
        }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        Rombo rombo = new Rombo();
        rombo.imprimir();
    }
}

domingo, 25 de septiembre de 2011

Como Programar en Java: Ejercicio 5.23

Aquí esta el ejercicio 5.23 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de convertir las siguientes
 * expresiones utilizando leyes de Morgan.
 * !( x < 5 ) && !( y >= 7 )
 * !( x == y ) || !( z != 5 )
 * !( ( x <= 8 ) && ( y > 4 ) )
 * !( ( x > 4 ) || ( y <= 6 ) )
 * Ejercicio 5.23
 * @author LorettoTG
 * @version 1.0
 */
public class LeyesMorgan {
    /**
     * Método encargado de convertir algunas condiciones
     * con las leyes de morgan. Si se imprime alguna leyenda
     * de no es cierto quiere decir que las leyes de Morgan
     * no fueron aplicadas correctamente.
     * @param x int Con el primer entero introducido.
     * @param y int Con el segundo entero introducido.
     * @param z int Con el tercer entero introducido.
     */
    public void calcular(int x, int y, int z) {
        if (((!(x < 5) && !(y >= 7)))
                != (((x >= 5) && (y < 7)))) {
            System.out.println("No es cierto 1");
        }


         if (((!(x == y) || !(z != 5)))
                 != ((x != y) || (z == 5))) {
             System.out.println("No es cierto 2");
         }

         if ((!((x <= 8) && (y > 4)))
                 != ((x > 8) || (y <= 4))) {
             System.out.println("No es cierto 3");
         }
         if ((!((x > 4) || (y <= 6)))
                 != ((x <= 4) && (y > 6))) {
             System.out.println("No es cierto 4");
         }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        LeyesMorgan leyes = new LeyesMorgan();
        for (int x = 1; x <= 10; x++) {
            for (int y = 1; y <= 10; y++) {
                for (int z = 1; z <= 10; z++) {
                    leyes.calcular(x, y, z);
                }
            }
        }

    }
}

sábado, 24 de septiembre de 2011

Como Programar en Java: Ejercicio 5.22

Aquí esta el ejercicio 5.22 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de imprimir diferentes patrones utilizando
 * seguidos.
 * Ejercicio 5.22
 * @author LorettoTG
 * @version 1.0
 */
public class ImprimirAsteriscosAstutos {
    /**
     * Método encargado de imprimir 4 diferentes patrones.
     */
    public void imprimirPatrones() {
        for (int renglon = 1; renglon <= 10; renglon++) {
            for (int columna = 1; columna <= 55; columna++) {
                if (columna <= 10) {
                    if (columna <= renglon) {
                        System.out.print('*');
                    } else {
                        System.out.print(' ');
                    }
                } else if (columna > 10 && columna <= 15) {
                    System.out.print(' ');
                } else if (columna > 15 && columna <= 25) {
                    if ((columna - 15) <= (11 - renglon)) {
                        System.out.print('*');
                    } else {
                        System.out.print(' ');
                    }
                } else if (columna > 25 && columna <= 30) {
                    System.out.print(' ');
                } else if (columna > 30 && columna <= 40) {
                    if ((columna - 30) < renglon) {
                        System.out.print(' ');
                    } else {
                        System.out.print('*');
                    }
                } else if (columna > 40 && columna <= 45) {
                    System.out.print(' ');
                } else {
                    if ((columna - 45) <= (10 - renglon)) {
                        System.out.print(' ');
                    } else {
                        System.out.print('*');
                    }
                }
            }
            System.out.println();
        }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        ImprimirAsteriscosAstutos asteriscos = new ImprimirAsteriscosAstutos();
        asteriscos.imprimirPatrones();
    }
}

Como Programar en Java: Ejercicio 5.21

Aquí esta el ejercicio 5.21 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de calcular los Triples de Pitagoras.
 * Ejercicio 5.21
 * @author LorettoTG
 * @version 1.0
 */
public class TriplesPitagoras {
    /**
     * Método encargado de calcular los Triples de
     * Pitagoras por fuerza bruta en longitudes que van
     * desde 1 hasta 500 unidades.
     */
    public void calcular() {
        /**
         * Contiene la suma de los cuadrados de los dos lados
         * de un triangulo.
         */
        int sumaLados = 0;

        /**
         * Contiene el total de triples de pitagoras.
         */
        int contador = 0;
        for (int lado1 = 1; lado1 <= 500; lado1++) {
            for (int lado2 = 1; lado2 <= 500; lado2++) {
                for (int hipotenusa = 1; hipotenusa <= 500; hipotenusa++) {
                    sumaLados = (lado1 * lado1) + (lado2 * lado2);
                    if ((hipotenusa * hipotenusa) == sumaLados) {
                        System.out.println("Triples de pitágoras con:\n"
                                + "\tLado 1: " + lado1
                                + "\n\tLado 2: " + lado2
                                + "\n\tHipotenusa: " + hipotenusa);
                        contador++;
                    }
                }
            }
        }
        System.out.println("Existen un total de " + contador
                    + " triples de pitágoras.");
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        TriplesPitagoras triplesPitagoras = new TriplesPitagoras();
        triplesPitagoras.calcular();
    }
}

jueves, 22 de septiembre de 2011

Como Programar en Java: Ejercicio 5.20

Aquí esta el ejercicio 5.20 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

/**
 * Clase encargada de calcular aproximaciones
 * al número PI.
 * Ejercicio 5.20
 * @author LorettoTG
 * @version 1.0
 */
public class AproximacionesPI {
    /**
     * Método encargado de calcular als aproximaciones
     * a la constante matematica PI.
     * @param terminos int con el numero de terminos a
     * calcular.
     * @return resultado double con la aproximacion a PI.
     */
    public double aproximar(int terminos) {
        double resultado = 4.0;
        for (int contador = 2; contador <= terminos; contador++) {
            resultado += (4.0 / ((contador * 2) - 1))
                            * Math.pow(-1, contador - 1);
        }
        return resultado;
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        AproximacionesPI pi = new AproximacionesPI();

        for (int contador = 1; contador <= 9999; contador++) {
            System.out.printf("%05d  %20.15f\n",
                    contador, pi.aproximar(contador));
        }
    }
}

Como Programar en Java: Ejercicio 5.17

Aquí esta el ejercicio 5.17 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulocinco;

import java.util.Scanner;

/**
 * Clase encargada de calcular el valor total de venta
 * de todos los productos vendidos.
 * Ejercicio 5.17
 * @author LorettoTG
 * @version 1.0
 */
public class Almacen {
    /**
     * Método encargad de calcular el valor total de
     * venta de todos los productos vendidos.
     * @return resultado double con el total de la venta.
     */
    public double calcular() {
        /**
         * Contiene el total de la venta.
         */
        double resultado = 0.0;
        //Se crea un objeto Scanner para obtener la entrada
        //de datos del usuario.
        Scanner entrada = new Scanner(System.in);

        /**
         * Contiene el numero del producto.
         */
        int numeroProducto = 0;

        do {
            System.out.println("Deme el numero del producto: ");
            numeroProducto = entrada.nextInt();

            switch (numeroProducto) {
            case 0:
                break;
            case 1:
                resultado += cantidad() * 2.98;
                break;
            case 2:
                resultado += cantidad() * 4.5;
                break;
            case 3:
                resultado += cantidad() * 9.98;
                break;
            case 4:
                resultado += cantidad() * 4.49;
                break;
            case 5:
                resultado += cantidad() * 6.87;
                break;
            default:
                System.out.println("No es un producto valido");
            }
        } while (numeroProducto != 0);

        return resultado;
    }

    /**
     * Método encargado de verificar que la cantidad que
     * da el usuario sea mayor a cero.
     * @return cantidad int con la cantidad validada.
     */
    private int cantidad() {
        /**
         * Contiene la cantidad que se vendio de un producto.
         */
        int cantidad = 0;
        //Se crea un objeto Scanner para obtener la entrada
        //de datos del usuario.
        Scanner entrada = new Scanner(System.in);

        while (true) {
            System.out.println("Deme la cantidad vendida del producto: ");
            cantidad = entrada.nextInt();
            if (cantidad > 0) {
                return cantidad;
            } else {
                System.out.println("Escriba una cantidad mayor a cero.");
            }
        }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las caracteristicas
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        Almacen almacen = new Almacen();

        //%.2f indica que espera un double y que tendra en el area de
        //decimales solo dos digitos.
        System.out.printf("El total de ventas es: %.2f", almacen.calcular());
    }
}