sexta-feira, 24 de abril de 2015

Algoritimo da pirâmide!

Certa vez em uma entrevista, me foi pedido como teste um código que me quebrou bastante a cabeça: um algoritmo que imprima uma pirâmide de pontinhos.

Na explicação do rapaz que estava me fazendo a entrevista, eu deveria simplesmente imprimir na tela:

.
. .
. . .
. . . .


 Vamos analisar a pirâmide do modo programador:
 

1 - O número de espaços necessário em cada linha é o número de linhas da pirâmide (nesse caso 4) menos o número da linha que estamos.

Então anota lá no canto:
numeroDeEspacos = numeroTotalDeLinhas - linhaAtual

2 - O número de pontos em cada linha, é o mesmo da linha que estamos!

Anota lá no canto de novo:
numeroDePontos = linhaAtual

Legal, agora acredito que dessa forma, vocês irão entender bem o código que fiz (em Java):


       /*
        Aqui iremos setar quantas linhas queremos em nossa pirâmide.
       **/
      int numeroTotalDeLinhas = 4;

           /*
            Este primeiro "for" irá fazer a nossa contagem da linha atual.
            Ele deverá ser rodado até que ele seja igual ao numero total de linhas da pirâmide.
           **/
        for (int linhaAtual = 1; linhaAtual <= numeroTotalDeLinhas ; linhaAtual++){
            /*
               Como eu disse, o número de espaços necessários, será:
               O número de linhas que iremos imprimir (nLinhasImpressa) menos a linha 
                que estamos, que está sendo contato por nLinhas.
            **/
           for (int numeroDeEspacos = 0; numeroDeEspacos < (numeroTotalDeLinhas- linhaAtual); numeroDeEspacos ++){

                System.out.print(" "); // Estamos imprimindo um espaço.
 
            }

            /*
               Já o número de pontos, será contato o mesmo da linha que estamos, exemplo:
               Se estamos na linha 2, precisamos de 2 pontos!
            **/
            for (int numeroDePontos = 0; numeroDePontos < linhaAtual; numeroDePontos ++){

                System.out.print(". ");
 
                // Note que estou imprimindo um "ponto" já com espaço! Para que formemos uma pirâmide.             
            }

            /*
               Aqui estamos simplesmente quebrando a linha ao final de um laço.
            **/
            System.out.println("");
        }



Código limpo:

       
       int numeroTotalDeLinhas = 4;
        for (int linhaAtual = 1; linhaAtual <= numeroTotalDeLinhas ; linhaAtual++){
           for (int numeroDeEspacos = 0; numeroDeEspacos < (numeroTotalDeLinhas - linhaAtual); numeroDeEspacos ++){
                System.out.print(" ");
            }
            for (int numeroDePontos = 0; numeroDePontos < linhaAtual; numeroDePontos ++){
                System.out.print(". ");
            }
            System.out.println("");
        }




É isso pessoal, este é meu primeiro post aqui do Blog, tentarei postar sempre que conseguir com tutoriais de maneira bem detalhada. Se ligue para os próximos posts! Obrigado!

P.S.: Falaremos também de assuntos mais avançados, como JSF, Hibernate, Programação orientada a objetos e etc.

Nenhum comentário:

Postar um comentário