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);
    }
}

2 comentarios: