Você está na página 1de 31

Lista 01

1-Explique a diferença entre variáveis de instância e de classe.


2-Explique a diferença entre classe abstrata e classe concreta na orientação a objetos.
3-Explique a diferença entre sobrecarga (overloading) de métodos versus
redefinição/sobreposição/sobrescrita de métodos.
4-Descreva classes, métodos e atributos marcados como final.
5-Diferencie métodos private e public.
6-Um sistema contém uma classe Carro, que herda da classe Veiculo. O programador definiu a
classe conforme o código abaixo. Considerando que a velocidade não pode ser menor que 40
(unidade em kilômetros) e que a capacidade de passageiros não pode ultrapassar 5 e nem ser
menor que 1, reescreva o código de forma que nenhuma instância possa violar essas regras e
que a classe devidamente encapsulada, permitindo acesso de escrita e leitura em ambas
propriedades a partir de classes externas.
class Veiculo {
public int capacidade;
}
class Carro extends Veiculo {
public int velocidade;
}
7-Crie uma sobrecarga para o método:
public int somar (int a, int b){}
8-Diferencie Java x UML
9- Explique a diferença entre tipos primitivos e tipos de referência
10-Descreva:
a)Classe
b)Objeto
c)Método
d)Herança
e)Encapsulamento
f) Polimorfismo
g)Pacotes
h)Método Construtor
i)Métodos Gets e Sets
j)Classe Abstrata
l)Final
Lista 02 – Conceitos Iniciais, String e
Inteiros
1-Criar um algoritmo para fatorar um número inteiro (verifique o algoritmo do RSA).
Link: http://pt.wikipedia.org/wiki/RSA

2-Verificar se um número é primo.

3-Verificar se dois números são amigáveis.


Linkr: http://pt.wikipedia.org/wiki/N%C3%BAmero_amig%C3%A1vel

4-Verificar se duas palavras são palíndromos.

5-O que é um bytecode em java?

6-O que é uma máquina virtual?

7-Qual a vantagem da linguagem java através do uso de bytecode e da máquina virtual?

8-Defina JSE,JEE e JME:


Link: http://www.devmedia.com.br/artigo-java-magazine-32-tira-duvidas/8980

9-Defina:
a)JDK – Java Development Kit
b)JVM – Máquina Virtual do Java
c)JRE – Java Runtime Environment
d)JAR – Java Archive

10-Explique as diferenças entre formato “jar” e “exe”.


Lista 03 – Programas e Conceitos
1-Escreva um programa em Java que armazene em um array de String de 5 nomes digitados
pelo usuário ao final imprima uma lista com todos os nomes que começam com a letra “M” e
depois imprima uma lista com todos os nomes que tem menos de 10 letras.

2- Escreva um programa em Java que armazene em um array de String de 5 nomes digitados


pelo usuário ao final imprima uma lista com todos os nomes que tem menos de 7 letras.

3- Implemente um sistema que calcule o rendimento da poupança recebendo como


entrada o valor depositado, a data de entrada e a data de saída do investimento e a
rentabilidade mensal.

4- Teste e Descreva 10 métodos da classe String:


Ex.: equals -> verifica se dois objetos da classe String possuem o mesmo valor

5- Teste e Descreva 10 métodos da classe Integer:

6- Teste e Descreva 10 métodos da classe Float:

7- Descreva 8 tipos primitivos do Java:

8-O que é uma interface?Exemplifique.

9-Crie um projeto com uma interface Voador contendo os seguintes métodos:


public void voar();
public void decolar();
public void pousar();
Crie a classe Avião e Disco Voador implementado a interface Voador. Descreva o corpo
dos métodos.

10- Defina o conceito de Casting.

11-Leia os links e construa complete a tabela de visibilidade:


http://www.devmedia.com.br/modificadores-de-acesso-do-java/25404
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
http://pt.stackoverflow.com/questions/23/qual-%C3%A9-a-diferen%C3%A7a-entre-
modificadores-public-default-protected-e-private

