> For the complete documentation index, see [llms.txt](https://valter-lobo.gitbook.io/fase-1-solidity-basico/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://valter-lobo.gitbook.io/fase-1-solidity-basico/material-encontro-2/desafio-desenvolvimento-de-uma-calculadora-simples-em-solidity.md).

# Desafio: Desenvolvimento de uma calculadora simples em Solidity

Nesta tarefa, você terá a oportunidade de desenvolver uma calculadora básica em Solidity, utilizando apenas o tipo de dado inteiro. Além disso, você explorará a questão do suporte a ponto flutuante no Solidity, preparando-se para o próximo desafio.

**Objetivos:**

* Implementar uma calculadora funcional que realiza as operações básicas de adição, subtração, multiplicação e divisão.Garantir que todas as operações sejam realizadas com números inteiros, considerando as características do tipo de dado em Solidity.
* Investigar se o Solidity oferece suporte nativo para o tipo de ponto flutuante. Pesquisar sobre: "Como podemos realizar operações de ponto flutuante com Solidity?".

**Etapas:**

1. **Desenvolvimento da Calculadora:**
   * Crie um contrato inteligente Solidity que implemente as operações básicas de adição, subtração, multiplicação e divisão.
   * Utilize o tipo de dado inteiro para representar todos os valores.
   * Implemente funções separadas para cada operação, cada uma recebendo dois números inteiros como argumentos e retornando o resultado da operação.
   * Teste cada função individualmente para garantir que esteja funcionando corretamente.
2. **Investigação do Suporte a Ponto Flutuante:**
   * Pesquise a documentação oficial do Solidity e outras fontes relevantes para determinar se o Solidity oferece suporte nativo para o tipo de ponto flutuante.
   * Se o suporte for nativo, explore as maneiras de realizar operações de ponto flutuante em Solidity.
   * Identifique as bibliotecas ou ferramentas externas que podem ser utilizadas para facilitar a implementação de operações de ponto flutuante.
   * Documentação do Solidity: <https://docs.soliditylang.org/>
