Home › Fóruns › Programação Básica › exercicio 053
- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 3 anos atrás por
Diego Ribeiro.
-
AutorPosts
-
-
3 de janeiro de 2022 às 11:22 #83626
DANIEL LIMA
ParticipanteBom 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 3 anos, 3 meses atrás por
IcaroFilho.
-
Este tópico foi modificado 3 anos, 3 meses atrás por
-
4 de janeiro de 2022 às 08:29 #83674
IcaroFilho
ModeradorBom 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 #89198
Diego Ribeiro
ParticipanteOlá, 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 #89212
IcaroFilho
ModeradorBom 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 #89426
Diego Ribeiro
Participante -
24 de março de 2022 às 21:14 #89429
Diego Ribeiro
ParticipanteEstou 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.