M03A11 ex045

Home Fóruns Programação Básica M03A11 ex045

Visualizando 9 respostas da discussão
  • Autor
    Posts
    • #74026
      Natanael dos Santos
      Participante

      Minha resolução ficou totalmente diferente:

      programa
      { //EXERCÍCIO 045 – Jogo de adivinhar

      inclua biblioteca Util –> u
      funcao inicio()
      { inteiro c = 0, chance, n, n_chance = 0

      escreva(“\nVou pensar em um número entre 1 e 10”)
      escreva(“\nVocê tem 3 chances para tentar adivinhar”)
      escreva(“\n=========================================\n”)
      n = u.sorteia(1, 10)
      faca {
      c++
      escreva(“\n\nChance “, c, “/3. Em que número eu pensei? “)
      leia(chance)
      n_chance++
      se (chance > n e c != 3) {
      escreva(“Ainda não foi dessa vez mas vou te dar outra chance.”)
      escreva(“\nDigite um número menor”)
      } se (chance < n e c != 3) {
      escreva(“Ainda não foi dessa vez mas vou te dar outra chance.”)
      escreva(“\nDigite um número maior”)
      } se (chance == n) {
      escreva(“\nVocê acertou em “, n_chance, ” tentativas!\n\n”)
      pare
      } se (c == 3 e chance != n) {
      escreva(“Ainda não foi dessa vez e suas chances acabaram!\n\n”)
      }

      } enquanto (c < 3)
      }
      }

    • #74132
      Tutora Mayla
      Mestre

      Natanael, seu código está funcionando, parabéns!
      Porém gostaria de ressaltar alguns pontos:

      • A variável c e a variável n_chance durante todo o programa terão o mesmo valor, escolha uma das duas e refaça o código utilizando apenas ela, para que não fique redundante. Neste cenário o contador do laço serve para contar o número de chances, já que cada volta do laço representa uma chance.
      • Tome cuidado ao nomear suas variáveis, tente dar nomes que representem o que elas fazem com cuidado para não abreviar demais. Por exemplo a variável chance na verdade se refere ao chute do jogador, o que não está muito claro de primeira.

      Quaisquer outras dúvidas estamos a disposição.
      Continue se dedicando e será cada vez um programador melhor, bons estudos!

    • #74136
      Natanael dos Santos
      Participante

      Entendi, obrigado!

    • #113582

      Pode dar uma olha no meu código está rodando certinho.
      Mas no final a opção de número maior ou menor aparece mesmo com as tentaivas esgostadas.

      inclua biblioteca Util –> u
      funcao inicio()
      {
      inteiro num, c = 0, sorteado, c2 = 3

      escreva(“\nVou pensar em um número entre 1 e 10 “)
      escreva(“\nVocê tem 3 CHANCES para tentar adivinhar”)
      escreva(“\n——————————————-\n”)

      faca{
      c++
      sorteado = u.sorteia(1,10)
      escreva(“\nChance de no.” + c + “/3. Em que número eu pensei? “)
      leia(num)

      se (num == sorteado){

      escreva(“\n**Parabéns! Você acertou!**”)
      escreva(“\n**Acertou em ” + c2 + ” tentativas!**”)
      escreva(“\n===========================”)
      escreva(“\n\n”)
      pare

      } senao {
      se (num > sorteado){

      escreva(“\nAinda não foi dessa vez. Tente novamente!”)
      escreva(“\n=========================================”)
      }

      se ( num < sorteado){

      escreva(“\n\t*Infelizmente você errou* “)
      escreva(“\n\t*** Diga! É um número maior *** “)
      escreva(“\n==========================================”)
      }

      se ( c == 3){
      escreva(“\n\t**[Acabaram as Tentativas!]**”)

      escreva(“\n\n”)

      }

      }

    • #113583

      Pesoal, alguém tem interesse em criarmos um grupo no whatsap?

    • #113626
      Tutora Jessica
      Moderador

      Miguel nós temos o Discord, você já esta lá?

    • #113632
      Tutora Jessica
      Moderador

      Miguel, seu código esta faltando o enquanto, e também uma variável do tipo lógico (ex: acertou).

      • #113683

        Ah,sim. Não copiei completo o código segue em baixo.
        inclua biblioteca Util –> u
        funcao inicio()
        {
        inteiro num, c = 0, sorteado, c2 = 0

        escreva(“\nVou pensar em um número entre 1 e 10 “)
        escreva(“\nVocê tem 3 CHANCES para tentar adivinhar”)
        escreva(“\n——————————————-\n”)

        faca{
        c++
        c2 ++
        sorteado = u.sorteia(1,10)
        escreva(“\nChance de no.” + c + “/3. Em que número eu pensei? “)
        leia(num)

        se (num == sorteado){

        escreva(“\n**Parabéns! Você acertou!**”)
        escreva(“\n**Acertou em ” + c2 + ” tentativas!**”)
        escreva(“\n===========================”)
        escreva(“\n\n”)
        pare

        } senao {
        se (num > sorteado){

        escreva(“Ainda não foi dessa vez. Tente novamente!”)
        escreva(“\n\t*** Diga! É um número menor *** “)
        escreva(“\n=========================================”)
        }

        se ( num < sorteado){

        escreva(“Ainda não foi dessa vez. Tente novamente!”)
        escreva(“\n\t*** Diga! É um número maior *** “)
        escreva(“\n==========================================”)

        }

        se ( c == 3 ){
        escreva(“\n\t**[Acabaram as Tentativas!]**”)
        escreva(“\n\n”)

        }

        }

        } enquanto (c != 3)

        }
        }

    • #113731
      Tutora Jessica
      Moderador

      Ola Miguel, você deve usar o senao nesse caso.. e colocar a opção de numero maior ou menor dentro desse senão.
      Após no, “acabaram as tentativas”, em vez de SE, também será SENAO, para que ele não mostre as mensagens anteriores.

    • #152021
      Lucas Soares
      Participante

      programa
      {
      inclua biblioteca Util –> u
      funcao inicio()
      {

      inteiro resp , c = 1
      inteiro sorteio = u.sorteia(1, 10)

      escreva(“EXERCICIO 045 – Jogo do Adivinhar \n”)
      escreva(“Vou pensar em um número entre 1 e 10\n”)
      escreva(“Você tem 3 CHANCES para tentar adivinhar\n”)

      faca {

      escreva(“Chance ” + c + ” de 3 para tentar adivinhar. Em que número pensei ? ” )
      leia(resp)
      escreva(“\n”)

      se(resp != sorteio) {

      se(c == 3) {
      pare
      }

      escreva(“Ainda não foi dessa vez… tente um valor “)

      se(resp > sorteio) {
      escreva(“MENOR\n”)
      }

      senao{
      escreva(“MAIOR\n”)
      }
      }

      senao {
      pare
      }
      c++
      }enquanto (c != 4)

      escreva(“\n=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=\n”)

      se(resp == sorteio) {
      escreva(“Parabéns, você conseguiu vencer com ” + c + ” tentativas”)
      }

      senao {
      escreva(“Suas chances acabaram, eu VENCI.”)
      }
      }

      }

      Fiz o meu assim, queria um feedback sobre minha linha de pensamento, ficou funcionando ao meu ver, oque vocês acham?

    • #152077
      Tutora Jessica
      Moderador

      Ola Lucas, trouxe sua duvida para uma ja existente no fórum, em cima você encontra algumas explicações sobre esse mesmo exercício, no seu código ficou faltando alguma informação? Ele esta completo? Aparece algum erro?

      Caso ele esteja funcionando da forma que pede o enunciado do exercício esta correto sim, o importante é após realizar o exercício por completo analisar a resolução do professor Guanabara e comparar os códigos, mas não necessariamente precisa estar igual ao dele.

      Bons estudos 🖖🏼

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