\documentstyle[11pt]{article}

\setlength{\textwidth}     {15.0cm}
\setlength{\textheight}    {21.0cm}
\setlength{\evensidemargin}{ 0.5cm}
\setlength{\oddsidemargin} { 0.5cm}
\setlength{\topmargin}     {-0.5cm}
\setlength{\baselineskip}  { 0.7cm}

\setlength{\parskip}{0.3cm}

\begin{document}

\begin{center}

{\bf \large MAC 110 -- Introdu\c{c}\~ao � Computa\c{c}\~ao} 

Primeiro Exerc\'{\i}cio--Programa

{\bf \large O Caixa Eletr\^onico}

\end{center}

O dono de um banco em Bora--Bora\footnote{Se voc\^e n\~ao sabe onde
  \'e Bora--Bora, n\~ao sabe o que est\'a perdendo...} deseja instalar
caixas eletr\^onicos nas magn\'{\i}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\'umero de notas necess\'arias
para efetuar os saques.

Todas as manh\~as 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\'umero poss\'{\i}vel de notas. Por exemplo, para um saque de
350 ducas o caixa deve entregar, se dispon\'{\i}veis, 3 notas de 100 e
1 nota de 50 (ao inv\'es de outras eventuais possibilidades como 6
notas de 50 e 10 de 5). Para que o caixa eletr\^onico processe
dep\'ositos \'e necess\'ario que o usu\'ario forne\c{c}a a quantidade
de notas de cada tipo que est\'a fornecendo.

Fa\c{c}a um programa em C que simule um dia de funcionamento do caixa:
\begin{itemize}
\item[(i)] l\^e a quantidade inicial de notas de 100, 50, 10, 5 e 1
  ducas.
\item[(ii)] l\^e um n\'umero inteiro $n \ge 1$ de opera\c{c}\~oes a
  serem realizadas. Para cada opera\c{c}\~ao \'e dado o c\'odigo da
  opera\c{c}\~ao (0=saque, 1=dep\'osito). Tratando-se de saque \'e
  fornecido o valor do saque; para dep\'ositos \'e fornecido o
  n\'umero de notas de 100, 50, 10, 5 e 1 depositadas.
\item[(iii)] imprime, para cada saque, se esse foi efetuado ou n\~ao.
\item[(iv)] imprime, ap\'os cada opera\c{c}\~ao, a quantidade de notas
  de cada valor dispon\'{\i}veis no caixa.
\end{itemize}

\newpage

Observe o exemplo: 

Dados:
\[ 
\begin{array}{rrrrrrl}
7 & 2 & 1 & 1 & 5 & & \mbox{quantidade inicial de notas}\\
7 &   &   &   &   & & \mbox{n\'umero de opera\c{c}\~oes}\\
0 & 370&  &   &   & & \mbox{saque de 370 ducas}\\
0 & 29&   &   &   & & \mbox{saque de 29 ducas} \\
1 & 0 & 0 & 1 & 5 & 2& \mbox{dep\'osito de 37 ducas}\\
0 & 800 & &   &   &  & \mbox{saque de 800 ducas}\\
0 & 78 &  &   &   &  & \mbox{saque de 78 ducas}\\
1 & 0 & 0 & 4 & 1 & 5& \mbox{dep\'osito de 50 ducas}\\
0 & 78 &  &  &   &   & \mbox{saque de 78 ducas} 
\end{array} 
\]

Obter\'{\i}amos a seguinte sa\'{\i}da: 

\begin{tabular}{|l|r|r|r|r|r||r|}
\hline
        & D\$ 100 & D\$ 50 & D\$ 10 & D\$ 5 & D\$ 1 & Total \\
\hline
Inicial &       7 &      2 &      1 & 1     &     5 & 820 \\
\hline
\multicolumn{7}{|l|}{Saque de 370 ducas efetuado} \\
\hline
Situa\c{c}\~ao atual &4 &      1 &      0 & 0     &     0 & 450 \\
\hline
\multicolumn{7}{|l|}{N\~ao h\'a notas suficientes para o saque de 29 ducas!!} \\ 
\hline
Situa\c{c}\~ao atual &4 &      1 &      0 & 0     &     0 & 450 \\
\hline
\multicolumn{7}{|l|}{Dep\'osito de 37 ducas} \\
\hline
Situa\c{c}\~ao atual &4 &      1 &      1 & 5     &     2 & 487 \\
\hline
\multicolumn{7}{|l|}{N\~ao h\'a dinheiro suficiente para o saque de 800 ducas!!} \\
\hline
Situa\c{c}\~ao atual &4 &      1 &      1 & 5     &     2 & 487 \\
\hline
\multicolumn{7}{|l|}{N\~ao h\'a notas suficientes para o saque de 78 ducas} \\
\hline
Situa\c{c}\~ao atual &4 &      1 &      1 & 5     &     2 & 487 \\
\hline
\multicolumn{7}{|l|}{Dep\'osito de 50 ducas} \\
\hline
Situa\c{c}\~ao atual &4 &      1 &      5 & 6     &     7 & 537 \\
\hline
\multicolumn{7}{|l|}{Saque de 78 ducas efetuado} \\
\hline
Situa\c{c}\~ao atual &4 &      0 &      3 & 5     &     4 & 459 \\
\hline
\end{tabular}

Processe seu programa usando v\'arios dados como os do exemplo acima.
Certifique-se de que seu programa funciona bem mesmo nos casos em que n\~ao
h\'a notas ou dinheiro suficientes. Infelizmente n\~ao ser\'a poss\'{\i}vel
custear viagens a Bora--Bora para fazer a manuten\c{c}\~ao do programa. Por
isso, \'e necess\'ario que seu programa seja f\'acil de usar (ou seja, o
cliente n\~ao pode ter d\'uvidas sobre o que fazer quando estiver no caixa
autom\'atico) e bem comentado para o caso de que alguma altera\c{c}\~ao seja
necess\'aria (por exemplo, \'e poss\'{\i}vel que novas notas sejam impressas em
Bora--Bora devido � volta da infla\c{c}\~ao).

\end{document}
