Módulo 3 Exercício 52 – Pirâmide

Módulo 3 Exercício 52 – Pirâmide

Home Fóruns Programação Básica Módulo 3 Exercício 52 – Pirâmide

Visualizando 6 respostas da discussão
  • Autor
    Posts
    • #61553

      Olá. Não consegui resolver o exercício 52 referente a pirâmide. Veja até onde cheguei. Não consigo dar o espaçamento para formar a pirâmide.

      escreva(“{ EXERCÍCIO 52 – Piramide }”)

      inteiro n, x, y ,z

      escreva(“\nQuantos andares? “)
      leia (n)

      para(x=1; x<=n; x++) {
      escreva(“**”)
      para(y=n-1; y>=x; y–) {
      escreva(“**”)
      }
      }

    • #61586
      IcaroFilho
      Moderador

      João, boa noite.
      Abre um novo TOPICO que explico por lá.. se não irá bagunçar o forum…
      Este poste esta solucionado para a duvida do ex.01

      se postar aqui dentro sua duvida do exercício 52, quem tiver a mesma duvida não ira visualizar e irá questionar novamente no fórum.

    • #61603

      Olá João, utilize este link: https://www.estudonauta.com/foruns/forum/algoritmos/

      No final dá página você vai encontrar a área para criar o seu tópico.

    • #61682
      Tutora Mayla
      Mestre

      Joao, criei um novo tópico para esse assunto.
      A questão pede que a pirâmide tenha como base o dobro menos 1 da quantidade de andares(no seu caso 2*n – 1). Ou seja, se a quantidade de andares é 4, a base da pirâmide seria 7. A partir da base cada andar inferior tem 2 estrelinhas a menos. Voltando ao exemplo, teríamos o segundo andar com 5, o terceiro com 3 o ultimo com 1.

      Analisando o seu código posso perceber:

      • Após escrever cada linha da pirâmide é importante pular a linha para que o outro andar da pirâmide seja escrito em uma linha diferente. Para isso basta colocar um escreva(“\n”) após ter escrito cada linha. Procure no código onde seria o local ideal para colocar esse comando, para que após cada escrita de estrelinhas para uma linha, comece a escrever em outra linha.
      • Ao escrever 2 estrelinhas de cada vez nunca teremos linhas com estrelinhas impares, que como no exemplo que eu dei acima, precisam acontecer, já que a última linha tem que ser 1 estrelinha apenas. Na verdade na pirâmide nunca teremos um número par de estrelinhas por linha, será sempre ímpar. Procure então escrever apenas 1 estrelinha por vez.
      • Outro ponto é que não é tratada a formatação para que seja em formato de triângulo invertido. Como podemos ver na execução do exercício a cada linha o espaçamento em relação ao inicio da linha muda formando uma pirâmide invertida. Tornando assim necessário a cada andar mudar a quantidade de espaços em relação ao inicio, o que também não está sendo feito no seu código. A cada linha escrevemos um espaço a mais, na primeira linha são 0 espaços, na segunda linha é 1 espaço, na terceira linha são 2 espaços e por assim vai até a última linha. Escreva esse exemplo de uma pirâmide de 4 andares e anote quantos espaços são necessários a cada linha para que seja uma pirâmide invertida, reconheça esse padrão e monte um laço antes do laço que escreve as estrelinhas para fazer o espaçamento.

      Espero ter ajudado, quaisquer outras dúvidas basta entrar em contato.

    • #87041
      Arthur Martins Alves
      Participante

      Olá! Também tive bastante dificuldade no exercício da pirâmide, mas por fim consegui resolver de uma forma diferente do professor Guanabara, por isso gostaria de postar aqui para saber se está correto e se tem alguma boa prática, que seja melhor utilizar a solução do professor.

      
      programa
      {
      	
      inclua biblioteca Util --> u
      	funcao inicio()
      	{
      		inteiro and
      		escreva("Quantos andares a pirâmide vai ter? ")
      		leia(and)
      
      		inteiro quantEst = (and * 2) - 1
      		inteiro quantEsp = 0
      
      		para(inteiro cAnd = 1; cAnd <= and; cAnd++) {
      			para(inteiro cEsp = 1; cEsp <= quantEsp; cEsp++) {
      				escreva(" ")
      			}
      			quantEsp ++
      			para(inteiro cEst = 1; cEst <= quantEst; cEst++) {
      				escreva("*")
      				u.aguarde(100)
      			}
      			escreva("\n")
      			quantEst -= 2
      		}
      	}
      }
      
    • #87544
      Tutora Taina
      Mestre

      Arthur, seu código está rodando perfeitamente ou está apresentando algum erro? Você tem alguma dúvida sobre o código?

      • #87745
        Arthur Martins Alves
        Participante

        Muito obrigado pela respota Taina! Na verdade só queria ter certeza que essa solucão está correta, pois está bem diferente da resolução proposta pelo professor Guanabara.

      • #88108
        Tutora Taina
        Mestre

        Arthur, se o resultado final estiver de acordo com o que foi pedido no exercício está tudo certo, não tem problema ser diferente do que o professor Guanabara colocou na aula. 🖖

    • #88479
      Arthur Martins Alves
      Participante

      Muito obrigado, Taina!

Visualizando 6 respostas da discussão
  • Você deve fazer login para responder a este tópico.
72486