PIRAMIDE JAVA

Hola a todos, esta ocacion vamos a desarrollar la aplicacion que se encuentra en los ejercicios para resolver del libro java 2 de francisco ceballos. 


El ejercicio que vamos a resolver sera el que encontramos en el capitulo de sentencias de control el cual es:
Realizar un programa que genere la siguiente sentencia de digitos:
el numero de filas estara comprendido entre 11 y 20 y el resultado aparecera centrado e la pantalla.






empecemos: 
primero declaramos la clase:

                             public class PiramideNum
                                       {
declaramos el metodo main
                             public static void main(String[] args){

declaramos la siguientes variables dentro de main:
        int nfilas = 0;  // guarda el numero de filas que se desea imprimir
        int ncol =0; //guarda el numero de columnnas que se va a imprimir

        int antes=0;  // indica la posicion hasta donde se desea imprimir espacios antes de 
                                 //empezar                                                                                         
                          //imprimir los numeros. 
        int despues = 0; //indica la posicion hasta donde se desea imprimir espacios despues  
                                       //de imprimir los numeros
        int num=0;  //indica el numero que se va a imprimir
        int primernum = 0; // indica el primer numero imprimido en la fila este valor cambia 
                                          //por fila




pedir la cantidad de filas que se va a imprimir.

System.out.println("digite la cantidad de filas");
        nfilas = Integer.parseInt(en.readLine()); // guarda el numero digitado en pantalla




 ncol = nfilas * 2 - 1;  //la cantidad de columnas a digitar sera la cantidad de filas 
                                      //multiplicado por 2 y restado 1
        antes = nfilas;  //al iniciar el programa la posicion a digitar el primer numero sera el 
                                    //centro
        despues = nfilas;// la posicion despues tambien coincidira con antes que es el centro 
                                      //de la piramide


empieza un ciclo repetitivo desde la posicion uno (primera fila de la piramide) hasta la cantidad de filas.

   for(int fila = 1; fila<= nfilas ; fila++){


        num = primernum + 1; // el numero a imprimir sera igual primernum+1' que al inicio es
                                               // 0+1 =1'


empieza un for anidado desde la primera columna  a imprimir col =1 hasta la cantidad de columnas
        for(int  col=1; col<= ncol ; col++){


si el numero de columna es menor que la posicion donde empieza a poner los numeros imprimira un espacio

   if(col < antes  ){
                System.out.print( " "); //imprime espacio
                continue; //se salta el resto del bucle y pasa a la siguiente repeticion
            }







si el numero de columna es mayor que la posicion donde termina de poner numeros imprimira un espacio

else if(col > despues){
                System.out.print( " ");// imprimi espacio
                continue;//se salta el resto del bucle y pasa a la siguiente repeticion
            }

de lo contrario. si col esta entre el rango de antes y despues, es decir entre la posicion donde empieza a escribir los numeros y la posicion donde termina de escribir numero que imprimia el numero variable 'num'

 else {
                if(num <0) //si el numero a imprimir es menor que o
                    num =9; // que convierta en 9


                if(num >9) // si el numero es mayor que 9 
                    num =0; // que lo convierta en 0


            if(col== antes) // si es el primer numero a imprimir
                primernum = num; // lo guarda en primernum


                System.out.print(num); //imprimir la variable num
            }


//si el numero de columna es menor que la posicion media de la piramide

  if(col<nfilas)
        num ++; // que la variable num 'valor a imprimir aumente'


si el numero de columnas es mayor que la posicion media de la piramide
        else 
            num--; //disminuya la variable num 


nota: este aumento o el decremento cambiara el valor de num pero para la siguiente vuelta del ciclo for

} //cierre del primer ciclo for
            System.out.println(""); // quiebra la siguiente linea
            
        antes--; // empezar a imprimir los numeros una columna antes
        despues ++; //terminar de imprimir los numeros una columna despues
    } //cierra el segundo ciclo for

    } // cierra el metodo main
} //fin de clase