exercicio 053

Home Fóruns Programação Básica exercicio 053

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #83626
      DANIEL LIMA
      Participante

      Bom dia não estou conseguindo descobrir a onde estou errando nesse codigo, apos iniciar o programa o portugol studio acusa: Linha 0 Erro na compilação! e tambem: Linha 0 Existem trechos de código onde a variavel resp pode nao ter sido inicializada. segue o codigo abaixo:

      tambem estou com o mesmo erro no ex054

      programa
      {
      	inclua biblioteca Tipos --> ti
      	
      	funcao inicio()
      	{
      		cadeia teclado
      		inteiro num , soma = 0, cont = 0
      		caracter resp 
      		faca {
      			enquanto(verdadeiro){
      				escreva("Digite o ",cont+1, "º número: ")
      				leia(teclado)	
      				se(ti.cadeia_e_inteiro(teclado, 10)) {
      					num = ti.cadeia_para_inteiro(teclado, 10)
      					se(num >= 1 e num <= 10){
      						pare
      					}senao{
      						escreva("<<ERRO>> O número deve estar entre 1 e 10.\n")
      					}
      				}senao{
      						escreva("<<ERRO>> O valor dever ser um número inteiro.\n")	
      				}
      			}
      			cont++
      			soma += num
      				enquanto(verdadeiro) {
      				escreva("Quer continuar? [S/N ]")
      				leia(teclado)
      				se(ti.cadeia_e_caracter(teclado)) {
      					resp = ti.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 dever ser uma letra")
      				   }
      				}
      			} enquanto(resp == 'S' ou resp == 's')
      			escreva("\n----------------------------")
      			escreva("\nVocê digitou ", cont, " valores")
      			escreva("\nA soma entre eles é ", soma)
      			escreva("\n----------------------------\n\n")
      			
      	}
      }
      
      • Este tópico foi modificado 2 anos, 3 meses atrás por IcaroFilho.
    • #83674
      IcaroFilho
      Moderador

      Bom dia Daniel, Este erro acontece devido a compilação do Portugol, existem alguns tópicos criados que vão mais a fundo neste caso (pode procurar por no forum por “erro de inicialização” que deve encontrar)
      Basta que inicialize as variáveis são utilizadas dentro de condições.
      No seu código, teclado num resp são condicionadas.
      então no ato da declaração:

      cadeia teclado = ""
      inteiro num = 0, soma = 0, cont = 0
      caracter resp = ' '

      Lembrando que a declaração do caracter não pode estar vazia e tem que utilizar aspas simples.

      Espero ter ajudado e bons estudos..

    • #89198
      Diego Ribeiro
      Participante

      Olá, estou com o mesmo problema, já tentei inicializar as variáveis como no comentário acima porém nao funcionou.

      programa {
      inclua biblioteca Tipos –> t
      funcao inicio() {
      escreva(“{ EXERCÍCIO 053 – Numeros Validados } \n”)

      cadeia resp = ” ”
      inteiro num = 0, soma = 0, i = 1
      caracter cont = ‘ ‘

      enquanto(verdadeiro) {
      escreva(“Digite o “+ i + ” valor: “)
      leia(resp)

      enquanto(verdadeiro){
      se(t.cadeia_e_inteiro(resp, 10)){
      num = t.cadeia_para_inteiro(resp, 10)
      pare
      } senao {
      escreva(“ERRO, por favor, digite um numero.”)
      }
      }

      i++
      soma += num

      escreva(“Deseja continuar? [S/N] “)
      leia(cont)

      se(cont == ‘n’ ou cont == ‘N’){
      pare
      } senao se (nao(cont == ‘n’ ou cont == ‘N’ ou cont == ‘s’ ou cont == ‘S’)){
      escreva(“Por favor, digite uma opção valida.”)
      }
      }
      }
      }

      • #89212
        IcaroFilho
        Moderador

        Bom dia. reproduzi se código aqui. não esta me dando problema na inicialização, e sim nas validações.

    • #89426
      Diego Ribeiro
      Participante

    • #89429
      Diego Ribeiro
      Participante

      Estou com problema neste exercício e não estou conseguindo postar a print do erro aqui.

      Refiz o código de acordo com a resolução do exercício e agora esta dando este erro:

      “ERRO: Erro na compilação!. Linha: 0, Coluna: 0
      ERRO: /tmp/portugol/programas/Programa1648166739762.java:115: error: variable flag_1648166739773 is already defined in method executar(String[]). Linha: 0, Coluna: 0
      ERRO: boolean flag_1648166739773 =true;while(flag_1648166739773). Linha: 0, Coluna: 0
      ERRO: ^. Linha: 0, Coluna: 0
      ERRO: 1 error. Linha: 0, Coluna: 0

      Programa finalizado.”

      Programa:

      programa {
      inclua biblioteca Tipos –> t
      funcao inicio() {
      escreva(“{ EXERCÍCIO 053 – Numeros Validados } \n”)

      cadeia teclado = “”
      inteiro num = 0, soma = 0, cont = 0
      caracter resp = ‘ ‘

      faca {
      enquanto(verdadeiro) {
      escreva(“Digite o “+ (cont + 1) + “o numero: “)
      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! Digite um numero de 1 a 10.\n”)
      }
      } senao {
      escreva(“ERRO! O valor deve ser inteiro.\n”)
      }
      }
      cont++
      soma += num

      enquanto(verdadeiro){
      escreva(“Deseja 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! Digite S ou N.”)
      }
      } senao {
      escreva(“ERRO! O valor deve ser uma letra.”)
      }

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

      escreva(“\n———————————–“)
      escreva(“\nVocê digitou “, cont , ” numeros.”)
      escreva(“\nA soma é: “, soma)
      escreva(“\n———————————–\n”)
      }
      }

      Existe alguma possibilidade deste erro estar acontecendo por eu estar usando o Portugal online ?

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