Modificador Mesma Subclasse Pacote Externo


Classe
Public(+)
Private(-)
Protected(#)
Package(~)
default

12-Crie um projeto em Java com um exemplo de cada um dos seguintes conceitos:


Obs.: Coloque um comentário para cada conceito utilizado.
a)herança
b)polimorfismo
c)realização(Interface)
d)reescrita de Método
e)sobrecarga
f) classe abstrata
g) encapsulamento
h) métodos abstratos
i) atributo com o modificador final
j)método com o modificador final
k)classe com o modificador final
l)variáveis de classe
m)variáveis de instância
n)pacote
o)atributo com o modificador static
p)método com o modificador static
s)método construtor
t)método destrutor
u)chamada da super classe
v) visibilidade public
w) visibilidade private
x) visibilidade protected
y) visibilidade packge
13-Descreva o conceito de biblioteca em Java.
Link: http://www.cin.ufpe.br/~if101/turmaatual/aulas/aula8/transparencias/pacotes.html

14-Descreva o conceito de máquina virtual

15- Descreva as diferença entre a linguagem C e a linguagem Java.


Lista 04
1-Escreva um programa que imprima números aleatórios.
2-Escreva um programa que gere senhas aleatórias.
3-Escreva um programa que calcule o fatorial de um número utilizando um comando de
repetição.
4-Escreva um programa que calcule de forma recursiva o fatorial de um número.
5-Escreva um programa que calcule a sequencia de Fibonacci
Link: https://pt.wikipedia.org/wiki/Sequ%C3%AAncia_de_Fibonacci
6-Escreva um programa que leia os votos de 5 candidatos e calcule o percentual de cada
um.
7-Escreva programa que leia um String e troque todas as vogais da seguinte maneira:
a-1 - e-2 – i -3 o -4 u-5
Lista 05 – Exceções
Links:
http://www.devmedia.com.br/trabalhando-com-excecoes-em-java/27601
https://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-
erros/#11-1-motivacao

1-Diferencie erro de compilação e erro de execução.


2-O que é uma exceção?
3-Diferencie exceções implícitas e explicitas.
4-Diferencie Checked Exception, Unchecked (Runtime) e Error.
5-Crie um projeto e defina uma exceção.
6-Explique a diferença entre os blocos try, cacth e finally
7-Crie uma classe Pessoa que lance uma exceção caso seja inserido uma idade menor
que 0.
8-Explique 10 tipos de exceções que podem ocorrer no java.
9-Diferencie o bloco try/catch/finally e a cláusulas Cláusulas throw/throws.
10-Exemplifique Métodos para captura de erros
11-Explique a função do System.err
12-Crie um projeto de contas bancarias com tratamento de exceções.
13-Crie um projeto de calculadora com tratamento de exceções. Obs.:Divisão por zero
14-Crie um projeto com um exemplo de exceções checked e unchecked.
15-Crie uma classe carro e lance uma exceção caso a velocidade inserida seja menor
que 40.
16-Defina o conceito de Pacote.
17-Crie uma exceção para tratar a divisão por zero.
18-Diferencie exceções checked e not checked.
19- Descreva as Classes Exception e RuntimeException.
20-
public class QuestaoX {
public static void main(String[] args) {
try {
int a=2;
int b=0;
int r=a/b;
System.out.println(r);
} catch (ArithmeticException e) {
System.out.print("A");
} catch (Exception e) {
System.out.print("B");
} finally {
System.out.print("C");
}
}
}

Na execução desse programa, o valor impresso será:____________


Lista 06 –Coleções
1ª Questão: Julgue os itens em V ou F retificando as informações falsas.

(1) A Classe Hashtable é uma classe synchronized.


