Escolar Documentos
Profissional Documentos
Cultura Documentos
Modularizao de Algoritmos
Modularizar
Quebrar um problema em pequenas partes, sendo que cada uma dessas partes ser responsvel
pela realizao de uma etapa do problema.
1
Os muitos problemas complexos podem ser resolvidos dividindo-os em
pequenas partes e solucionando tais partes em separado. Este procedimento
importante para:
Subdividir algoritmos complexos, simplificando o seu entendimento;
Estruturar algoritmos, tornando fcil principalmente a localizao de erros e
a documentao de cdigos;
Criar diviso em sistemas que facilita a manuteno do programa e a
reutilizao de algoritmos j implementados.
Sub-rotina
Um pedao do cdigo computacional que executa uma funo bem definida, sendo que esta
sub-rotina pode ser utilizada vrias vezes no programa.
Sintaxe:
procedimento <nome-de-procedimento>
// Seo de Declaraes de Variaes Locais
Inicio
// Seo de Comandos
fimprocedimento
Exemplo 1: VarGlobal1
2
Algoritmo VarGlobal1
VAR
Nome : caractere // Declarao da Varivel Global
procedimento
Inicio
LEIA (Nome)
fimprocedimento //procedimento
INICIO
Setname
ESCREVA (Nome)
FIMALGORITMO // Algoritmo
Exemplo 2: VarGlobal2
Algoritmo Global2
VAR
N, I : inteiro // Declarao da Varivel Global
Procedimento EscreveNoVideo
Inicio
PARA I DE 1 ATE N FAA
ESCREVA (I)
FIMPARA
fimprocedimento //procedimento EscreveNoVideo
INICIO
LEIA (N)
EscreveNoVideo
ESCREVA (Fim)
FIMALGORITMO // Algoritmo
3
Exemplo 1: VarLocal1
Algoritmo VarLocal1
Procedimento EscreveNoVideo
VAR
Numero, N : inteiro // Declarao das Variveis Locais
Inicio
LEIA (N)
PARA I DE 1 ATE N FAA
ESCREVA (Numero)
FIMPARA
fimprocedimento //procedimento EscreveNoVideo
INICIO
EscreveNoVideo
FIMALGORITMO // Algoritmo
ATENO
possvel definir variveis globais e locais com o mesmo nome, sendo que qualquer mudana
no contedo da varivel local no afetar o contedo da varivel global.
Exemplo 2: VarLocal2
Algoritmo VarLocal2
VAR Nome : literal // Declarao da Varivel Global
procedimento Setanome
Inicio
LEIA (N) // Se digitar Joo carrega a global
fimprocedimento //procedimento Setanome
procedimento Mudana
VAR Nome : Literal // Varivel Local
Inicio
LEIA (N) // Se digitar Maria carrega a local
fimprocedimento //procedimento Mudana
INICIO
Setanome
ESCREVA (Nome) // Escrever Joo
Mudana
ESCREVA (Nome) // Tambm escrever Joo
FIMALGORITMO // Algoritmo
Nota Importante: Deve-se tomar um cuidado especial neste detalhe de variveis global e
local, pois muitos programas no rodam ou rodam no da maneira que foi projetada, devido
m interpretao delas.
4
Variveis Locais
So as variveis declaradas dentro de uma sub-rotina, sendo que as mesmas s podem ser
manipuladas dentro da sub-rotina que as declarou, no sendo visveis em nenhuma outra parte
do programa.
Variveis Globais
So as variveis definidas logo aps o comando VAR do algoritmo principal, sendo desta forma
visvel em qualquer parte do programa.
Sintaxe:
5
7.4.1 Passagem de Parmetros
7.4.1.1 Passagem de Parmetros por Valor
Exemplo : PassVal
Algoritmo PassVal
VAR
X : Inteiro
procedimento PorValor (A : Inteiro)
inicio
A <- 5
fimprocedimento //procedimento
INICIO
X <- 10
PorValor(X) //chamada do procedimento
ESCREVA (X)
FIMALGORITMO //Algoritmo
Exemplo: PassRef
6
Algoritmo PassRef
VAR
X : Inteiro
procedimento PorReferncia (VAR A : Inteiro)
inicio
A <- 5
fimprocedimento //procedimento
INICIO
X <- 10
PorReferncia(X) //chamada do procedimento
ESCREVA (X)
FIMALGORITMO //Algoritmo
Origem de Funo
O conceito de Funo originrio da idia de funo matemtica (por exemplo, raiz quadrada, seno,
logaritmo, entre outras), onde um valor calculado a partir de outro(s) fornecido(s) funo.
Para esses casos, algumas linguagens permitem a passagem de parmetros por referncia, onde uma
varivel passada como parmetro ao ser alterada dentro da funo tem seu valor alterado tambm na
funo chamadora ( na verdade uma nica varivel usada por ambas as fues).
Sintaxe:
Algoritmo FuncSoma1
//Funo para somar 2 nmeros.
VAR
K : Inteiro // Variveis Globais
INICIO
K <- Soma (2,3) //Chamada da Funo
ESCREVA (RES)
FIMALGORITMO //Algoritmo
8
Exemplo2: Neste exemplo o algoritmo FuncSoma2 realizar a operao de
soma de dois nmeros inteiros contidos nas variveis globais N e M, assim
sem passagem de parmetros, retornando o resultado da operao para a
varivel global RES.
Algoritmo FuncSoma2
VAR N, M, RES : Inteiro // Variveis Globais
INICIO
N <- 4
M <- -9
RES <- soma // Chamada de Funo
ESCREVA (RES)
FIMALGORITMO //Algoritmo
Algoritmo CalcQuad
//Funo para calcular o quadrado de um
nmero qualquer.
VAR
X, Y : Real // Variveis Globais
INICIO
ESCREVA (Digite um nmero: )
LEIA (X)
Y <- Quadrado (X) //Chamada da Funo
ESCREVA (O Valor de Y : , Y))
FIMALGORITMO //Algoritmo
9
7.6 Exerccios de Fixao
1) Faa uma funo que receba um parmetro (inteiro por valor) com o total de
minutos passados ao longo do dia e receba tambm dois parmetros (inteiros
por referncia) no qual deve preencher com o valor da hora e do minuto
corrente. Faa um programa que leia do teclado quantos minutos se passaram
desde meia-noite e imprima a hora corrente (use a sua funo).
2) Faa uma funo que receba um valor inteiro como referncia e retorne o
resto da diviso deste nmero por 10. Altere tambm o valor da varivel
passada por referncia, dividindo-a por 10.
10
Bibliografia
11