Procedimentos

Veja o que são procedimentos e como utilizar eles em seus algoritmos para deixar tudo mais simples.

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

Deixe um comentário 0

Your email address will not be published.


Compartilhe

[amount] estão lendo esse conteúdo agora.