3 formas de representação de um algoritmo

Objetivos:
Descrever em linhas gerais as 3 formas de representação de um algoritmo, apresentando as vantagens e as desvantagens da utilização de cada uma delas, bem como exemplos que facilitem a compreensão do leitor.
Recursos e materiais:
Nenhum
Última atualização:
13/04/2020
Aulas do capítulo:

Em nossa aula sobre “O que são algoritmos e porque eles são tão importantes”, vimos que os algoritmos são uma ferramenta poderosa, que agregam uma série de vantagens e facilitam nossa vida como programadores. Se você ainda não conhece muito bem o que são algoritmos e os benefícios em utilizá-los, acesse agora o nosso material e aprenda mais sobre eles. Hoje, conheceremos a descrição narrativa, os fluxogramas e os pseudocódigos, 3 formas de representação de um algoritmo. Cada uma delas possui suas próprias características e regras, que devem ser seguidas para facilitar a comunicação e garantir que todos os envolvidos no projeto compreendam a lógica do programa.

Descrição narrativa

O primeiro método de representação de um algoritmo, chamado de descrição narrativa, consiste em simplesmente especificar em palavras os passos que o programa deverá seguir. Para um problema em que desejamos calcular a média de 3 notas de provas e dizer se o aluno foi aprovado caso a média seja maior ou igual a 60 pontos, por exemplo, a solução utilizando a descrição narrativa poderia ser obtida ao informar que a média é calculada ao somarmos as notas das três provas e dividirmos o resultado por três.

Uma outra situação poderia ser também um problema em que desejamos calcular o fatorial de um número inteiro N qualquer. Neste caso, a solução deveria descrever que o fatorial de um número N é calculado através da equação abaixo, que nos diz para multiplicarmos todos os números inteiros compreendidos entre 1 e o valor de N. O fatorial de 4, por exemplo, é 4! = 1*2*3*4, que é igual a 24.

N! = \prod_{i=1}^{N} i = 1*2*3*...*N

Como precisamos de muito pouco treinamento especializado para elaborarmos uma descrição narrativa, essa forma de expressão parece fácil de ser realizada. Entretanto, nos dois exemplos que consideramos, a solução é bem simples e acaba não representando dificuldade considerável para ser elaborada. À medida em que a complexidade do problema aumenta, a linguagem natural se mostra longa, imprecisa e pouco confiável como veículo para transmitir informação. Isso faz da descrição narrativa uma linguagem pouco adequada para os algoritmos, lhe garantindo aplicações apenas em situações onde há necessidade de apresentarmos comentários ou esclarecimentos nas outras duas formas de representação.

Fluxogramas

O fluxograma é um método gráfico de representação, capaz de apresentar de forma clara e objetiva, os testes, decisões e ações que o programa elaborado deverá tomar durante sua execução. Por ser um método formal, os algoritmos desenvolvidos por meio desta técnica devem ser elaborados seguindo um padrão, onde o fluxo de processamento é indicado por setas e as operações por figuras geométricas, conforme ilustrado na Figura 1 abaixo.

Símbolos padrões utilizados para desenvolvimento de fluxogramas (Texera, Francine & Muniz, 2013)

Considerando os mesmos dois exemplos da descrição narrativa, para cálculo da média das notas de 3 provas e para cálculo do fatorial de um número inteiro N, podemos desenvolver fluxogramas parecidos com as Figuras 2 e 3 para apresentarmos a solução dos problemas.

Fluxograma para decidir se um aluno está aprovado ou não com base na média de 3 provas
Fluxograma indicando o cálculo de um número fatorial

Conforme podemos observar nesses exemplos, esses fluxogramas permitem um elevado nível de clareza em relação a sequência das operações. Porém, considerando que para desenharmos um fluxograma é necessário conhecermos as convenções gráficas da Figura 1 que, apesar de serem simples, não estamos acostumados a elas, e por ser bastante trabalhoso realizarmos alterações ou correções em um fluxograma já desenvolvido, essa forma de representação gráfica também não costuma ser muito utilizada.

Pseudocódigo

Por fim, a descrição de algoritmos utilizando pseucocódigos consiste em representar textualmente os passos envolvidos na resolução do problema, seguindo um conjunto de regras que visam restringir e estruturar o uso do português. Essas regras evitam os problemas de ambiguidade presentes na descrição narrativa e fazem a compreensão da lógica de programação ser bem mais fácil. Além disso, por ser uma forma de representação que se aproxima bastante do código fonte de linguagens de programação reais, como C++, Pascal, Python, etc., os pseudocódigos são o método de desenvolvimento de algoritmos mais utilizado e que abordaremos com mais detalhes nas próximas aulas. De qualquer forma, os algoritmos via pseudocódigo para os mesmos dois exemplos analisados anteriormente, poderiam ser aqueles mostrados a seguir:

Problema da média de notas
1
inicio;
2
    real: n1, n2, n3, M;
3
    escreva (“Informe as suas notas”);
4
    leia (n1, n2, n3);
5
    M ← (n1 + n2 + n3)/3;
6
    leia (N);
7
    se (M >= 60) então
8
        escreva(“Você foi aprovado!”);
9
    senão
10
        escreva(“Você está reprovado!”);
11
    fimse;
12
fim.
Problema do fatorial
1
inicio;
2
    inteiro: N, Fat, Aux;
3
    Fat ← 1;
4
    Aux ← 1;
5
    escreva (“Insira o valor de N”);
6
    leia (N);
7
    Fat ← Fat*Aux;
8
    Aux ← Aux + 1;
9
    enquanto (Aux <= N) faça
10
        Fat ← Fat*Aux;
11
        Aux ← Aux + 1;
12
    fimenquanto;
13
fim.

Depois de conhecermos essas 3 formas de representação de um algoritmo, começaremos a dar nossos primeiros passos para aprendermos como escrever pseudocódigos. Ainda não é cadastrado em nosso blog? Então não perca tempo e acesse agora esse link para ficar por dentro dos próximos conteúdos! Estamos preparando muitas novidades para você ficar fera em Mecatrônica!

Referências bibliográficas

A. A. T. Maia, “Fundamentos da Computação – Algoritmos – Programação em Linguagem C”. Universidade Federal de Minas Gerais, 2013.
G. G. Texera, P. Francine & J. Muniz, “Fluxogramas, diagrama de blocos e de Chapin no desenvolvimento de algoritmos”. 2013. Online. [Acesso 26 Março 2018]

Deixe um comentário

%d blogueiros gostam disto: