• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this document? Why not share!

Lista IV de Programação Orientada a Objetos

on

  • 997 views

 

Statistics

Views

Total Views
997
Views on SlideShare
942
Embed Views
55

Actions

Likes
0
Downloads
22
Comments
0

2 Embeds 55

http://unifesp.tk 54
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Lista IV de Programação Orientada a Objetos Lista IV de Programação Orientada a Objetos Document Transcript

    • UNIVERSIDADE FEDERAL DE SÃO PAULO CAMPUS SÃO JOSÉ DOS CAMPOS DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA (DCT) P ROGRAMAÇÃO O RIENTADA A O BJETOS 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 i t e m da l i s t a private No prox; / / P o n t e i r o p a r a o p r ó x i m o } 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 i t e m na á r v o r e . NoDeArvore esquerda; / / P o n t . sub−á r v o r e e s q u e r d a . NoDeArvore direita; / / P o n t . sub−á r v o r e 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