PARADIGMAS DE PROGRAMAÇÃO IV

Propaganda
PARADIGMAS DE PROGRAMAÇÃO IV
2º ANO -LESI + LMCC
EXAME de JUNHO: 13 de Junho de 2002
Cotação - 20 valores
Duração - 2h30m
Responda a cada uma das partes em folhas separadas
Parte I - JAVA
1.- Pretende-se implementar uma classe que represente um Array bi-dimensional que
poderá conter instâncias de qualquer classe, e que poderá ter dimensões pré-definidas ou
então consideradas "por omissão" - ie. com valores mínimos.
a)
b)
c)
d)
Declare a estrutura da classe ArrayBiDim;
Escreva o código do construtor ArrayBiDim(int linhas, int colunas);
Escreva o código do método add que insere um objecto na posição (l,c);
Sendo A um ArrayBiDim, defina o método correspondente a A[l, c], que dá como
resultado o elemento da linha l coluna c, caso exista;
e) Escreva o código de um método que crie uma enumeração do Array seguindo uma
ordem de varrimento por linhas;
f) Escreva um método que dê como resultado a classe do elemento do array cuja posição
(linha, coluna) é dada como parâmetro;
g) Admitindo que conseguiu já gravar uma instância de ArrayBiDim numa ObjectStream, escreva agora o código do método que reconstrói tal instância a partir da mesma ObjectStream;
2.- Considere a classe Hashtable pré-definida em Java. Considere uma Hashtable particular em que a cada chave do tipo Integer é associada uma instância de Vector.
a) Escreva um método que dada uma chave, caso esta exista, dê como resultado o
tamanho do Vector associado;
b) Escreva um método que dê como resultado a chave à qual, na Hashtable receptora,
está associado o maior Vector;
c) Escreva um método que receba como parâmetros, uma chave (Integer), um objecto e
um índice i, e insira tal objecto na posição i do Vector associado à chave dada.
Parte II - Análise e Desenvolvimento
Pretende-se especificar e desenvolver uma classe JAVA CatalogoWeb que seja capaz
de nos dar informações úteis sobre as principais temáticas que podemos encontrar em
certos websites. Para tal, esta classe que, provavelmente, apenas irá ter uma única
instância, a menos que, tal como com os portais, possam ser criadas instâncias ligadas a
empresas fornecedoras de conteúdos, deverá, fundamentalmente, ser capaz de associar o
nome de um dado website a uma lista de informações sobre tal website.
Estabelecida, de forma correcta, tal associação, pretende-se programar métodos de
instância que implementem a seguinte funcionalidade:








Número total de acessos ao catálogo;
Número total de websites representados no catálogo;
Quantos temas são abordados no website W?
O tema T é abordado no website W?
No catálogo, acrescentar um novo tema a um website;
Determinar todos os websites que tratam o tema T?
Guardar em ficheiro os dados de um website W;
Gravar e repor o catálogo em ObjectStreams (2 métodos).
Prof. F. Mário Martins
Download