Aula 03 - Operações Aritméticas
Conceitos-Chave:
- afectação, '='
- adição, '+'
- subtracção, '-'
- multiplicação, '*'
- divisão, '/'
- módulo, '%'
Operações aritméticas
Nenhuma linguagem de programação estaria completa sem suporte a operações aritméticas. A programação de jogos exige muitos cálculos, por exemplo, a diminuição de Pontos de Vida, o aumento de coordenadas de movimento, etc..
Comecemos pelos tipos de operações aritméticas mais simples:
int x = 4 + 2; // adição
int y = 4 - 2; // subtracção
int z = 4 * 2; // multiplicação
int a = 4 / 2; // divisão
Simples não é? Se agora quiséssemos mostrar o valor do x, y, z, a, acrescentaríamos isto:
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "z = " << z << endl;
cout << "a = " << a << endl;
Abaixo está uma tabela com as operações aritméticas mais frequentes. Esta tabela foi retirada do Tutorial de C++ do Pedro Santos:
|
operador
|
exemplo
|
descrição
|
|
=
|
a = b = c;
|
afectação, o exemplo teria o seguinte
resultado a = ( b = c )
|
|
+
|
a = b + c;
|
soma, afecta a variável a com a soma
de b e c
|
|
-
|
a = b - c;
|
subtração, afecta a variável
a com a diferença entre b e c
|
|
*
|
a = b * c;
|
multiplicação, afecta a com o
produto de b e c
|
|
/
|
a = b / c;
|
divisão, afecta a com o resultado da
divisão de b com c
|
| % | a = b % c; |
módulo, afecta a com o resto da
divisão de b com c
|
Daqui penso que estão familiarizados com a maior parte dos operadores. No entanto há um que ninguém (que eu conheça) aprendeu na escola, que é o operador %. Esse operador (muito útil por sinal) devolve (ou "retorna") o resto da divisão entre 2 números.
Por exemplo: 20 % 3 dá 2 porque 20 a dividir por 3 não dava um número inteiro, por isso faz-se 18 a dividir por 3 mais o resto de 2. Alguns exemplos:
7 % 4 -> dá 3
6 % 4 -> dá 2
10 % 5 -> dá 0, pois 10 a dividir por 5 dá 2 certos, não tem resto.
A sua utilidade vamos aprender quando falarmos em gerar números aleatórios.
Quanto à afectação, é usada para darmos um valor a uma variável. Por exemplo:
int a = 8;
int b = 2;
int c;
c = a + b; // c é igual a 10
c = c + b; // c é igual a 10 + 2 = 12
c = c / b; // c é igual a 12 a dividir por 2 = 6
b = c; // b vai ser igual a c = 6
Para facilitar-nos um pouco a vida, o C++ tem outras formas de afectar variáveis. Vejam-nas na seguinte tabela (também do site do Pedro Santos):
|
operador
|
o mesmo que:
|
|
a += b;
|
a = a + b;
|
|
a -= b;
|
a = a -b;
|
|
a /= b;
|
a = a / b;
|
|
a *= b;
|
a = a *b;
|
|
a %= b;
|
a = a % b;
|
|
++a;
|
a = a + 1;
|
|
--a;
|
a = a - 1;
|
Acho que está tudo fácil de entender, só um pequeno exemplo:
int a = 6;
int b = 4;
b += 3; // b é igual a b + 3 = 4 + 3 = 7
b -= a; // b é igual a b - a = 7 - 6 = 1
b++; // b é igual a b + 1 = 1 + 1 = 2
b--; // b é igual a b - 1 = 1
Também em C++ se pode usar os parênteses '( )' para definir prioridades nas instruções aritméticas.
Por exemplo:
(2 + 3) * 2 . Isto dá igual a 10.
2 + 3 * 2 . Isto dá igual a 8, pois a multiplicação tem prioridade sobre a adição.
O Primeiro Programa útil: Uma Calculadora de Somar
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cout << "Introduza o primeiro numero, carregue em ENTER e introduza o 2º:" << endl;
cin >> a >> b;
c = a + b;
cout << "A soma dos 2 numeros e igual a " << c << endl;
cin.get();
cin.get();
return 0;
}
Vamos linha por linha:
int a, b, c; - O mesmo que int a; int b; int c;
cin >> a >> b - O mesmo que cin >> a; cin >> b;
c = a + b; - A variável c fica com a soma da variável a e da variável b.
O resto do programa deverá ser fácil de entender.
Operadores Relacionais
Além dos operadores aritméticos, há outros operadores em C++ que servem para comparar valores. Por exemplo, poderemos saber se uma determinada variável tem o mesmo valor do que outra, ou se tem um valor maior ou menor. Vejam o quadro abaixo:
| operador | significado |
| == | igual a |
| != | não é igual a |
| > | maior que |
| >= | maior ou igual a |
| < | menor que |
| <= | menor ou igual a |
O resultado do uso destes operadores é uma variável booleana. Se verificar a condição em cima, então a variável vai ser igual a 1 (verdadeiro). Se não, vai ser igual a 0 (falso). Vejam o seguinte programa de exemplo, que explica tudo sobre a operadores relacionais:
#include <iostream>
using namespace std;
int main()
{
int a, b;
bool varteste;
cout << "PROGRAMA DE COMPARACAO" << endl;
cout << "\nInsira dois valores (insira o primeiro, prima ENTER e"
<< " depois insira o segundo):"; //isto foi só para mostrar que isto é possivel
//ver explicação na nota abaixo
cin >> a >> b;
varteste = a == b; //varteste vai assumir o valor de 1 se a for igual a b
cout << "Igualdade entre " << a << " e " << b << " e igual a " << varteste << endl;
varteste = a > b;
cout << "Teste de superioridade de " << a << " para " << b << " e igual a " << varteste << endl;
varteste = a < b;
cout << "Teste de inferioridade de " << a << " para " << b << " e igual a " << varteste << endl;
cout << "\n\nCodigo: \n\n0 -> Falso\n1 -> Verdadeiro" << endl;
cin.get();
cin.get(); // Pára o programa até o utilizador premir uma tecla
return 0;
}
Próxima aula -> C++ 04 - Operadores Lógicos e Condicionais
Fazer o download do código fonte dos exemplos da aula
Fazer o download da aula em PDF (Brevemente)
Ir para o topo da página