Exercício 53 – Erro de compilação – Portugol

Home Fóruns Programação Básica Exercício 53 – Erro de compilação – Portugol

Visualizando 3 respostas da discussão
  • Autor
    Posts
    • #146802

      Após tentar fazer o código sozinho e estar dando erro de compilação na linha 0, e o erro de “Existem trechos de código onde a variável pode não ter sido inicializada”. Assisti a aula de resolução de exercício do mesmo. Entretanto ao fazer um novo arquivo com o mesmo código o mesmo aparece os mesmo erros na Linha 0 : “Erro na compilação!” e “Existem trechos de código onde a variável pode não ter sido inicializada”

      Gostaria de entender o porque estar dando esses erros…
      Abaixo o código:

      programa
      {

      inclua biblioteca Tipos –> t
      funcao inicio()
      {
      cadeia teclado
      inteiro num, soma = 0, cont = 1
      caracter resp
      faca{
      enquanto (verdadeiro){
      escreva(“——————————\n”)
      escreva(” VALOR “,cont,” \n”)
      escreva(“——————————\n”)
      escreva(“Digite um número (entre 1 e 10) : “)
      leia(teclado)
      se (t.cadeia_e_inteiro(teclado, 10)) {
      num = t.cadeia_para_inteiro(teclado, 10)
      se (num >= 1 e num <= 10) {
      pare
      } senao {
      escreva(“<<ERRO>> O numero deve estar entre 1 e 10.\n”)
      }
      } senao {
      escreva(“<<ERRO>> O valor deve ser um numero inteiro.\n”)
      }
      }
      cont++
      soma += num
      enquanto (verdadeiro) {
      escreva(“Quer continuar? [S/N] “)
      leia(teclado)
      se (t.cadeia_e_caracter(teclado)) {
      resp = t.cadeia_para_caracter(teclado)
      se (resp == ‘S’ ou resp == ‘s’ ou resp == ‘N’ ou resp == ‘n’) {
      pare
      } senao {
      escreva(“<<ERRO>> Por favor, responda S ou N.\n”)
      }
      } senao {
      escreva(“<<ERRO>> O valor deve ser uma letra.\n”)
      }
      }
      } enquanto (resp == ‘S’ ou resp == ‘s’)
      escreva(“\n============RESULTADOS============\n”)
      escreva(“Ao todo você digitou “, cont, “\n”)
      escreva(“A soma de todos eles foi “,soma)
      }
      }

    • #146809
      Tutora Jessica
      Moderador

      Olá João, quando aparece esse erro no código é só você inicializar todas as suas variáveis, por exemplo:

      Você iniciou as variáveis soma e cont, mas a variável num esta sem inicializar.

      Inicialize a todas as variáveis e veja se vai funcionar direitinho .

    • #152519
      Lucas Silva
      Participante

      -Consegui implementar toda a lógica, mas estou com dificuldades na validação da pergunta ‘Quer continuar?’. Gostaria de ajuda para entender como implementar a validação dessa pergunta sem interferir no loop, de modo que, ao digitar um valor incorreto, apareça uma mensagem de erro, e ao digitar o valor correto, o programa retorne ao loop para digitar os valores ou saia do loop, dependendo do caractere digitado.-

      programa
      {

      inclua biblioteca Texto –> txt
      inclua biblioteca Tipos –> tip

      funcao inicio()
      {
      cadeia valor_inserido
      inteiro valor_validado, contador, soma
      caracter resposta

      valor_validado = 0
      contador = 1
      soma = 0
      resposta = ‘ ‘

      faca {
      enquanto(verdadeiro) {
      escreva(“\n————————–“)
      escreva(“\n Valor ” +contador)
      escreva(“\n————————–“)
      escreva(“\nDigite um número entre 1 e 10: “)
      leia(valor_inserido)
      se(tip.cadeia_e_inteiro(valor_inserido, 10)) {
      valor_validado = tip.cadeia_para_inteiro(valor_inserido, 10)
      se (valor_validado > 0 e valor_validado <= 10) {
      pare

      }senao {
      escreva(“\n ======= !ERRO! =======”)
      escreva(“\n Digite apenas números entre 1 e 10”)

      }

      } senao {
      escreva(“\n ======== !ERRO! ========”)
      escreva(“\n Insira apenas números!”)

      }

      }

      soma += valor_validado
      escreva(“\n——————–“)
      escreva(“\nQuer continuar? [S/N] “)
      leia(resposta)

      se (resposta == ‘N’ ou resposta == ‘n’) {
      pare
      }
      contador += 1
      } enquanto(resposta == ‘S’ ou resposta == ‘s’)
      escreva(“\nAo todo você digitou ” +contador+ ” valores. “)
      escreva(“\nA soma de todos eles foi ” +soma+ “.”)

      }

      }

    • #155667
      Tutora Jessica
      Moderador

      Ola Lucas, desculpa a demora na resposta a sua duvida permanece?

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