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")
}
}
}
