Bienvenida

Como todo en la vida, la innovación es la clave del éxito por lo que nos hemos visto en la necesidad de "evolucionar" este blog para abarcar muchos otros temas que estaban quedando de lado en nuestros cursos "oficiales".

Si deseas aprender o profundizar algunos temas en particular, no dudes en contactarnos.


jueves, 11 de octubre de 2012

Un casito de Programación


Escriba un programa Java que solicite un número entero entre 2 y 10 que además sea impar.

En base al número debe formar un rombo invertido

package com.ejemplo.main;

import java.util.Scanner;

public class Rombo {
int[] array = null;
int num = 0;
int filas = 0;
public static void main(String[] args) {
Rombo r = new Rombo();
r.cargaRombo();

}
public void cargaRombo() {
Scanner sc = new Scanner(System.in);
System.out.println("Ingrese un numero IMPAR entre 2 y 10 :");
num = sc.nextInt();
if ( num >= 2 && num <= 10 && (num % 2 != 0 )) {
imprimeROmbo();
} else {
System.out.println("El numero NO ESTA entre 2 y 10 ... BYE");
}
}
public void imprimeROmbo() {
// El numero es el centro de la fila externa del rombo
boolean llegamos_a_uno = false;
Boolean no_llegamos_al_numero = true;
int num_aux1 = 0;
int num_aux2 = 0;
String tabs = "\t";
num_aux1 = num;
do {
System.out.print(tabs);
num_aux2 = num_aux1;
for (int i=1; i <= num_aux2;  i++ ) {
System.out.print( i + "\t" );
}
System.out.print("\n");
num_aux1 = num_aux1 - 2;
tabs = tabs + "\t";
if ( num_aux1 < 1 ) {
llegamos_a_uno = true;
}
} while ( !llegamos_a_uno );
// num_aux se quedo en -1
num_aux2 = 1;
tabs = tabs.substring(1);
// Ahora imprimimos al reves
while ( no_llegamos_al_numero ) {
// a tabs hay que quitarle un TAB
tabs = tabs.substring(1);
System.out.print(tabs);
num_aux2 = num_aux2 + 2;
for (int i=1; i <= num_aux2;  i++ ) {
System.out.print( i + "\t" );
}
System.out.print("\n");
if ( num_aux2 == num ) {
no_llegamos_al_numero = false;
}
}
}

}

No hay comentarios:

Publicar un comentario