(2)A Classe HashMap é uma classe synchronized.
(3)A Classe ArrayList implementa a interface List.
(4)Em Java só é permitido que uma classe implemente uma única interface.
(5)Em Java só é permitido que uma classe herde de uma única classe.
(6) O método hasNext( ) informa se o iterator ainda pode retornar algum
elemento.
(7) O método next() retorna o próximo elemento da iteração.
(8) Realizar (ou implementar) uma interface significa que a classe deverá
implementar todos os métodos assinados na interface.
(9) A Interface List é uma especialização de Collection; Uma lista
representa um serviço capaz de apontar para um conjunto de objetos que
estão colocados em uma ordem de posição arbitrada pelo programador e
que pode apresentar duplicação de elementos.
(10) A Interface Set é uma especialização de Collection; Um set representa
um serviço capaz de apontar para um conjunto de objetos que não estão
necessariamente colocados em uma ordem de posição arbitrada pelo
programador e que não permite a duplicação de elementos.
(11) Coleções Synchronized são classes que só podem ser manipuladas por
uma única Thread a cada instante. A única exceção é a recuperação via
iterator.
(12) A Classe Hashtable funciona como uma tabela Hash. Para adicionarmos
um elemento, temos que vincular a ele uma chave de indexação que é
utilizada para a recuperação.
(13) A Classe Hashtable não está vinculada a interface Collection
(implementa na realidade a interface Map).
(14) NÃO é possível inserir elementos repetidos em um ArrayList.
(15) Comportamento da classe Vector é parecido ao do ArrayList porém o
Vector é synchronized (não permite acesso concorrente).
(16) O Enum permite criar classes que possuem somente um conjunto fixo
de objetos, já conhecidos previamente.
(17) Toda exceção em Java é um objeto da classe java.lang.Exception, ou
de uma de suas subclasses.
(18) Utilizando o Varargs a declaração int... outros indica que podemos ter
0 ou mais parâmetros int’s.
(19) Com o Generics podemos informar qual o tipo de elemento que os
objetos de coleção vão manipular.
(20) O recurso de anotações é utilizado intensivamente por frameworks e
APIs sofisticadas para obter outros metadados com relação ao código que
estamos escrevendo.
(21) Java é uma linguagem fortemente tipada.
(22) A Classe ArrayList implementa a interface Set.

2ª Questão: Gere uma lista contendo 20 números aleatórios entre 1 e 100


e armazene e ordene em ordem crescente utilizando um:
a)ArrayList.

b)LinkedList.

c)HashSet.

d)TreeSet.

3ª Questão:Utilizando um LinkedList crie:

a)Uma Fila

b)Uma Pilha

c)Um Deque

d)Uma Fila de Prioridades

4ª Questão:Crie um programa que leia 10 nomes e guarde em um


LinkedList todos os nomes com números impares de letras e em um
HashSet todos os nomes com números pares de letras. Ao final o programa
deve exibir os nomes armazenados no LinkedList e o HashSet.

5ª Questão:Crie um programa que encontre os 100 primeiros números


primos e guarde em um LinkedList. Ao final o programa deve exibir os
números primos.

6ª Questão:Crie um programa que leia um número e guarde todos os


divisores em um LinkedList. Ao final o programa deve exibir a lista de
divisores.

7ª Questão:Utilizando um HashMap crie um programa que receba um CPF


e retorne um objeto da Classe Pessoa.

8ª Questão:Diferencie as classes HashMap e HashTable.

9ª Questão: Um hospital precisa de um sistema para efetuar o


cadastro de pacientes que necessitam de atendimento. Para cada
paciente que é incluído no sistema deve ser informado o IUA
(identificador único de atendimento) e o se o atendimento é
emergência ou normal. Para atendimento nesse hospital é utilizado
uma fila de prioridades, onde os atendimentos de emergência
possuem uma maior prioridade, ou seja, devem ser tratados
(atendidos) primeiro. Utilizando uma classe de coleções implemente
uma fila de prioridades para tratar a fila do hospital.
10ª Questão:Descreva as vantagens e desvantagens das seguintes
coleções:

