PROGRAMAÇÃO IMPERATIVA
MODULARIZAÇÃO DE PROGRAMAS
IGOR LEONARDO ELOY MACEDO
APRESENTAÇÃO
Introdução
 Subprogramas

Procedimento
 Função


Parâmetros

Escopo de variáveis
Exemplo Prático
 Conclusão

MODULARIZAÇÃO DE PROGRAMAS
INTRODUÇÃO
Custo;
 Dividir para simplificar;
 Dividir para reaproveitar;
 Conceito:

Programa "Exemplo“
f(x) = x! / y! * (x - y)! ; se x >= y
variáveis
f(x) = y! / x! * (y - x)! ; se x < y
x, y, aux, fatX, fatY, fatSub, sub, resultado : Inteiro
Início
x <- Entrada
y <- Entrada
se (x >= 0 e y >= 0) então
inicio
se (x < y) então
início//ordenação decrescente
aux <- x
x <- y
y <- aux
fim se
...
Resultado <- fatX / (fatY * fatSub)
Saida <- Resultado
fim se
senão
saída <- "Dados Inadequados"
Fim programa
fatX <- 1
enquanto (x > 1)//fatorial de X
início
fatX <- fatX * x
x <- x - 1
fim enquanto
fatY <- 1
enquanto (y > 1)//fatorial de Y
início
fatY <- fatY * y
y <- y - 1
fim enquanto
sub <- x - y
fatSub <- 1
enquanto (sub > 1)//fatorial de (X - Y)
início
fatSub <- fatSub * sub
sub <- sub - 1
fim enquanto
MODULARIZAÇÃO DE PROGRAMAS
SUBPROGRAMAS






Módulos de programas = Sub-algoritmos = sub-rotinas;
Hierarquia
Reutilização de algoritmos ≠ repetição de algoritmos;
Legibilidade;
Procedimentos;
Funções;
MODULARIZAÇÃO DE PROGRAMAS
SUBPROGRAMAS - PROCEDIMENTOS
Subprograma sem retorno de valor;
 Interrompe a execução do programa que o invoca
até o seu encerramento;

Procedimento NomeProcedimento
//variáveis
Início
//instruções
Fim
MODULARIZAÇÃO DE PROGRAMAS
SUBPROGRAMAS - PROCEDIMENTOS
Programa "Exemplo“
variáveis
x, y, aux, fatX, fatY, fatSub, sub, resultado :
Inteiro
Início
x <- Entrada
y <- Entrada
se (x >= 0 e y >= 0) então
inicio
se (x < y) então
início//ordenação
decrescente
Ordenadecrescente
aux <- x
x <- y
y <- aux
fim se
...
Resultado <- fatX / (fatY * fatSub)
Saida <- Resultado
fim se
senão
saída <- "Dados Inadequados"
Fim programa
Procedimento OrdenaDecrescente()
Inicio
se (x < y) então
início//ordenação decrescente
aux <- x
x <- y
y <- aux
fim se
Fim procedimento
MODULARIZAÇÃO DE PROGRAMAS
PARÂMETROS
Canais de comunicação entre programas e
subprogramas;
 Facilitam a reutilização de algoritmos;
 Os parâmetros são variáveis, e estas se
restringem a dois tipos de escopo

Escopo global;
 Escopo local;


Os parâmetros são passados de duas formas:
Por valor;
 Por referência;

MODULARIZAÇÃO DE PROGRAMAS
PARÂMETROS
Programa "Exemplo“
variáveis
x, y, fatX, fatY, fatSub, sub, resultado : Inteiro
f(x) = x! / y! * (x - y)! ; se x >= y
f(x) = y! / x! * (y - x)! ; se x < y
Procedimento Ordenadecrescente(var a : Inteiro; var b : Inteiro)
Início
Procedimento Ordenadecrescente(var a : Inteiro;
x <- Entrada
var b : Inteiro)
y <- Entrada
Variáveis
se (x >= 0 e y >= 0) então
aux : Inteiro
inicio
Inicio
Ordenadecrescete(x, y)
se (a < b) então
...
início//ordenação decrescente
Resultado <- fatX / (fatY * fatSub)
aux <- a
Saida <- Resultado
a <- b
b <- aux
fim se
fim se
senão
Fim procedimento
saída <- "Dados Inadequados"
Fim programa
MODULARIZAÇÃO DE PROGRAMAS
SUBPROGRAMAS - FUNÇÕES
Semelhante ao procedimento, porém retorna
valores ao final de sua execução;
 Seu conceito é originário da matemática


