Faculdade de Engenharia da Universidade do Porto
Licenciatura em Engenharia Electrotécnica e de Computadores
Algoritmos e Estruturas de Dados, 1998/99

Prova de Avaliação:

2ª Chamada 1998/99 Duração: 2 horas Com Consulta 12/7/1999

Pergunta 1, [5 valores]
Considere o seguinte programa em C++:
1 #include  <iostream.h>
2 #define   PI  3.14
3 class Circulo {
4   public:
5     Circulo(double x1, double y1, double r1)
6       { x= x1; y= y1; r= r1; }
7     Circulo(double r2)
8       : x( 0.0 ), y( 0.0 ) { r= r2; }
9     double getArea() const { return PI * r * r; }
10   private:
11     const double x, y;   // centro
12     double r;            // raio
13 };
14 main() {
15   Circulo c1(2.5, 3.5, 3.0);
16   cout << c1.getArea() << endl;
17   circulo c2(2.0);
18   cout << c2.getArea() << endl;
19   return 0;
20 }

Averigue se este programa contém erros sintácticos. Em caso afirmativo identifique-os claramente e corrija-os. Apresente ainda os resultados da execução do programa juntamente com todas as contas que necessitar fazer.

Pergunta 2, [6 valores]
Considere o tipo de dados abstracto Fila e uma sua implementação baseada em fórmula (array) através da classe Queue estudados nesta disciplina. Adicione a esta classe uma função-membro retiraDaFila, que retira da fila os elementos cujo valor seja diferente de um parâmetro valor e os coloca noutra fila f passada por referência; esta função não retorna nada.

Pergunta 3, [6 valores]
Escreva uma função-membro NoNos para a classe BinaryTree estudada nas aulas desta disciplina, que percorra a árvore e retorne um inteiro igual ao número de nós com valor maior do que um parâmetro v do tipo T.

Pergunta 4, [3 valores]
Pretende-se escrever um programa em C++ para processar um fluxo de valores de entrada de um dado tipo T por forma a retirar-lhe todos os duplicados mantendo a ordem relativa dos valores.

Diga que estruturas de dados e algoritmos estudados nesta disciplina (ou construídos a partir deles), seriam adequados para resolver este problema e apresente uma breve justificação das escolhas efectuadas.
Analise a complexidade temporal do algoritmo que apresentou.


[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: Thu Jul 29 20:21:38 1999