Exercícios
Paulo Borba e Adeline de Sousa
Centro de Informática
Universidade Federal de Pernambuco
1.
Implemente uma classe equivalente à RepositorioContasArray
usando a classe Vector ou a classe Hashtable (ambas do pacote java.util).
2.
Defina e implemente em Java tipos (classes, classes abstratas, ou interfaces) representando cada um dos conceitos abaixo:
-
ExpressaoAritmetica, como "2 + (3 - 5)" ou "3 - 5", podendo ser impressa e avaliada, dando como resultados, respectivamente, uma string e um numero inteiro;
-
Numero, qualquer ExpressaoAritmetica atomica, como 3 ou 5;
-
ExpressaoUnaria, qualquer ExpressaoAritmetica com um operador e um operando, como "- 5", "- (2 + 3)", "-(3+5)" ou sqr(5), onde sqr(x) denota o quadrado de x;
-
ExpressaoBinaria, qualquer ExpressaoAritmetica com um operador e dois operandos, como " 3 - 5", " 3 - (1 - 5)", ou "3 + 5";
-
ExpressaoQuadrado, qualquer ExpressaoUnaria formada com o operador sqr, como sqr(5);
- ExpressaoSoma, qualquer ExpressaoAritmetica formada com o operador +, como "3 + 5".
3. Defina em Java uma classe FilaDeExpressoesAritmeticas contendo um construtor e os seguintes métodos:
-
inserir, insere na fila uma dada expressão aritmética
-
estahVazia, indica se a fila está vazia ou não;
-
remover, que remove o elemento que foi inserido há mais tempo na fila;
-
somar, que dá como resultado o somatório dos valores das avaliações de todas as expressões .
Implemente a fila utilizando arrays.
4. Defina um método main, no qual você irá criar 5 expressões , então você deve inserí-las na fila e em seguida chamar o método somar. Imprima os valores inseridos na fila e a soma das expressões.
Considere a seguinte classe de contas bancárias em Java:
class Conta {
private double saldo;
private long numero;
void creditar(double val){this.saldo = this.saldo + val;}
void debitar(double val) {this.saldo = this.saldo - val;}
}
5. Defina a classe EntradaExtrato, a qual contém uma data, um valor e o código da operação realizada (debitar, creditar ou transferir).
6. Defina a classe Extrato, que contém uma lista de EntradaExtrato e deve ser implementada utilizando alguma classe que implemente a interface java.util.List. A classe Extrato deve conter um método getIterator(). Este método retorna um objeto do tipo java.util.Iterator, o qual permite a navegação dentro de uma estrutura. A interface java.util.Iterator é mostrada a seguir:
public interface Iterator {
public boolean hasNext();
public Object next();
public void remove();
}
7. Defina a classe ContaExtrato, que mantém um histórico das operações realizadas, que se pode obter um extrato. A nova classe ContaExtrato deve conter todas as operações de conta mais os métodos transferir e getExtrato(). Se possível, defina ContaExtrato a partir de Conta.
8. Defina um método main, para a classe ContaExtrato,
no qual você deve criar um objeto da classe ContaExtrato, realizar várias operações de crédito, débito e de transferência. Em seguida, você deve obter um extrato e então imprimir na tela as transações do extrato na ordem em que foram
realizadas.