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)
In [ ]:
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
In [ ]:
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.
In [ ]: