Paradigma de Programação Estruturado
Links relacionados: Linguagens de Programação
Inspiração
- Livro "Principles of Program Design" de Michael A Jackson (1975).
Princípios
A programação estruturada tem como base o princípio de que qualquer programa de computador pode ser reduzido a apenas três estruturas:
- Sequência;
- Decisão;
- Iteração (ou laços/repetição).
Na prática, a programação estruturada foi transformada na programação modular.
A programação estruturada orienta os programadores na criação de estruturas simples de programas, com sub-rotinas e funções
Por mais que hoje haja uma grande predominância hoje da programação orientada a objetos, a programação estruturada a programação estruturada ainda tem muita influência, uma vez que grande parte das pessoas aprendem inicialmente a essa estrutura> Isso por ser mais apropriada para resolver problemas mais simples. Em tempo, as estruturas de sequência, decisão e iteração ainda são utilizadas para programar os métodos na programação orientada a objetos.
Ainda, muitas linguagens atuais, por mais que possuam suporte a programação orientada a objetos, ainda permitem a utilização do paradigma estruturado.
Exemplo
Exemplo de um programa estruturado (fatorial.c):
1#include <stdio.h>
2#include <stdlib.h>
3
4int main(int argc, char* argv[])
5{
6 int fat, n;
7 n = atoi(argv[1]);
8 if (n >= 1)
9 {
10 for (fat = 1; n > 1; n--)
11 {
12 fat = fat * n;
13 }
14 }
15 printf("Fatorial(%s) = %d.\n", argv[1], fat);
16 return 0;
17}
Programação Modular
A programação modular surgiu no final da década de 60. Seu surgimento se deu devido a crise de softwares da época, gerando programas muito grandes, cheios de erros e de difícil manutenção.
O princípio da modularização de um programa seria dividir um programa em partes, para, juntamente com outras técnicas de programação, torná-los mais legíveis, confiáveis, flexíveis e de mais fácil manutenção.
Um grupo não muito grande de comandos, ou trecho de algoritmo, pode ser classificado como um módulo. É necessário que esse bloco tenha uma função bem definida e o mais independente possível do resto do programa.
As ferramentas mais comuns de modularização são a sub-rotina e a função. A diferença entre elas é que função retorna um valor e a sub-rotina não.
Segue abaixo mesmo programa do exemplo anterior, separado agora com uma função:
1#include <stdio.h>
2#include <stdlib.h>
3
4int fatorial(int in)
5{
6 int fat, n = in;
7 if (n >= 1)
8 {
9 for (fat = 1; n > 1; n--)
10 {
11 fat = fat * n;
12 }
13 }
14 return fat;
15}
16
17int main(int argc, char* argv[])
18{
19 int n = atoi(argv[1]);
20 printf("Fatorial(%d) = %d.\n", n, fatorial(n));
21 return 0;
22}