Upload
vanngoc
View
243
Download
0
Embed Size (px)
Citation preview
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Conteúdo das próximas 2 aulas
● Rotinas - Conceito e Aplicação– O que são e para que servem as funções e sub-
rotinas● Funções
– Sintaxe e exemplos de aplicação
● Sub-rotinas (procedimentos)– Sintaxe e exemplos de aplicação– Passagem de parâmetros por valor e referência
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Rotinas
● Conceito– Boa parte das linguagens de programação permite
agrupar instruções em blocos autónomos que podem ser chamados durante a execução dum programa.
– O mecanismo de “subcontratação” permite simplificar os programas, estruturando o código em segmentos auto-suficientes e reutilizáveis.
● Tipos de Rotinas– Função - baseada no conceito matemático de função,
devolvendo obrigatoriamente um único valor.– Sub-rotina (ou procedimento) - oferece um
mecanismo de “sub-contratação” de tarefas.
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Funções
FunçãoInformação Resultado
Sin()Função standard
ângulo seno
Função
Funções como “caixas pretas”
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Funções - Sintaxe
Funções criadas pelo programador
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Exemplo
Criar uma função que calcule a margem de lucro percentual de um produto, sabendo o seu custo e o seu preço de venda. Supõe-se que esses dados se encontrarão previamente armazenados em duas células da folha de cálculo.
Public Function margemLucro(venda, custo) As singlemargemLucro = (venda − custo) / venda
End Function
Figura 33: Funções como caixas pretas
7.1 Exemplo de função criada pelo programadorVamos agora criar uma função que permita calcular a margem de lucro percentual de um
determinado produto sabendo o seu custo e o seu preço de venda. Supõe-se que esses
dados se encontrarão previamente armazenados em duas células da folha de cálculo. Uma
solução possível será a seguinte:
Listing 10: Função margemLucro
1 Public Function margemLucro ( venda , custo )
2 margemLucro = ( venda − custo ) / venda
3 End Function
Observe-se que esta função possui dois parâmetros de entrada, venda e custo, através
dos quais receberá os dados correspondentes. Note-se ainda que o resultado da expressão
que calcula a margem de lucro é atribuído directamente ao próprio nome da função. É
esse o processo pelo qual uma função consegue fornecer o resultado do seu trabalho à
entidade que a invocou.
Esta função poderá ser utilizada em qualquer fórmula contida numa célula da folha de
cálculo, das mesma maneira que qualquer das funções pré-existentes o seria. Um exemplo
de uma fórmula utilizando esta função seria a descrita na Figura 34.
Figura 34: Utilização da função margemLucro numa fórmula
59
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Exemplo
● Elabore uma função capaz de calcular o factorial de um número.
– Fórmula do factorial:
– os factoriais crescem muito rapidamente, pelo que é conveniente usar o tipo de dados Double, apesar de os factoriais serem valores inteiros.
Como utilizar a função?
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Exemplo de aplicação
● Elabore um programa que calcule combinações● Resolução
– Fórmula:
Em que n é a população e p a amostra.
– Vai-se utilizar no cálculo a função factorial desenvolvida atrás.
– Um exemplo de aplicação do programa seria o cálculo do número de combinações possíveis do Totoloto [ C(49,6) ].
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Resolução - interface
txtN - textbox para introduzir a população
txtP - textbox para introduzir a amostra
lblComb - label para apresentar o resultado
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Resolução - código
lblComb.Caption
lblComb.Caption
n é uma variável do programa
n é o parâmetro da função
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Cálculo do Nº de combinações
1. lblComb.Caption = fact(n) / fact(n - p) / fact(p)
2. lblComb.Caption = fact(12) / fact(12 - 5) / fact(5)
3. lblComb.Caption = fact(12) / fact(7) / fact(5)
4. lblComb.Caption = 479001600 / 5040 / 120
5. lblComb.Caption = 792
6. lblComb.Caption 792
Passo a Passo:
Funções e Sub-rotinasISEP–DEI, Angelo Martins © 2006ISEP-DEI, António Silva, © 2007
APROGCivil Questões essenciais sobre Funções
Uma função para poder trabalhar precisa de dados, que lhe são passados através de parâmetros.
O resultado produzido por uma função é devolvido ao programa que a chamou, através do seu próprio nome.
Entrada de dados
Saída do resultado