Você está na página 1de 32

Modularizao

Introduo Programao
Prof. Fabiano Madeira
Introduo Programao - Prof. Fabiano Madeira 2
Objetivos
Aps esta aula, voc dever ser capaz de:

Compreender o conceito de modularizao
Definir e utilizar os componentes de um mdulo
Solicitar a execuo de um mdulo
Construir um mdulo
Conceituar e utilizar passagem de parmetros
Introduo Programao - Prof. Fabiano Madeira 3
Introduo

A maioria dos algoritmos resolve problemas
complexos, cuja soluo normalmente
formada de vrias sub-tarefas ou mdulos,
cada qual resolvendo uma parte especfica
do problema

Introduo Programao - Prof. Fabiano Madeira 4
Introduo

Mdulo nada mais do que um grupo de
instrues que constitui um trecho de
algoritmo com uma funo bem definida e o
mais independente possvel das demais
partes do algoritmo.

Introduo Programao - Prof. Fabiano Madeira 5
Vantagens
Torna o algoritmo mais fcil de escrever

Torna o algoritmo mais fcil de ler

Economia de tempo, espao e esforo
REUTILIZAO
Introduo Programao - Prof. Fabiano Madeira 6
Como modularizar ?
A modularizao de problemas realizada atravs
da definio de:
Um mdulo principal, que organiza e coordena o
trabalho dos demais mdulos;

Mdulos especficos, para cada uma das sub-tarefas
do algoritmo.

O mdulo principal solicita a execuo dos vrios
mdulos em uma dada ordem.
Os demais mdulos, antes de iniciar a execuo,
recebem dados do mdulo principal e devolvem o
resultado de suas operaes.
Introduo Programao - Prof. Fabiano Madeira 7
Ordem de execuo das instrues
em algoritmos modularizados
Conjunto de
Instrues
do mdulo X
Conjunto de
Instrues
do mdulo X
Mdulo Principal
Mdulo X
Mdulo Y
<Nome: Exemplo>
Mdulos:
Vriveis:
INCIO

<conjunto de instrues >

Mdulo X

<conjunto de instrues>

Mdulo X

Mdulo Y
...

FIM
Introduo Programao - Prof. Fabiano Madeira 8
Como especificar mdulos em algoritmos
1. Dividir o problema

2. Identificar as sub-tarefas

3. Detectar tarefas que se repetem durante a
execuo do algoritmo
Introduo Programao - Prof. Fabiano Madeira 9
Componentes de um mdulo
Interface: a descrio do tipo do mdulo,
nome e dos dados de entrada

Corpo: conjunto de instrues que compe
o trecho de algoritmo correspondente ao
mdulo

Introduo Programao - Prof. Fabiano Madeira 10
Interface e Corpo
Nome_do Mdulo(Parmetros)
CORPO
interface
Variveis
<declarao das variveis locais da funo>

Incio

<conjunto instrues da funo>

Fim
Introduo Programao - Prof. Fabiano Madeira 11
Tipos de Mdulo
Podemos definir dois tipos de mdulo,
dependendo do resultado de suas
operaes:

Funes: mdulos que devolvem valor ou
referncia

Procedimentos: mdulos que somente
executam tarefas

Introduo Programao - Prof. Fabiano Madeira 12
O que Parmetro?
Quando criamos mdulos, sejam eles funes ou
procedimentos, normalmente estamos delegando
funes menores para eles.

Como so subordinados aos algoritmos ditos
chamadores, os mdulos podem depender de
informaes passadas a eles para executar suas
tarefas

Estas informaes so passadas atravs dos
parmetros

Introduo Programao - Prof. Fabiano Madeira 13
Parmetros
Parmetros so variveis locais do mdulo
inicializadas na chamada do mdulo.

So especificados como uma lista de declarao
de variveis, separadas por vrgula
Se o mdulo no recebe parmetros, a lista pode ser
vazia

Exemplo:
Procedimento ValidaProduto(inteiro num, string nome,
real preo)
Introduo Programao - Prof. Fabiano Madeira 14
Passagem de Parmetros
Existem dois tipos de passagem de
parmetro:
Passagem por Valor
Passagem por Referncia
Introduo Programao - Prof. Fabiano Madeira 15
Passagem de Parmetros (1)
Passagem por Valor
Os valores dos parmetros passados por valor so
passados pelo mecanismo de cpia
O valor do parmetro (uma constante ou o valor de
uma varivel ou expresso) atribudo ao parmetro
quando da chamada

