Programas de Padrões de Pirâmide em Java

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 
Pyramid Pattern Java Program Output

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