Você está na página 1de 5

Sub-algoritmos Algoritmos e Estrutura de Dados

Funes e Procedimentos
Em geral, um programa executado linearmente, uma linha aps a outra, at o fim Entretanto, quando so utilizados sub-algoritmos, possvel a realizao de desvios na execuo natural dos programas Assim, um programa executado linearmente at a chamada de um subalgoritmo Com a chamada, o programa chamador temporariamente suspenso e o controle passado para o sub-algoritmo que executado Ao terminar o sub-algoritmo, o controle retorna para o programa chamador Tipos de Sub-algoritmos:
Funes (functions) Procedimentos (procedures)
Aula 9 Algoritmo Funes e Procedimentos

M. Sc. Luiz Alberto lasf.bel@gmail.com

Prof. Luiz Alberto -

Funo
um subprograma iniciado pela palavra reservada funo, seguida de um identificador que fornece um nome a funo, uma lista de parmetros, alm de um tipo de dado vlido para retornar o resultado encontrado pela mesma. A lista de parmetros consiste nos valores que o algoritmo principal possui e o subprograma precisa usar para obter, ou gerar, outro dado importante na soluo almejada pelo algoritmo.

Forma geral de uma funo


Uma funo possui somente dois momentos importantes no algoritmo: Primeiro momento o da declarao e especificao das tarefas/operaes (seu corpo) que a funo dever executar; Segundo momento a utilizao ou acionamento da funo que pode acontecer vrias vezes depois da sua criao e dentro do algoritmo no qual ela tambm faz parte.

Aula 9 Algoritmo Funes e Procedimentos

Prof. Luiz Alberto -

Aula 9 Algoritmo Funes e Procedimentos

Prof. Luiz Alberto -

Parmetros da funo
Os parmetros de uma funo so dados fundamentais que a funo deve ter acesso para alcanar seu objetivo. Por exemplo, se voc tem uma funo denominada media que calcula a mdia aritmtica de dois nmeros, essencial que essa funo "saiba" quais so os nmeros que sero usado para o clculo da mdia, do contrrio, ela no pode efetuar os clculos. Pois bem, esses dois nmeros sero disponibilizados funo por meio de parmetros.

Parmetros da funo
funcao media (num_1 : real; num_2 : real) : real var resultado : real inicio resultado <- (num_1 + num_2) / 2 retorne(resultado) fimfuncao
Aula 9 Algoritmo Funes e Procedimentos

Aula 9 Algoritmo Funes e Procedimentos

Prof. Luiz Alberto -

Prof. Luiz Alberto -

Algoritmo Completo
algoritmo "media por aluno var nota_1, nota_2, total : real // Subprogramas funcao media (valor_1, valor_2: real) : real var resultado : real inicio resultado <- (valor_1 + valor_2) / 2 retorne (resultado) fimfuncao inicio // algoritmo principal escreva("Digite a primeira nota: ") leia(nota_1) escreva("Digite a segunda nota: ") leia(nota_2) total<-media(nota_1,nota_2) escreva("A mdia das duas notas : ",total) fimalgoritmo Aula 9 Algoritmo Funes e Procedimentos

Instruo de Retorno
Um subprograma sempre retorna uma valor ao algoritmo que o aciona, por isso ele possui um tipo de dado declarado, retornando ao acionador um dado exatamente deste tipo. A instruo retorne executa o encerramento do subprograma, retornando imediatamente um nico valor desejado a instruo acionadora da funo. Esta instruo s pode retornar um nico valor ao acionador.

Prof. Luiz Alberto -

Aula 9 Algoritmo Funes e Procedimentos

Prof. Luiz Alberto -

Exemplo 2
algoritmo "iguais_ou_diferentes var num1,num2,total: inteiro verifica:logico funcao compara(a,b:inteiro):logico var resultado:logico inicio se a = b entao resultado <- verdadeiro senao resultado <- falso fimse retorne(resultado) fimfuncao inicio escreva("Digite o primeiro nmero: ") leia(num1) escreva("Digite o primeiro nmero: ") leia(num2) verifica<-compara(num1,num2) se verifica entao escreva("Os nmeros so iguais") senao escreva("Os nmeros so diferentes") fimse fimalgoritmo
Prof. Luiz Alberto -

Fluxograma

Aula 9 Algoritmo Funes e Procedimentos

Aula 9 Algoritmo Funes e Procedimentos

Prof. Luiz Alberto -

Variveis Locais e Globais


