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.
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