Informática, perguntado por karengkonig, 11 meses atrás

Fazer a leitura de quatro valores numéricos inteiros representados pelas variáveis A, B, C e D. Apresentar na tela apenas os valores que forem divisíveis por 2 ou 3.

var
a, b, c, d:inteiro

inicio
// Seção de Comandos
escreval("***Descubra os numeros divisiveis por 2 e 3***")
escreval("Escreva os numeros: ")
escreva("A: ")
leia(a)
escreva("B: ")
leia(b)
escreva("C: ")
leia(c)
escreva("D: ")
leia(d)
escreval("")
escreval("")
escreval("***RESULTADOS***")
escreval("")
escreval("")

//Inicio da conta

//a
se ((a mod 2)=0) entao
escreval(a, " é divisivel por 2, confira: ", a ," / 2 = ",a/2)
se ((a mod 3)=0) entao
escreval(a, " é divisivel por 3, confira: ", a , " / 3 = ",a/3)
fimse
fimse
//b
se ((b mod 2)=0) entao
escreval(b, " é divisivel por 2, confira: ", b ," / 2 = ",b/2)
se ((b mod 3)=0) entao
escreval(b, " é divisivel por 3, confira: ", b , " / 3 = ",b/3)
fimse
fimse
//c
se ((c mod 2)=0) entao
escreval(c, " é divisivel por 2, confira: ", c ," / 2 = ",c/2)
se ((c mod 3)=0) entao
escreval(c, " é divisivel por 3, confira: ", c , " / 3 = ",c/3)
fimse
fimse
//d
se ((d mod 2)=0) entao
escreval(d, " é divisivel por 2, confira: ", d ," / 2 = ",d/2)
se ((d mod 3)=0) entao
escreval(d, " é divisivel por 3, confira: ", d , " / 3 = ",d/3)
fimse
fimse
fimalgoritmo

To colocando os números para testar porem alguns que são divisíveis por 2 ou 3 não aparecem... o que sera que estou fazendo errado ??

Soluções para a tarefa

Respondido por jakecoll
1
O erro se encontra nos seus "se". Pegamos por exemplo o número 9; primeiro o algoritmo armazena ele em uma variável, logo após ele verifica se é divisível por 2 — o que não é o nosso caso —, e ele simplesmente pula para a verificação de outra variável. Neste último caso ele deveria verificar novamente a mesma variável, só que agora se ela é divisível por 3.

Outra observação: Não é usual essa repetição de código desnecessariamente, tente usar algum loop de repetição. Neste caso terá que utilizar um vetor — o que fugirá um pouco da proposta da questão. Ou ainda, utilizar um procedimento, deixarei abaixo um exemplo deste. 


algoritmo "Teste"var
a, b, c, d:inteiro

procedimento divisivel (valor:inteiro)
inicio
se ((valor mod 2)=0) e ((valor mod 3)=0) entao   
escreval(valor, " é divisivel por 2 e por 3")
senao   
se ((valor mod 2)=0) entao     
escreval(valor, " é divisivel apenas por 2") 
senao     
se ((valor mod 3)=0) entao         
escreval(valor, " é divisivel apenas por 3")     
fimse   
fimsefimsefimprocedimento

inicio
// Seção de Comandos
escreval("***Descubra os numeros divisiveis por 2 e 3***")
escreval("Escreva os numeros: ")
escreva("A: ")
leia(a)escreva("B: ")
leia(b)escreva("C: ")
leia(c)escreva("D: ")
leia(d)escreval("")
escreval("")
escreval("***RESULTADOS***")

//Inicio da conta
divisivel(a)
divisivel(b)
divisivel(c)
divisivel(d)

fimalgoritmo

jakecoll: Nesse caso use o procedimento, como no meu exemplo. Ele já explicou o funcionamento?
karengkonig: vou fazer do seu jeito e ja respondo ok obrigada !!
karengkonig: procedimento ? como assim ?
karengkonig: fiz ali do sei jeito ficou mais organizado...
jakecoll: O procedimento pode ser entendido como uma tarefa genérica que ao ser chamada ela executa uma determinada ação – programada anteriormente. Nesse meu exemplo toda vez que ele é chamado – divisivel(a), por exemplo – ele faz a verificação se é divisível ou não, é quase a mesma coisa que você fazia antes, só que com menos linhas de códigos.
karengkonig: ah sim... entendi, achei que o procedimento que você estava falando era um outro nome pro algoritmo e fimalgoritmo. mas então fiz agora como você comentou ali encima, porem da erro quando tento executar no visualg
karengkonig: acho que descobri o erro do teste.
karengkonig: // Seção de Comandos
escreval("***Descubra os numeros divisiveis por 2 e 3***")
escreval("Escreva os numeros: ")
escreva("A: ")
leia(a)escreva("B: ")
leia(b)escreva("C: ")
leia(c)escreva("D: ")
leia(d)escreval("")
escreval("")
escreval("***RESULTADOS***")
karengkonig: separei os escreval dos leia ai funcionou
karengkonig: agora que entendi essa dica achei muito pratica, só vou perguntar para o professor se posso usar nesse exercício, pois ele deu uma lista para entregar e como não explicou sobre procedimento ainda, pode ser que ele não aceite!
Perguntas interessantes