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.