• Matéria: Informática
  • Autor: gabriela1986
  • Perguntado 9 anos atrás

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: trfiladelfo
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.











Perguntas similares