OBJETIVOS

  • Usar a semântica de arrays em strings
  • Usar objetos da classe vector (vetores)
  • Implementar interfaces com vetores passados por referência
  • Usar números pseudo-aleatórios, inicializando-os a partir do relógio
  • Implementar operações matriciais simples com vetores de vetores


EXERCÍCIOS

 

1.     (Q1 do Cap.6) Indique, para cada uma das seguintes expressões, se a indexação é ou não válida. Assuma a ocorrência prévia do código

 

    double x = 1.0;

    double y = 1.5;

    int i = -5;

    int j = 3;

    unsigned int k = 4;

    string s("Computacao e Programacao");

 

a) s[j]

b) s[i]

c) s[x]

d) s[y]

e) s[k]

f) s[k-j]

g) s[k/i]

h) s[s.size()+i]

 

2.     (Q2 do Cap.6) O que escreve o seguinte código para a ligação de saída (stream) saida ?

 

    string s("capa");

    s[2] = 'l';

    s[0] = 'p';

    saida << s;

 

3.     (Q3 do Cap.6) Dada a definição string s = "Instituto Superior Tecnico"; , que caracteres ou cadeias de caracteres (strings) são avaliados pelas seguintes expressões?

 

    s.substr(10,5)

    s.substr(s.size()-4,4)

    s.substr(0,9)[2]

    s.substr(4,1)[0]

 

4.     Construa, em C++, uma aplicação que, usando a classe vector , crie, interativamente, uma matriz de reais. Após isto, a aplicação deve então escrever para o ecrã, usando a notação científica, a matriz transposta da matriz introduzida.

Nota 1: para escrever os reais em notação científica:

        cout.setf(ios::scientific, ios::floatfield);

Nota 2: para escrever os reais com N casas decimais:

        cout.precision(N);

 

5.     Construa, em C++, um predicado que receba um vector de strings v e um string s , e que verifique se algum elemento do vetor v tem o mesmo valor que o string s . Use a interface ideal. Teste o seu funcionamento.

 

6.     Usando a função do exercício anterior (depois de transformada em função genérica), construa, em C++, uma aplicação que escreva no ecrã uma chave para a lotaria Euromilhões (5 números de 1 a 50 + 2 estrelas de 1 a 9).

Nota: a geração de números pseudo-aleatórios encontra-se explicada no Anexo B.2 do livro adotado.