Escolar Documentos
Profissional Documentos
Cultura Documentos
Modularizao
Algoritmos e Programao
Modularizao de Algoritmos
A resoluo de problemas complexos em computao
geralmente leva a algoritmos longos, que so difceis de
analisar, verificar e alterar.
Uma abordagem eficiente para auxiliar na resoluo de
problemas complexos a decomposio: dividir para
conquistar!
Essa abordagem denominada top-down (ou refinamentos
sucessivos): parte-se do todo, dividindo-o em partes
menores.
Algoritmos e Programao
Modularizao de Algoritmos
Vrias reas utilizam essa abordagem: um exemplo a
fabricao de um carro numa indstria automobilstica.
Vantagens da modularizao:
Clareza e legibilidade do algoritmo.
Construo independente.
Testes individualizados.
Simplificao da manuteno.
Reaproveitamento de algoritmos.
Algoritmos e Programao
Modularizao de Algoritmos
A abordagem top-down aplicada em algoritmos consiste em
dividir um algoritmo em subalgoritmos/subprogramas
menores que executam partes da resoluo do problema.
Essa tcnica chamada de modularizao de algoritmos.
Algoritmos e Programao
Subalgoritmo
Algoritmos e Programao
Subalgoritmo
Um subalgoritmo um nome dado a um trecho de um
algoritmo mais complexo e que, em geral, encerra em si
prprio um pedao da soluo de um problema maior o
algoritmo a que ele est subordinado. Este conceito
essencial numa cincia bastante recente: a Engenharia de
Software.
Algoritmos e Programao
Subalgoritmo
Em resumo, os subalgoritmos so importantes na:
Subdiviso de algoritmos complexos, facilitando o seu
entendimento;
Estruturao de algoritmos, facilitando principalmente a
deteco de erros e a documentao de sistemas; e
Modularizao de sistemas, que facilita a manuteno de
softwares e a reutilizao de subalgoritmos j
implementados.
Algoritmos e Programao
Subalgoritmo
A idia da reutilizao de software tem sido adotada por
muitos grupos de desenvolvimento de sistemas de
computador, devido economia de tempo e trabalho que
proporcionam.
Seu princpio o seguinte: um conjunto de algoritmos
destinado a solucionar uma srie de tarefas bastante
corriqueiras desenvolvido e vai sendo aumentado com o
passar do tempo, com o acrscimo de novos algoritmos.
Algoritmos e Programao
Subalgoritmo
A este conjunto d-se o nome de biblioteca. No
desenvolvimento de novos sistemas, procura-se ao mximo
basear sua concepo em subalgoritmos j existentes na
biblioteca, de modo que a quantidade de software realmente
novo que deve ser desenvolvido minimizada.
Muitas vezes os subalgoritmos podem ser teis para encerrar
em si uma certa sequncia de comandos que repetida vrias
vezes num algoritmo. Nestes casos, os subalgoritmos
proporcionam uma diminuio do tamanho de algoritmos
maiores. Antigamente, esta propriedade era tida como a
principal utilidade dos subalgoritmos.
Algoritmos e Programao
Subalgoritmo
Mecanismo de Funcionamento
Um algoritmo completo dividido num algoritmo principal e
diversos subalgoritmos (tantos quantos forem necessrios
e/ou convenientes). O algoritmo principal aquele por onde
a execuo do algoritmo sempre se inicia. Este pode
eventualmente invocar os demais subalgoritmos.
Algoritmos e Programao
Subalgoritmo
Mecanismo de Funcionamento
O corpo do algoritmo principal sempre o ltimo trecho do
pseudocdigo de um algoritmo. As definies dos
subalgoritmos esto sempre colocadas no trecho aps a
definio das variveis globais e antes do corpo do algoritmo
principal:
Algoritmos e Programao
Subalgoritmo
Mecanismo de Funcionamento
ALGORITMO <nome do algoritmo>
Var <definio das variveis globais>
<definies dos subalgoritmos>
Inicio
<corpo do algoritmo principal>
FimAlgoritmo.
Algoritmos e Programao
Subalgoritmo
Mecanismo de Funcionamento
Durante a execuo do algoritmo principal, quando se
encontra um comando de invocao de um subalgoritmo, a
execuo do mesmo interrompida. A seguir, passa-se
execuo dos comandos do corpo do subalgoritmo. Ao seu
trmino, retoma-se a execuo do algoritmo que o chamou
(no caso, o algoritmo principal) no ponto onde foi
interrompida (comando de chamada do subalgoritmo) e
prossegue-se pela instruo imediatamente seguinte.
Algoritmos e Programao
Subalgoritmo
A definio de um subalgoritmo consta de:
Um cabealho, onde esto definidos o nome e o tipo do
subalgoritmo, bem como os seus parmetros e variveis
locais;
Um corpo, onde se encontram as instrues (comandos) do
subalgoritmo.
Algoritmos e Programao
Subalgoritmo
O nome de um subalgoritmo o nome simblico pelo qual
ele chamado por outro algoritmo.
O corpo do subalgoritmo contm as instrues que so
executadas cada vez que ele invocado.
Variveis locais so aquelas definidas dentro do prprio
subalgoritmo e s podem ser utilizadas pelo mesmo.
Algoritmos e Programao
Subalgoritmo
Parmetros so canais por onde os dados so transferidos
pelo algoritmo chamador a um subalgoritmo, e vice-versa.
Para que possa iniciar a execuo das instrues em seu
corpo, um subalgoritmo s vezes precisa receber dados do
algoritmo que o chamou e, ao terminar sua tarefa, o
subalgoritmo deve fornecer ao algoritmo chamador os
resultados da mesma. Esta comunicao bidirecional pode
ser feita de dois modos que sero estudados mais frente:
por meio de variveis globais ou por meio da passagem de
parmetros.
Algoritmos e Programao
Subalgoritmo
O tipo de um subalgoritmo definido em funo do nmero
de valores que o subalgoritmo retorna ao algoritmo que o
chamou. Segundo esta classificao, os subalgoritmos
podem ser de dois tipos:
funes, que retornam um, e somente um, valor ao
algoritmo chamador;
procedimentos, que retornam zero (nenhum) ou mais
valores ao algoritmo chamador.
Algoritmos e Programao
Procedimentos
Algoritmos e Programao
Procedimentos
Um procedimento um subalgoritmo que retorna zero
(nenhum) ou mais valores ao (sub)algoritmo chamador. Estes
valores so sempre retornados por meio dos parmetros ou de
variveis globais, mas nunca explicitamente, como no caso de
funes. Portanto, a chamada de um procedimento nunca
surge no meio de expresses, como no caso de funes. Pelo
contrrio, a chamada de procedimentos s feita em
comandos isolados dentro de um algoritmo, como as instrues
de entrada (Leia) e sada (Escreva) de dados.
Algoritmos e Programao
Procedimentos
A sintaxe da definio de um procedimento :
PROCEDIMENTO <nome> ( <parmetros> )
Var <variveis locais>
Inicio
<comando composto>
FimProcedimento
Algoritmos e Programao
Procedimentos
Detalhe
<nome> o nome simblico pelo qual o procedimento invocado por
outros algoritmos;
Algoritmos e Programao
Procedimentos
Algoritmos e Programao
Procedimentos
No exemplo conveniente observar:
A forma de invocao dos procedimentos, por meio do seu
nome, seguido de seus eventuais parmetros (no caso,
nenhum), num comando isolado dentro do algoritmo
principal.
Algoritmos e Programao
Funes
Algoritmos e Programao
Funes
Funes
so
as
estruturas
que
permitem
ao
desenvolvedores separar seus programas em blocos. Se
no as tivssemos, os programas teriam que ser curtos e de
pequena complexidade. Para fazermos programas grandes e
complexos temos de constru-los bloco a bloco.
Algoritmos e Programao
Funes
Uma funo um mdulo que tem por objetivo calcular e
retornar ao algoritmo, procedimento ou funo "chamador"
um valor. A chamada de uma funo para execuo feita
apenas citando-se o seu identificador no meio de uma
expresso. Vide as funes previamente existentes no nosso
pseudo-cdigo. Uma funo dita recursiva quando chama
a ela prpria.
Algoritmos e Programao
Funes
Resumindo Funes:
Funes so nada mais do que subprogramas, isto ,
pedaos de programas dentro de programas.
Algoritmos e Programao
Funes
O conceito de Funo originrio da idia de funo
matemtica (por exemplo, raiz quadrada, seno, coseno,
tangente, logaritmo, entre outras), onde um valor calculado
a partir de outro(s) fornecido(s) funo.
FUNCAO <nome> ( <parmetros> ) : <tipo_de_retorno>
VAR <variveis locais>
INICIO
<comando composto>
retorne <varivel de retorno>
FIMFUNCAO
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Funes
Exemplo
Algoritmos e Programao
Funes
A invocao de uma funo feita pelo simples
aparecimento do nome da mesma, seguido pelos
respectivos parmetros entre parnteses, dentro de uma
expresso. A funo executada e, ao seu trmino, o trecho
do comando que a invocou substitudo pelo valor retornado
pela mesma dentro da expresso em que se encontra, e a
avaliao desta prossegue normalmente.
Algoritmos e Programao
Funes
Uma funo, devolve ao algoritmo que a chamou apenas um
valor, calculado por ela, e definido no comando retorne.
Exemplo
Algoritmos e Programao
Funes - Variveis
Variveis globais so aquelas declaradas no incio de um
algoritmo. Estas variveis so visveis (isto , podem ser
usadas) no algoritmo principal e por todos os demais
subalgoritmos.
Variveis locais so aquelas definidas dentro de um
subalgoritmo e, portanto, somente visveis (utilizveis) dentro
do mesmo. Outros subalgoritmos, ou mesmo o algoritmo
principal, no podem utiliz-las.
Algoritmos e Programao
Funes - Parmetros
Parmetros so canais pelos quais se estabelece uma
comunicao bidirecional entre um subalgoritmo e o
algoritmo chamador (o algoritmo principal ou outro
subalgoritmo). Dados so passados pelo algoritmo
chamador ao subalgoritmo, ou retornados por este ao
primeiro por meio de parmetros.
Algoritmos e Programao
Funes Parmetros
Parmetros formais so os nomes simblicos introduzidos
no cabealho de subalgoritmos, usados na definio dos
parmetros. Dentro de um subalgoritmo trabalha-se com
estes nomes da mesma forma como se trabalha com
variveis locais ou globais.
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Funo X Procedimento
Um procedimento difere de uma funo basicamente, pois,
no tem um valor de retorno associado. Isto faz com que ele
se comporte como um comando extra da linguagem ao
passo que a funo tem um comportamento mais parecido
com o de uma expresso aritmtica ou booleana. Um
prottipo para um procedimento de definido ento com
base em apenas duas informaes:
O identificador do procedimento (nome)
A lista de parmetros (que podem ser por valor ou
referncia).
Algoritmos e Programao
Funo X Procedimento
Resumindo, os procedimentos diferem das funes apenas
por no retornarem nada, nenhum valor.
Exemplo
Algoritmos e Programao
Arredondamento
Exemplo
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
parte
inteira
do
valor
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
Algoritmos e Programao
FIM