Os programas de padrões são muito utilizados em entrevistas para entender as habilidades de pensamento lógico do entrevistado. Os padrões de pirâmide são muito populares e, uma vez que entendemos a lógica por trás de sua criação, escrever código para alcançar o mesmo se torna uma tarefa fácil.
Programas de Padrões de Pirâmide em Java
Aqui estou fornecendo alguns exemplos para criar diferentes padrões de pirâmide com números, símbolos, etc. Também veremos alguns exemplos de criação de padrões de pirâmide invertidos em um programa em Java. Tentaremos manter o código simples para que possa ser facilmente compreendido.
Padrão de Pirâmide com Números
Se você observar o primeiro padrão, cada linha contém o mesmo número impresso o mesmo número de vezes. No entanto, cada linha possui espaços em branco à esquerda cuja contagem é “linhas – i”. Vamos ver o programa para imprimir este padrão.
package com.journaldev.patterns.pyramid;
import java.util.Scanner;
public class PyramidPattern {
private static void printPattern1(int rows) {
// para loop para as linhas
for (int i = 1; i <= rows; i++) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = rows - i;
// imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
// imprimir números
printString(i + " ", i);
// mover para próxima linha
System.out.println("");
}
}
// função de utilidade para imprimir uma string um certo número de vezes
private static void printString(String s, int times) {
for (int j = 0; j < times; j++) {
System.out.print(s);
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the rows to print:");
int rows = scanner.nextInt();
// System.out.println("Linhas = "+rows);
scanner.close();
System.out.println("Printing Pattern 1\n");
printPattern1(rows);
}
}
Observe que criei uma função de utilidade para a tarefa comum de impressão de strings. Se você puder dividir seu programa em funções curtas e reutilizáveis, isso mostra que você não está apenas procurando escrever o programa, mas também deseja garantir sua qualidade e reutilização. Quando executamos o programa acima, obtemos a seguinte saída.
Please enter the rows to print:
9
Printing Pattern 1
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9

Padrão de Pirâmide de Números Crescentes
Aqui está a função para imprimir o padrão 2. O ponto chave a ser observado é o número de espaços em branco iniciais e depois os números são impressos em ordem crescente.
/**
*
* Program to print below pyramid structure
* 1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
*/
private static void printPattern2(int rows) {
// para loop para as linhas
for (int i = 1; i <= rows; i++) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = rows - i;
// imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
// imprimir números
for(int x = 1; x<=i; x++) {
System.out.print(x+" ");
}
// mover para próxima linha
System.out.println("");
}
}
Pirâmide de Caracteres
Este é um muito simples, nós apenas temos que imprimir o caractere sem cálculos ou manipulações.
/**
* Program to print following pyramid structure
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
*/
private static void printPattern3(int rows) {
// laço for para as linhas
for (int i = 1; i <= rows; i++) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = rows - i;
//imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
//imprimir caractere
printString("* ", i);
//mover para a próxima linha
System.out.println("");
}
}
Programa Padrão de Pirâmide 4
/**
*
* 1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1
*/
private static void printPattern4(int rows) {
// laço for para as linhas
for (int i = 1; i <= rows; i++) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = (rows-i)*2;
//imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
//imprimir números
for(int x=1; x0; j--) {
System.out.print(j+" ");
}
//mover para a próxima linha
System.out.println("");
}
}
Observe que cada linha possui 2*r-1 números. Portanto, teremos (linhas-i)*2 espaços em branco antes de imprimir qualquer número. Então, os números vão de 1 a “i” e depois volta para 1. Nossa lógica para imprimir os números requer dois laços for para alcançar isso.
Programa Padrão de Pirâmide 5 em Java
/**
*
* 9
8 9 8
7 8 9 8 7
6 7 8 9 8 7 6
5 6 7 8 9 8 7 6 5
4 5 6 7 8 9 8 7 6 5 4
3 4 5 6 7 8 9 8 7 6 5 4 3
2 3 4 5 6 7 8 9 8 7 6 5 4 3 2
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1
*/
private static void printPattern5(int rows) {
// laço for para as linhas
for (int i = rows; i >= 1; i--) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = i*2;
//imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
//imprimir números
for(int x=i; x=i; j--) {
System.out.print(j+" ");
}
//mover para a próxima linha
System.out.println("");
}
}
Padrão de Pirâmide Invertida de Caracteres
Aqui está o trecho de código para o programa da pirâmide invertida.
/**
*
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
*/
private static void printPattern6(int rows) {
// loop for para as linhas
for (int i = rows; i >= 1; i--) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = rows - i;
// imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
// imprimir caractere
printString("* ", i);
// mover para a próxima linha
System.out.println("");
}
}
Padrão de Pirâmide Invertida de Números
Vamos ver um exemplo de padrão de pirâmide invertida feito de números.
/**
*
9 9 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8
7 7 7 7 7 7 7
6 6 6 6 6 6
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1
*/
private static void printPattern7(int rows) {
// loop for para as linhas
for (int i = rows; i >= 1; i--) {
// espaços em branco na frente dos números
int numberOfWhiteSpaces = rows - i;
// imprimir espaços em branco iniciais
printString(" ", numberOfWhiteSpaces);
// imprimir caractere
printString(i+" ", i);
// mover para a próxima linha
System.out.println("");
}
}
Conclusão
Existem muitos tipos de padrões de pirâmide. O ponto mais importante é entender o padrão no qual os números e espaços em branco são organizados. Uma vez que você compreende o padrão, pode escrever facilmente código em Java ou qualquer outra linguagem de programação também. Por favor, me avise se você está procurando por algum programa de padrão específico e tentarei ajudá-lo.
Leitura Adicional
Programas de String em Java e Perguntas de Entrevista de Programação em Java
Você pode conferir o código completo e mais exemplos de programação em nosso Repositório no GitHub.
Source:
https://www.digitalocean.com/community/tutorials/pyramid-pattern-programs-in-java