Exercícios para Prova 1

Questão 1

Escreva um programa que leia uma lista contendo o peso de uma série de indivíduos em um vetor denúmeros reais. A lista possui 150 elementos. Depois que a lista foi toda inserida o programa deve procurar e imprimir qual a posição no vetor onde está o menor peso.

Abaixo tem um exemplo de como gerar um peso aleatório para inicialização do vetor.


In [107]:
import java.util.Random;

Random rand = new Random();

double r = rand.nextGaussian()*10 + 60; //Valor em distribuição Gaussiana com média 60 e desvio padrão 10. 
System.out.println(r)


57.639653410674

Resposta 1


In [ ]:

Questão 2

A linguagem Java dispõe de um suporte nativo a vetores, que exige a definição de seu tamanho nomomento da instanciação. Depois de instanciado, o tamanho do vetor não pode ser modificado. Escrevauma classe chamada Vetor cujos objetos simulem vetores de tamanho variável. A classe define osseguintes métodos:

Método Descrição
construtor recebe como parâmetro o tamanho inicial do vetor
insert recebe como parâmetro uma string e a coloca na próxima posição disponível do vetor; note que o vetor cresce automaticamente, portanto, se a inserção ultrapassar o tamanho inicial estabelecido na criação, por exemplo, o vetor deve aumentar seu tamanho automaticamente.
get recebe como parâmetro uma posição do vetor e retorna a string que estiver naquela posição; se a posição não estiver ocupada ou ultrapassar o tamanho do vetor, este método retorna nulo
size retorna o número de elementos inseridos no vetor (independente do tamanho do mesmo)

O java dispõe de classes – tal como a Vector – que realizam a tarefa solicitada nesta questão. Taisclasses não devem ser usadas. É possível resolver esta questão apenas usando o sistema de vetorespreexistente do Java, sem nenhum comando especial extra

Resposta 2


In [ ]:

Questão 3

Dada uma classe Equipamento na qual cada objeto representa um conjunto de N equipamentos deuma empresa com seus respectivos valores, cujo diagrama UML está representado a seguir:

Método Descrição
construtor recebe como parâmetro o número de equipamentos e cria um vetor de valores do respectivo tamanho
getNumeroEquipamentos retorna o número de equipamentos
getValor recebe como parâmetro o número do equipamento (começando de zero) e retorna seu valor.
setValor recebe como parâmetro o número do equipamento e seu valor e o registra

Cada equipamento possui um código numérico sequencial, começando de zero, que corresponde a suaposição no vetor.Escreva uma classe, herdeira da classe Equipamento, denominada EquipamentoCorrigido em que cadaobjeto representa os mesmos equipamentos com valor corrigido, conforme diagrama UML parcialrepresentado anteriormente.Todo equipamento só é corrigido anualmente no mês em que foi comprado, por este motivo a classedeve acrescentar para cada equipamento um registro do seu mês de compra. Além disto, deve possuir osmétodos:

Método Descrição
construtor recebe como parâmetros o número de equipamentos e o mês corrente.
getMesCompra recebe como parâmetro o número do equipamento (começando de zero) e retorna seu mês de compra.
setMesCompra recebe como parâmetro o número do equipamento e seu mês de compra e o registra.
corrige este método recebe como parâmetro apenas o percentual de correção e corrige todos os equipamentos cujo mês de compra seja igual ao mês corrente; O objeto deve manter registrado em um atributo o mês corrente, que deve começar sempre em janeiro (quando o objeto é construído). Cada vez que este método é chamado, após a correção, o mês é incrementado de um e, se estiver em dezembro, retorna para janeiro
substitui recebe como parâmetro um outro objeto da classe EquipamentoCorrigido e substitui o valor e o mês de compra de todos os equipamentos do objeto corrente pelos do objeto recebido como parâmetro; a operação só será realizada se ambos os objetos possuírem o mesmo número de equipamentos

Note que o atributo “valor” da classe Equipamento é privado, portanto, só poderá ser acessadoindiretamente, até mesmo pela classe herdeira.

Resposta 3


In [ ]: