SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
UNIVERSIDADE FEDERAL DE SÃO PAULO
CAMPUS SÃO JOSÉ DOS CAMPOS
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA (DCT)
PROGRAMAÇÃO ORIENTADA A OBJETOS I
Lista de Exercícios – Vetores, Coleções, Estruturas de Dados
1. Escreva um programa que lê uma sequência de números positivos dada pelo usuário e imprima
os mesmos números ordenados ascendentemente. O usuário entrará com 0 para marcar o fim da
entrada. Assuma que no máximo 100 números serão lidos.
2. Escreva um programa que, dado um vetor de doubles, retorna a média dos números no vetor.
3. Suponha uma classe Funcionário definida como segue (métodos get e set omitidos):
public class Funcionario {
private String sobreNome;
private String nome;
private double salarioHora;
private int anosNaEmpresa;
}
Escreva um método nesta classe que, dado um vetor de funcionários e um número X de anos (os
parâmetros do método), imprima o nome, sobrenome e salário de cada funcionário no vetor que
esteve na empresa por X anos ou mais.
4. Escreva um método que encontra o maior inteiro de um vetor de inteiros.
5. Qual é a saída do seguinte trecho de código?
char[][] pic = new char[6][6];
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++) {
if ( i == j || i == 0 || i == 5 )
pic[i][j] = ’*’;
else
pic[i][j] = ’.’;
}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++)
System.out.println(pic[i][j]);
System.out.println();
}
6. Suponha que uma lista ligada de inteiros é criada a partir de objetos da seguinte classe:
public class No {
private int dado; / / Um item da l i s t a
private No prox; / / Ponteiro para o próximo
}
1
Crie os métodos para inserir, remover e buscar um nó na lista. Escreva um método que cria uma
cópia de uma lista com a ordem invertida dos itens da lista. O método deve receber uma lista (No)
e retornar uma lista (No). A lista original não deve ser modificada. Escreva também um método
que retorna a soma dos inteiros de uma lista.
Crie um método main() para testar as funcionalidades da classe.
7. Considere o seguinte método:
static void imprimeAlgo(int nível) {
if (nivel == 0) {
System.out.print("*");
} else {
System.out.print("[");
imprimeAlgo(nivel - 1);
System.out.print(",");
imprimeAlgo(nivel - 1);
System.out.println("]");
}
}
Mostre as saídas que seriam produzidas pelas chamadas imprimeAlgo(0), imprimeAlgo(1),
imprimeAlgo(2), e imprimeAlgo(3).
8. Suponha que uma árvore binária pode ser criada a partir de objetos da seguinte classe:
class NoDeArvore {
int item; / / Um item na árvore .
NoDeArvore esquerda; / / Pont . sub−árvore esquerda .
NoDeArvore direita; / / Pont . sub−árvore d i r e i t a .
}
Escreva métodos para inserir, remover e buscar um elemento na árvore. Crie também um método
recursivo que encontra a soma dos itens de uma árvore. Seu método deve ter um parâmetro do tipo
NoDeArvore e deve retornar um inteiro.
9. Crie uma classe Pilha com os métodos pop, push e top (retorna o topo da Pilha) a partir de
uma LinkedList (ou seja, sua classe deve ter um atributo do tipo LinkedList que armaze-
nará o conteúdo da pilha). Observação: não utilize os métodos pop e push já oferecidos por
LinkedList; a pilha deve funcionar com objetos de qualquer tipo.
10. Crie uma classe Fila com os métodos enfileira, desenfileira e vazio (verifica se a fila está vazia) a
partir de uma LinkedList. A fila deve funcionar com objetos de qualquer tipo.
11. Crie uma classe que gera um vetor de doubles aleatórios. O construtor da classe deve receber
um inteiro que corresponde ao tamanho do vetor.
12. Dadas as seguintes classes Cat e Dog, corrija o programa para que não ocorra o ClassCastException.
public class Cat {
private int catNumber;
public Cat(int i) { catNumber = i; }
public void id() {
System.out.println("Cat #" + catNumber);
}
}
2
public class Dog {
private int dogNumber;
public Dog(int i) { dogNumber = i; }
public void id() {
System.out.println("Dog #" + dogNumber);
}
}
public class CatsAndDogs {
public static void main(String[] args) {
List cats = new ArrayList();
for(int i = 0; i < 7; i++)
cats.add(new Cat(i));
cats.add(new Dog(7));
for(int i = 0; i < cats.size(); i++)
((Cat)cats.get(i)).id();
}
}
13. Escreva uma classe ContadorDePalavras baseada na classe ListaDePalavras abaixo que, além de
armazenar palavras, armazene também quantas vezes uma palavra foi armazenada. Escreva méto-
dos para essa classe que recuperem o número de vezes que uma palavra foi armazenada ou zero se
ela não tiver sido armazenada.
import java.util.*;
public class ListaDePalavras {
private Set lista;
public ListaDePalavras() {
lista = new TreeSet();
}
public void adiciona(String palavras) {
StringTokenizer st = new StringTokenizer(palavras);
while(st.hasMoreTokens())
lista.add(st.nextToken());
}
public boolean existe(String palavra) {
return lista.contains(palavra);
}
}
3

