Modularização na Lógica de Programação

Vamos entender para que serve e como utilizar a modularização na criação de algoritmos

Por
3 min. de leitura

Fala, meus consagrados! Tudo beleza com vocês?

Vamos entender para que serve e como utilizar a modularização na criação de algoritmos.

Teoria

Modularização é a forma de dividir as tarefas ou algoritmos em módulos, também chamados subprogramas ou componentes.

Os módulos:

  • Cuidam de uma parte separada de um problema;
  • Realizam uma tarefa específica dentro duma solução do problema;
  • São unidades funcionais de um algoritmo;
  • São grupos de comandos com uma funcionalidade ou um objetivo bem definida; e
  • Devem ser o mais independentes possível das outras partes do algoritmo.

Como características fundamentais, temos:

  • Módulos: possuem um único ponto de entrada;
  • Chamador ou invocador: tem sua execução suspensa durante a execução do módulo chamado;
  • Controle de execução: retorna ao chamador quando a execução do módulo é finalizada.

As vantagens dos módulos são:

  • Reduzem o tamanho do algoritmo;
  • Melhoram a legibilidade do algoritmo;
  • Evitam a repetição de código;
  • Promove o reaproveitamento no mesmo programa ou em outros;
  • Facilitam a manutenção e a divisão de trabalho; e
  • Possibilitam a utilização de componentes prontos.

Podemos utilizar dois tipos de módulos:

  • Procedimentos são módulo que não produzem um valor de saída;
    • Exemplos:
      • Imprimir o maior elemento de um grupo elementos;
      • Ler um elemento;
  • Funções são módulos que produzem um valor de saída;
    • Exemplos:
      • Retornar o menor (ou maior) valor de um grupo de elementos;
      • Retornar um valor booleano caso um valor está dentro de um grupo de elementos.

Observação: em algumas linguagens de programação, como Pascal, exitem dois tipos: procedimentos, que não retornam valores, e funções, que retornam valores. Já em outras linguagens, como Linguagem C, todos os módulos são funções, que independente de retornarem ou não valores.

Exemplo de algortimo com um módulo em forma de função:

Algoritmo menorValor;
    var i, j: inteiro;
    função menorValor(m: inteiro, n: inteiro): inteiro
        var menor: inteiro;
        início da função
            menor := m;
            se (menor < n) então:
               menor := n;
            fim do se
            retorne(menor);
    fim da função
início do principal
    leia(i, j);
    escreva(“O menor valor é: ”, menorValor(i, j));
fim

Questões de concursos

[CESPE 2011 EBC – Analista – Engenharia de Software] Julgue os itens subsequentes, referentes aos módulos que constituem a técnica de modularização, utilizada para desenvolver algoritmos.

Um procedimento ou sub-rotina é um conjunto de instruções que realiza determinada tarefa. Um algoritmo de procedimento, como qualquer outro algoritmo, deve ser identificado e pode possuir variáveis, operações e até funções.

Comentários:

Questão totalmente correta. Um módulo (sendo ele procedimento ou função) é um conjunto de instruções que realiza determinada tarefa.

Um algoritmo de um módulo, como qualquer outro algoritmo, deve ser identificado e pode possuir variáveis, operações e até funções.

Gabarito: CERTO.

[Quadrix 2018 SEDF – Professor Substituto – Informática] No que se refere a procedimentos e funções, às estruturas de controle de fluxo nas linguagens de programação e à arquitetura J2EE, julgue o item que segue.

As funções podem ser utilizadas, em expressões, como se fossem variáveis.

Comentários:

Vamos pegar um exemplo de uma função chamada soma, que possui dois parâmetros.

No código principal do algoritmo, podemos ter:

var x, y: inteiro;
y := 10;
x := y;
x := soma(1, 2);

Notem que a varíavel x recebeu primeiro o valor da variável y. Depois, a variável x recebeu o retorno da função soma.

Gabarito: CERTO.

[CESPE 2008 SERPRO – Analista – Desenvolvimento de Sistemas] Com relação às linguagens, julgue os itens a seguir.

As linguagens procedurais, como Cobol, Algol e C, têm como característica serem modulares e permitirem a reutilização de um mesmo código repetidamente em outras partes do programa, sem, necessariamente, copiá-lo.

Comentários:

Essas linguagens são modulares, ou seja, podemos criar módulos com elas, porém, repetindo: em algumas linguagens de programação, como Pascal, exitem dois tipos: procedimentos, que não retornam valores, e funções, que retornam valores. Já em outras linguagens, como Linguagem C, todos os módulos são funções, que independente de retornarem ou não valores.

Gabarito: CERTO.

[ESAF 2008 Prefeitura de Natal/RN – Auditor do Tesouro Municipal – Tecnologia da Informação – Prova 2 – Adaptada] Analise as seguintes afirmações relacionadas a conceitos básicos sobre Programação:

[I] Um procedimento é um conjunto de comandos para uma tarefa específica referenciada por um nome no algoritmo principal, retornando um determinado valor no seu próprio nome.

Comentários:

Podemos utilizar dois tipos de módulos:

  • Procedimentos são módulo que não produzem um valor de saída;
    • Exemplos:
      • Imprimir o maior elemento de um grupo elementos;
      • Ler um elemento;
  • Funções são módulos que produzem um valor de saída;
    • Exemplos:
      • Retornar o menor (ou maior) valor de um grupo de elementos;
      • Retornar um valor booleano caso um valor está dentro de um grupo de elementos.

O texto do item I citou função e não procedimento.

Gabarito: ERRADO.

[ESAF 2008 Prefeitura de Natal/RN – Auditor do Tesouro Municipal – Tecnologia da Informação – Prova 2 – Adaptada] Analise as seguintes afirmações relacionadas a conceitos básicos sobre Programação:

[II] Podem-se inserir módulos em um algoritmo. Para isso, pode-se utilizar “Procedimentos” ou “Funções”. As ações das “Funções” e dos “Procedimentos” são hierarquicamente subordinadas a um módulo principal.

Comentários:

Examente. Temos a área da criação dos módulos e esses módulos serão subornidados ao módulo principal, como vimos em nosso exemplo na teoria.

Gabarito: CERTO.

[ESAF 2008 Prefeitura de Natal/RN – Auditor do Tesouro Municipal – Tecnologia da Informação – Prova 2 – Adaptada] Analise as seguintes afirmações relacionadas a conceitos básicos sobre Programação:

[III] Cada “Função” ou “Procedimento” pode utilizar constantes ou variáveis do módulo principal ou definir suas próprias constantes ou variáveis.

Comentários:

Sim. Podemos ter constantes e variáveis locais dentro dos módulos.

Gabarito: CERTO.

Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo

Por
3 min. de leitura