Agnor's HQ

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 % 32 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;
}

Exemplo 3.1 - Calculadora de Somar

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;
}

Exemplo 3.2 - Operadores Relacionais

Final da aula 03 de C++:

Próxima aula -> C++ 04 - Operadores Lógicos e Condicionais

Fazer o download do código fonte dos exemplos da aula WinZip
Fazer o download da aula em PDF (Brevemente)

Ir para o topo da página

Aulas de C++

Anúncios