Modulo 3 – Ex 054

Home Fóruns Programação Básica Modulo 3 – Ex 054

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #89766
      Diego Ribeiro
      Participante

      Nao estou conseguindo achar o erro do exercício 054, quando executo aparece a seguinte mensagem:

      ERRO: ^. Linha: 0, Coluna: 0
      ERRO: /tmp/portugol/programas/Programa1648673173129.java:161: error: variable flag_1648673173146 is already defined in method executar(String[]). Linha: 0, Coluna: 0
      ERRO: boolean flag_1648673173146 =true;while(flag_1648673173146). Linha: 0, Coluna: 0
      ERRO: ^. Linha: 0, Coluna: 0
      ERRO: 2 errors. Linha: 0, Coluna: 0

      ——————————————————————————————————–

      código :

      programa {
      inclua biblioteca Texto –> txt
      inclua biblioteca Tipos –> tip
      funcao inicio() {
      escreva(“{ EXERCÍCIO 054 – Pessoas Validados } \n”)

      inteiro idade, cont = 0, velho = 0, novo = 0
      cadeia nome = “”, maisVelho = “”, maisNovo = “”, teclado = “”
      caracter resp

      faca {
      escreva(“————————-\n”)
      escreva(“Pessoa ” + (cont + 1))
      escreva(“\n————————-\n”)

      //LOOPING DE VALIDAÇÃO DE NOME, O NOME DEVE TER PELO MENOS 3 LETRAS.
      enquanto (verdadeiro) {
      escreva(“NOME: “)
      leia(teclado)

      se(txt.numero_caracteres(teclado) >= 3){
      nome = teclado
      pare
      } senao {
      escreva(“ERRO – O nome deve ter no minimo 3 letras.\n”)
      }

      } //FIM DO LOOPING DE NOME

      //LOOPING DE VALIDAÇÃO DE IDADE, A IDADE DEVE SER UM NUMERO INTEIRO ENTRE 1 E 110.
      enquanto (verdadeiro) {
      escreva(“IDADE: “)
      leia(teclado)

      se(tip.cadeia_e_inteiro(teclado, 10)) {
      idade = tip.cadeia_para_inteiro(teclado, 10)
      se(idade >= 1 ou idade <= 110){
      pare
      } senao{
      escreva(“ERRO – A idade deve ser de 1 a 110.”)
      }

      } senao {
      escreva(“ERRO – O numero digitado deve ser inteiro.”)
      }

      }//FIM DO LOOPING DE IDADE

      //VALIDANDO OPCAO DE CONTINUAR
      enquanto (verdadeiro){
      escreva(“Quer continuar? {S/N} “)
      leia(teclado)

      se(tip.cadeia_e_caracter(teclado)) {
      resp = tip.cadeia_para_caracter(teclado)
      se(resp == ‘S’ ou resp == ‘s’ ou resp == ‘N’ ou resp == ‘n’){
      pare
      } senao {
      escreva(“ERRO – A resposta deve ser somente S ou N.”)
      }

      } senao {
      escreva(“ERRO – A resposta deve conter apenas 1 letra,”)
      }
      }

      cont++

      //INICIALIZANDO A VARIAVEL (CASO SEJA O PRIMEIRO NOME DIGITADO)
      se (cont == 1) {
      velho = idade
      novo = idade
      maisVelho = nome
      maisNovo = nome
      } senao {

      //AQUI O PROGRAMA ESTA COMPARANDO A IDADE DIGITADA COM AS IDADES QUE ELE JA TEM ARMAZENADO E SUBSTITUINDO SE CASO ATENDER A CONDIÇÃO
      se (idade < novo) {
      novo = idade
      maisNovo = nome
      }

      se (idade > velho) {
      velho = idade
      maisVelho = nome
      }
      }

      } enquanto (resp == ‘S’ ou resp == ‘s’)

      escreva(“———————————-\n RESULTADO \n———————————-\n”)
      escreva(“Você cadastrou ” +cont + ” pessoas.\n”)
      escreva(“A pessoa mais nova é ” + maisNovo + ” com ” + novo + ” anos.\n”)
      escreva(“A pessoa mais velha é ” + maisVelho + ” com ” + velho + ” anos.\n”)
      }
      }

    • #90366
      IcaroFilho
      Moderador

      Bom dia Diego,
      Eu copiei o seu código e o único erro que me retornou foi de variável não inicializada.
      Apenas inicializei as variáveis idade e resp.
      Código esta funcionando corretamente.
      Segue abaixo como ficou:

      programa {
          inclua biblioteca Texto --> txt
          inclua biblioteca Tipos --> tip
          
      	funcao inicio() {
      		
      		escreva("{ EXERCÍCIO 054 - Pessoas Validados } \n")
      		
      		inteiro idade = 0, cont = 0, velho = 0, novo = 0
      		cadeia nome = "", maisVelho = "", maisNovo = "", teclado = ""
      		caracter resp = ' '
      		
      		
      		faca {
      		    escreva("-------------------------\n")
      		    escreva("Pessoa " + (cont + 1))
      		    escreva("\n-------------------------\n")
      		    
      		    //LOOPING DE VALIDAÇÃO DE NOME, O NOME DEVE TER PELO MENOS 3 LETRAS.
      		    enquanto (verdadeiro) {
          		    escreva("NOME: ")
          		    leia(teclado)
          		    
          		    se(txt.numero_caracteres(teclado) >= 3){
          		        nome = teclado
          		        pare
          		    } senao {
          		        escreva("ERRO - O nome deve ter no minimo 3 letras.\n")
          		    }
      		    
      		        
      		    } //FIM DO LOOPING DE NOME
      		    
      		    //LOOPING DE VALIDAÇÃO DE IDADE, A IDADE DEVE SER UM NUMERO INTEIRO ENTRE 1 E 110.
      		    enquanto (verdadeiro) {
      		    escreva("IDADE: ")
      		    leia(teclado)
      		    
      		    se(tip.cadeia_e_inteiro(teclado, 10)) {
      		        idade = tip.cadeia_para_inteiro(teclado, 10)
      		        se(idade >= 1 ou idade <= 110){
      		            pare
      		        } senao{
      		            escreva("ERRO - A idade deve ser de 1 a 110.")
      		        }
      		        
      		    } senao {
      		        escreva("ERRO - O numero digitado deve ser inteiro.")
      		    }
      		    
      		    }//FIM DO LOOPING DE IDADE
      		    
      		    
      		    //VALIDANDO OPCAO DE CONTINUAR
      		    enquanto (verdadeiro){
          		    escreva("Quer continuar? {S/N} ")
          		    leia(teclado)
          		    
          		    se(tip.cadeia_e_caracter(teclado)) {
          		        resp = tip.cadeia_para_caracter(teclado)
          		        se(resp == 'S' ou resp == 's' ou resp == 'N' ou resp == 'n'){
          		            pare
          		        } senao {
          		            escreva("ERRO - A resposta deve ser somente S ou N.")
          		        }
          		        
          		    } senao {
          		        escreva("ERRO - A resposta deve conter apenas 1 letra,")
          		    }
      		    }
      		    
      		    
      		    cont++
      		    
      		    //INICIALIZANDO A VARIAVEL (CASO SEJA O PRIMEIRO NOME DIGITADO)
      		    se (cont == 1) {
      		        velho = idade
      		        novo = idade
      		        maisVelho = nome
      		        maisNovo = nome
      		    } senao {
      		        
      		        //AQUI O PROGRAMA ESTA COMPARANDO A IDADE DIGITADA COM AS IDADES QUE ELE JA TEM ARMAZENADO E SUBSTITUINDO SE CASO ATENDER A CONDIÇÃO
      		        se (idade < novo) {
      		            novo = idade
      		            maisNovo = nome
      		        } 
      		        
      		        se (idade > velho) {
      		            velho = idade
      		            maisVelho = nome
      		        }
      		    }
      		    
      		} enquanto (resp == 'S' ou resp == 's')
      		
      		escreva("----------------------------------\n RESULTADO \n----------------------------------\n")
      		escreva("Você cadastrou " +cont + " pessoas.\n")
      		escreva("A pessoa mais nova é " + maisNovo + " com " + novo + " anos.\n")
      		escreva("A pessoa mais velha é " + maisVelho + " com " + velho + " anos.\n")
      	}
      }
    • #90385
      Diego Ribeiro
      Participante

      Coloque este codigo no portugol e deu esse erro novamente:

      ERRO: Erro na compilação!. Linha: 0, Coluna: 0
      ERRO: /tmp/portugol/programas/Programa1649255436436.java:121: error: variable flag_1649255436449 is already defined in method executar(String[]). Linha: 0, Coluna: 0
      ERRO: boolean flag_1649255436449 =true;while(flag_1649255436449). Linha: 0, Coluna: 0
      ERRO: ^. Linha: 0, Coluna: 0
      ERRO: /tmp/portugol/programas/Programa1649255436436.java:167: error: variable flag_1649255436449 is already defined in method executar(String[]). Linha: 0, Coluna: 0
      ERRO: boolean flag_1649255436449 =true;while(flag_1649255436449). Linha: 0, Coluna: 0
      ERRO: ^. Linha: 0, Coluna: 0
      ERRO: 2 errors. Linha: 0, Coluna: 0

      • #90432
        IcaroFilho
        Moderador

        Boa noite Diego. Qual a versão do Portugol esta utilizando ? tenho instalado a versão 2.7.5
        Se estiver utilizando a versão online, vai quebrar.

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