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

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

Visualizando 12 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

      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

        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!

    • #117208

      Boa tarde

      Por favor poderia me orientar como faço para gerar a 1ª linha de asteriscos da pirâmide? pois entendo que esse “*” pode ser uma variável caracter ou cadeia e não consigo repeti-lo várias vezes na minha linha

      Grato

    • #117273
      Tutora Jessica
      Moderador

      Ola Antonio, trouxe sua duvida para uma duvida ja existente no forum do mesmo modulo e exercício, nos envie como esta ficando seu código para analise .
      Bons estudos 🖖🏼

    • #130437

      Boa tarde, pessoal! Tudo beleza?

      Galera, eu estou com muita dificuldade em resolver um exercício proposto pelo professor Gustavo. O enunciado diz que devemos fazer uma pirâmide ao contrário, pulando as linhas e dando os espaços como no exemplo abaixo:

      **************
      ************
      **********
      ********
      ******
      ****
      **
      Eu assisti a resolução do enunciado e copiei o código para estudos que nem o professor recomenda, depois tentei fazer e mesmo assim, eu não consegui.
      Alguém poderia me dar um outro exemplo, ou me ajudar a entender como fazer os laços corretamente?
      Teve uma hora que quase deu certo, mas aí meus neurônios explodiram e não consegui fazer mais nada.

      Grato pela atenção!

    • #130445
      Tutora Jessica
      Moderador

      Olá Gabriel, trouxe sua duvida para um topico do mesmo exercício ja existente no forum, observe acima algumas explicações desse exercício, caso ainda tenha duvidas so retornar ao forum que iremos lhe ajudar.

    • #130532

      Pessoal, essa foi a minha solução:

      programa
      {
      /*Esse algoritmo deve ser capaz de desenhar uma pirâmide de cabeça para baixo com qnts linhas o usuário quiser
      Por exemplo: Quantas linhas sua pirâmide terá?
      Digite aqui: 10

      *********
      *******
      *****
      ***
      * */

      inclua biblioteca Util –> U
      funcao inicio()
      {
      inteiro numero_de_andares
      inteiro base_piramide = 0
      inteiro espacos_em_branco
      inteiro novas_linhas = 0
      inteiro numero_de_asteriscos

      escreva(“Quantos andares a sua pirâmide terá? “)
      leia(numero_de_andares)

      base_piramide = (numero_de_andares * 2) – 1

      para(novas_linhas; novas_linhas <= numero_de_andares; novas_linhas++){
      escreva(“\n”)
      //condição para o espaçamento de cada linha:
      para(espacos_em_branco = 1 ;espacos_em_branco <= novas_linhas ; espacos_em_branco ++ ){
      escreva(” “)
      }
      //Condição para a construção da base do triângulo
      para(numero_de_asteriscos = 1; numero_de_asteriscos <= base_piramide; numero_de_asteriscos++){
      escreva(“*”)
      U.aguarde(100)
      //Lembre-se que o número estoura e depois ele começa em 1 novamente, por isso o laço dá certo.
      }
      base_piramide -= 2
      }
      }
      }

    • #132477

      Bom dia galera!

      Confesso que a explicação do professor não me ajudou muito nesse exercício… por isso eu recomendo um vídeo que resolve de uma forma diferente (esta em Python, mas acredito que o principio seja o mesmo).

      pra esse tipo de exercício essa explicação é mágica!

      • #132481
        Tutora Jessica
        Moderador

        Ola Mayan, obrigada por compartilhar conosco a sua solução, é muito importante essa pesquisa sobre um assunto que não foi compreendido com 100% de aproveitamento, parabens, continue assim e bom estudo 🖖🏼

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