Modularidade
Programas mas complexos exigem algoritmos mais complexos. É possível dividir um problema grande em problemas menores, esse processo é chamado de modularidade. Cada módulo ou parte menor tem um algoritmo mais simples, o que facilita chegar à solução.
O módulo é um bloco de programa que pode efetuar operações computacionais de entrada, processamento e saída. Dividindo um programa complexo em módulos, deixamos o programa mais simples.
A operação de um módulo em um programa de computador baseia-se na existência de três características operacionais:
- um único ponto de entrada;
- todo o restante do algoritmo é suspenso durante a execução da unidade de módulo, o que implica na execução de um único módulo por vez;
- quando a execução de um módulo é encerrado, o controle do fluxo de execução do programa volta para a primeira linha de instrução após a chamada do módulo na unidade mestre, quando se trata de um procedimento. No caso de uma função, o retorno ocorre exatamente na mesma linha de código que efetuou a chamada.
O que é um procedimento?
Um módulo de procedimento é uma sub-rotina, um bloco de programa com início e fim, identificado por um nome que referencia seu uso em qualquer parte do programa principal ou do programa chamador da sub-rotina.
Um procedimento é um bloco de programa, contendo início e fim e será identificado por um nome, através do qual será referenciado em qualquer parte do programa principal. (GUIMARÃES; LAGES, 1994).
Um procedimento é um subprograma dentro do programa principal, ele pode usar a variáveis do programa(variáveis globais) ou pode ter suas próprias variáveis (variáveis locais) pode ter todas as partes de um programa, até mesmo outro procedimento. Todo procedimento possui um nome que é usado para chamar ele dentro do programa, um mesmo procedimento pode ser chamado em locais diferentes do algoritmo.
Variáveis globais são declaradas no início do programa principal e podem ser usadas por qualquer sub-rotina subordinada (procedimento e função).
Variáveis locais são declaradas dentro de uma sub-rotina (procedimento e função) e só vale dentro da rotina em que é declarada.
procedimento <nome> [(parâmetros: tipos)] {cabeçalho}
var
[variáveis locais: tipos]
início
<instruções>
fim {<nome>}
As passagens de parâmetros podem ser por valor ou por referência. Quando é por valor as alterações ocorrem somente nas variáveis locais, já quando é por referência as variáveis locais recebem os novos valores. Por exemplo:
{passagem de parâmetro por valor}
procedimento SOMAR (A, B: inteiro)
var
R: inteiro
início
R ← A + B
escreva (“Resultado = ”, R)
fim
{passagem de parâmetro por referência}
procedimento SOMAR (A, B: inteiro; var R: inteiro)
AUX: inteiro
início
AUX ← A + B
R ← AUX
fim
Exercícios:
1º) Crie um algoritmo que efetue as quatro operações principais, adição, subtração, multiplicação e divisão usando procedimento para cada uma dessas operações.
Algoritmo Calculadora
Procedimento ROTSOMA
var
r1, a1, b1: real
inicio
escreva("Rotina de Adição")
escreva("Entre com o primeiro valor: ")
leia(a1)
escreva("Entre com o segundo valor: ")
leia(b1)
r1 <- a1 + b1
escreva("O resultado da operação é ". r1)
fim
Procedimento ROTSUBTRACAO
var
r1, a1, b1: real
inicio
escreva("Rotina de Subtração")
escreva("Entre com o primeiro valor: ")
leia(a1)
escreva("Entre com o segundo valor: ")
leia(b1)
r1 <- a1 - b1
escreva("O resultado da operação é ". r1)
fim
Procedimento ROTDIVISAO
var
r1, a1, b1: real
inicio
escreva("Rotina de Divisão")
escreva("Entre com o primeiro valor: ")
leia(a1)
escreva("Entre com o segundo valor: ")
leia(b1)
r1 <- a1 / b1
escreva("O resultado da operação é ". r1)
fim
Procedimento ROTMULTIPLICACAO
var
r1, a1, b1: real
inicio
escreva("Rotina de Multiplicação")
escreva("Entre com o primeiro valor: ")
leia(a1)
escreva("Entre com o segundo valor: ")
leia(b1)
r1 <- a1 * b1
escreva("O resultado da operação é ". r1)
fim
var
opcao: inteiro
início
opcao <- 0
enquanto (opcao <> 5) faça
início
escreva("[1] - Adição")
escreva("[2] - Subtração")
escreva("[3] - Multiplicação")
escreva("[4] - Divisão")
escreva("[5] - Fim de Programa")
escreva("Escolha uma opção: ")
leia(opcao)
se (opcao <> 5) então
início
caso (opcao)
início
seja 1 faça ROTSOMA
seja 2 faça ROTSUBTRACAO
seja 3 faça ROTMULTIPLICACAO
seja 4 faça ROTDIVISAO
fim
fim
senão
inicio
escreva("Opção inválida - Tente novamente ")
fim
fim
fim.
Referências:
Manzano, José Augusto N. G. Algoritmos : lógica para desenvolvimento de programação de computadores / José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. – 28. ed. – São Paulo : Érica, 2016.
Was this helpful?
0 / 0