Skip to content

Biblioteca de operações aritméticas em Java, feita para desafio da Escola @VaiNaWeb.

License

Notifications You must be signed in to change notification settings

hamomgs/calculation-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

banner

Repository size GitHub last commit License Feito por Hamom Silva

Desafio da escola Vai na Web: Criar uma biblioteca (lib) em Java sem instanciar objetos, utilizando apenas a classe para realizar operações matemáticas diversas. O objetivo é empacotar o código realizado em um arquivo JAR para facilitar a reutilização.

📚 Sobre a Biblioteca

A biblioteca CalculationUtils oferece uma variedade de operações matemáticas básicas e avançadas em Java. Ela foi projetada para ser fácil de usar, permitindo que os usuários realizem cálculos sem a necessidade de instanciar objetos.

🌟 Desafios Encontrados

  • Permitir que o usuário some, subtraia, multiplique e divida quantos números desejar.

    • Para lidar com a necessidade de permitir que o usuário realize operações com quantos números desejar, busquei pelas melhores práticas em Java. Com conhecimento prévio em JavaScript, pesquisei pela existência do recurso de parâmetros rest, que permite representar um número indefinido de argumentos como um array no parametro, no Java. Pesquisando, encontrei a solução utilizando parâmetros varargs (variadic arguments). Os parâmetros varargs também são usados para definir um parâmetro que pode receber um número indefinido de argumentos. Com o uso de um loop for e for-each, consegui iterar sobre os argumentos e realizar as operações desejadas.

        // Exemplo de uso:
        double soma = Calculadora.somar(1, 2, 3, 4, 5);
        System.out.println(soma); // Saída: 15
  • Trazer um pouco mais de carinho e personalização para a biblioteca ao considerar erros simples e comuns ao fazer o cálculo de alguns métodos, como passar apenas um argumento para a divisão ou tentar dividir por zero.

    • Para tornar a biblioteca mais amigável e evitar erros comuns, implementei verificações e mensagens descritivas de erro. Utilizei estruturas condicionais para identificar situações como passar apenas um argumento para a divisão (que requer no mínimo dois números) e tentar dividir por zero (que é indefinido). Além disso, lancei exceções com mensagens informativas para indicar claramente quando ocorre um erro.

        // Exemplo de uso:
        try {
          double divisao = Calculadora.dividir(10, 0, 2);
          System.out.println(divisao);
        } catch (IllegalArgumentException e | ArithmeticException e) {
          System.err.println("Erro: " + e.getMessage()); // Saída: Erro: Não é possível dividir por zero.
        }

⚙️ Funcionalidades Principais

A biblioteca inclui as seguintes funcionalidades:

➗ Operações Aritméticas Básicas

  • Soma
  • Subtração
  • Multiplicação
  • Divisão

⏹️ Operações Aritméticas Avançadas

  • Potenciação
  • Radiciação

🔄 Trigonometria

  • Seno
  • Cosseno
  • Tangente

🔢 Logaritmos

  • Logaritmo Natural
  • Logaritmo na Base 10

📏 Cálculos de Área, Perímetro e Volume

  • Área do Retângulo, Triângulo, etc.
  • Perímetro do Retângulo, Triângulo, etc.
  • Volume do Cubo, Pirâmide, etc.

💹 Cálculos de Juros

  • Juros Simples
  • Juros Compostos

🌐 Exemplos de Uso

Aqui estão alguns exemplos básicos de como usar a biblioteca:

import br.com.vainaweb.lib.Calculadora;

public class Main {
    public static void main(String[] args) {
        // Operações Básicas
        double soma = Calculadora.somar(1, 2, 3, 4, 5);
        System.out.println("Soma: " + soma); // Soma: 15.0

        // Potenciação
        double potencia = Calculadora.potencia(2, 3);
        System.out.println("Potência: " + potencia); // Potência: 8.0

        // Trigonometria
        double seno = Calculadora.seno(30);
        System.out.println("Seno: " + seno); // Seno: 0.49999999999999994
    }
}

Para mais detalhes e exemplos, consulte a Documentação.

🎯 Possíveis Melhorias

  • Implementar outras operações aritméticas.
  • Refatorar e organizar métodos em diferentes classes. Exemplos de classes: Financas, CalculosGeometricos, OperacoesBasicas, etc.
  • Adicionar mais validações de entrada e mensagens de erro.

🛠️ Tecnologias

Tecnologia Versão
Java SE JDK 17.0.9

🧑‍🏫 Instrutor e Facilitador


Samuel Silvério

🧑‍🏫

Leno Rafael

🧑‍🏫

🤝 Como Contribuir

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contanto o que você fez: git commit -m "feature: My new feature"
  4. Envie as alterações: git push origin my-feature

💚 Agradecimentos

Referências, fontes, ferramentas e recursos utilizados não só na biblioteca, mas também na Documentação do desafio.

🧙‍♂️ Autor


Hamom Silva

👨‍💻

📃 Licença

Esse projeto esta sob a licença MIT.

About

Biblioteca de operações aritméticas em Java, feita para desafio da Escola @VaiNaWeb.

Topics

Resources

License

Stars

Watchers

Forks