Descubra a relação entre matemática e programação, e como isso impacta sua carreira como programador. Continue a leitura aqui.
Tempo de Leitura: < 1 minuto
Muitas são as dúvidas de quem está no início dos estudos relacionados ao desenvolvimento de software e em busca de ingressar na carreira e no mercado de trabalho como programador.
Durante esse período, alguns questionamentos surgem em nossas mentes e, sem dúvidas, um dos mais frequentes é: “Utilizarei matemática no dia a dia como programador? Existe alguma relação entre a matemática e o desenvolvimento de software?”.
Se essas são as suas dúvidas, continue lendo esse artigo, que nele te explico a influência de alguns conhecimentos matemáticos na programação e te dou exemplos utilizando a linguagem JavaScript, para facilitar a compreensão.
Fundamentos da matemática na programação
1. Operadores e expressões aritméticos
Uns dos conceitos mais básicos da matemática, que aprendemos ainda no ensino fundamental são as expressões e operadores aritméticos.
Basicamente, são as operações que podemos realizar e que formam a base dos cálculos matemáticos, como a soma, subtração, multiplicação, divisão, exponenciação e radiciação, por exemplo, que possuem uma ordem de precedência, ou seja, um critério que define a sequência de suas realizações.
Quanto a isso, as linguagens de programação também possuem os operadores aritméticos, o que nos permite realizar cálculos em nosso software. Estes sinais podem variar conforme as linguagens de programação, mas, em geral, os mais comuns são representados pelos símbolos abaixo.
Soma | + |
Subtração | - |
Multiplicação | * |
Divisão | / |
Módulo (resto) da divisão | % |
Em Javascript, por exemplo, poderíamos empregar estes operadores da seguinte forma:
var adicao = 10 + 2 //Resultado: 12
var subtracao = 10 - 2 //Resultado: 08
var multiplicacao = 10 * 2 //Resultado: 20
var divisao = 10 / 2 //Resultado: 05
var modulo = 10 % 2 //Resultado: 00
Assim, torna-se possível realizarmos operações matemáticas por meio das linguagens de programação, recurso utilizado na grande maioria dos softwares que utilizamos em nosso cotidiano.
2. Variáveis
Ao avançarmos das expressões aritméticas para as expressões algébricas, é possível percebermos a existência de letras que, na matemática, são chamadas de variáveis (ou incógnitas), exatamente porque seus valores podem variar e a resposta da equação ainda será correta.
Na programação, também existem variáveis, tais que também podem ter seus valores modificados se necessário. Em computação, é comum uma variável possuir um nome único, bem descritivo, e um tipo de dado, visto que representam espaços de memória do computador que armazenam valores que possivelmente serão acessados, alterados e manipulados pela linguagem de programação.
Se você reparou bem no exemplo anterior, sobre operadores aritméticos usando Javascript, viu a existência do termo var
no início das linhas e de uma palavra logo em seguida, que podem ter seus valores modificados de acordo com o cálculo após o sinal de igual. Abaixo, temos mais alguns exemplo da possibilidade de criarmos variáveis em linguagens de programação.
var temperatura_atual_celsius = 27
var x = -1
var y = 4.5
var resposta = 3 * (x) + 2 * y
console.log(resposta) // resposta = 6
Com isso, percebemos mais uma vez a influência da matemática nos conceitos básicos das linguagens de programação. Com o uso de variáveis durante o desenvolvimento de um software, conseguimos torná-lo mais flexível e capaz de lidar com situações distintas. Mas, não para por aqui! Vamos ver mais alguns (e ainda mais complexos) exemplos de aplicação do conhecimento matemático na programação.
3. Matrizes e Vetores
Na matemática, os vetores são estruturas que representam um conjunto de números de forma ordenada e unidimensional, ou seja, são formados por somente uma linha ou uma coluna. Cada elemento possui a sua posição, o que nos permite encontrar os números de maneira simples, graças à sua estrutura e organização.
Além disso, as matrizes podem ser consideradas vetores bidimensionais, já que a sua representação é formada por múltiplas linhas e colunas, como uma espécie de tabela. Dessa forma, podemos armazenar ainda mais informações de maneira organizada nessa estrutura, visto que, assim como os vetores, cada elemento também possui a sua posição específica nas matrizes.
Nas linguagens de programação, as matrizes e vetores fazem parte das chamadas estruturas de dados, o que nos permite utilizá-las para armazenar e organizar os dados na memória do computador, assim como as variáveis.
Podemos representar um vetor e uma matriz no Javascript da seguinte maneira:
var vetor = [2, 4, 6, 8]
var matriz = [
[2, 4, 6, 8],
[5, 6, 7, 8],
[9, 7, 5, 3],
[1, 2, 3, 4]
]
Dessa forma, as matrizes e vetores são poderosas para armazenarmos valores de forma estruturada e colaboram com a resolução de problemas matemáticos, tornando-se amplamente utilizados em várias áreas da ciência e da tecnologia, incluindo a programação.
4. Álgebra Booleana e Lógica Proposicional
Dominar lógica de programação é uma das habilidades que todo desenvolvedor de software deve possuir. Os conceitos lógicos utilizados na programação também possuem como fundamentação alguns conhecimentos matemáticos, como a álgebra booleana e a lógica proposicional.
Na álgebra booleana, uma variável pode assumir somente dois valores, como verdadeiro
ou falso
para a compreensão humana e ligado
ou desligado
quando nos referimos aos circuitos elétricos. Já na programação, utilizamos true
ou false
para indicarmos o estado de uma variável, que no sistema binário, representam 1
e 0
, respectivamente.
Somado a isso, a álgebra booleana possui dois operadores amplamente utilizados, que são E
e OU
(AND
e OR
, em inglês), empregados principalmente na lógica proposicional, validações condicionais e na teoria dos conjuntos, um dos tópicos que ainda serão abordados.
Na lógica proposicional, uma proposição pode ser definida como sentença verdadeira ou falsa, ou seja, que nunca assumirá estas duas condições simultaneamente. Nessa mesma linha, baseiam-se as variáveis com dados do tipo boolean
que, como dito anteriormente, terá como valor true
ou false
.
Quanto aos operadores lógicos, de forma simplificada, funcionam da seguinte maneira:
AND (E)
- Resultará em
true
se e somente se TODAS as proposições forem verdadeiras. Caso contrário, o resultado seráfalse.
- Resultará em
OR (OU)
- Resultará em
true
se AO MENOS UMA das proposições for verdadeira. Caso contrário, o resultado seráfalse
- Resultará em
Abaixo, segue um esquema, conhecido como “Tabela Verdade”, que mostra o resultado das condições utilizando proposições e operadores lógicos.
Nas linguagens de programação, também utilizamos esses conceitos. Em javascript, podemos testar a tabela verdade mostrada anteriormente da seguinte maneira:
// Operador AND -> &&
console.log(true && true) // true
console.log(true && false) // false
console.log(false && true) // false
console.log(false && false) // false
// Operador OR -> ||
console.log(true || true) // true
console.log(true || false) // true
console.log(false || true) // true
console.log(false || false) // false
Vamos fazer um teste? Em um computador, tecle F12 no navegador, que abrirá uma janela com o título console. Nela, cole o código acima, tecle Enter e veja o resultado!
4. Funções
As funções matemáticas de primeiro grau também influenciaram na idealização das funções utilizadas durante o desenvolvimento de software. Na imagem a seguir, a função de primeiro grau retorna o dobro de um valor, menos cinco, que possui algumas resoluções como:
-
f(1) = 2x1 - 5
⇒f(1) = -3
-
f(2) = 2x2 - 5
⇒f(2) = -1
-
f(3) = 2x3 - 5
⇒f(3) = 1
Enquanto na matemática as funções de primeiro grau definem uma relação entre duas variáveis, na programação uma função pode ser definida como um bloco de código reutilizável que, idealmente, possui uma única responsabilidade.
Embora sejam conceitos diferentes, suas estruturas são semelhantes. Para exemplificação, podemos criar uma função em Javascript que retorne o dobro de um número, menos 5, como o código abaixo:
function f(x) { return 2*x - 5}
f(1) // Resultado: -3
f(2) // Resultado: -1
f(3) // Resultado: 1
No exemplo anterior, utilizamos a palavra reservada function
do Javascript para criarmos uma função que, nesse caso, possui o nome de f
e recebe como parâmetro uma variável x
, além de realizar o cálculo e retornar o valor conforme o esperado, como a função de primeiro grau.
6. Teoria dos conjuntos
Um dos conceitos fundamentais da matemática utilizada durante o desenvolvimento de software, mais precisamente relacionado aos banco de dados, é a teoria dos conjuntos. Ela visa explicar a relação entre elementos de grupos distintos, utilizando principalmente a união, interseção e diferença entre os conjuntos. O “Diagrama de Venn”, a seguir, nos ajuda a entender melhor essa teoria, onde os conjuntos são representados por círculos.
Os bancos de dados relacionais, que utilizam principalmente linguagens baseadas em SQL (Structured Query Language, em português, Linguagem de Consulta Estruturada), utilizam as operações da teoria dos conjuntos para relacionar os dados presentes em diferentes tabelas. Nesse caso, podemos utilizar os operadores JOIN, como no exemplo abaixo.
Assim, torna-se possível agruparmos dados que, mesmo em tabelas (conjuntos) distintas, possuem alguma relação, como uma possível tabela de Itens
e Pedidos
, que mesmo sendo dados em conjuntos separados, podem fazer parte de um grupo em comum.
Conclusão
Com base em todos os exemplos anteriores, fica claro a grande influência da matemática nas linguagens de programação e desenvolvimento de software. Muitos dos conceitos básicos da programação são baseados em teorias matemáticas e, ao dominarmos estes assuntos da matemática básica, nossa curva de aprendizagem da programação tende a ser menor comparada a quem não conhece estes conceitos.
Enfim, lembre-se que a matemática não deve ser uma barreira para você iniciar os seus estudos de programação. Se você não conhece essas teorias que mostrei, fique tranquilo, você terá a oportunidade de aprendê-los em conjunto com as linguagens de programação e perceberá o quão importantes elas serão no dia a dia de um desenvolvedor de software.
Vamos continuar a conversar sobre lá no fórum? Clique no botão abaixo e participe da comunidade de desenvolvedores que mais cresce no Brasil!