public double calcula(Conta conta)
 {
     if (random.Next(2) == 0)
         return conta.Saldo * 0.025;
     else
         return conta.Saldo * 0.007;
 }
 public double calcula(Conta conta)
 {
     int chute = random.Next(10);
     if (chute >= 0 && chute <= 1) return conta.Saldo * 0.5;
     else if (chute >= 2 && chute <= 4) return conta.Saldo * 0.3;
     else return conta.Saldo * 0.006;
 }
        public void CalculaICCC()
        {
            Conta conta = new Conta();
            conta.Deposita(500);

            Investimento arrojado = new Conservador();
            RealizadorDeInvestimentos realizadorDeInvestimentos = new RealizadorDeInvestimentos();
            realizadorDeInvestimentos.Realiza(conta,arrojado);
        }
 public void Responde(Requisicao req, Conta conta)
 {
     if (req.Formato == Formato.CSV)
     {
         Console.WriteLine(conta.Titular + ";" + conta.Saldo);
     }
     else
     {
         OutraReposta.Responde(req, conta);
     }
 }
 public void Responde(Requisicao req, Conta conta)
 {
     if (req.Formato == Formato.XML)
     {
         Console.WriteLine("<conta><titular>" + conta.Titular + "</titular><saldo>" + conta.Saldo + "</saldo></conta>");
     }
     else
     {
         OutraReposta.Responde(req, conta);
     }
 }
 public void Responde(Requisicao req, Conta conta)
 {
     if (req.Formato == Formato.PORCENTO)
     {
         Console.WriteLine(conta.Titular + "%" + conta.Saldo);
     }
     else if (OutraReposta != null)
     {
         OutraReposta.Responde(req, conta);
     }
     else
     {
         // não existe próxima na corrente, e ninguém atendeu a requisição!
         // poderíamos não ter feito nada aqui, caso não fosse necessário!
         throw new Exception("Formato de resposta não encontrado");
     }
 }
 public void Realiza(Conta conta, Investimento investimento)
 {
     double resultado = investimento.Calcula(conta);
     conta.Deposita(resultado * 0.75);
     Console.WriteLine("Novo saldo: " + conta.Saldo);
 }
 public void Deposita(Conta conta, double valor)
 {
     conta.Saldo += valor * 0.95;
     if (conta.Saldo > 0) conta.Estado = new Positivo();
 }
 public void Saca(Conta conta, double valor)
 {
     throw new Exception("Sua conta está no vermelho. Não é possível sacar!");
 }