Um dos problemas no Paradigma Não-Estruturado é que podemos ir de qualquer parte do algoritmo para outra, dificultado o seu entendimento. Para resolver isso, no Paradigma Estruturado são impostas algumas restrições em como o fluxo do algoritmo pode seguir. Essas restrições dão origem às seguintes estruturas:
- Sequenciais: são as operações elementares que o computador pode realizar em seu nível básico como operações aritméticas, de atribuição, etc. Nesse caso, também levamos em consideração as operações de entrada e saída de dados.
- De decisão: são as estruturas que permitem o computador desviar, de forma condicional, o fluxo a ser seguido. As mais conhecidas são: “se-então”, “se-então-senão” e “escolha-caso”.
- De repetição: como o próprio nome diz, são as estruturas que permitem o algoritmo a repetir um conjunto de comandos. Também são chamados de loops ou laços. As mais conhecidas são: “enquanto”, “para”, “faça-enquanto” e “repita-até”.
Em princípio, são nas estruturas de repetição que vemos as restrições acontecendo de fato, pois não podemos “voltar” para qualquer parte do algoritmo de qualquer forma. Por exemplo: na estrutura de repetição “enquanto”, o fluxo sempre volta para o comando de decisão, conforme podemos ver na figura abaixo:
Uma outra característica das estruturas é que elas criam uma espécie de template ou modelo que podem ser utilizados como se fossem diferentes peças de Lego a serem encaixadas umas nas outras para formar o algoritmo final completo. Por exemplo: a estrutura “escolha-caso” é, na verdade, um conjunto de decisões cujas condições são sempre verificadas em relação a uma mesma variável. A figura abaixo mostra em exemplo disso:
No programa fictício abaixo, é mostrada a mesma situação do fluxograma da imagem anterior, usando a estrutura “escolha-caso”:
[code language=”csharp”]
switch (v)
{
case v1:
/* … */
break;
case v2:
/* … */
break;
case vn:
/* … */
break;
default:
/* … */
break;
}
[/code]
No post Comandos Portugol vs Fluxograma podemos ver uma tabela em que mostro um paralelo entre os comandos do Portugol e a respectiva estrutura feita em fluxograma.
Tendo em vista as restrições impostas pelo Paradigma Estruturado, podemos perceber que, ao desenvolver um algoritmo com as estruturas criadas por essas restrições, ganhamos em:
- Expressividade no momento de escrever os algoritmos.
- Clareza no entendimento dos mesmos.
No próximo post iremos ver o que são abstrações e encapsulamento e como eles se relacionam com os paradigmas de programação.