Programar em C++/Operadores: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
m Não é mais preciso inserir a navegação manualmente, basta manter a lista de capítulos do livro atualizada. Ver detalhes.
Abacaxi (discussão | contribs)
Sem resumo de edição
Linha 1:
 
{{Indentar}}
 
Os operadores realizam, como o nome sugere, operações entre dois tipos de dados. Existem muitos operadores, mas citaremos aqui os fundamentais e, conforme as necessidades dos tópicos posteriores, citaremos todos os demais.
 
== Compatibilidade ==
Linha 56 ⟶ 57:
c = operator+( a, b );
</source>
 
 
==Operadores aritméticos==
Operadores aritméticos são utilizados para efetuar operações matemáticas entre dados. São 5 operadores aritméticos em C++:
<source lang=cpp>
#include <iostream>
using namespace std;
 
int main() {
 
int soma = 5 + 5; // o operador '+' realiza somas.
double subtracao = 5 - 5; // o operador '-' efetua subtração.
float multiplicacao = 5.1 * 0.5; // o operador '*' efetua multiplicação.
char divisao = 100 / 2; // o operador '/' efetua divisão.
int modulo = 51 % 5; // retorna o resto da divisão inteira.
 
cout << "Resultados: " << soma << ", " << subtracao << ", " << multiplicacao << ", "
<< divisao << ", " << modulo << endl;
 
}
A saída desse programa gera no console o seguinte:
<source lang=cpp>
Resultados: 10, 0, 2.55, 2, 1.
</source>
O quarto resultado é '2' pois 50 é o código decimal deste caracter.
 
===Tipo de retorno===
Você pode realizar operações aritméticas, obviamente, entre números. Como dito no tópico anterior, você também pode realizar operações aritméticas com os tipos ''char'' e ''wchar_t''.
 
O retorno da operação será também um número (real, inteiro ou até mesmo um caracter, conforme os tipos dos operandos).
 
===Divisão inteira e divisão real===
Existe, para a linguagem, diferença entre uma divisão entre números inteiros e entre números reais (ponto flutuante). Se você fizer a divisão entre os inteiros 3 e 2, o resultado não será 1.5, será 1. Já se fizer a divisão entre os números reais (em ponto flutuante) dos deles, então sim obterá 1.5.
 
O motivo é que há 2 tipos de divisão: a inteira e a decimal.
====Divisão inteira e o operador módulo====
A divisão inteira retorna o quociente da divisão sem a parte fracionária. Isso ocorre porque a linguagem efetua a divisão enquanto o resto for maior que o divisor (logo, a divisão nunca apresentará parte fracionária).
 
Para obter o resto da divisão, você pode usar o operador módulo (%). Esse operador retorna, em vez do quociente, o resto da divisão inteira. É por isso que no nosso exemplo 51 % 5 resultou em 1, pois 5x10 + 1 = 51, onde 5 é o divisor, 10 é o quociente, 1 é o resto e 51 o dividendo.
 
====Divisão real====
A divisão real é aquela efetuada entre tipos ponto flutuante ou entre ponto flutuante e inteiros/caracteres. Isso efetuará a divisão até que o resto seja zero, ou quando o resto repetir-se indefinidamente (no caso de dízimas periódicas como, por exemplo, 10/3).
 
Se quisermos que a divisão entre inteiros retorne a divisão real, deveremos efetuar uma conversão '''explícita''', conforme o exemplo:
<source lang=cpp>
int num = 3;
int num2 = 2;
 
cout << "Resultado: " << (float) num/num2 << endl;
// o resultado foi convertido para ponto flutuante explicitamente.
</source>
 
{{Indentar/fim}}
{{AutoCat}}