Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIDADE II - ALGORITMO
h. Funções e Procedimentos
Elementos de Competência
➢
São sub-rotinas que executam tarefas específicas e podem
ser utilizadas dentro de um programa
➢
São constituídas por porções do código que ficam, de certa
maneira, isolados do programa principal
➢
Podem ser invocadas pelo programa principal sempre que for
necessária a execução das tarefas a que a função ou
procedimento se destina
➢
Ao ser invocada (chamada) uma sub-rotina pelo programa
principal, pode ser necessário o fornecimento de
determinados argumentos para a sua execução
Funções e Procedimentos
➢
As linguagens de programação, normalmente, possuem
funções e procedimentos pré-definidos
➢
Diferença entre procedimento e função:
✔
Uma função sempre retorna um valor, como resultado de
sua execução, ao programa que a invocou
✔
Um procedimento não provê qualquer tipo de retorno
➢
Algumas linguagens de programação tratam funções e
procedimentos como sub-rotinas diferentes, utilizando
palavras reservadas diferentes para definir cada tipo
➢
Em Python, o que diferencia uma função de um
procedimento é o fato da primeira retornar um valor e a
segunda não retorna qualquer valor
Vantagens da Utilização de
Sub-rotinas
➢
Permite a reutilização do código, o que possibilita:
✔
Aumento da produtividade
✔
Redução da quantidade de erros
✔
Redução do tamanho dos programas
✔
Maior facilidade de manutenção
➢
Redução da complexidade dos programas: tarefas
complexas são decompostas em tarefas menores e com
menor grau de complexidade
➢
Aumento da legibilidade do programa, principalmente se o
nome da sub-rotina oferece uma boa noção da tarefa que
ela executa
Procedimento ou Função
em Python
➢
Construídos usando a cláusula “def”
Sintaxe:
def <nome da função> (parâmetro1, parâmetro2,…,parâmetron):
<instrução/bloco de instruções>
➢
Os parâmetros da função ou procedimento são passados
pelos programas que os invocam na forma de
argumentos
➢
As sub-rotinas que tornam-se demasiadamente
complexas podem ainda ser divididas em diversas outras
sub-rotinas mais simples. A esse processo dá-se o nome
de refinamento sucessivo
Definição de Funções
➢
Uma função é uma unidade de código de programa autônoma
desenvolvida para cumprir uma determinada tarefa em
particular
➢
Funções são sub-rotinas que podem ser referenciadas
(chamadas ou invocadas) em qualquer parte do programa
principal, por meio de seu nome, e que retornam um valor ao
programa que a invocou
➢
Ao término da execução da função, o controle de
processamento retorna automaticamente para a primeira linha
de instrução após a linha que efetuou a chamada da sub-
rotina
➢
Em Python, o retorno de uma função é especificado pela
cláusula return
Definição de Procedimentos
➢
São sub-rotinas que executam instruções sem retorno de
qualquer valor ao programa que o invocou
➢
É um bloco de programa contendo início e fim e será
identificado por um nome
➢
É por meio do seu nome que o procedimento será
referenciado em qualquer parte do programa principal ou
do programa chamador da sub-rotina
➢
Como nas funções, quando essa sub-rotina é chamada
por um programa, ela é executada e ao seu término o
controle de processamento retorna automaticamente para
a primeira linha de instrução após a linha que efetuou sua
chamada
Aplicação de Funções e
Procedimentos
➢
Maneira simples de realizar a modularização de um
programa
➢
A modularização:
✔
consiste em dividir um problema grande e complexo
em problemas menores e mais simples
✔
facilita o desenvolvimento, entendimento e
manutenção do programa
✔
Permite que trechos de código menores e mais
simples, quando integrados, venham a possibilitar a
resolução do problema como um todo
✔
Se baseia no princípio de “dividir para conquistar”
Benefícios da Modularização
➢
Um módulo é um grupo de comandos ou instruções, que
constitui um trecho de algoritmo, com uma função bem
definida
➢
Benefícios:
✔
Redução da complexidade (maior simplicidade)
✔
Melhor entendimento (maior legibilidade)
✔
Maior manutenibilidade (facilidade de manutenção)
✔
Aumento da possibilidade de reutilização, permitindo que
uma determinada sub-rotina de um programa seja
reaproveitada em outro programa
✔
Maior facilidade de desenvolvimento, pois é mais fácil
pensar na solução de problemas menores e mais
simples