Home › Fóruns › Programação Básica › exercicio 053
- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 2 anos, 7 meses atrás por Diego Ribeiro.
-
AutorPosts
-
-
3 de janeiro de 2022 às 11:22 #83626DANIEL LIMAParticipante
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, 10 meses atrás por IcaroFilho.
-
4 de janeiro de 2022 às 08:29 #83674IcaroFilhoModerador
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..
-
22 de março de 2022 às 07:44 #89198Diego RibeiroParticipante
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 += numescreva(“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.”)
}
}
}
}-
22 de março de 2022 às 10:43 #89212IcaroFilhoModerador
Bom dia. reproduzi se código aqui. não esta me dando problema na inicialização, e sim nas validações.
-
-
24 de março de 2022 às 21:09 #89426Diego RibeiroParticipante
-
24 de março de 2022 às 21:14 #89429Diego RibeiroParticipante
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: 0Programa 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 += numenquanto(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 ?
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.