Home › Fóruns › Programação Básica › Módulo 03 – Exercício 52 – Triângulo Invertido
- Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 1 mês atrás por
Tutora Jessica.
-
AutorPosts
-
-
4 de março de 2025 às 12:14 #154715
Raphael Granato Antunes
ParticipanteEu não consegui fazer o exercício, então tive que ver a resolução do professor, porém eu não consegui entender a segunda estrutura de repetição.
Segue o código da solução do professor.
programa { funcao inicio() { inteiro nAndar, c1, c2, c3, quantEst = 0, quantEsp = 0 escreva("Quantos andares o triângulo vai ter? ") leia(nAndar) quantEst = (nAndar *2) -1 // A quantidade se estrela na parte de cima da pirâmide é o dobre de andares menos 1 para (c1 = 1; c1 <=nAndar; c1++){ para(c2 = 1; c2 <= quantEsp; c2++ ){ escreva(" ") } quantEsp++ para(c3 = 1; c3 <= quantEst ; c3++){ escreva("*") } quantEst -= 2 escreva("\n") } } }
Minha dúvida é referente ao loop
para (c2 = 1; c2 <= quantEsp; c2++)
, ele inicia c2 = 1 e quantEsp = 0, tornando a condição lógica falsa(1 <= 0)
, depois tanto o c2 quanto a quantEsp são incrementados e a condição lógica continua falsa(2 <= 1)
. Não entendi como o sistema coloca espaços após a segunda iteração, já que pelo que eu entendi a condição lógica nunca será atendida.-
Este tópico foi modificado 1 mês, 3 semanas atrás por
Raphael Granato Antunes. Motivo: Arrumar uma informação digitada errada
-
Este tópico foi modificado 1 mês, 3 semanas atrás por
-
6 de março de 2025 às 11:13 #154800
Tutora Jessica
ModeradorOlá Raphael ,
Loop Principal (Montando o Triângulo):
para (c1 = 1; c1 <= nAndar; c1++): Este loop externo percorre cada linha do triângulo, de 1 até o número de andares (nAndar).
Loop para Espaços:
para(c2 = 1; c2 <= quantEsp; c2++ ): Este loop interno imprime espaços em branco antes dos asteriscos em cada linha.
quantEsp++: Incrementa a quantidade de espaços a cada linha, movendo os asteriscos para o centro.Loop para Asteriscos:
para(c3 = 1; c3 <= quantEst; c3++): Este loop interno imprime os asteriscos em cada linha.
Ajustes e Quebra de Linha:
quantEst -= 2: Decrementa a quantidade de asteriscos em 2 a cada linha, para que o triângulo vá diminuindo.
escreva(“\n”): Pula para a próxima linha após imprimir os espaços e asteriscos da linha atual.Consegui que entendesse melhor explicando cada passo a passo? Caso ainda fique com dúvidas retorne ao fórum que vamos tentar lhe ajudar novamente a sanar suas dúvidas.
-
22 de março de 2025 às 16:35 #155602
Isabela Ferreira de Miranda
ParticipanteBoa tarde! Estou com dúvida nesse exercício.
Gostaria de saber por que o contador de espaços começa com 1 porque no primeiro andar não há espaço, logo, não deveria já ser 0?
Queria saber também por que “escreva(“\n”)” não pode ser usado no asterisco.`funcao inicio()
{ inteiro qand
escreva(“Quandos andares o triângulo vai ter? “)
leia(qand)
inteiro cand
inteiro cesp
inteiro qesp = 0
inteiro cest
inteiro qest = (2 * qand) – 1
para (cand = 1; cand <= qand; cand ++) {
para (cesp = 1; cesp <= qesp; cesp ++) {
escreva(” “)
}
qesp = qesp + 1
para (cest = 1; cest <= qest; cest ++) {
escreva(“*”)
}
escreva(“\n”)
qest = qest – 2
}}
} -
24 de março de 2025 às 10:51 #155655
Tutora Jessica
ModeradorOlá Isabela, trouxe a sua dúvida para uma ja existente no fórum do mesmo exercício, nel você encontra explicações que pode ajudar na sua dúvida, mas vou deixar aqui uma explicação também..
Lembrando que seu código ainda não esta formando a devida pirâmide..
– Por que o contador de espaços começa com 1?
O contador começa com 1 pois é necessário imprimir espaços antes dos asteristicos, se começasse com 0 o programa não iria imprimir espaços suficientes para deixar o triângulo como ele deve ficar. Além disso o valor do seu contador é incrementado a cada iteração do loop externo, que significa que o número de espaços a serem impressos aumenta a cada linha.
– Por que não pode usar o /n dentro do escreva com asterisco?
Esse comando serve para pular linha, e ele esta vindo após o escreva com * dentro do loop, então como o programa ler linha a linha ele vai pular uma linha após a quantidade correta de asteriscos .
Se você usasse escreva(“\n”) dentro do loop que imprime os asteriscos, o programa pularia uma linha após cada asterisco.Quando terminar seu código, compartilhe conosco para ajudar outros alunos 🖖🏼
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.