a)ArrayList

b)LinkedList

c)HashSet

d)TreeSet
Lista 07 –Coleções
1ª Questão:Implemente o “public int compareTo” para que a classe Pessoa
possa ser ordenada por idade.

public class Pessoa implements Comparable<Pessoa> {


private String nome;
private int idade;

public Pessoa(String nome, int idade) {


this.nome = nome;
this.idade = idade;
}

public String getNome() {


return nome;
}

public int getIdade() {


return idade;
}

public int compareTo(Pessoa outraPessoa) {

2ª Questão: Implemente o “public int compareTo” para que a classe


Pessoa possa ser ordenada por nome.

public class Pessoa implements Comparable<Pessoa> {


private String nome;
private int idade;

public Pessoa(String nome, int idade) {


this.nome = nome;
this.idade = idade;
}

public String getNome() {


return nome;
}

public int getIdade() {


return idade;
}

public int compareTo(Pessoa outraPessoa) {

3ª Questão:Complete o código para que o ArrayList possa ser percorrido


utilizando o iterator.

public class ImplArrayList {


public static void main(String[] args) {

ArrayList<String> lista = new ArrayList<String>();


lista.add("Carlos");
lista.add("Joao");
lista.add("Maria");
lista.add("Marcos");
lista.add("Renata");
lista.add("Mirela");
lista.add("Carmem");

...
4ª Questão: Complete o código para que o ArrayList possa ser percorrido
utilizando o “for each”.

public class ImplArrayList {


public static void main(String[] args) {

ArrayList<String> lista = new ArrayList<String>();


lista.add("Carlos");
lista.add("Joao");
lista.add("Maria");
lista.add("Marcos");
lista.add("Renata");
lista.add("Mirela");
lista.add("Carmem");

...
Lista 08 –Generics
1ª Questão:Utilizando Generics crie:

a)Fila

b)Pilha

c)Deque

d)Fila de Prioridades

2ª Questão: Um hospital precisa de um sistema para efetuar o


cadastro de pacientes que necessitam de atendimento. Para cada
paciente que é incluído no sistema deve ser informado o IUA
(identificador único de atendimento) e o se o atendimento é
emergência ou normal. Para atendimento nesse hospital é utilizado
uma fila de prioridades, onde os atendimentos de emergência
possuem uma maior prioridade, ou seja, devem ser tratados
(atendidos) primeiro. Implemente uma fila de prioridades em Generics
para tratar a fila do hospital.
Lista 09 –Programas
1ª Questão: (OBI2008, Fase 1, Nível 2)

Avião

Su Zuki é um empresário japonês acostumado a fazer viagens de avião,


sempre na classe econômica, e quer saber qual seu assento com base no
novo sistema da companhia aérea.

Todos os aviões contém uma classe executiva e uma econômica, de forma


que as primeiras fileiras do avião pertencem à classe executiva e as
restantes à classe econômica.

Cada assento do avião é indicado por um número correspondente a sua


fileira e por uma letra que indica a sua posição na fileira, sendo A a posição
mais à esquerda da fileira, B a posição à direita do assento A, C o assento à
direita do assento B, e assim por diante, seguindo o alfabeto de 26 letras.
Por exemplo, a assento 9B está localizado na nona fileira, logo à direita do
assento 9A. A figura abaixo mostra a numeração utilizada em um avião com
nove fileiras de três assentos cada.

A companhia aérea adotou, para a classe econômica, um sistema no qual o


bilhete indica a posição do passageiro na fila de embarque e não seu
assento no vôo. A fila de embarque contém apenas passageiros da classe
econômica.
Su Zuki descobriu que o primeiro passageiro da fila de embarque deve
sempre sentar-se no assento localizado na primeira fileira da classe
econômica, posição A. O segundo passageiro deve sentar-se nesta mesma
fileira, posição B, e assim por diante, até que todos os assentos dessa fileira
estejam ocupados. Esse processo é repetido a cada fileira da classe
econômica, até que acabem os assentos desta classe ou todos os
passageiros da fila já tenham embarcado.

Caso a classe econômica já esteja lotada e ainda haja passageiros na fila,


esses passageiros embarcarão somente no próximo vôo.

Como viajante frequente, Su Zuki conhece bem os diversos modelos de


aviões e é capaz de dizer o número total de fileiras no avião, o número de
posições por fileira, e a partir de que fileira começa a classe econômica.
Com base nessas informações, ele pediu a sua ajuda para descobrir, a partir
de sua posição na fila, se ele tem assento garantido neste vôo e, caso
tenha, qual seu assento.

Entrada

A entrada contém um único teste, a ser lido da entrada padrão. O teste


contém uma linha com quatro inteiros F, C, E, B (2 ≤ F ≤ 1.000, 1 ≤ C ≤
26, 1 ≤ E ≤ F , 2 ≤ B ≤ 50.000) indicando, respectivamente, o número total
de fileiras no avião, o número de posições por fileira, o número da primeira
fileira da classe econômica e a posição na fila de embarque do Sr. Zuki.

Saída

Seu programa deve imprimir, na saída padrão, uma única linha, contendo
um inteiro e uma letra maiúscula, indicando a fileira e a posição em que o
Su Zuki irá sentar-se, ou a frase "PROXIMO VOO" (em maiúsculas e sem
acentos) caso não haja assentos suficientes para o Sr. Zuki no vôo.

Exemplos
Entrada Saída

5 5 2 12 4B

Entrada Saída

50 12 13 185 28 E

Entrada Saída

12 10 6 100 PROXIMO VOO


2ª Questão: (OBI2009, Fase 1, Nível 2)

Notas da Prova

Rosy é uma talentosa professora do Ensino Médio que já ganhou muitos


prêmios pela qualidade de sua aula. Seu reconhecimento foi tamanho que
foi convidada a dar aulas em uma escola da Inglaterra. Mesmo falando bem
inglês, Rosy ficou um pouco apreensiva com a responsabilidade, mas
resolveu aceitar a proposta e encará-la como um bom desafio.

Tudo ocorreu bem para Rosy até o dia da prova. Acostumada a dar notas de
0 (zero) a 100 (cem), ela fez o mesmo na primeira prova dos alunos da
Inglaterra. No entanto, os alunos acharam estranho, pois na Inglaterra o
sistema de notas é diferente: as notas devem ser dadas como conceitos de
A a E. O conceito A é o mais alto, enquanto o conceito E é o mais baixo.

Conversando com outros professores, ela recebeu a sugestão de utilizar a


seguinte tabela, relacionando as notas numéricas com as notas de
conceitos:

O problema é que Rosy já deu as notas no sistema numérico, e terá que


converter as notas para o sistema de letras. Porém, Rosy precisa preparar
as próximas aulas (para manter a qualidade que a tornou reconhecida), e
não tem tempo suficiente para fazer a conversão das notas manualmente.

Tarefa

Você deve escrever um programa que recebe uma nota no sistema


numérico e determina o conceito correspondente.
Entrada

A entrada contém um único conjunto de testes, que deve ser lido do


dispositivo de entrada padrão (normalmente o teclado). A entrada contém
uma única linha com um número inteiro N (0 ≤ N ≤ 100), representando
uma nota de prova no sistema numérico.

Saída

Seu programa deve imprimir, na saída padrão, uma letra (A, B, C, D, ou E


em maiúsculas) representando o conceito correspondente à nota dada na
entrada.

Informações sobre a pontuação

 Em um conjunto de casos de teste que totaliza 35 pontos, N ≤ 10.


 Em um conjunto de casos de teste que totaliza 70 pontos, N ≤ 50.

Exemplos
Entrada Saída

12 D

Entrada Saída

87 A

Entrada Saída

0 E

3ª Questão: (OBI2009, Fase 2, Nível 2 – Adaptado )

Olimpíadas

O Comitê Olímpico Internacional (COI) está visitando as cidades candidatas


a sediar as Olimpíadas de 2016. O Rio de Janeiro é uma das cidades
concorrentes, mas a competição é muito acirrada.

O COI tem um conjunto de exigências que devem ser obedecidas pelas


cidades candidatas, como boas arenas para os jogos (ginásios, campos de
futebol, pistas de atletismo, parque aquático,...), bons alojamentos, um
plano para o tráfego de veículos durante os jogos, etc. Durante sua visita ao
Rio de Janeiro, o COI colocou ainda mais uma exigência: a demonstração da
qualidade dos sistemas de informática. Especificamente,o COI quer que a
organização local demonstre a sua capacidade em informática produzindo
um programa que gere a classificação final dos países, considerando o
número total de medalhas recebidas pelos atletas de cada país.

Sua tarefa é escrever um programa que, dada a informação dos países que
receberam medalhas de ouro, prata e bronze em cada modalidade, gere a
lista de classificação dos países na competição. Nesta tarefa, os países
serão identificados por números inteiros. O melhor colocado deve ser o país
que conseguiu o maior número de medalhas, independentemente do tipo da
medalha (ouro, prata ou bronze). Se houver empate entre dois países no
número total de medalhas, o melhor classificado é o país que tem o menor
número de identificação.

Entrada

A primeira linha da entrada contém dois números inteiros N e M, separados


por um espaço em branco, indicando respectivamente o número de países e
número de modalidades esportivas envolvidas na competição. Os países são
identificados por números inteiros de 1 a N. Cada uma das M linhas
seguintes contém três números inteiros O, P e B, separados por um espaço
em branco, representando os países cujos atletas receberam
respectivamente medalhas de ouro, prata e bronze. Assim, se uma das M
linhas contém os números 321, significa que nessa modalidade a medalha
de outro foi ganha pelo país 3, a de prata pelo país 2 e a de bronze pelo
país 1.

Saída

Seu programa deve imprimir na saída padrão uma linha contendo N


números, separados por um espaço em branco, representando os países na
ordem decrescente de classificação (o primeiro número representa o país
que é o primeiro colocado,o segundo número representa o país que é o
segundo colocado, e assim por diante).

Exemplos
Entrada Saída

3 3 123
3 12
2 31
1 23

4ª Questão: (OBI2011, Fase 2, Nível 2)

Quadrado Mágico
Arnaldo e Bernardo são dois garotos que compartilham um peculiar gosto
por curiosidades matemáticas. Nos últimos tempos, sua principal diversão
tem sido investigar propriedades matemágicas de tabuleiros quadrados
preenchidos com inteiros. Recentemente, durante uma aula de matemática,
os dois desaaram os outros alunos da classe a criar quadrados mágicos, que
são quadrados preenchidos com números de 1 a N2, de tal forma que a
soma dos N números em uma linha, coluna ou diagonal principal do
quadrado tenham sempre o mesmo valor. A ordem de um quadrado mágico
é o seu número de linhas, e o valor do quadrado mágico é o resultado da
soma de uma linha. Um exemplo de quadrado mágico de ordem 3 e valor
15 é mostrado na figura abaixo:

2 7 6

9 5 1

4 3 8

Entrada

A primeira linha da entrada contém um único número inteiro N, indicando a


ordem do quadrado (seu número de linhas). As N linhas seguintes
descrevem o quadrado. Cada uma dessas linhas contém N números inteiros
separados por um espaço em branco.

Saída

Seu programa deve imprimir uma única linha na saída padrão. Caso o
quadrado seja mágico, a linha deve conter o valor do quadrado (ou seja, a
soma de uma de suas linhas). Caso contrário, a linha deve conter o número
0.

Restrições

 3 ≤ N ≤ 1000
 2 ≤ valor de cada célula ≤ 109

Informações sobre a pontuação

 Em um conjunto de casos de teste que totaliza 30 pontos, N ≤ 3.


 Em um conjunto de casos de teste que totaliza 70 pontos, N ≤ 100.

Exemplos
Entrada Saída

3 0
111
111
111

Entrada Saída

4 34
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Entrada Saída

3 0
489
11 7 3
6 5 10

5ª Questão: (OBI2012, Fase 2, Nível 2)

Banco

A legislação em vigor obriga os bancos a iniciarem o atendimento a um


cliente em no máximo 20 minutos após a entrada do cliente na fila única da
agência bancária. A fila é única, assim um caixa livre solicita ao primeiro
cliente da fila que venha ao seu guichê para ser atendido. (Vamos ignorar
aqui o problema dos clientes prioritários, idosos, gestantes, portadores de
necessidades especiais, etc.) Estamos supondo também que nenhum caixa
atende dois clientes ao mesmo tempo.

Seu programa receberá o número de caixas ativas na agência, o número de


clientes e, para cada cliente, duas informações, a saber, o momento de
entrada do cliente na fila, e a duração do atendimento daquele cliente.

Inicialmente todos os caixas estão vazios, já que a agência acabou de abrir.

Seu problema é determinar o número de clientes que esperarão mais de 20


minutos para ter seu atendimento iniciado.

Entrada

A primeira linha da entrada contém dois inteiros separados por um espaço


em branco. O primeiro, C, é o número de caixas ativas na agência bancária.
O segundo, N, o número de clientes que procurarão atendimento na agência
naquele dia.
As próximas N linhas terão cada uma informações sobre um cliente,
consistindo de dois inteiros, T e D, separados por um espaço em branco. O
inteiro T fornece o momento em que o cliente entra na fila, em minutos, a
partir do instante de abertura da agência. O inteiro D fornece, em minutos,
o tempo necessário para atender o cliente.

As linhas estão ordenadas por entrada dos clientes na fila.

Saída

A saída deverá conter apenas uma linha, contendo um único inteiro, o


número de clientes cujo atendimento será iniciado mais do que 20 minutos
após sua entrada na fila.

Restrições

 1 ≤ C ≤ 10
 1 ≤ N ≤ 1000
 0 ≤ T ≤ 300
 1 ≤ D ≤ 10

Exemplos
Entrada Saída

15 1
0 10
0 10
1 10
2 10
30 10

Entrada Saída

3 16 2
0 10
0 10
0 10
3 10
5 10
7 10
11 10
13 10
14 10
15 10
16 10
17 10
18 3
19 10
20 10
23 3
Lista 10 – UML x Java
1ª Questão: Dado o diagrama de classes a seguir, diga quais são os
atributos e métodos que precisarão ser colocados para a implementação
dos relacionamentos indicados. Implemente essas classes e
relacionamentos na linguagem Java.

2ª Questão: Dado o diagrama de classes abaixo, diga quais são os


atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.

3ª Questão: Dado o diagrama de classes abaixo, diga quais são os


atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.
4ª Questão: Dado o diagrama de classes abaixo, diga quais são os
atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.

5ª Questão: Dado o diagrama de classes abaixo, diga quais são os


atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.
6ª Questão: Dado o diagrama de classes abaixo, diga quais são os
atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.

7ª Questão: Dado os diagramas de classes abaixo, diga quais são os


atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código dos diagramas na linguagem
Java.

a) b)
c)

d)

