Lista IV de Programação Orientada a Objetos

949 visualizações

Publicada em

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
949
No SlideShare
0
A partir de incorporações
0
Número de incorporações
57
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Lista IV de Programação Orientada a Objetos

  1. 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. 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. 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

×