Paradigma de Programação Estruturado

De Aulas

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}