domingo, 13 de janeiro de 2013

Pseudo-código no LaTeX em Português

Para escrever pseudo-código no LaTeX em Português vamos fazer algumas configurações no pacote algpseudocode.

Carregue os pacotes
\usepackage{algpseudocode,algorithm}

Em seguida, digite
% Declaracoes em Português
\algrenewcommand\algorithmicend{\textbf{fim}}
\algrenewcommand\algorithmicdo{\textbf{faça}}
\algrenewcommand\algorithmicwhile{\textbf{enquanto}}
\algrenewcommand\algorithmicfor{\textbf{para}}
\algrenewcommand\algorithmicif{\textbf{se}}
\algrenewcommand\algorithmicthen{\textbf{então}}
\algrenewcommand\algorithmicelse{\textbf{senão}}
\algrenewcommand\algorithmicreturn{\textbf{devolve}}
\algrenewcommand\algorithmicfunction{\textbf{função}}

% Rearranja os finais de cada estrutura
\algrenewtext{EndWhile}{\algorithmicend\ \algorithmicwhile}
\algrenewtext{EndFor}{\algorithmicend\ \algorithmicfor}
\algrenewtext{EndIf}{\algorithmicend\ \algorithmicif}
\algrenewtext{EndFunction}{\algorithmicend\ \algorithmicfunction}

% O comando For, a seguir, retorna 'para #1 -- #2 até #3 faça'
\algnewcommand\algorithmicto{\textbf{até}}
\algrenewtext{For}[3]%
{\algorithmicfor\ #1 $\gets$ #2 \algorithmicto\ #3 \algorithmicdo}

Veja os exemplos:
\begin{algorithm}
\caption{Valor Absoluto}
\begin{algorithmic}[1]
\Function{Absoluto}{x}
  \If {$x < 0$}
    \State \Return $-x$
  \Else
    \State \Return $x$
  \EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\caption{Exemplo do \texttt{for}}
\begin{algorithmic}[1]
\For{i}{1}{n}
  \State {$A[i] \gets i + 1$} \Comment{Preenche o vetor}
\EndFor
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\caption{Exemplo do \texttt{while}}
\begin{algorithmic}[1]
  \While {$i \mei n$}
    \State $i \gets i + 1$
  \EndWhile
\end{algorithmic}
\end{algorithm}

Baixe pseudocodigo.zip
Mais informações em texdoc algpseudocode e Pseudocode.