Faculdade de Engenharia da Universidade do Porto
Prova de Avaliação:
TESTE-EXEMPLO
DURAÇÃO: 2 horas
COM CONSULTA
DATA: 9/6/1999
1. [5 valores] O que é que aparece escrito no ecrã quanto é executado o seguinte programa em C++?
2. [6 valores] Escreva uma função
DeleteDups
3. [6 valores]Escreva uma
função
4. [3 valores] Pretende-se escrever um programa em C++ que
lê um texto e imprime uma lista com o número de
ocorrências de cada palavra que aparece no texto, ordenada por
número de ocorrências decrescente. Palavras com o mesmo
número de ocorrências são listadas por ordem de
aparição. Para simplificar o problema, considere que o
texto apenas contém palavras consituídas por letras
minúsculas e espaços a separar palavras, e que
não há palavras com mais do que 20 caracteres.
Que estruturas de dados e algoritmos estudados nesta disciplina
seriam adequados para resolver este problema?
Licenciatura em Engenharia Electrotécnica e de Computadores
Algoritmos e Estruturas de Dados, 1998/99
#include <iostream.h>
template <class T, int n>
class Histograma { public: T h[n]; void mostra(); };
template <class T, int n>
void Histograma<T,n>::mostra()
{
for (int i = 0; i < n; i++) {
for (int j = h[i]; j > 0; j--) cout << '*';
cout << '\n';
}
}
main()
{
Histograma<int,5> h = {1, 2, 3, 2, 1};
h.mostra();
return 0;
}
Exemplo de entrada de dados:
palavra ocorrências --------------------------------- uma 2 um 1 objecto 1 é 1 instância 1 de 1 classe 1
Qual seria a complexidade temporal e espacial do programa baseado
nessas estruturas de dados e algoritmos?
[Página da disciplina]
[J. Pascoal Home page]
[J. Lopes Home page]
João Pascoal de Faria ([email protected]) /
João Correia Lopes (jlopes AT fe.up.pt)
Last modified: Tue Jul 06 09:50:36 1999