Faça um algoritmo em Java que dado um número, verifique se o mesmo é divisível por 3 e 5, mas que não seja divisível por 10.
Respostas
respondido por:
4
Podemos resolver de várias formas esse problema.
Pensando em módulos podemos fazer 3 módulos (métodos) especializados em divisibilidade (3,5 e 10). Mas verificando a manutenção deste sistema fica mais complexo. Então a melhor forma é termos um módulo que receba o número qualquer e por qual será a verificação de divisibilidade 3 ou 5 ou 10.
Portanto ficaríamos assim o método: boolean getDivisibilidade(int numero, int divisivel);
Agora o seu método "principal" é que coordenará a lógica, isso se for considerar o modelo de desenvolvimento em camadas (MVC) seria a sua camada de negócio.
Bom analisando um o problema e montando a sua estrutura de solução, temos o seguinte código:
public class Verificador {
public static void main(String[] args) {
//Instância da classe Verificação
Verificador v = new Verificador();
// Número qualquer, por exemplo 10, mas podemos usar uma popup ou leitura via teclado para receber esse valor. Estou colocando na declaração para efeito de exemplificação.
int numero = 10;
//Invocação do método da classe Verificação
boolean div3 = v.getDivisibilidade(numero, 3);
boolean div5 = v.getDivisibilidade(numero, 5);
boolean div10 = v.getDivisibilidade(numero, 10);
//Divisível por 3 e 5 e não 10
if(div3 && div5 && !div10) {
System.out.println("Todas as comparações foram atendidas");
System.out.println("Divisível por 3 e 5 e não 10");
} else {
System.out.println("Algumas das comparações não foram atendidas");
}
}
public boolean getDivisibilidade(int numero, int divisivel) {
//repare que queremos saber se é divisível, caso for o resto deve ser 0, se for diferente de 0 quer dizer que não é divisível.
return numero % divisivel == 0;
}
}
A partir desta solução podem extrair outras mensagens para o usuário, por exemplo para cada verificação de divisibilidade informar se foi com sucesso ou não, ou apenas ao final se foi com sucesso, neste caso que desenvolvi. Dai pode customizar conforme a necessidade.
A lógica para desenvolver problemas deste tipo é trabalhar com a menor complexidade possivel e separar por métodos com uma responsabilidade de realizar "coisas". Pensando desta forma e desenvolvendo fluxograma vai ver que programar em Java, C ou qualquer outra linguagem vai ficar fácil e muito simples.
Pensando em módulos podemos fazer 3 módulos (métodos) especializados em divisibilidade (3,5 e 10). Mas verificando a manutenção deste sistema fica mais complexo. Então a melhor forma é termos um módulo que receba o número qualquer e por qual será a verificação de divisibilidade 3 ou 5 ou 10.
Portanto ficaríamos assim o método: boolean getDivisibilidade(int numero, int divisivel);
Agora o seu método "principal" é que coordenará a lógica, isso se for considerar o modelo de desenvolvimento em camadas (MVC) seria a sua camada de negócio.
Bom analisando um o problema e montando a sua estrutura de solução, temos o seguinte código:
public class Verificador {
public static void main(String[] args) {
//Instância da classe Verificação
Verificador v = new Verificador();
// Número qualquer, por exemplo 10, mas podemos usar uma popup ou leitura via teclado para receber esse valor. Estou colocando na declaração para efeito de exemplificação.
int numero = 10;
//Invocação do método da classe Verificação
boolean div3 = v.getDivisibilidade(numero, 3);
boolean div5 = v.getDivisibilidade(numero, 5);
boolean div10 = v.getDivisibilidade(numero, 10);
//Divisível por 3 e 5 e não 10
if(div3 && div5 && !div10) {
System.out.println("Todas as comparações foram atendidas");
System.out.println("Divisível por 3 e 5 e não 10");
} else {
System.out.println("Algumas das comparações não foram atendidas");
}
}
public boolean getDivisibilidade(int numero, int divisivel) {
//repare que queremos saber se é divisível, caso for o resto deve ser 0, se for diferente de 0 quer dizer que não é divisível.
return numero % divisivel == 0;
}
}
A partir desta solução podem extrair outras mensagens para o usuário, por exemplo para cada verificação de divisibilidade informar se foi com sucesso ou não, ou apenas ao final se foi com sucesso, neste caso que desenvolvi. Dai pode customizar conforme a necessidade.
A lógica para desenvolver problemas deste tipo é trabalhar com a menor complexidade possivel e separar por métodos com uma responsabilidade de realizar "coisas". Pensando desta forma e desenvolvendo fluxograma vai ver que programar em Java, C ou qualquer outra linguagem vai ficar fácil e muito simples.
Perguntas similares
7 anos atrás
7 anos atrás
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás