OBJETIVOS

  • Praticar a codificação binária, os tipos de dados fundamentais, as referências, o âmbito e o tempo de vida de uma variável
  • Usar objetos da classe string (cadeias de caracteres)
  • Aceder a ficheiros com nome introduzido interativamente
  • Ler várias linhas de texto a partir de ficheiro
  • Construir rotinas genéricas


EXERCÍCIOS

 

1.    (Q1 do Cap.5) Sabendo que existem 2 N arranjos distintos de N bits, quantos números podemos codificar utilizando 8 bits? Qual é o número mínimo de bits necessário para codificar 12 coisas diferentes utilizando sequências de bits?

 

2.    (Q2 do Cap.5) Descubra qual o inteiro correspondente ao código ASCII do carácter 'Z'.

 

3.    (Q6 do Cap.5) O que, eventualmente, escrevem os seguintes trechos de código na saída padrão?

 

a)     double vth = 0.0;

double & v = vth;

vth = 2200.0;

cout << v;

 

b)     int i = 6;

int & j = i;

int & k = j;

k = 10;

cout << i;

 

c)     const int i = 6;

int & j = i;

j = 10;

cout << i;

 

4.    (Q7 do Cap.5) Suponha que existe um pedaço de código em C++ que escreve informação para uma ligação de saída ( ostream ) designada por saida , contendo muitas linhas de código semelhantes a saida << dados; . Que linha de código acrescentaria de modo que, em alternativa, a escrita da informação passasse a ser feita para a saída padrão?

 

5.    (Q8 do Cap.5) De que se queixará o compilador neste código?

 

int i = 2 * j;

int j = 4;

 

6.    O que escreve este código na saída padrão? Qual o erro neste código? Como compara este erro com o erro do exercício anterior?

 

int j;

int dobro_de_j = 2 * j;

j = 4;

cout << dobro_de_j;

 

7.    Construa, em C++, uma aplicação que peça ao utilizador o nome de um ficheiro de texto, e uma palavra. A aplicação deve então escrever para o ecrã uma mensagem a informar o utilizador sobre quais são as linhas do ficheiro (o seu número) onde a palavra ocorre. Teste o seu funcionamento.


8.    Transforme o código do exercício 3 da semana 6 de modo a tornar genéricas as rotinas em causa. Verifique o seu funcionamento com strings.