|
|
Um algoritmo
pode ser definido como uma seqüência de passos finitos
descritos em uma ordem lógica que visam atingir um objetivo
bem definido.
Na medida
em que precisamos especificar uma seqüência de passos,
precisamos utilizar ordem, ou seja, pensar com ordem,
portanto, precisamos utilizar lógica.
Apesar do
nome pouco usual, algoritmos são comuns em nosso cotidiano,
como por exemplo, uma receita de bolo. Nela está descrita
uma série de ingredientes necessários e uma seqüência
de diversos passos (ações) que devem ser fielmente
cumpridos para que se consiga fazer o alimento desejado, conforme
se esperava, antes do início das atividades (objetivo bem
definido).
Quando elaboramos
um algoritmo devemos especificar ações claras e
precisas, que a partir de um estado inicial, após um período
de tempo finito, produzem um estado final previsível e
bem definido. Isto significa que o algoritmo fixa um padrão
de comportamento a ser seguido, uma norma de execução
a ser trilhada, com vistas a alcançar, como resultado final,
a solução de um problema, garantindo que sempre
que executado, sob as mesmas condições, produza
o mesmo resultado.
A importância
de se construir um algoritmo: conseguimos visualizar e testar
ainda no papel, a solução criada com lógica
de programação sem nos preocupar com detalhes computacionais
e uma vez concebida uma solução algorítmica
para um problema, esta pode ser traduzida facilmente para qualquer
linguagem de programação e ser agregada das funcionalidades
disponíveis nos diversos ambientes, ou seja, a codificação.
<<topo>>
Formas
de Representação de Algoritmos
Existem diversas
formas de representação de algoritmos, mas não
há um consenso com relação à melhor
forma delas.
O critério
usado para classificar hierarquicamente estas formas está
diretamente ligado ao nível de detalhe, inversamente ao
grau de abstração oferecido.
Algumas formas
de representação de algoritmos tratam os problemas
apenas em nível lógico, abstraindo-se de detalhes
de implementação muitas vezes relacionados com alguma
linguagem de programação específica. Por
outro lado, existem formas de representação de algoritmos
que possuem uma maior riqueza de detalhes e muitas vezes acabam
por obscurecer a idéia principal, o algoritmo, dificultando
seu entendimento.
Dentre as
formas de representação de algoritmo mais conhecidas,
destacam-se:
- ·A
descrição narrativa;
- O fluxograma
convencional;
- O pseudocódigo,
também conhecido como linguagem estruturada ou Portugol.
<<topo>>
Descrição
Narrativa
Nesta forma
de representação, os algoritmos são expressos
em linguagem natural.
Exemplo:
Receita de
um bolo
- Misture
os ingredientes;
- Unte a
forma com manteiga;
- Despeje
a mistura na forma;
- Se houver
côco ralado;
- Então
despeje sobre a mistura;
- Leve a
forma ao forno;
- Enquanto
não corar, deixe a forma no forno;
- Retire
do forno;
- Deixe esfriar.
<<topo>>
Fluxograma
Convencional
Fluxograma
é uma ferramenta usada e desenvolvida pelos profissionais
de análise de sistemas, bem como, por alguns profissionais
de Organização, Sistemas e Métodos. Tem como
finalidade descrever o fluxo, seja manual ou mecânico, especificando
os suportes usados para os dados e informações.
Usa símbolos convencionais, permitindo poucas variações.
Representado por alguns desenhos geométricos básicos,
os quais indicarão os símbolos de entrada de dados,
do processamento dedados e da saída de dados, acompanhados
dos procedimentos requeridos pelo analista de sistemas e a serem
realizados pelo programador por meio do desenvolvimento do raciocínio
lógico, o qual deverá solucionar o problema do programa
a ser processado pelo computador.

<<topo>>
Pseudocódigo
Como foi visto
até agora, o fluxograma convencional é a primeira
forma de notação gráfica, mas existe outra,
que é uma técnica narrativa denominada pseudocódigo,
também conhecida como português estruturado ou chamada
por alguns de portugol.
Esta técnica
de algoritmização é baseada em uma PDL
Program Design Language (Linguagem de Projeto de Programação).
Neste site, estamos apresentado-a em português. A forma
origina de escrita é conhecida como inglês estruturado,
muito parecida com a notação da linguagem PASCAL.
A PDL (neste caso, o pseudocódigo) é usada como
referência genérica para uma linguagem de projeto
de programação, tendo como finalidade mostrar uma
notação para elaboração de algoritmos,
os quais serão utilizados na definição, criação
e desenvolvimento de uma linguagem computacional (Clipper, C,
Pascal, Delphi, Visual-Objects) e sua documentação.
Abaixo é apresentado um exemplo deste tipo de algoritmo.
Programa
média
Var
Resultado: caractere
N1, n2, n3, n4: real
Soma, média: real
Início
Leia n1, n2, n3, n4
Soma <= n1 + n2 + n3 + n4
Média <= soma / 4
Se média >=7
Então
Imprima Aprovado
Senão
Imprima Reprovado
Fim Se
Fim
A diferença
entre uma linguagem de programação de alto nível
utilizada em computação e uma PDL é que esta
(seja escrita em português, inglês, ou qualquer outro
idioma) não pode ser compilada em um computador (por enquanto).
Porém, existem Processadores de PDL que possibilitam
traduzir essa linguagem numa representação gráfica
de projeto, fornecendo uma variedade de informações,
como: tabelas de referência cruzada, mapas de aninhamento,
índice operacional do projeto, entre tantas outras.
ATENÇÃO:
Lembramos que o fluxograma e o pseudocódigo são
as duas técnicas importantes para a documentação
da solução de um problema computacional.
<<topo>>
Simbologias
Básicas
Estes são
alguns dos símbolos mais conhecidos e utilizados ao longo
dos anos pelos profissionais de PD.
|
|
Terminal - símbolo utilizado como ponto
para indicar o início e/ou fim do fluxo de um programa. |
|
|
Seta de fluxo de dados - permite indicar o sentido
do fluxo de dados. Serve exclusivamente para conectar os símbolos
ou blocos existentes. |
|
|
Processamento - símbolo ou bloco que
se utiliza para indicar cálculos (algoritmos) a efetuar,
atribuições de valores ou qualquer manipulação
de dados que tenha um bloco específico para sua descrição |
|
|
Entrada de dados - utilizado para ler os dados
necessários ao programa. |
|
|
Saída de dados em impressora - é
utilizado quando se deseja que os dados sejam impressos. |
|
|
Decisão - indica a decisão que
deve ser tomada, indicando a possibilidade de desvios para
diversos outros pontos do fluxo, dependendo do resultado de
comparação e de acordo com situações
variáveis. |
|
|
Preparação - refere-se a um determinado
grupo de operações não incluídas
da diagramação. |
|
|
Conector - utilizado quando é preciso
particionar o diagrama. Quando ocorrer mais de uma partição,
é colocada uma letra ou número dentro do símbolo
de conexão para identificar os pares de ligação. |
|
|
Conector - específico para indicar conexão
do fluxo em outra página. |
<<topo>>
|