e)

f)

g)

h)

i)

j)
k)

l)

m)

n)

8ª Questão: (Enade-Computação-2014-Adaptado) Muitas Aplicações


utilizam o sistema de localização (GPS) do dispositivo móvel do usuário
para descobrir qual é o melhor caminho a seguir. Algumas aplicações
também permitem que o usuário notifique a ocorrência de eventos que ele
presencia durante seu percurso, tais como acidentes ou trânsito lento.

Em um determinado sistema de localização devem ser guardadas todas as


notificações indicando a latitude e longitude de um fato. Nesse sistema
também deverão ser guardados os usuários (CPF, nome) e a descrição do
evento.

Construa o diagrama de classes e diga quais são os atributos e métodos que


precisarão ser colocados para a implementação dos relacionamentos
indicados em código Java.
9ª Questão: Modele o Diagrama de Classes(UML) e implemente na
linguagem Java as classes, atributos e métodos para a criação dos
relacionamentos:

a) Time x Jogador
b) Turma x Aluno x Professor
c) Curso x Disciplina
d) Paciente x Médico x Atendimento
e) Show x Cantor
f) Time x Rodada
g) Candidato x Partido
h) Estado x Pais
i) Empresa x Serviço
j) Carro x Montadora
k) Leitor x Empréstimo x Livros
l) Cliente x Ligações
m) Hospede x Quarto
n) Carro x Corrida
o) Paciente x Leito
p) Hospital x Médico
q) Departamento x Empregado
r) Atendimento x Atendente
s) Rede de TV x Programação
t) Matéria x Curso
u) Escola de Samba x Ala
v) Dentista x Consulta x Paciente
w) Veiculo x Frota
x) Empresa x Empregado
y) Hotel x Quarto
z) Universidade x Curso x Disciplina x Turma x Professor x Aluno

