Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Computação Para Ciências Humanas 1o semestre de 2017 Renata Wassermann renata@ime.usp.br (slides adaptados do Prof. Gerosa) Definições • Muitas funções já foram utilizadas nas aulas, como: = soma(num1; num2; ...) = média(num1;num2;...) = E(condição1;condição2) • Funções recebem valores, realizam operações e retornam o resultado. • Elas podem ser usadas na planilha Excel após o sinal “ = “ • As funções podem ser utilizadas nas planilhas ou nas macros Criando uma função no VBA Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno 'aqui vão os comandos da função NomeDaFuncao = ValorDeRetorno End Function Criando uma função no VBA • As três partes da função: • Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e o tipo de dado que a função retornará Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno 'aqui vão os comandos da função NomeDaFuncao = ValorDeRetorno End Function Criando uma função no VBA • As três partes da função: • Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e o tipo de dado que a função retornará • Corpo da Função: comandos necessários para a função realizar a tarefa desejada Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno 'aqui vão os comandos da função NomeDaFuncao = ValorDeRetorno End Function Criando uma função no VBA • As três partes da função: • Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e o tipo de dado que a função retornará • Corpo da Função: comandos necessários para a função realizar a tarefa desejada • Término da Função: retorno do valor e finalização da função Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno 'aqui vão os comandos da função NomeDaFuncao = ValorDeRetorno End Function Criando uma função no VBA • As três partes da função: • Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e o tipo de dado que a função retornará • Corpo da Função: comandos necessários para a função realizar a tarefa desejada • Término da Função: retorno do valor e finalização da função • Os parâmetros são separados por vírgulas e, na chamada dela de dentro de uma planilha, utiliza-se o ponto-e-vírgula Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno 'aqui vão os comandos da função NomeDaFuncao = ValorDeRetorno End Function Exemplo 1 • Função que soma dois números inteiros Para fazer esta função, são necessários dois números. Estes dois números inteiros serão os parâmetros da função A função deverá calcular a soma destes dois números, logo, o retorno desta função será o resultado deste cálculo, do tipo inteiro Function SomaDoisNumeros(Num1 As Integer, Num2 As Integer) As Long SomaDoisNumeros = Num1 + Num2 End Function Dica Aperte a tecla F9 para atualizar os cálculos de uma planilha depois de atualizar uma função Uso de Funções nas Macros Pode-se também utilizar a função dentro de uma Macro, observe a mesma função SomaDoisNumeros sendo utilizada de dentro da Macro Function SomaDoisNumeros(Num1 As Integer, Num2 As Integer) As Long SomaDoisNumeros = Num1 + Num2 End Function Sub testarFuncao() Cells(1, 1) = SomaDoisNumeros(12, 24) End Sub Exemplo 2 • Defina um procedimento de nome ehPar que dado um argumento do tipo inteiro devolve True se o argumento for um inteiro par e False caso contrário. Exemplo 2 • Defina um procedimento de nome ehPar que dado um argumento do tipo inteiro devolve True se o argumento for um inteiro par e False caso contrário. Function ehPar (num As Integer) As Boolean If num Mod 2 = 0 Then ehPar = True Else ehPar = False End If End Function Exercícios • Desenvolva as seguintes funções: 1. raizDaEquacao1Grau que recebe dois parâmetros: a, b e retorna a raiz da equação ax + b = 0 Function raizDaEquacao1Grau(v1 As Double, v2 As Double) As Double raizDaEquacao1Grau = -v2 / v1 End Function Exercícios • Desenvolva as seguintes funções: 2. somaDigitos que recebe um número inteiro positivo e retorna a soma dos seus dígitos. Exemplo: 12345 resultado: 15 Function somaDigitos(num As Long) As Long somaDigitos = 0 While num > 0 somaDigitos = somaDigitos + (num Mod 10) num = num \ 10 Wend End Function Sub testaSomaDigitos() Cells(1, 2) = somaDigitos(Cells(1, 1)) End Sub Exercícios • Desenvolva as seguintes funções: 3. parOuImpar que recebe um número inteiro positivo e retorna "Par" se o número for par e "Ímpar" caso contrário. Function parOuImpar(x As Integer) As String If x Mod 2 = 0 Then parOuImpar = "Par" Else parOuImpar = "Ímpar" End If End Function Sub testaparOuImpar() Cells(1, 2) = parOuImpar(Cells(1, 1)) End Sub Exercícios • Desenvolva as seguintes funções: 4. ehDivisivel que recebe dois números a e b e retorna uma mensagem dizendo se o primeiro é divisível pelo segundo ou não Function ehDivisivel(v1 As Double, v2 As Double) As Boolean If v1 Mod v2 = 0 Then ehDivisivel = True Else ehDivisivel = False End If End Function Sub testaehDivisível() If ehDivisivel(Cells(1, 1), Cells(1, 2)) Then Cells(1, 3) = "É Divisível" Else Cells(1, 3) = "Não é divisível" End If End Sub Exercícios • Desenvolva as seguintes funções: 5. fat que recebe um número inteiro positivo e retorna o seu fatorial Function fat(num As Integer) As Long fat = 1 While num > 0 fat = fat * num num = num - 1 Wend End Function Sub testaFatorial() Cells(1, 2) = fat(Cells(1, 1)) End Sub Exercícios • Desenvolva as seguintes funções: 6. produtoria que recebe dois números inteiros a e b e devolve a produtória a * (a+1) * (a+2) * ... * b. Você pode considerar 0 < a < b Function produtoria(v1 As Integer, v2 As Integer) As Long produtoria = 1 While v1 <= v2 produtoria = produtoria * v1 v1 = v1 + 1 Wend End Function Sub testaProdutoria() Cells(1, 3) = produtoria(Cells(1, 1), Cells(1, 2)) End Sub Perguntas???
Compartilhar