Mais conteúdo relacionado

Mais procurados

Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
Rafael_Lima87
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
Emerson Cardoso
 
Exercício de estrutura de dados 01
Exercício de estrutura de dados 01Exercício de estrutura de dados 01
Exercício de estrutura de dados 01
Patricia Diniz
 

Mais procurados (20)

Practica 7
Practica 7Practica 7
Practica 7
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHP
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Teclas de atalho do eclipse
Teclas de atalho do eclipseTeclas de atalho do eclipse
Teclas de atalho do eclipse
 
Practica 7
Practica 7Practica 7
Practica 7
 
Java Básico - Resolução
Java Básico - ResoluçãoJava Básico - Resolução
Java Básico - Resolução
 
Listas em C
Listas em CListas em C
Listas em C
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Practica 7
Practica 7Practica 7
Practica 7
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Exercício de estrutura de dados 01
Exercício de estrutura de dados 01Exercício de estrutura de dados 01
Exercício de estrutura de dados 01
 
Array list
Array listArray list
Array list
 

Destaque (12)

Projeto ULA
Projeto ULAProjeto ULA
Projeto ULA
 
Aprendendo a mexer no quartus II
Aprendendo a mexer no quartus IIAprendendo a mexer no quartus II
Aprendendo a mexer no quartus II
 
Trabalho Final de Compiladores
Trabalho Final de CompiladoresTrabalho Final de Compiladores
Trabalho Final de Compiladores
 
Circuitos aritmeticos
Circuitos aritmeticosCircuitos aritmeticos
Circuitos aritmeticos
 
Pcd
PcdPcd
Pcd
 
Tutorial poke-tool
Tutorial poke-toolTutorial poke-tool
Tutorial poke-tool
 
Apostila - Circuitos Digitais
Apostila - Circuitos DigitaisApostila - Circuitos Digitais
Apostila - Circuitos Digitais
 
Trabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra LinearTrabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra Linear
 
Projeto ula
Projeto ula Projeto ula
Projeto ula
 
Algebra linear teoremas
Algebra linear teoremasAlgebra linear teoremas
Algebra linear teoremas
 
Pratical mpi programming
Pratical mpi programmingPratical mpi programming
Pratical mpi programming
 
Lexyacc
LexyaccLexyacc
Lexyacc
 

Semelhante a Lista IV de Programação Orientada a Objetos

Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
jose-junior89
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
Maurício Linhares
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
PeslPinguim
 

Semelhante a Lista IV de Programação Orientada a Objetos (20)

Java8
Java8Java8
Java8
 
Java5
Java5Java5
Java5
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Aula 7
Aula 7 Aula 7
Aula 7
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Series lab
Series labSeries lab
Series lab
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Aula5
Aula5Aula5
Aula5
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Repetições e vetores
Repetições e vetoresRepetições e vetores
Repetições e vetores
 
Aulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton Yagami
 
Como criar classes e objetos
Como criar classes e objetosComo criar classes e objetos
Como criar classes e objetos
 
Como criar classes e objetos
Como criar classes e objetosComo criar classes e objetos
Como criar classes e objetos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Java 06
Java 06Java 06
Java 06
 

Último

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
azulassessoria9
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
RavenaSales1
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
LusGlissonGud
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
azulassessoria9
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
edelon1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
azulassessoria9
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
azulassessoria9
 

Último (20)

planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 

