<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package aulas.aula17;

import aulas.aula11.banco.Conta;
import aulas.aula17.bancoar.Arvore;

class Banco implements QQBanco {
  private int		indice = 0;
  private Conta[]	contas;

  public void cadastro(Conta c) {
    contas[indice] = c;
    indice = indice + 1;
  }  

  protected Conta procura(long num) {
// Variáveis locais ao método.
    int		i = 0;
    boolean	achou = false;
    
    while ((! achou) &amp; (i &lt; indice)) {
      if (contas[i].num_conta() == num) achou = true;
      else i = i + 1;
    }
    if (achou == true) return contas[i];
    else return null;
// return tem que ser a ultima instrucao!
  }

  public void print_saldo(long num) {
    Conta	c;

    c = procura(num); 
    if (c == null) System.out.println("A conta " + num + " nao existe!");
    else c.print_saldo();
  }

  public void debito(long num, double val) {
    Conta	c;

    c = this.procura(num); 
    if (c == null) System.out.println("A conta " + num + " nao existe!");
    else c.debito(val);    
  }

  public void transfere(long num_de, long num_para, double val) {
    Conta	c_de, c_para;

    c_de = this.procura(num_de);
    c_para = this.procura(num_para); 
    if ((c_de == null) | (c_para == null)) System.out.println("Um das contas não existe!");
    else {c_de.debito(val);
          c_para.credito(val);
         }
  }

  public Banco () {
    contas = new Conta[50];
    indice = 0;
  }

  public double saldo_total() {
    int 	i;
    double	st;
 
    st = 0;
    for (i = 0; i &lt; indice; i = i + 1) { 
      st = st + contas[i].saldo_conta();
    }
    return st;
  }

  public int num_clientes() {
    return indice;
  }
}

// ----------------------------------------------------------

class BancoAr implements QQBanco {
  private Arvore	contas = new Arvore();

  public void cadastro(Conta c) {
    if (c.saldo_conta() &gt; 100)
      contas.insere(c);
    else System.out.println("Saldo insuficiente!");
/* 
   Conta so e cadastrada se nao existe uma com 
   mesmo numero e o saldo e maior que 100 reais.
*/
  }  

  public void debito(long num, double val) {
    Conta	c;

    c = contas.busca(num); 
    if (c == null) System.out.println("A conta " + num + " nao existe!");
    else c.debito(val);    
  }

  public double saldo_total() { 
    return contas.soma();
  }

  public int num_clientes() {
    return contas.num_elementos();
  }
}

</pre></body></html>