0% acharam este documento útil (0 voto)
41 visualizações5 páginas

Testei Correccao-1

O documento apresenta uma avaliação sobre estruturas de dados e algoritmos com várias questões. As questões abordam conceitos como herança, polimorfismo, encapsulamento e modelagem de problemas usando classes e herança.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
41 visualizações5 páginas

Testei Correccao-1

O documento apresenta uma avaliação sobre estruturas de dados e algoritmos com várias questões. As questões abordam conceitos como herança, polimorfismo, encapsulamento e modelagem de problemas usando classes e herança.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 5

UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE

Curso: Tecnologias e Sistemas De Informação


Duração: 120 minutos Período: Laboral
Data: 26.03.09 2° Ano Académico 2009 Semestre: Primeiro

Primeira Avaliação: Estruturas de Dados e Algoritmos.


Leia atentamente as questões e responda com clareza.

1. Diga se é verdadeiro ou não. Justifique os casos incorrectos (3.0)


class Base {
protected String atributo1; class Pessoa {
protected int atributo2; public String atributo1;
public int atributo2;
public void metodo1() {
//instruções do método 1 public Pessoa() {
} //instruções do método
}
private void metodo2() { public Pessoa(String atr1, int atr2)
//instruções do método 2 {
} //instruções do método
public void metodo3(String s) { }
//instruções do método 3
} public void imprimeDados() {
//instruções do método
} }
}
class Estendida extends Base {
//atributos de b
//métodos de b

a. A classe Estendida tem os atributos atributo1 e 2 porque os herdou da classe


Base. Resposta V.

b. A classe Estendida tem os métodos (metodo 1, metodo2 e metodo3) porque os


herdou da classe Base. Resposta F. Nem todos os três métodos são visiveis. O
método metodo2() é privado, não é herdado pela classe Estendida.

c. O método2 da classe Base é visível numa terceira classe (ex. class Pessoa) fora
da herança. Resposta F. Pois é um método privado.

d. A classe Pessoa tem dois construtores com parâmetros diferentes portanto estamos
perante o conceito de polimorfismo. Resposta F: Trata-se de sobrecarga de
construtor

e. A herança é o processo de “esconder/ocultar” os detalhes (dados) de concepção


e implementação e oferecer uma interface comum aos objectos (métodos).
Resposta F: Trata-se de encapsulamento

f. Até hoje, estudei nesta disciplina apenas duas estruturas de dados,


designadamente arrays e Vectores. Resposta F: Estudamos também Listas.

1 Bom Trabalho!!! O Grupo da Disciplina


2. É dada a seguinte classe,
public class Contacto{
private String nome;
private String numero;
public Contacto(String umNome, String umNum){
nome = umNome;
numero = umNum;
}
//getters e setters
……………
……………
} Escreva instruções JAVA para:

a. Declarar uma variável e criar um contacto para guardar dados do Julião Carlos;
seu numero de telefone é 82 4517650. (1.5)

Resposta:

Contacto umaVariavelQualquer = new (“Julião Carlos”, “824517650”)

b. Declarar, criar um Vector e colocar o contacto criado (no Vector). (2.0)

Resposta:

Vector umVector = new Vector();

umVector.addElement(umaVariavelQualquer);

3. Dado um problema sobre a gestão de carros na Conservatória do Registo Automóvel.


Considere que a referida gestão consiste em registar cada carro, actualizar, remover e
ainda visualizar todos os detalhes. Um carro é caracterizado por matricula, marca e
modelo. O carro pode imprimir seus dados.

a. Defina a classe carro. (2,0)

Resposta: vamos definir uma classe Carro


public class Carro{
private String matriclula;
private String marca; 0,5 V
private String modelo;
public Carro (String matC, String marcaC, String modeloC){
matricula=matC;
marca=marcaC; 0,5 V
modelo=modeloC;
}
public imprimeDados(){
System.out.println(matricula+”, “+marca+”, “+modelo); 0,5
}
}

2 Bom Trabalho!!! O Grupo da Disciplina


b. Defina um TAD para gestão de carros. (2.0) i.e,
0,5 V

Resposta:

public Interface TAD_Carros{


public void adicionarCarro(Object t);
//para registar os carros, um de cada vez numa ED
public void actualizarCarro(Object c_antigo Object
c_actual);//método para actualizar os dados do carro antigo pelos
dados do c_actual.
public void removerCarro(Object t);
//localiza o carro dado e remove
public void vizualizarCarro(Object t);
//é para visualizar os dados do object t.
}

4. Considere que foi convidado pelo Registo Académico para modelar o sistema de bolsas.
Este sistema é uma extensão do Sistema de Estudantes. O estudantes é conhecido pelo
seu numero, nome, data de nascimento e curso; imprime seus dados. No sistema de
bolsas, distinguem-se os bolseiros (aqueles que recebem um valor monetário) e rendeiros
(Não recebem valor nenhum mas pagam a renda mensal). Usando o conceito de
herança:

a. Modele o problema (1,5)

Estudante
-NumEstudante
-Nome
-DataNasc
-Curso
+Estudante()
+ImprimeDados()

Bolseiro Rendeiros
-ValorRecebido -ValorMensal
- +Rendeiros()
+Bolseiro() +valorRenda()
+valorDaBolsa() +ImprimeDados()
+ImprimeDados()

b. Implemente em JAVA a herança acima descrita. (4.0)


public class Estudante {
protected String numEstudante;
protected String nome;
protected String dataNasc;
protected String curso;

public Estudante (String umNum, String umNome, String umaData, String umCurso) {
numEstudante=umNum;
nome=umNome;
dataNasc=umaData;
curso=umCurso;
}
public void imprimeDados() {
System.out.print(numEstudante+”, “+nome+”, “+dataNasc+”, “+curso);

3 Bom Trabalho!!! O Grupo da Disciplina


}
}

public class Bolseiro extends Estudante {


public double valorRecebido;
public Bolseiro (String num, String nome, String curso, String dataNasc, double valorBolsa) {
super(num,nome,curso,dataNasc,valorBolsa);
valorRecebido=valorBolsa;
}
//Métodos
public double valorDaBolsa() {
return valorRecebido;
}
public void imprimeDados() {
super.imprimeDados();
System.out.println(valorDaBolsa());
}

public class Rendeiro extends Estudante {


public double valorMensal;
public mesesEmDivida;
public Rendeiro (String num, String nome, String curso, String dataNasc,
double valorPagar, nMeses) {
super(num,nome,curso,dataNasc);
valorPago=valorPagar;
mesesEmDivida=nMeses;
}
//Métodos
//O valor pago pelo rendeiro depende do número de meses em dívida.
public double valorRenda(double valorMes, int numMeses) {
return valorMes*numMeses;
}
public void imprimeDados() {
super.imprimeDados();
System.out.println(valorRenda(valorMensal, mesesEmDivida));
}
}

5. A estrutura de dados Lista é um conjunto de dados dispostos e/ou acessíveis numa


sequência determinada. Com base na interface List apresentada abaixo,

public interface List {


public boolean isEmpty();//testa se a lista é vazia
public void add( Object o );//Adiciona o object o na cabeça
public void remove();//remove o ultimo objecto da lista
public Object getObject()//retorna o Objecto dum Nodo da Lista
public Nodo VaParaProximo()//Permite avançar para o prox nodo
da Lista
}
// ListaLigada é uma implementação
public class ListaLigada implements List {
private static class Nodo
{//Esta é a definição do NODO da lista
Object item;
Nodo next;

4 Bom Trabalho!!! O Grupo da Disciplina


Nodo( Object o, Nodo n )
{ item = o; next = n; }
Nodo( Object o )
{ this( o, null );
}
//Aqui vai a implementação de outros (todos!) métodos de List.
.....
.....
}
a. Implemente o método DivisoresDeN, para colocar numa segunda lista todos os
divisores de um número inteiro recebido como parâmetro. (4.0)
ListaLigada q=new ListaLigada;

public void DivisoresDeN (int n, ListaLigada l) {

P=l;
while (p.isEmpty()){
int x=p.getObject();
if (n%x==0) q.addFirst();
p.vaParaProximo();
}
}

5 Bom Trabalho!!! O Grupo da Disciplina

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy