12
Rotinas Funções APROG (Civil) Aula 14

Teoricas VBA - Aula 14 - Funcoes e subrotinasasilva/resources/APROG/Documentos/Teoricas... · Funções como “caixas pretas” ... Uma função para poder trabalhar precisa de dados,

  • Upload
    vanngoc

  • View
    243

  • Download
    0

Embed Size (px)

Citation preview

RotinasFunções

APROG (Civil)Aula 14

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