Os programas de padrões são muito utilizados em entrevistas para entender as habilidades de pensamento lógico do entrevistado. Os padrões em forma de pirâmide são muito populares e, uma vez compreendida a lógica por trás de sua criação, escrever código para alcançar o mesmo resultado torna-se uma tarefa fácil.
Programas de Padrões de Pirâmide em Java
Aqui estão alguns exemplos para criar diferentes padrões de pirâmide com números, símbolos, etc. Também veremos alguns exemplos de como criar um padrão de pirâmide invertida em programas Java. Tentaremos manter o código simples para que seja facilmente compreendido.
Padrão de Pirâmide com Números
Se observarmos o primeiro padrão, veremos que cada linha contém o mesmo número impresso a mesma quantidade de vezes. No entanto, cada linha possui espaços em branco à frente, cuja contagem é “linhas-i”. Vamos analisar o programa para imprimir esse 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 string dada 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 = "+linhas);
scanner.close();
System.out.println("Printing Pattern 1\n");
printPattern1(rows);
}
}
Observe que criei uma função de utilidade para tarefa comum de impressão de strings. Se você puder dividir seu programa em funções curtas e reutilizáveis, então 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 é realmente simples, só precisamos imprimir o caractere sem cálculos ou manipulações.
/**
* Program to print following pyramid structure
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
*/
private static void printPattern3(int rows) {
// loop 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);
// ir para a próxima linha
System.out.println("");
}
}
Programa de 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) {
// loop 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+" ");
}
// ir para a próxima linha
System.out.println("");
}
}
Observe que cada linha tem 2*r-1 números. Então teremos (linhas-i)*2 espaços em branco antes de imprimir qualquer número. Em seguida, os números começam de 1 até “i” e depois voltam para 1. Nossa lógica para imprimir os números exigiria dois loops for para alcançar isso.
Programa de 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) {
// loop 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+" ");
}
// ir 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 à frente
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 à frente
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 os espaços em branco estão organizados. Uma vez que você tem clareza sobre o padrão, pode escrever código facilmente em Java ou em qualquer outra linguagem de programação. Por favor, me avise se você está procurando por algum programa de padrão específico e tentarei ajudar você.
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