f(x) = x^2 + x - 8
Função NomeFunção : ValorRetornado
//variáveis
Início
//instruções
Fim
Programa "Exemplo“
variáveis
x, y, aux, fatX, fatY, fatSub, sub, resultado : Inteiro
Procedimento Ordenadecrescente(var a : Inteiro; var b : Inteiro) ...
Início
x <- Entrada
fatX <- 1
y <- Entrada
enquanto (x > 1)//fatorial de X
se (x >= 0 e y >= 0) então
início
inicio
fatX <- fatX * x
OrdenaDecrescente(x, y)
x <- x - 1
fim enquanto
...
FunçãoResultado
Fatorial(a<-: inteiro)
: Inteiro
fatX / (fatY
* fatSub)
fatY <- 1
variáveis
Saida <- Resultado
enquanto (y > 1)//fatorial de Y
resultado : Inteiro
início
Iníciofim se
fatY <- fatY * y
resultado
senão← 1
y <- y - 1
enquanto
(resultado
> 1)Inadequados"
saída
<- "Dados
fim enquanto
início
Fim programa
sub <- x - y
resultado ← resultado * a
a←a-1
fatSub <- 1
fim
enquanto (sub > 1)//fatorial de (X - Y)
RETORNA resultado
início
Fim//Função
fatSub <- fatSub * sub
sub <- sub - 1
fim enquanto
Programa "Exemplo“
variáveis
x, y, aux, fatX, fatY, fatSub, sub, resultado : Inteiro
Procedimento Ordenadecrescente(var a : Inteiro; var b : Inteiro) ...
Função Fatorial(a : inteiro) : Inteiro ...
Início
x <- Entrada
y <- Entrada
se (x >= 0 e y >= 0) então
inicio
OrdenaDecrescente(x, y)
fatX <- Fatorial(x)
fatY <- Fatorial(y)
fatSub <- Fatorial(x - y)
Resultado <- fatX / (fatY * fatSub)
Saida <- Resultado
fim se
senão
saída <- "Dados Inadequados"
Fim programa
MODULARIZAÇÃO DE PROGRAMAS
EXEMPLO PRÁTICO
Programa “Exemplo”
variáveis
x, y : Inteiro
Início
x ← Entrada
y ← Entrada
se (x >= 0 e y >= 0) então
Início
OrdenaDecrescente(x , y)
Saída ← CalculaResultado(x, y)
Fim //Se
Senão
Saída ← “Dados inadequados”
Fim//programa
f(x) = x! / y! * (x - y)! ; se p >= q
f(x) = y! / x! * (y - x)! ; se p < q
MODULARIZAÇÃO DE PROGRAMAS
CONCLUSÃO
A decomposição de um problema é fator
determinante para a redução de sua
complexidade;
 Além disso fatores como legibilidade, manutenção
do algoritmo e flexibilidade são destacados pela
modularização;

PRINCIPAIS REFERÊNCIAS
BIBLIOGRÁFICAS





Melo, Ana Cristina Vieira; Silva, Flávio Soares Corrêa.
Princípios de Linguagens de Programação. Brasil:
Edgard Blücher, 2003.
Trembley, Jean-Paul; Bunt, Richard B. Ciência dos
Computadores (Uma Abordagem Algoritmica). Brasil:
Makron Books, 1983.
Sebesta, Robert W. Conceitos de Linguagens de
Programação. Brasil: Bookman, 2002.
Araújo, Flávio Louzada – Modularização ou subrotinas. Disponível em: <
http://www.faculdadefortium.com.br/flavio_louzada/materia
l/1939.pdf >. Acessado em: 11/10/2008.
Baioco, Gisele Busichia – Modularização de Programas
(Conceitos fundamentais). Disponível em: <
http://www.faculdadefortium.com.br/flavio_louzada/materia
l/1939.pdf >. Acessado em: 11/10/2008.
DÚVIDAS
AGRADECIMENTOS
À platéia presente
 À banca examinadora

MODULARIZAÇÃO DE PROGRAMAS
EXEMPLO PRÁTICO
Procedimento OrdenaDecrescente(var a : inteiro; var b : inteiro)
variáveis
c : Inteiro
Início
se (a < b) então
Início
c←a
a←b
b←c
Fim //Se
Fim//procedimento
MODULARIZAÇÃO DE PROGRAMAS
EXEMPLO PRÁTICO
Função CalculaValor(a : inteiro; b : inteiro) : Inteiro
variáveis
resultado : Inteiro
Início
resultado ← (Fatorial(a) / (Fatorial(b) * Fatorial(a-b))
RETORNA resultado
Fim//Função
MODULARIZAÇÃO DE PROGRAMAS
EXEMPLO PRÁTICO
Função Fatorial(a : inteiro) : Inteiro
variáveis
resultado : Inteiro
Início
resultado ← 1
enquanto (resultado > 1)
início
resultado ← resultado * a
a←a-1
fim
RETORNA resultado
Fim//Função
Download

Modularização de Programas