10ª Questão: Dado o diagrama de classes abaixo, diga quais são os


atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.
Lista 11 –UML e Coleções
1-Modele um diagrama de classe de uma fábrica de carro e implemente o código em
Java.
2- Modele um diagrama de classe de uma escola e implemente o código em Java.
3- Modele um diagrama de classe de uma livraria e implemente o código em Java.
4Criar um algoritmo para fatorar um número inteiro (RSA).
Link: http://pt.wikipedia.org/wiki/RSA
5-Verificar se um número é primo.
6-Verificar se um número é amigável.
Linkr: http://pt.wikipedia.org/wiki/N%C3%BAmero_amig%C3%A1vel
7-Verificar se duas palavras são palíndromos.
8-Crie um projeto que tenha como entrada um cpf e retorne os dados de uma pessoa.
Obs.:Utilize a interface MAP
9-Crie uma pilha utilizando o LinkedList.
10-Crie uma fila utilizando o LinkedList.
11-Crie um deque utilizando o LinkedList
12-Crie uma coleção de alunos que seja ordenada pela Matrícula.
13-Crie um coleção de funcionários que seja ordenada pelo nome e alternativamente
pela idade.
14-Descreva as vantagens e desvantagens de cada uma das coleções.

Coleção Vantagens Desvantagens


LinkedList
ArrayList
HashSet
TreeSet
HashMap
HashTable
TreeMap
Lista 12 –Coleções
1ª Questão: Dado o diagrama de classes abaixo, diga quais são os
atributos e métodos que precisarão ser colocados para a implementação dos
relacionamentos indicados. Construa o código do diagrama na linguagem
Java.

3ª Questão: Gere uma lista contendo os números primos entre 1 e 100 e


armazene utilizando um:

a)ArrayList.

b)LinkedList.

c)HashSet.

d)TreeSet.

4ª Questão: Julgue os itens:

I- O comportamento do LinkedList está baseado em implementar uma


lista encadeada.
II- O LinkedList é “Bom” para inserção e “Ruim” para recuperação
aleatória por posição já que há a necessidade de navegação pela
lista.
III- Comportamento da classe Vector é parecido ao do ArrayList porém o
Vector é synchronized (não permite acesso concorrente).
IV- O método Prox( ) informa se o iterator ainda pode retornar algum
elemento.
Estão corretos:

a) I,II e III b) II ,III e IV c) I ,III e IV d) I ,II e IV e) III e IV