next up previous
Next: About this document ...

MAC 110 - Introdução à Computação

Primeiro Exercício-Programa

O Caixa Eletrônico

O dono de um banco em Bora-Bora1 deseja instalar caixas eletrônicos nas magníficas praias da ilha, permitindo a seus correntistas sacar e depositar dinheiro confortavelmente durante os momentos de lazer.

Conhecendo a fama internacional dos alunos do BCC, ele resolveu contratar os alunos de MAC 110 para fazer um programa que mantivesse a contabilidade do caixa e controlasse o número de notas necessárias para efetuar os saques.

Todas as manhãs a central fornece aos caixas notas de 100, 50, 10, 5 e 1 ducas. Todos os saques devem ser processados de maneira a utilizar o menor número possível de notas. Por exemplo, para um saque de 350 ducas o caixa deve entregar, se disponíveis, 3 notas de 100 e 1 nota de 50 (ao invés de outras eventuais possibilidades como 6 notas de 50 e 10 de 5). Para que o caixa eletrônico processe depósitos é necessário que o usuário forneça a quantidade de notas de cada tipo que está fornecendo.

Faça um programa em C que simule um dia de funcionamento do caixa:

(i)
lê a quantidade inicial de notas de 100, 50, 10, 5 e 1 ducas.
(ii)
lê um número inteiro $n \ge 1$ de operações a serem realizadas. Para cada operação é dado o código da operação (0=saque, 1=depósito). Tratando-se de saque é fornecido o valor do saque; para depósitos é fornecido o número de notas de 100, 50, 10, 5 e 1 depositadas.
(iii)
imprime, para cada saque, se esse foi efetuado ou não.
(iv)
imprime, após cada operação, a quantidade de notas de cada valor disponíveis no caixa.

Observe o exemplo:

Dados:

\begin{displaymath}
\begin{array}{rrrrrrl}
7 & 2 & 1 & 1 & 5 & & \mbox{quantidad...
...as}\\
0 & 78 & & & & & \mbox{saque de 78 ducas}
\end{array}
\end{displaymath}

Obteríamos a seguinte saída:

  D$ 100 D$ 50 D$ 10 D$ 5 D$ 1 Total
Inicial 7 2 1 1 5 820
Saque de 370 ducas efetuado
Situação atual 4 1 0 0 0 450
Não há notas suficientes para o saque de 29 ducas!!
Situação atual 4 1 0 0 0 450
Depósito de 37 ducas
Situação atual 4 1 1 5 2 487
Não há dinheiro suficiente para o saque de 800 ducas!!
Situação atual 4 1 1 5 2 487
Não há notas suficientes para o saque de 78 ducas
Situação atual 4 1 1 5 2 487
Depósito de 50 ducas
Situação atual 4 1 5 6 7 537
Saque de 78 ducas efetuado
Situação atual 4 0 3 5 4 459

Processe seu programa usando vários dados como os do exemplo acima. Certifique-se de que seu programa funciona bem mesmo nos casos em que não há notas ou dinheiro suficientes. Infelizmente não será possível custear viagens a Bora-Bora para fazer a manutenção do programa. Por isso, é necessário que seu programa seja fácil de usar (ou seja, o cliente não pode ter dúvidas sobre o que fazer quando estiver no caixa automático) e bem comentado para o caso de que alguma alteração seja necessária (por exemplo, é possível que novas notas sejam impressas em Bora-Bora devido à volta da inflação).




next up previous
Next: About this document ...
Ernesto G. Birgin 2002-09-02