Sintaxe:
(tipo_dado nome1, tipo_dado nome2, ..., tipo_dado nomeN)

A ordem de definio dos parmetros considerada
quando feita a passagem de valores para o mdulo.
Introduo Programao - Prof. Fabiano Madeira 16
Definindo procedimentos - Sintaxe
Procedimento <nome_do procedimento> (parmetro1,
..., parmetroN)
Variveis
<declarao das variveis locais do mdulo>

Incio
<conjunto instrues do procedimento>
Fim
Introduo Programao - Prof. Fabiano Madeira 17
Definindo funes - sintaxe
Funo <tipoRetorno> <nomeFuno> (parmetro1, ...,
parametroN)
Variveis
<declarao das variveis locais da funo>
Incio
<conjunto instrues da funo>

RETORNA <valor_de_retorno>
Fim
O valor de retorno deve ter o
mesmo tipo de dados definido
em <tipoRetorno>
Introduo Programao - Prof. Fabiano Madeira 18
Exemplo
Nome da Funo: Quadrado
Objetivo: Funo para calcular o quadrado de um nmero.
Dados de Entrada: nmero passado como parmetro para calcular
o seu quadrado.
Sada: (retorno) o nmero ao quadrado

Funo inteiro Quadrado(inteiro num)
Variveis
inteiro res < declarao de varivel do mdulo >
Incio
res num * num < calcula o quadrado >
RETORNA res < retorna o quadrado calculado >
Fim
Introduo Programao - Prof. Fabiano Madeira 19
Exemplo - Identificando os
componentes da funo

Funo inteiro Quadrado(inteiro num)
Variveis
inteiro res < declarao de varivel do mdulo >
Incio
res num * num < calcula o quadrado >
RETORNA res < retorna o quadrado calculado >
Fim
Finaliza a execuo do mdulo
retornando o valor da varivel res
Nome da funo
Lista de parmetros
Tipo de dado de
sada
Introduo Programao - Prof. Fabiano Madeira 20
Exemplo
Nome do Procedimento: Apresentacao
Objetivo: Apresentar as informaes sobre algoritmo
Dados de Entrada: nome do programador e objetivo
Sada: exibe na tela as informaes do algoritmo passado como parmetro

Procedimento Apresentacao(string programador, string objetivo)
Variveis
< nesse mdulo no necessrio declarar variveis >
Incio
ESCREVA Este algoritmo foi desenvolvido por:
ESCREVA programador
ESCREVA Objetivo do algoritmo:
ESCREVA objetivo
Fim
Introduo Programao - Prof. Fabiano Madeira 21
Passagem de Parmetros (2)
Passagem por Referncia

A passagem por referncia ocorre quando alteraes
nos parmetros, dentro da funo, alteram os valores
das variveis que foram passadas para a funo.
A referncia de uma varivel seu endereo de
memria, quando realizamos uma passagem de
parmetro por referncia
O parmetro no recebe a cpia do valor da varivel e
sim o endereo de memria onde est armazenada
essa varivel
Qualquer alterao no valor do parmetro feita pelo
procedimento/funo acarretar uma modificao no
valor da varivel externa passada como parmetro
Introduo Programao - Prof. Fabiano Madeira 22
Passagem de Parmetros (2)
Passagem por Referncia

Para indicar passagem por referncia
utilizaremos a palavra reservada REF na
especificao do parmetro

NomeMdulo (tipo_dados REF nome_parametro)
Introduo Programao - Prof. Fabiano Madeira 23
Exemplo
Nome do Procedimento: troca
Objetivo: Procedimento para trocar os valores de duas variveis.
Dados de Entrada: as duas variveis inteiras passadas por referncia
Sada: As duas variveis com valores invertidos

Procedimento Troca (REF inteiro a, REF inteiro b)
Variveis
inteiro aux
Incio
aux a
a b
b aux
Fim
Introduo Programao - Prof. Fabiano Madeira 24
Solicitando a Execuo de um Mdulo
Quando queremos utilizar os mdulos que criamos
para resolver uma tarefa, ou seja solicitar sua
execuo, devemos fazer chamada ao mdulo

