Modulização algoritmo e programação
-
Upload
talesdaniel22 -
Category
Documents
-
view
28 -
download
0
description
Transcript of Modulização algoritmo e programação
-
Algoritmos e Programao
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 Var
Inicio
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 ( ) Var Inicio FimProcedimento
-
Algoritmos e Programao
Procedimentos Detalhe o nome simblico pelo qual o procedimento invocado por
outros algoritmos;
so os parmetros do procedimento;
so as definies das variveis locais ao procedimento. Sua forma anloga da definio de variveis num algoritmo;
o conjunto de instrues do corpo do procedimento, que executado toda vez que o mesmo invocado.
-
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 ( ) : VAR INICIO
retorne
FIMFUNCAO
-
Algoritmos e Programao
Funes - Reaproveitamento de cdigo
Vez por outra nos deparamos com situaes onde temos que escrever cdigos parecidos, mas muito parecidos em trechos diferentes do programa. As vezes a diferena de um para outro questo de uma ou outra varivel que muda.
Tal fato ocorre com muita frequncia, muitas vezes o trecho exatamente o mesmo.
-
Algoritmos e Programao
Funes - Reaproveitamento de cdigo
Ento faz sentido que possamos estruturar o cdigo repetido de maneira a constituir um subprograma e, no programa propriamente dito, fazer o cdigo do subprograma ser executado para diferentes valores de variveis. Isto provoca uma grande economia de cdigo escrito, ao mesmo tempo em que facilita a manuteno do programa.
-
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
Funes Parmetros formais
No exemplo anterior, X e Y so parmetros formais da
funo Media.
Parmetros reais so aqueles que substituem os parmetros formais quando da chamada de um subalgoritmo. Por exemplo, o trecho seguinte de um algoritmo invoca a funo Mdia com os parmetros reais 8 e 7 substituindo os parmetros formais X e Y seria Z := Media(8, 7)
-
Algoritmos e Programao
Funes - Mecanismos de Passagem de Parmetros Como vimos anteriormente, os parmetros reais substituem
os formais no ato da invocao de um subalgoritmo. Esta substituio denominada passagem de parmetros e pode se dar segundo dois mecanismos distintos: passagem por valor (ou por cpia) ou passagem por referncia.
-
Algoritmos e Programao
Funes - Passagem de Parmetros por Valor Na passagem de parmetros por valor (ou por cpia) o
parmetro real calculado e uma cpia de seu valor fornecida ao parmetro formal, no ato da invocao do subalgoritmo. A execuo do subalgoritmo prossegue normalmente e todas as modificaes feitas no parmetro formal no afetam o parmetro real, pois trabalha-se apenas com uma cpia do mesmo.
-
Algoritmos e Programao
Funes - Passagem de Parmetros por Referncia Neste mecanismo de passagem de parmetros no feita
uma reserva de espao em memria para os parmetros formais. Quando um subalgoritmo com parmetros passados por referncia chamado, o espao de memria ocupado pelos parmetros reais compartilhado pelos parmetros formais correspondentes. Assim, as eventuais modificaes feitas nos parmetros formais tambm afetam os parmetros reais correspondentes.
-
Algoritmos e Programao
Funes - Passagem de Parmetros por Referncia Um mesmo subalgoritmo pode utilizar diferentes
mecanismos de passagem de parmetros, para parmetros distintos. Para diferenciar uns dos outros, convencionou-se colocar o prefixo VAR antes da definio dos parmetros formais passados por referncia. Se por exemplo um procedimento tem o seguinte cabealho:
Procedimento PROC( X, Y : inteiro; Var Z : real; J: real)
-
Algoritmos e Programao
Funes - Passagem de Parmetros por Referncia X e Y so parmetros formais do tipo inteiro e so passados
por valor;
Z um parmetro formal do tipo real passado por referncia;
J um parmetro formal do tipo real passado por valor.
-
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
String e Funes de Manipulao Toda linguagem de programao j vem com um grupo de
funes que facilitam a vida do programador. Estas funes realizam os clculos aritmticos, trigonomtricos e de manipulao e converso de dados mais comuns; assim, o programador no tem que reinventar a roda a cada programa que faz.
A este grupo de funes d-se s vezes o nome de biblioteca.
-
Algoritmos e Programao
String e Funes de Manipulao Como usar uma funo?
Em termos simples, uma funo pode ser usada em
qualquer lugar onde uma varivel tambm pode, a no ser, naturalmente, no "lado esquerdo da seta" em um comando de atribuio - uma funo produz (diz-se no linguajar dos programadores retorna) um valor, e no o recebe.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
Abs( expresso) - Retorna o valor absoluto de uma expresso do tipo inteiro ou real. Equivale a | expresso | na lgebra.
ArcCos( expresso) - Retorna o ngulo (em radianos) cujo co-seno representado por expresso.
ArcSen( expresso) - Retorna o ngulo (em radianos) cujo seno representado por expresso.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
ArcTan( expresso) - Retorna o ngulo (em radianos) cuja tangente representada por expresso.
Cos( expresso) - Retorna o co-seno do ngulo (em radianos) representado por expresso.
CoTan( expresso) - Retorna a co-tangente do ngulo (em radianos) representado por expresso.
Exp( base, expoente) - Retorna o valor de base elevado a expoente, sendo ambos expresses do tipo real.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
GraupRad( expresso) - Retorna o valor em radianos correspondente ao valor em graus representado por expresso.
Int( expresso) - Retorna a parte inteira do valor representado por expresso.
Log( expresso) - Retorna o logaritmo na base 10 do valor representado por expresso.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
LogN( expresso) - Retorna o logaritmo neperiano (base e) do valor representado por expresso.
Pi - Retorna o valor 3.141592.
Quad( expresso) - Retorna quadrado do valor representado por expresso.
RadpGrau( expresso) - Retorna o valor em graus correspondente ao valor em radianos representado por expresso.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
RaizQ( expresso) - Retorna a raiz quadrada do valor representado por expresso.
Rand - Retorna um nmero real gerado aleatoriamente, maior ou igual a zero e menor que um.
RandI( limite) - Retorna um nmero inteiro gerado aleatoriamente, maior ou igual a zero e menor que limite.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
Sen( expresso) - Retorna o seno do ngulo (em radianos) representado por expresso.
Tan( expresso) - Retorna a tangente do ngulo (em radianos) representado por expresso.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
Os valores que esto entre parnteses, representados pelas palavras como expresso, base e expoente, so os parmetros, ou como dizem alguns autores, os argumentos que passamos para a funo para que realize seus clculos e retorne um outro, que usaremos no programa. Algumas funes, como Pi e Rand, no precisam de parmetros, mas a maioria tem um ou mais. O valor dos parmetros naturalmente altera o valor retornado pela funo.
-
Algoritmos e Programao
Funes numricas, algbricas e trigonomtricas
Exemplo
-
Algoritmos e Programao
Funes para manipulao de cadeias de caracteres (strings)
Asc (s : caracter) : Retorna um inteiro com o cdigo ASCII do primeiro caracter da expresso.
Carac (c : inteiro) : Retorna o caracter cujo cdigo ASCII corresponde expresso.
Caracpnum (c : caracter) : Retorna o inteiro ou real representado pela expresso. Corresponde a StrToTin() ou StrToFloat() do Delphi, Val() do Basic ou Clipper, etc.
-
Algoritmos e Programao
Funes para manipulao de cadeias de caracteres (strings) Compr (c : caracter) : Retorna um inteiro contendo o
comprimento (quantidade de caracteres) da expresso.
Copia (c : caracter ; p, n : inteiro) : Retorna um valor do tipo caracter contendo uma cpia parcial da expresso, a partir do caracter p, contendo n caracteres. Os caracteres so numerados da esquerda para a direita, comeando de 1.
-
Algoritmos e Programao
Funes para manipulao de cadeias de caracteres (strings) Maiusc (c : caracter) : Retorna um valor caracter contendo a
expresso em maisculas.
Minusc (c : caracter) : Retorna um valor caracter contendo a expresso em minsculas.
Numpcarac (n : inteiro ou real) : Retorna um valor caracter contendo a representao de n como uma cadeia de caracteres.
-
Algoritmos e Programao
Funes para manipulao de cadeias de caracteres (strings) Pos (subc, c : caracter) : Retorna um inteiro que indica a
posio em que a cadeia subc se encontra em c, ou zero se subc no estiver contida em c.
Exemplo
-
Algoritmos e Programao
F I M
Algoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e ProgramaoAlgoritmos e Programao