\documentclass{beamer}

\usepackage{graphicx}

\mode<presentation>

\usepackage[portuguese]{babel}
\usepackage{pifont}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage{algorithmic}

\title{Pilhas Gen\'{e}ricas}
\author{Fernando Magno Quint\~{a}o Pereira}
\date{\today}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section{Level 1}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Exerc\'{i}cio 1}
Implemente uma class \texttt{Stack}, que receba elementos gen\'{e}ricos.
Esta classe deve prover os seguintes m\'{e}todos:
\begin{itemize}
\item \texttt{Stack(int capacity)}: construtor que cria uma pilha com a
capacidade especificada.
\item \texttt{pop()}: remove o elemento do topo.
\item \texttt{push(element)}: insere um elemento no topo.
\item \texttt{boolean empty()}: retorna verdade se a pilha estiver vazia.
\end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Exerc\'{i}cio 1}
Sua classe deve passar o seguinte teste:
\begin{center}
\includegraphics[width=\linewidth]{images/Stack_1}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Exerc\'{i}cio 2}
Agora, adicione um m\'{e}todo \texttt{reduce} \`{a} sua pilha.
Este m\'{e}todo recebe dois par\^{a}metros:
\begin{itemize}
\item Uma semente, de um tipo gen\'{e}rico \texttt{T}.
\item Um {\em combinator} de um tipo gen\'{e}rico \texttt{<T, E>}
\end{itemize}
O combinador implementa a interface \texttt{Combinator}, mostrada abaixo:
\begin{center}
\includegraphics[scale=0.75]{images/Stack_2}
\end{center}
O nosso m\'{e}todo \texttt{reduce} ent\~{a}o aplica o combinador sobre a semente
e o topo da pilha, cada vez obtendo uma nova semente, que \'{e} ent\~{a}o usada
na pr\'{o}xima aplica\c{c}\~{a}o.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Exerc\'{i}cio 3}
Implemente um combinador para concatenar as {\em strings} em uma pilha de
{\em strings}.
Voc\^{e} dever\'{a} passar o seguinte teste:
\begin{center}
\includegraphics[scale=0.8]{images/Stack_3}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Exerc\'{i}cio 3}
Implemente um combinador para contar o n\'{u}mero de caracteres armazenados em
uma pilha de {\em strings}.
Voc\^{e} dever\'{a} passar o seguinte teste:
\begin{center}
\includegraphics[scale=0.8]{images/Stack_4}
\end{center}
\end{frame}


\end{document}
