Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceito
Um problema complexo pode ser simplificado quando dividido em vrios problemas menores. Como algoritmo uma seqncia de passos com o objetivo de solucionar um problema, ser mais fcil elaborar e entender um algoritmo se ns o dividirmos. Estes trechos menores de cdigo recebem vrios nomes, entre eles: mdulos, subalgoritmos, funes ou procedimentos.
Conceito
Um mdulo um trecho de um algoritmo independente com um objetivo determinado, simplificando o entendimento do algoritmo.
Vantagens
Dentre outras, podemos citar: Dividir e estruturar um algoritmo em partes logicamente coerentes; Facilidade de testar os trechos em separado; Evitar que uma certa seqncia de comandos necessria em vrios locais de um algoritmo tenha de ser escrita repetidamente nestes locais, diminuindo tambm o cdigo-fonte; Maior legibilidade de um algoritmo.
Procedimentos e Funes A linguagem utilizada pelo VisuAlg utiliza dois tipos de mdulos: Procedimentos Funes Uma funo, alm de executar uma determinada tarefa, retorna um valor para quem a chamou, que o resultado da sua execuo. (explicaremos melhor adiante)
Procedimentos e Funes
Cada mdulo, alm de ter acesso s variveis do programa que o chamou (so as variveis globais), pode ter suas prprias variveis (so as variveis locais), que existem apenas durante sua chamada. Ao se chamar um mdulo, tambm possvel passar-lhe determinadas informaes que recebem o nome de parmetros.
Exemplo PROCEDIMENTO
Exemplo PROCEDIMENTO
Escopo de variveis Todas as variveis que so declaradas na seo de declarao do programa principal (a varivel nome no exemplo anterior), podem ser utilizadas por todo o algoritmo, incluindo os procedimentos e funes. Essas variveis so denominadas Globais.
Escopo de variveis Em alguns casos, uma determinada varivel se faz necessria apenas em um mdulo especfico, neste caso, fazemos a declarao desta varivel dentro da sesso de declarao daquele mdulo (varivel i no exemplo anterior). Este tipo de varivel denominada de Varivel Local.
Visibilidade de variveis De acordo com o escopo da varivel, podemos especificar sua visibilidade. Podemos dizer que uma varivel global, vista pelo programa principal e por todos os mdulos pertencentes a ele. J uma varivel local, visvel ao mdulo em que ela foi declarada e aos mdulos hierarquicamente inferiores.
Exemplo2 PROCEDIMENTO
Exemplo2 PROCEDIMENTO
Exerccio de PROCEDIMENTOS
Escreva 2 algoritmos que implementem e utilizem os seguintes procedimentos: 1)Um procedimento chamado soma. Este procedimento receber como parmetros 2 nmeros informados pelo usurio e exibir na tela o total da soma entre eles. 2)Criar um algoritmo que receba um nmero de um usurio (de 1 a 12), passar este valor como parmetro para um procedimento chamado nome_do_mes, que escreve na tela o nome do ms referente ao nmero digitado. Caso seja um ms invlido, mostre uma mensagem na tela.
Funes Como mencionado anteriormente, o VisuAlg utiliza dois tipos de modularizao. Um deles, o procedimento, ns j conhecemos. O segundo, funo. Ambos so muito semelhantes, a diferena ser que, na funo, algum valor ser retornado onde ela foi chamada.
Declarao de Funes
funcao <nome-de-funo> [(<seqncia-dedeclaraes-de-parmetros>)]: <tipo-de-dado> // Seo de Declaraes Internas inicio // Seo de Comandos fimfuncao Como podemos ver, as diferenas na declarao, com relao aos procedimentos, so mnimas. A principal mudana fica por conta do <tipo-dedado> que informa qual tipo de dado ser retornado pela funo.
Declarao de Funes
funcao <nome-de-funo> [(<seqncia-dedeclaraes-de-parmetros>)]: <tipo-de-dado> // Seo de Declaraes Internas inicio // Seo de Comandos fimfuncao Como podemos ver, as diferenas na declarao, com relao aos procedimentos, so mnimas. A principal mudana fica por conta do <tipo-dedado> que informa qual tipo de dado ser retornado pela funo.
Exemplo 1 - FUNO
Exemplo 1 - FUNO
Exerccio FUNO Escreva um algoritmo que receba um nmero do usurio e, com uma funo, calcule e retorne o quadrado deste nmero. Por fim, informe o resultado ao usurio.
Passagem de parmetros por valor e por referncia. At agora passamos parmetros para nossos procedimentos e funes atravs de uma forma chamada passagem de parmetro por valor. Nesta operao, na chamada do mdulo, enviamos o valor de uma varivel (do programa que chama) para uma varivel local (do mdulo).
n n d n
4
d
n n
numero numero
4
d
n n
4 8
numero numero
4
d
n n
4 8
numero numero
4 8
d
n n
4 8
numero numero
4 8
d
n n
Exemplo
Exemplo
Passagem de parmetros por valor e por referncia. Na passagem de parmetros por referncia, o mdulo no recebe apenas um valor, mas sim o endereo de uma varivel global. Portanto, qualquer modificao que for realizada no contedo deste parmetro afetar tambm a varivel global que est associada a ele.
n n
n n
n n
8 8
n n
Exemplo
Exemplo
Funes Recursivas
Uma funo recursiva uma funo que chama a si prpria direta ou indiretamente por meio de outra funo. Na verdade, uma funo recursiva sabe resolver somente o(s) caso(s) mais simples ou caso(s) bsico(s). Se a funo for chamada com um caso bsico, ela retorna um resultado. Se a funo for chamada com um problema mais complexo, ela dividir o problema em partes menores.
Funes Recursivas A execuo de uma funo recursiva consiste em ir resolvendo subproblemas sucessivamente mais simples at se atingir o caso mais simples de todos, cujo resultado imediato.
Exemplo de Funo Recursiva Fatorial de n (n!) O fatorial de um nmero inteiro n nonegativo o produto de: nx(n-1)x(n-2)x...x1 onde 1! igual a 1 e 0! definido como 1. ex: 2! = 2 (2 x 1) 5! = 120 (5x4x3x2x1)