Lista IV de Programação Orientada a Objetos

  • 1. UNIVERSIDADE FEDERAL DE SÃO PAULO CAMPUS SÃO JOSÉ DOS CAMPOS DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA (DCT) PROGRAMAÇÃO ORIENTADA A OBJETOS I Lista de Exercícios – Vetores, Coleções, Estruturas de Dados 1. Escreva um programa que lê uma sequência de números positivos dada pelo usuário e imprima os mesmos números ordenados ascendentemente. O usuário entrará com 0 para marcar o fim da entrada. Assuma que no máximo 100 números serão lidos. 2. Escreva um programa que, dado um vetor de doubles, retorna a média dos números no vetor. 3. Suponha uma classe Funcionário definida como segue (métodos get e set omitidos): public class Funcionario { private String sobreNome; private String nome; private double salarioHora; private int anosNaEmpresa; } Escreva um método nesta classe que, dado um vetor de funcionários e um número X de anos (os parâmetros do método), imprima o nome, sobrenome e salário de cada funcionário no vetor que esteve na empresa por X anos ou mais. 4. Escreva um método que encontra o maior inteiro de um vetor de inteiros. 5. Qual é a saída do seguinte trecho de código? char[][] pic = new char[6][6]; for (int i = 0; i < 6; i++) for (int j = 0; j < 6; j++) { if ( i == j || i == 0 || i == 5 ) pic[i][j] = ’*’; else pic[i][j] = ’.’; } for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) System.out.println(pic[i][j]); System.out.println(); } 6. Suponha que uma lista ligada de inteiros é criada a partir de objetos da seguinte classe: public class No { private int dado; / / Um item da l i s t a private No prox; / / Ponteiro para o próximo } 1
  • 2. Crie os métodos para inserir, remover e buscar um nó na lista. Escreva um método que cria uma cópia de uma lista com a ordem invertida dos itens da lista. O método deve receber uma lista (No) e retornar uma lista (No). A lista original não deve ser modificada. Escreva também um método que retorna a soma dos inteiros de uma lista. Crie um método main() para testar as funcionalidades da classe. 7. Considere o seguinte método: static void imprimeAlgo(int nível) { if (nivel == 0) { System.out.print("*"); } else { System.out.print("["); imprimeAlgo(nivel - 1); System.out.print(","); imprimeAlgo(nivel - 1); System.out.println("]"); } } Mostre as saídas que seriam produzidas pelas chamadas imprimeAlgo(0), imprimeAlgo(1), imprimeAlgo(2), e imprimeAlgo(3). 8. Suponha que uma árvore binária pode ser criada a partir de objetos da seguinte classe: class NoDeArvore { int item; / / Um item na árvore . NoDeArvore esquerda; / / Pont . sub−árvore esquerda . NoDeArvore direita; / / Pont . sub−árvore d i r e i t a . } Escreva métodos para inserir, remover e buscar um elemento na árvore. Crie também um método recursivo que encontra a soma dos itens de uma árvore. Seu método deve ter um parâmetro do tipo NoDeArvore e deve retornar um inteiro. 9. Crie uma classe Pilha com os métodos pop, push e top (retorna o topo da Pilha) a partir de uma LinkedList (ou seja, sua classe deve ter um atributo do tipo LinkedList que armaze- nará o conteúdo da pilha). Observação: não utilize os métodos pop e push já oferecidos por LinkedList; a pilha deve funcionar com objetos de qualquer tipo. 10. Crie uma classe Fila com os métodos enfileira, desenfileira e vazio (verifica se a fila está vazia) a partir de uma LinkedList. A fila deve funcionar com objetos de qualquer tipo. 11. Crie uma classe que gera um vetor de doubles aleatórios. O construtor da classe deve receber um inteiro que corresponde ao tamanho do vetor. 12. Dadas as seguintes classes Cat e Dog, corrija o programa para que não ocorra o ClassCastException. public class Cat { private int catNumber; public Cat(int i) { catNumber = i; } public void id() { System.out.println("Cat #" + catNumber); } } 2
  • 3. public class Dog { private int dogNumber; public Dog(int i) { dogNumber = i; } public void id() { System.out.println("Dog #" + dogNumber); } } public class CatsAndDogs { public static void main(String[] args) { List cats = new ArrayList(); for(int i = 0; i < 7; i++) cats.add(new Cat(i)); cats.add(new Dog(7)); for(int i = 0; i < cats.size(); i++) ((Cat)cats.get(i)).id(); } } 13. Escreva uma classe ContadorDePalavras baseada na classe ListaDePalavras abaixo que, além de armazenar palavras, armazene também quantas vezes uma palavra foi armazenada. Escreva méto- dos para essa classe que recuperem o número de vezes que uma palavra foi armazenada ou zero se ela não tiver sido armazenada. import java.util.*; public class ListaDePalavras { private Set lista; public ListaDePalavras() { lista = new TreeSet(); } public void adiciona(String palavras) { StringTokenizer st = new StringTokenizer(palavras); while(st.hasMoreTokens()) lista.add(st.nextToken()); } public boolean existe(String palavra) { return lista.contains(palavra); } } 3