A chamada ao mdulo a forma de solicitar a
execuo do mdulo em um determinado passo do
algoritmo

Para fazer a chamada de um mdulo devemos
especificar qual o nome do mdulo e passar
argumentos (valores iniciais ou variveis) para
seus parmetros
Introduo Programao - Prof. Fabiano Madeira 25
Exemplos de Chamada de Funo
x Quadrado(10)

<solicita a execuo do mdulo quadrado para o numero 10, o valor
retornado pela funo ser atribudo varivel x >

y Quadrado(20 + x)

<solicita a execuo do mdulo quadrado para o valor resultante da
soma de 20 mais o valor de x, o valor retornado pela funo ser
atribudo varivel y>

z Quadrado(5) + 50

<solicita a execuo do mdulo quadrado para o nmero 5, soma o
valor retornado pela funo a 50 e atribui o resultado varivel z>
Introduo Programao - Prof. Fabiano Madeira 26
Exemplos de chamada de procedimento
Solicita a execuo do procedimento Apresentacao que
exibir na tela a primeira cadeia como nome do autor e a
segunda cadeia como o objetivo do algoritmo

Apresentacao(Joo, Mostrar um exemplo do mdulo)

nome Maria
texto Mostrar outro exemplo de chamada do mdulo
Apresentacao(nome, texto)
Introduo Programao - Prof. Fabiano Madeira 27
Algoritmo Modularizado
A partir de agora, o nosso algoritmo ser
composto das seguintes partes:
Cabealho
rea para especificao da interface dos
mdulos
rea para declarao de variveis globais
Mdulo Principal
Especificao do corpo dos demais mdulos.
Introduo Programao - Prof. Fabiano Madeira 28
Exemplo de Algoritmo Modularizado (1)
<Cabealho>

Nome do Algoritmo: soma dos quadrados
Objetivo: calcular a soma dos quadrados de dois nmeros inteiros
positivos
Dados de Entrada: dois nmeros positivos
Sada: soma dos quadrados

<Especificao da interface dos mdulos>
Mdulos:
Procedimento Apresentacao(string programador, string objetivo)
<procedimento para exibir ao usurio as informaes sobre o
algoritmo>


Funo inteiro Quadrado(inteiro num)
<funo que calcula o quadrado de um nmero>
Introduo Programao - Prof. Fabiano Madeira 29
Exemplo de Algoritmo Modularizado (2)
<Especificao do Mdulo Principal>
Variveis:
inteiro x, y, <nmeros digitados pelo usurio>
soma <quadrado>
string nome, <nome do autor do algoritmo>
descricao <descrio objetivo do algoritmo>

<Conjunto de instrues do mdulo principal>
INCIO
nome Fulano de Tal
descricao Calcular a soma do quadrado de dois nmeros
Apresentacao(nome, descricao)
ESCREVA Entre com um nmero positivo:
LEIA x
ESCREVA Entre com um nmero positivo:
LEIA y
soma Quadrado(x) + Quadrado(y)
ESCREVA soma
FIM
Introduo Programao - Prof. Fabiano Madeira 30
Exemplo de Algoritmo Modularizado (3)
<Especificao dos Mdulos>
Procedimento Apresentacao (string programador, string objetivo)
Variveis
< nesse mdulo no necessrio declarar variveis >
Incio
ESCREVA Este algoritmo foi desenvolvido por:
ESCREVA programador
ESCREVA Objetivo do algoritmo:
ESCREVA objetivo
Fim

Funo inteiro Quadrado( inteiro num )
Variveis
inteiro res
Incio
res num * num
RETORNA res
Fim
Introduo Programao - Prof. Fabiano Madeira 31
Exerccio 1 - Extra
- Dado uma base e um expoente (inteiros
naturais), faa um mdulo para calcular a
potncia.
- Identifique:
- Qual o objetivo especfico do mdulo?
- Tem retorno de informao?
- Definir se FUNO ou PROCEDIMENTO
- Nome
- Quais so os parmetros
- Conjunto de instrues
Introduo Programao - Prof. Fabiano Madeira 32
Exerccio 2 06 da Lista 04
- Dado um nmero em decimal faa um
mdulo para convert-lo em notao
binria.

Você também pode gostar