Nesta aula irei responder a uma dúvida postada no canal. Como gerar n linhas onde a primeira linha possui 1 número 1 e a enésima linha possui n números n, como o exemplo a seguir:
1
2 2
3 3 3
. . .
n n n n …
Este é um excelente exercício para trabalhar o raciocínio lógico nas estruturas de repetição. Perceba que temos linhas e colunas. A primeira linha possui apenas o número 1, a segunda linha apensa números 2, a terceira linha apenas números 3, e assim por diante. Em contrapartida, a primeira linha possui apenas 1 coluna, a segunda linha possui 2 colunas, a terceira linha possui 3 colunas, e assim por diante.
Para conseguir esse efeito precisamos de duas repetições. A repetição mais externa irá gerar o valor a ser impresso, 1, 2, 3… A repetição mais interna irá imprimir propriamente esse valor.
Imagine uma repetição com uma variável i indo de 1 até 10. Significa que teremos 10 linhas. Agora, dentro dessa repetição, quando i for igual a 1 queremos imprimir o 1 apenas uma vez, quando for 2 queremos imprimir o 2 duas vezes, e assim por diante. Percebe que a repetição interna tem o i como limite. Se o i for 1, executa uma vez, se for 2 executa duas vezes… Assim, cada linha possuirá i termos.
Código em portugol
programa{ /* Código escrito por Wagner Gaspar Abril de 2021 */ funcao inicio(){ inteiro n, i, j escreva("\nDigite um número maior que zero: \n") leia(n) para(i = 1; i <= n; i++){ para(j = 1; j <= i; j++) escreva(i, " ") escreva("\n") } } }