Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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
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.
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
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
10
11
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.
12
13
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
14
15
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.
16
17