\documentclass{beamer}

\usepackage{pifont}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage{algorithmic}

\begin{document}

\title{Princ\'{i}pios do Projeto de Classes}

\author{Fernando Magno Quint\~{a}o Pereira}

\maketitle


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 1}
A companhia \textit{Toy Inc.} agora gostaria de automatizar a impress\~{a}o
de pedidos de compra de produtos.
Os pedidos s\~{a}o fornecidos via um teclado, e s\~{a}o enviados diretamente
para a impressora.
Nesta quest\~{a}o, pede-se que seja criado um sistema que coordene a leitura
de caracteres do teclado e seu subsequente envio \`{a} impressora.
Pode-se assumir que o \'{u}ltimo caracter fornecido ao sistema ser\'{a}
o caracter de final de arquivo \texttt{EOF}.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 2}
Os diretores de \textit{Toy Inc.} ficaram t\~{a}o satisfeitos com o projeto
do controlador de impressora que agora eles querem outros sistemas
similares.
\begin{enumerate}
\item Inicialmente pede-se um sistema que, em vez de enviar caracteres para a
impressora, os envie para a tela do computador.
\item Agora, os diretores querem que este sistema seja capaz de ler tamb\'{e}m
informa\c{c}\~{o}es de arquivos. Estas informa\c{c}\~{o}es podem ser tanto
renderizadas na tela do computador ou enviadas para impress\~{a}o.
\end{enumerate}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 3}
Os diretores de \textit{Toy Inc.} est\~{a}o preocupados com a seguran\c{c}a
da companhia, e decidiram encomendar um sistema de \textit{software} que
gerencie o controle das portas.
Cada porta possui tr\^{e}s m\'{e}todos: \texttt{lock}, \texttt{unlock} e
\texttt{isOpen}. Caso a porta permane\c{c}a aberta por um certo tempo,
ent\~{a}o um alarme ir\'{a} soar.
Este alarme dever\'{a} notificar diferentes objetos clientes. Cada cliente
deve registrar-se junto \`{a} porta, para esperar por eventos.
A porta possui, ent\~{a}o, um m\'{e}todo \texttt{register(TimerClient)}.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 4}
Uma vez mais, os diretores de \textit{Toy Inc.} ficaram extremamente
satisfeitos com o sistema de seguran\c{c}a.
Eles mais se impressionaram com o servi\c{c}o de notifica\c{c}\~{a}o de
eventos, e gostariam agora de portar este servi\c{c}o para a linha de
montagem de brinquedos.
Cada brinquedo possui agora um m\'{e}todo \texttt{register(TimerClient)},
o qual \'{e} acionado quando o brinquedo fica pronto para ser retirado da
linha de montagem.
Como reutilizar o c\'{o}digo da quest\~{a}o anterior para implementar esta
funcionalidade?
\end{frame}

\end{document}
