terça-feira, 17 de maio de 2011

Partes de Um Algoritmo

Partes de Um Algoritmo
Um algortimo quando programado num computador é constituído pelo menos das 3 partes, sendo elas:
  1. Entrada de dados;
  2. Processamento de dados;
  3. Saída de dados;



Figura 2.1: Partes básicas de um algoritmo.

Image entrada-proc-saida
Adicionar legenda

Na parte de entrada, são fornecidas as informações necessárias para que o algoritmo possa ser executado. Estas informações podem ser fornecidas no momento em que o programa está sendo executado ou podem estar embutidas dentro do mesmo.
Na parte do processamento são avaliadas todas as expressões algébricas, relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo (condição e/ou repetição).
Na parte de saída, todos os resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como: monitor, impressora, ou até mesmo a própria memória do computador.
Por exemplo, considere o algoritmo 3 que tem como objetivo calcular a área de uma circunferência dada por $ A=\pi R^2$ . Para calcular a área é necessário saber os valores do raio $ R$ e do $ \pi$ . Considerando que o valor de $ \pi$ é constante o mesmo poderá ser gravado (definido) dentro do próprio algoritmo, e a entrada para o processamento desse algoritmo consistirá nesse valor juntamente com o valor do raio $ R$ (que deve ser informado pelo usuário pelo teclado, por exemplo). O processamento do algoritmo será a realização do cálculo $ \pi R^2$ e a atribuição do resultado dessa expressão para a variável $ A$ . A parte da saída consistirá na escrita do valor de $ A$ no monitor.


\begin{algorithm}
% latex2html id marker 488\caption{Calcula Área de uma Circ...
...ametno}
\PRINT{$A$}      \COMMENT {saída}
\end{algorithmic}\end{algorithm}

Algoritmos

Conceito de Algortimo

Um algoritmo pode ser definido como uma sequência finita de passos (instruções) para resolver um determinado problema. Sempre que desenvolvemos um algoritmo estamos estabelecendo um padrão de comportamento que deverá ser seguido (uma norma de execução de ações) para alcançar o resultado de um problema.
Para o desenvolvimento de um algoritmo eficiente é necessário obedecermos algumas premissas básicas no momento de sua construção:

  • Definir ações simples e sem ambiguidade;
  • Organizar as ações de forma ordenada
  • Estabelecer as ações dentro de uma sequência finita de passos.
O algoritmo 1 é um exemplo simples de algoritmo (sem condições ou repetições) para troca de um pneu.

\begin{algorithm}
% latex2html id marker 438\caption{Troca de pneu do carro.}...
...com o macaco }
\STATE{guardar as ferramentas }
\end{algorithmic}\end{algorithm}
Os algoritmos são capazes de realizar tarefas como:
  1. Ler e escrever dados;
  2. Avaliar expressões algébricas, relacionais e lógicas;
  3. Tomar decisões com base nos resultados das expressões avaliadas;
  4. Repetir um conjunto de ações de acordo com uma condição;
No algoritmo 2 estão ilustradas as tarefas anteriormente mencionadas. Nas linhas de 2 a 4 pode-se observar a repetição de uma ação enquanto uma dada condição seja verdadeira, neste caso em específico, o algoritmo está repetindo a ação 'esperar ônibus' enquanto a condição 'ônibus não chega' permanecer verdadeira, assim que essa condição se tornar falsa (quando o ônibus chegar) o algoritmo deixará de repetir a ação 'esperar ônibus', e irá executar a linha 5.
Já nas linhas de 7 a 9, é possível observar um exemplo da execução (ou não execuão) de uma uma ação com base na avaliação de uma expressão. Nesse trecho, o algoritmo avalia se a expressão 'não tenho passagem' é verdadeira e em caso positivo, executa a acão 'pegar dinheiro'. Caso a expressão 'não tenho passagem' seja falsa (ou seja, a pessoa tem passagem) então o algoritmo irá ignorar a ação 'pegar dinheiro' e irá executar a linha 10.
Estas estruturas de controle serão estudadas em detalhe nos capítulos 6 e 7.

\begin{algorithm}
% latex2html id marker 458\caption{Pegar um onibus.}
\be...
...HILE
\par
\STATE{sentar}
\par
\STATE{$\ldots$}
\end{algorithmic}\end{algorithm}