Conteúdo 17 de 20
Operadores aritméticos
Construa e verifique cálculos com soma, subtração, multiplicação, divisão, resto e potência, considerando tipos, unidades e limites.

Operadores transformam valores em resultados
Operadores aritméticos expressam cálculos sobre valores numéricos. Em quantidade × precoUnitario, os dois valores são operandos, × representa o operador e o valor calculado é o resultado da expressão.
O símbolo sozinho não explica o problema. Multiplicar pode calcular o preço de várias unidades, a área de um retângulo ou uma conversão de escala. Antes de montar a expressão, escreva em palavras o que cada valor representa e qual unidade o resultado deve possuir.
Esta aula continua o trabalho de conversão de tipos de dados. Os tipos dos operandos influenciam quais operações são válidas, o tipo do resultado e os riscos de perda.
Os seis operadores fundamentais
Usaremos uma notação conceitual. Símbolos e nomes variam entre linguagens.
| Operação | Notação comum | Pergunta respondida | Exemplo |
|---|---|---|---|
| soma | a + b | qual é o total combinado? | itens recebidos mais itens existentes |
| subtração | a - b | qual é a diferença ou o que resta? | saldo menos retirada |
| multiplicação | a * b | qual é o total de grupos ou a escala? | quantidade vezes preço unitário |
| divisão | a / b | quanto cabe em cada grupo ou qual é a razão? | total dividido entre pessoas |
| resto | a % b em muitas linguagens | o que sobra da divisão em grupos inteiros? | itens que não completam uma caixa |
| potência | função ou a ** b em algumas linguagens | qual é o produto repetido da base? | lado ao quadrado |
% costuma significar resto, não porcentagem. Para calcular 15% de um valor, uma expressão possível é valor × 15 / 100, considerando os tipos e a precisão adequados.
Soma e subtração
A soma combina grandezas compatíveis. Se um estoque possui 12 unidades e recebe 5, o novo total é:
novoEstoque ← 12 + 5
A subtração pode representar retirada ou diferença:
estoqueRestante ← novoEstoque - 4
diferenca ← maiorValor - menorValor
Confira as unidades. Somar 12 itens + 5 itens produz 17 itens; somar diretamente 12 itens + 5 reais não possui um significado coerente.
Em algumas linguagens, + também concatena textos. Assim, 12 + 3 pode resultar em 15, enquanto "12" + "3" pode resultar em "123". Isso não é aritmética: é outra operação associada ao mesmo símbolo. Verifique os tipos de dados antes de interpretar o resultado.
Multiplicação
A multiplicação aparece quando há grupos iguais ou uma escala. Três produtos a 19,90 cada produzem:
subtotal ← 3 × 19,90
subtotal ← 59,70
Pensar em “soma repetida” ajuda com inteiros positivos, mas não define todos os usos. 1,5 × 2,4 representa uma escala ou produto entre grandezas sem exigir um número inteiro de repetições.
Observe também a unidade:
3 unidades × R$ 19,90 por unidade = R$ 59,70;5 m × 4 m = 20 m²;80 km/h × 2 h = 160 km.
A unidade esperada funciona como teste de coerência da expressão.
Divisão pode produzir resultados diferentes
A divisão responde a problemas de partilha e medida. Porém, o resultado depende dos tipos e das regras da linguagem.
Em C#, 13 / 5 com dois operandos inteiros produz 2, porque a divisão inteira descarta a parte fracionária em direção a zero. Com um operando de ponto flutuante, 13 / 5.0 produz 2.6. Python separa /, que realiza divisão verdadeira, e //, que realiza divisão pelo piso.
Por isso, este pseudocódigo deixa a intenção visível:
mediaReal ← converterParaReal(total) / quantidade
caixasCompletas ← quocienteInteiro(totalItens, capacidade)
Não converta o resultado tarde demais:
mediaIncorreta ← converterParaReal(13 / 5)
Se 13 / 5 já foi calculado como divisão inteira, a fração desapareceu antes da conversão. Escolha os tipos dos operandos conforme o resultado esperado.
Quociente e resto explicam agrupamentos
Há 17 itens e cada caixa comporta 5. Três caixas ficam completas e sobram 2 itens.
caixasCompletas ← quocienteInteiro(17, 5)
itensSoltos ← resto(17, 5)
O resto é útil para:
- saber se uma quantidade é divisível por outra;
- alternar posições em um ciclo;
- separar grupos completos de unidades restantes;
- verificar paridade com resto da divisão por 2.
Para dividendo e divisor positivos, o resto fica entre zero e um valor menor que o divisor. Com números negativos, linguagens podem adotar regras diferentes. C# e Java associam o sinal do resto ao dividendo; Python relaciona o módulo ao piso da divisão e ao sinal do divisor. Não transporte resultados negativos de uma linguagem para outra sem consultar sua regra.
Potência não possui um símbolo universal
Potenciação multiplica uma base por ela mesma um número determinado de vezes. 2³ significa 2 × 2 × 2, que resulta em 8.
Em pseudocódigo independente de linguagem, prefira tornar a intenção clara:
areaQuadrado ← potencia(lado, 2)
Python e JavaScript usam ** para exponenciação. C# normalmente utiliza Math.Pow. Em várias linguagens, ^ representa OU exclusivo bit a bit, não potência. Portanto, nunca suponha que o símbolo visto em uma calculadora possui o mesmo significado no código.
Expoentes negativos, fracionários e bases negativas introduzem regras adicionais e possíveis resultados não reais. Consulte a função ou o operador da linguagem antes de ampliar o domínio.
Operadores unários
Soma e subtração também podem atuar sobre um único operando:
temperatura ← -5
variacao ← -saldo
O sinal - unário produz a negação aritmética do operando; ele não está subtraindo um segundo valor. O + unário costuma preservar o valor, embora linguagens dinâmicas possam associá-lo a coerções específicas.
Não confunda um número negativo com uma subtração. Em saldo - retirada, - é binário; em -retirada, é unário.
O tipo do resultado importa
Uma expressão não produz apenas um número; produz um valor de determinado tipo. O resultado pode depender de:
- tipos dos operandos;
- promoções ou conversões automáticas;
- operador escolhido;
- faixa e precisão do tipo resultante;
- regras de sobrecarga da linguagem.
Em um cálculo monetário, misturar decimal com ponto flutuante aproximado pode ser proibido ou exigir conversão. Em inteiros de faixa limitada, uma soma ou multiplicação pode ultrapassar o maior valor permitido. Em ponto flutuante, resultados podem conter erro de arredondamento.
Use os critérios de como escolher o tipo de dado adequado também para resultados intermediários, não apenas para as entradas.
Divisão por zero e outros limites
Antes de dividir ou calcular resto, verifique se o divisor pode ser zero:
se quantidade > 0 então
media ← total / quantidade
senão
escreva "Não é possível calcular a média sem itens"
fim se
O comportamento de divisão por zero varia por tipo e linguagem. Divisão inteira por zero costuma gerar erro; certos tipos de ponto flutuante podem produzir infinito ou valor indefinido. Uma regra técnica não substitui a regra do problema: se zero não faz sentido como divisor, valide antes.
Também teste:
- resultado maior ou menor que a faixa do tipo;
- operação com valores negativos;
- valores aproximados e arredondamento;
- unidade incompatível;
- sequência de operações que acumula erro.
Exemplo: cálculo e separação de um pedido
Um pedido contém 17 unidades, agrupadas em caixas de 5, com preço unitário de 19,90 e frete de 12,00.
subtotal ← 17 × 19,90
total ← subtotal + 12,00
caixasCompletas ← quocienteInteiro(17, 5)
itensSoltos ← resto(17, 5)
Resultados esperados:
| Nome | Cálculo | Resultado | Unidade ou significado |
|---|---|---|---|
subtotal | 17 × 19,90 | 338,30 | reais |
total | 338,30 + 12,00 | 350,30 | reais |
caixasCompletas | quociente de 17 ÷ 5 | 3 | caixas |
itensSoltos | resto de 17 ÷ 5 | 2 | unidades |
O quociente real 17 ÷ 5 = 3,4 não responde quantas caixas estão completas. A pergunta do domínio define qual divisão usar.
Parênteses documentam agrupamentos
Linguagens possuem regras de precedência. Como esse assunto será aprofundado mais adiante, use parênteses quando o agrupamento for importante:
media ← (nota1 + nota2 + nota3) / 3
Sem os parênteses, uma linguagem pode dividir apenas nota3 antes de somar. Mesmo quando os parênteses são tecnicamente dispensáveis, eles podem documentar a intenção.
Erros comuns
Usar % como porcentagem
Em muitas linguagens, % devolve resto. Porcentagem é uma relação que precisa ser construída com os tipos e a escala corretos.
Esperar fração de uma divisão inteira
Confira os operandos antes de dividir e converta antes da operação quando necessário.
Achar que cast arredonda
Converter um real para inteiro frequentemente trunca. Se o problema exige arredondamento, aplique uma regra explícita.
Ignorar unidades
Uma expressão pode ser aceita pela linguagem e continuar sem sentido no domínio.
Copiar símbolos entre linguagens
Potência, divisão inteira e resto não possuem sintaxe nem comportamento totalmente universais.
Checklist para construir um cálculo
- Cada operando possui significado e unidade definidos?
- A operação responde à pergunta do problema?
- O tipo do resultado é adequado?
- A divisão precisa ser inteira ou fracionária?
- O divisor pode ser zero?
- Fração, precisão ou faixa podem ser perdidas?
- Valores negativos alteram a regra de resto?
- Parênteses deixam o agrupamento inequívoco?
- Casos comuns e limites foram testados?
Pratique
Uma escola precisa distribuir 74 estudantes em ônibus com 20 lugares e calcular o custo total se cada ônibus utilizado custa 850,00.
Determine:
- quantos ônibus ficam completos;
- quantos estudantes restam após preencher os ônibus completos;
- quantos ônibus são necessários ao todo;
- o custo total.
O quociente inteiro é 3, o resto é 14 e são necessários 4 ônibus, porque qualquer resto exige outro veículo. O custo é 4 × 850,00 = 3.400,00. Registre cada etapa em um teste manual.
O que você deve guardar
Operadores aritméticos combinam operandos e produzem resultados tipados. Soma combina, subtração encontra diferença, multiplicação escala, divisão reparte ou mede, resto identifica o que não completa um grupo e potência representa multiplicação repetida da base.
O resultado correto depende do significado, dos tipos, das unidades e das regras da linguagem. Continue em Operadores relacionais para transformar comparações em respostas lógicas, ou acompanhe o catálogo de Lógica de Programação.
Referências
- Microsoft Learn — Operadores aritméticos: referência do C#. Acesso em 10 set. 2026.
- Microsoft Learn — C# Language Specification: Expressions. Acesso em 10 set. 2026.
- Python Documentation — Expressions. Acesso em 10 set. 2026.
- Java Language Specification 21 — Multiplicative Operators. Acesso em 10 set. 2026.
- MDN Web Docs — Remainder (
%). Acesso em 10 set. 2026. - MDN Web Docs — Exponentiation (
**). Acesso em 10 set. 2026.