A maior rede de estudos do Brasil

Algoritmo do Caixa Eletrônico

Você foi contratado como programador por um banco para desenvolver a lógica computacional dos caixas eletrônicos desse banco.

O cliente do banco, ao chegar num caixa eletrônico, informa o valor em reais (R$) que deseja sacar. Os caixas eletrônicos do banco possuem cédulas de R$ 2, R$ 5, R$ 10, R$ 20, R$ 50 e R$ 100 reais. Após o cliente digitar o valor que deseja sacar, o caixa eletrônico deve informar (mostrar na tela) a quantidade de cédulas de R$ 2, R$ 5, R$ 10, R$ 20, R$ 50 e/ou R$ 100 reais que devem ser fornecidas para o cliente. Importante: o caixa eletrônico sempre deverá fornecer para o cliente a menor quantidade de cédulas possíveis.

Caso o cliente informe um valor impossível de ser fornecido, como por exemplo R$ 101 reais, o caixa eletrônico deve apresentar a seguinte mensagem: "O valor solicitado deve ser múltiplo de R$ 2, R$ 5, R$ 10, R$ 20, R$ 50 ou R$ 100 reais!".

Crie um script em Ruby que implemente a lógica do caixa eletrônico e que permita que ela possa ser executada várias vezes, ou seja, permita que vários clientes realizem saques. O script deve parar de permitir saques quando um cliente digitar o valor 0 (zero). A solução desse problema não precisa utilizar, necessariamente, hashes ou arrays.


2 resposta(s)

User badge image

Wandelson Almeida

Há mais de um mês

Inicio 
    Inteiro valor=1, n50=0, n10=0, n5=0, n1=0;
    Escreva ("Digite o valor a ser sacado ou zero para encerrar:");
    Leia ("%d", &valor);
    se (valor>1000)
    Escreva ("Valor Inválido");
    senão 
       Faça
          Início
            se (valor>=50)
                n50++
                valor-=50
          Fim
             senão
          Início
            se (valor>=10)
                n10++
                valor-=10
          Fim
             senão
          Início
            se (valor>=5)
                n5++
                valor-=5
          Fim
             senão
          Início
            se (valor>=1)
                n1++
                valor-=1
          Fim
            Enquanto (valor>0)
            Escreva ("Total de notas: %d, %d, %d, %d, n50, n10, n5, n1");
Fim


Inicio 
    Inteiro valor=1, n50=0, n10=0, n5=0, n1=0;
    Escreva ("Digite o valor a ser sacado ou zero para encerrar:");
    Leia ("%d", &valor);
    se (valor>1000)
    Escreva ("Valor Inválido");
    senão 
       Faça
          Início
            se (valor>=50)
                n50++
                valor-=50
          Fim
             senão
          Início
            se (valor>=10)
                n10++
                valor-=10
          Fim
             senão
          Início
            se (valor>=5)
                n5++
                valor-=5
          Fim
             senão
          Início
            se (valor>=1)
                n1++
                valor-=1
          Fim
            Enquanto (valor>0)
            Escreva ("Total de notas: %d, %d, %d, %d, n50, n10, n5, n1");
Fim


Essa pergunta já foi respondida por um dos nossos estudantes