Dúvidas sobre minha solução no exercício 38

Home Fóruns Programação Básica Dúvidas sobre minha solução no exercício 38

Visualizando 8 respostas da discussão
  • Autor
    Posts
    • #154184

      Olá,

      Tentei resolver o exercício 38 com uma abordagem um pouco diferente da solução apresentada. Meu código está funcionando quase perfeitamente, mas há um erro que não consegui identificar a origem. As variáveis que armazenam o nome do homem mais velho simplesmente não recebem o valor da variável nome.

      Abaixo, compartilho o código e, em seguida, a saída que aparece na tela.

      programa
      {
      	inclua biblioteca Texto --> t
      	funcao inicio()
      	{
      		inteiro contador =1, idade, idadeH_maior = 0, idadeH_Menor = 0, idadeF_Maior = 0, idadeF_Menor = 0
      		cadeia sexo, nome, nomeF_Maior = "x", nomeF_Menor = " ", nomeM_Maior = " ", nomeM_Menor = " "
      			 
      		enquanto (contador <= 5){
      		escreva("-----------------")
      		escreva("\n", contador, "a PESSOA")
      		escreva("\n-----------------")
      		escreva("\nNOME: ")
      		leia(nome)
      		escreva("SEXO: [F/M] ")
      		leia(sexo)
      		sexo = t.caixa_alta(sexo)
      		escreva("IDADE: ")
      		leia(idade)
      			
      		se(contador == 1){
      			idadeH_maior = idade
      			idadeH_Menor = idade
      			idadeF_Maior = idade
      			idadeF_Menor = idade
      		}senao{
      			se (idade > idadeF_Maior e sexo == "F"){
      				idadeF_Maior = idade
      				nomeF_Maior = nome
      			}
      			se (idade < idadeF_Menor e sexo == "F"){
      				idadeF_Menor = idade
      				nomeF_Menor = nome
      			}
      			se (idade > idadeH_maior e sexo == "M") {
      				idadeH_maior = idade
      				nomeM_Maior = nome
      			}
            		se (idade < idadeH_Menor e sexo =="M"){
            			idadeH_Menor = idade
            			nomeM_Menor = nome
            		}
      		}
      					contador++
      		}
      		escreva("===================================================")
      		escreva("\nA mulher mais velha é ", nomeF_Maior, " que tem ", idadeF_Maior, " anos")
      		escreva("\nA mulher mais jovem é ", nomeF_Menor, " que tem ", idadeF_Menor, " anos")
      		escreva("\nO homem mais velho é ", nomeM_Maior, " que tem ", idadeH_maior, " anos")
      		escreva("\nO homem mais jovem é ", nomeM_Menor, " que tem ", idadeH_Menor, " anos")
      		escreva("\n===================================================\n\n")
      	}
      }

      Segue as saídas:

      https://drive.google.com/file/d/1WmCu4Fp_UYEdUvyqGIPjSeLSiBlekrZ2/view?usp=sharing

      Como podem ver a parte onde era para aparecer o nome do homem mais velho fica em branco, reproduzindo a inicialização dele, com valor de espaço/ vazio, e não recebe o valor do nome.

    • #154194
      Tutora Jessica
      Moderador

      Olá Raphael,
      Fiz alguns testes e nenhum espaço saiu em branco, o único porém é que a mulher com maior idade sai como X já que você ditou no seu código que a variável nomeF_Maior recebe o valor de X.

    • #154197

      Caramba, que estranho, no print que está no link, pode ver que todas idades aparecem, os nomes da mulher mais velha, mulher mais nova e homem mais novo aparecem também, só o nome do homem mais velho que fica vazio, não recebe o valor da variável nome, como deveria.

      teste no Portugol Webstudio, e o mesmo erro continua.

    • #154198

      Vou colar a saída do PortugolStudio versão Web.

      —————–
      1a PESSOA
      —————–
      NOME: Raphael
      SEXO: [F/M] m
      IDADE: 37
      —————–
      2a PESSOA
      —————–
      NOME: Carla
      SEXO: [F/M] f
      IDADE: 39
      —————–
      3a PESSOA
      —————–
      NOME: Breno
      SEXO: [F/M] m
      IDADE: 5
      —————–
      4a PESSOA
      —————–
      NOME: Brbara
      SEXO: [F/M] f
      IDADE: 10
      —————–
      5a PESSOA
      —————–
      NOME: Mirella
      SEXO: [F/M] f
      IDADE: 11
      ===================================================
      A mulher mais velha é Carla que tem 39 anos
      A mulher mais jovem é Brbara que tem 10 anos
      O homem mais velho é que tem 37 anos
      O homem mais jovem é Breno que tem 5 anos
      ===================================================

      Programa finalizado. Tempo de execução: 21891 milissegundos

    • #154207
      Tutora Jessica
      Moderador

      Também estou utilizando a versão Web, olha como esta aparecendo :

      —————–
      1a PESSOA
      —————–
      NOME: Jucicreide
      SEXO: [F/M] f
      IDADE: 30
      —————–
      2a PESSOA
      —————–
      NOME: Lolo
      SEXO: [F/M] f
      IDADE: 3
      —————–
      3a PESSOA
      —————–
      NOME: xuaum
      SEXO: [F/M] m
      IDADE: 17
      —————–
      4a PESSOA
      —————–
      NOME: bia
      SEXO: [F/M] f
      IDADE: 15
      —————–
      5a PESSOA
      —————–
      NOME: pedrun
      SEXO: [F/M] m
      IDADE: 33
      ===================================================
      A mulher mais velha é x que tem 30 anos
      A mulher mais jovem é Lolo que tem 3 anos
      O homem mais velho é pedrun que tem 33 anos
      O homem mais jovem é xuaum que tem 17 anos
      ===================================================

      Programa finalizado. Tempo de execução: 41655 milissegundos

    • #154212

      Abri outro navegador na guia anônima, fui para o site do Portugol Studio, copiei e colei o código e o problema persistiu.

      Vou colocar o link para poder visualizar a imagem.

      https://drive.google.com/file/d/12tfp5OQeSAUIJ9EV4b5sgdIbMHSay02Y/view?usp=sharing

      Chegou a ver algum erro lógico no código, acredito que o problema não está na configuração da minha máquina, já que na versão Web também deu problema, em dois navegadores diferente e um deles usando de forma anônima.

    • #154213

      Fiz um teste no código por sugestão de uma IA, que pedi para me ajudar a encontrar o problema, e funcionou, acrescente a variável nomeM_Maior na primeira estrutura se.

      se(contador == 1){
                              nomeM_Maior = nome
      			idadeH_maior = idade
      			idadeH_Menor = idade
      			idadeF_Maior = idade
      			idadeF_Menor = idade

      O que eu não entendi é por qual motivo o das outras variáveis (nomeF_Maior, nomeF_Menor e nomeM_Menor), que não foram declaradas na primeira estrutura se funcionaram e essa em específico não funcionou.

      Será que é algum bug do sistema?

    • #154217
      Tutora Jessica
      Moderador

      Olha Raphael, as versões web podem sim apresentar bugs com mais “facilidade”, a minha versão web a pouco tempo atrás se disse atualizar pode ser por isso também, pois realmente aqui não deu nenhum erro nem apresentou nada no console apenas a variável declarada como X apresentou a devida resposta.

      Contudo te parabenizo por procurar soluções, já é um grande passo para um ótimo programador 🖖🏼

      Bons estudos e se precisar estamos aqui para tentar ajudar da melhor forma 🖖🏼

      • Esta resposta foi modificada 1 mês, 4 semanas atrás por Tutora Jessica.
    • #154219

      Jessica, obrigado pelas respostas.

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