Uma varivel considerada global quando sua declarao acontece no algoritmo principal, enquanto que uma varivel considerada local quando a sua declarao acontece em um subprograma.

Variveis Locais e Globais


Varivel Global
Declarao feita no algoritmo principal; Todos os subprogramas do algoritmo principal podem acessar e manipular o valor armazenado por um componente global; Tambm chamado de componente pblico, pois oferece o acesso de todos os subprogramas existentes no algoritmo principal.

Varivel Local
Declarao feita no subprograma de um algoritmo principal; Somente o subprograma que declara o componente pode acess-lo, ou os subprogramas hierarquicamente desenvolvidos aps este subprograma, tornando este subprograma um algoritmo principal para os seus subprogramas; Todos os componentes criados em um subprograma so locais, sendo destrudos quando tal subprograma encerrado (deixam de existir na memria do computador).
Aula 9 Algoritmo Funes e Procedimentos

Aula 9 Algoritmo Funes e Procedimentos

10

Prof. Luiz Alberto -

11

Prof. Luiz Alberto -

Procedimento
Consiste em um subprograma iniciado pela palavra reservada procedimento, seguida de um identificador que lhe fornece um nome e sua lista de parmetros. Nenhum procedimento possui tipo de dado de retorno, como em uma funo, pois este tipo de subprograma no retorna nenhum valor ao seu chamador (acionador).

Procedimento
Um procedimento possui dois momentos no algoritmo:
Primeiro momento o da declarao, onde elaborado o cabealho da funo coerente com as suas necessidades e a descrio das tarefas/operaes que ele realizar quando for acionado (seu corpo); Segundo momento a utilizao ou acionamento do procedimento que pode acontecer vrias vezes depois da sua criao e dentro do algoritmo no qual ela tambm faz parte.

Aula 9 Algoritmo Funes e Procedimentos

12

Prof. Luiz Alberto -

Aula 9 Algoritmo Funes e Procedimentos

13

Prof. Luiz Alberto -

Procedimento - Exemplo
procedimento maioridade (idadeAuxiliar : inteiro) var // sem necessidade da criao de componentes locais inicio se (idadeAuxiliar < 18) entao escreva("Indivduo menor de idade.") senao escreva("Indivduo maior de idade.") fimse fimprocedimento

Procedimento - Exemplo
algoritmo "maiorIdade var idade: inteiro procedimento maioridade (idadeAuxiliar : inteiro) var inicio se (idadeAuxiliar < 18) entao escreva("Indivduo menor de idade.") senao escreva("Indivduo maior de idade.") fimse fimprocedimento inicio // Seo de Comandos escreva("Digite a idade do indivduo: ") leia(idade) escreval maioridade(idade) fimalgoritmo

Aula 9 Algoritmo Funes e Procedimentos

14

Prof. Luiz Alberto -

Aula 9 Algoritmo Funes e Procedimentos

15

Prof. Luiz Alberto -

Caractersticas Relevantes da Programao Modular


Reutilizao de cdigo com aproveitamento da lgica existente no subprograma; Subprogramas devem ser genricos o bastante para se adaptarem as diversas situaes, visando justamente essa reutilizao; A passagem de parmetros possibilita o envio de diferentes valores para um mesmo subprograma, que realizar as operaes necessrias sobre estes dados;
1. 2. 3. 4.

Exerccios
Faa uma funo que verifique o sinal de um nmero inteiro, retornando -1 se o nmero for negativo, 0 se o nmero for nulo e 1 se o nmero for positivo. Faa uma funo que retorne xy , sendo dados x e y inteiro como parmetros de entrada. Escreva um programa que calcule a potncia de um nmero lido. Faa um programa que l 3 valores e os envia para uma funo que retorna por parmetro as razes da formula de baskara. Fazer uma funo que receba como parmetro um nmero inteiro e retorne VERDADEIRO se ele for primo e FALSO em caso contrrio. Use esta funo para imprimir todos os nmeros primos entre 0 e 100. Fazer um programa para calcular as reas de um quadrado e um tringulo retngulo usando funes. O usurio deve informar inicialmente qual rea que deseja calcular: quadrado ou tringulo retngulo. Faa um programa que l 2 valores e uma operao(*,/,+,-) e envia para uma funo que retorna pelo parmetro, o resultado da operao (use escolha).

5.

6.

Aula 9 Algoritmo Funes e Procedimentos

16

Prof. Luiz Alberto -

Aula 9 Algoritmo Funes e Procedimentos

17

Prof. Luiz Alberto -

Você também pode gostar