Resolução da 4ª Aula Prática

Resoluções

1.a)  A resposta encontra-se a negrito abaixo.

#include <iostream>

using namespace std;

double const pi = 3.14159265358979323846264338327950288419716939937510582;

// Devolve a soma de dois inteiros.
int soma(int const x, int const y)
{
    int z = x + y;

    return z;
}

// Devolve o produto de dois decimais.
double produto(double const a, double const b)
{
    return a * b;
}

// Esta função deve devolver true caso os dois inteiros
// passados como argumento sejam iguais:
bool saoIguais(int const a, int const b)
{
    return a == b;
}

double perimetro(double const raio)
{
    return 2.0 * raio * pi;
}

int main()
{
    cout << "Insira dois inteiros (x e y): " << endl;
    int x, y;
    cin >> x >> y;

    cout << "x + y = " << soma(x, y) << '.' << endl;

    int z = 0;
    while(z != 3) {
        cout << "Insira dois decimais (z e w): " << endl;
        double x, y;
        cin >> x >> y;

        cout << "z * w = " << produto(x, y)
             << '.' << endl;

        cout << "Insira dois inteiros: " << endl;
        int a, b;
        cin >> a >> b;

        cout << "\"a e b são iguais\" é: " << saoIguais(a, b)
             << '.' << endl;

        ++z;
    }

    cout << "A contagem terminou em " << z << '.' << endl;

    cout << "Insira dois inteiros: " << endl;
    cin >> x >> y;

    cout << "\"x e y são iguais\" é: " << saoIguais(x, y)
         << '.' << endl;

    int i;
    for(i = 0; i != 3; ++i)
        cout << i << endl;

    cout << "A contagem terminou em " << i << '.' << endl;

    cout << "A função perimetro() funciona bem se "
         << perimetro(3.0) << " for igual a "
         << 2.0 * 3.0 * pi << '.' << endl;
}

Ver ex1a.C.

1.b)  Ver ex1b.C.

2.a)  Ver ex2a.C.

2.b)  Ver ex2b.C.

3.a)  Alternativas: operador de extracção >> vs. procedimento getline().  Ver ex3a.C.

3.b)  Ver ex3b.C.