next up previous contents
Next: Comandos de Seleção (IF-THEN Up: Técnicas de Programação Utilizando Previous: Introdução à Manipulação de

Programação e Utilização de Funções

Além de números e referências a células, as fórmulas em uma planilha podem conter Chamadas de Funções.

Uma chamada de função tem o formato Nome-da-Função( Lista-de-Parâmetros), onde Nome-da-Função é um nome qualquer iniciando com uma letra (de A a Z) e Lista-de-Parâmetros é um número fixo de parâmetros que precisam ser fornecidos na ordem correta. Os parâmetros no Microsoft Excel para Windows em português são separados por `;' e no Microsoft Excel para Windows em inglês por `,'. Os parâmetros podem ser:

1.
números;
2.
referências a células;
3.
expressões aritméticas quaisquer.

No exemplo abaixo vemos uma função de nome JurosSimples com 3 parâmetros. Os dois primeiros parâmetros são referências a células e o último é um número. Neste caso, o primeiro parâmetro deve conter o Capital Inicial, o segundo a Taxa de Juros Mensal e o terceiro o Número de Meses. A função deve retornar o capital final calculado a juros simples:
  A B C $\ldots$
1 1000 25 =JurosSimples(A1; B1; 6)  
$\vdots$        
O Símbolo de `=' na frente da chamada de função indica que a chamada da função ocorre dentro de uma fórmula. Num exemplo um pouco mais sofisticado, temos expressões aritméticas passadas como parâmetros:
  A B C $\ldots$
1 1000 25 =JurosSimples(A1/2; B1+10; 6)  
$\vdots$        
Uma chamada a função pode ocorrer em uma fórmula exatamente nos mesmos lugares em que podem ocorrer números ou referências a células. Muitas vezes, como nos exemplos acima, a fórmula contém apenas a chamada da função. Suponhamos agora que nós temos a função de nome INT que recebe como parâmetro um número e retorna a parte inteira do número. Por exemplo, na situação abaixo a fórmula deve retornar o valor 5, resultado da soma da parte inteira de 2,5 com 3.
  A B $\ldots$
1 2,5 =INT(A1)+3  
$\vdots$      
As funções no Excel são divididas em dois tipos:

1.
funções pré-definidas: estas funções ``vêm dentro'' do Excel. A função INT do exemplo acima é uma função pré-definida. Há uma lista bastante grande destas funções, mas não nos ocuparemos dela agora.
2.
funções programadas: estas funções não existem ``dentro'' do Excel e nós precisamos criá-las. Ou seja, precisamos programar a função para que depois possamos usá-la numa planilha (ou numa outra função). Por exemplo, a função JurosSimples acima não existe pré-definida e se quisermos usá-la precisaremos programá-la. Boa parte dos próximos capítulos será dedicada a ensinar como se programa uma função. Vamos agora começar a examinar os ingredientes necessários para a construção de uma função.
O primeiro passo necessário para construir uma função é criar um Módulo. Toda função que definirmos deverá estar dentro de um módulo. Para criarmos um módulo no Excel basta ativarmos o menu Inserir|Macro|Módulo (nas versões mais recentes do Excel este procedimento pode ser diferente). Uma vez criado, o módulo passa a ser parte integrante do documento, da mesma forma que as várias planilhas que compõem o documento, e vai ser salvo e aberto junto com o documento.

Um módulo, tal como uma planilha, também possui um nome, que fica localizado na aba na parte inferior da janela do Excel. Dentro do módulo podemos definir uma ou mais funções. Todas as funções definidas nos módulos podem ser chamadas de qualquer planilha do mesmo documento.

A definição de uma função possui 3 partes:

1.
o cabeçalho: informa que estamos definindo uma função, qual o seu nome, quais são seus parâmetros e que tipo de valor a função retorna.
2.
o corpo da função: é a parte que define qual a computação que deverá ser processada quando a função for chamada.
3.
o término da função: indica que terminou a definição da função.

Uma outra função poderá ser definida logo em seguida. O formato genérico de uma função é o seguinte:

Function NomeDaFunção( Param1 As Tipo, ..., ParamN As Tipo ) As Tipo
Aqui vem o corpo da função
NomeDaFunção = Valor de Retorno
End Function

As palavras em negrito são palavras reservadas da linguagem e devem aparecer desta forma e nesta posição. A primeira linha é o cabeçalho; a última linha é o término. Tudo que fica entre o cabeçalho e o término é o corpo da função. Note que imediatamente antes do término da função colocamos a expressão de retorno da função. Vamos agora detalhar os elementos que aparecem na definição da função. O cabeçalho da função possui o formato genérico Function NomeDaFunção( Param1 As Tipo, ..., ParamN As Tipo ) As Tipo. Um exemplo de cabeçalho de função é o seguinte: Function JurosSimples( CapitalInicial As Double, Taxa As Double, NMeses As Integer ) As Double. Neste exemplo, vemos que o nome da função é JurosSimples, e que a função possui 3 parâmetros. Cada parâmetro é uma variável do programa, e está associado a um tipo de dados. No exemplo, temos dois tipos de dados sendo usado: o tipo Double, que indica que a variável deve ser tratada como um número real (com parte inteira e fracionária); e o tipo Integer, que indica que a variável deve ser tratada como um número inteiro. Os parâmetros são separados por meio de vírgulas. Note que a função como um todo também está associada a um tipo de retorno, que é o tipo de dado retornado pela função; no caso, o tipo Double. Note também que o cabeçalho foi dividido em várias linhas.

Cada comando do programa (inclusive o cabeçalho) deve ser colocado inteiramente numa linha. Quando isto não é possível, precisamos indicar que a próxima linha é, na realidade, continuação da linha anterior. Fazemos isso colocando o símbolo de sublinhado no final da linha.

Vejamos agora um programa completo que calcula juros simples:

Function JurosSimples( CapitalInicial As Double,
Taxa As Double, NMeses As Integer ) As Double
Dim CapitalAcrescido As Double
CapitalAcrescido = CapitalInicial * (Taxa/100) * NMeses
JurosSimples = CapitalInicial + CapitalAcrescido
End Function

A primeira observação é que o programa é basicamente uma manipulação de variáveis. Neste programa, temos as seguintes variáveis: CapitalInicial, Taxa, NMeses, CapitalAcrescido, JurosSimples. Varíaveis são os elementos do programa que armazenam informações. A informação armazenada em uma variável é o seu conteúdo. O nome da variável (por exemplo CapitalInicial no exemplo acima) é fixo, mas o seu conteúdo pode mudar (daí o nome variável). Toda variável tem um tipo (Integer, Double, etc.). As variáveis que constam no cabeçalho da função têm seu tipo declarado no próprio cabeçalho. As variáveis internas devem ser declaradas com seus respectivos tipos. No exemplo acima, temos a declaração Dim CapitalAcrescido As Double que declara a variável interna CapitalAcrescido como sendo do tipo Double, ou seja, um número real calculado usando dupla precisão. Para alterarmos o valor de uma variável, usamos um comando de atribuição. Por exemplo, o comando CapitalAcrescido = CapitalInicial * (Taxa/100) * NMeses no exemplo acima, que atribui o resultado da expressão à variável CapitalAcrescido.

Observe que o comando de atribuição é diferente da igualdade algébrica com que estamos habituados: por exemplo, os comandos

X = 0
X = 1

apresentados nessa sequência são perfeitamente coerentes, atribuindo o valor 0 à variável X e posteriormente o valor 1 à mesma variável. Isso não é o mesmo que afirmar que 0 = 1. Como um outro exemplo, o comando X = X+1 soma 1 ao valor atual de X e atribui o resultado como novo valor de X. Obviamente, essa expressão não faria sentido se a interpretássemos como uma indicação de igualdade.

Até aqui já utilizamos dois tipos de dados: números inteiros (Integer) e reais (Double). Mais adiante também encontraremos o tipo String, que é o tipo de dados das variáveis que armazenam texto. Também encontraremos o tipo Boolean, que é um tipo de dados que possui apenas 2 dois valores: TRUE e FALSE.


Exercícios

1.
Faça uma função CMparaPOL que recebe uma medida em centímetros e a devolve em polegadas, onde 1 polegada = 2,54 cm. Faça também a função inversa POLparaCM, que converte de polegadas para centímetros.

2.
Considere um polinômio do segundo grau p(x) = a * x2 + b*x + c.
(a)
Escreva uma função PDEX que recebe números reais (isto é, números do tipo DOUBLE) a, b, c e x e calcula o valor de um polinômio do segundo grau. Use uma variável interna que armazena o valor de x2.
(b)
Crie uma planilha com três colunas, que avalia o polinômio p(x) = x2 - 7*x + 12 para valores de x de 0 a 10. A primeira coluna contém os valores de x, a segunda os de p(x) e a terceira escreve o texto ``Raiz'' caso p(x) seja 0; caso contrário não escreve nada.
3.
Considere uma equação do segundo grau a * x2 + b*x + c = 0.

(a)
Escreva uma função DELTA, que recebe como parâmetros os números reais a, b e c e retorna o valor do discriminante da equação, b2 -4ac.
(b)
Crie uma planilha de 5 colunas. As três primeiras contêm os coeficientes da equação do segundo grau. A quarta contém o valor do discriminante. A quinta contém o texto:
  • ``Uma única raiz'', se o discriminante for nulo.
  • ``Nenhuma raiz real'', se o discriminate for negativo.
  • ``Duas raizes reais'', se o discriminante for positivo.
(c)
Invente valores para as três primeiras colunas que gerem os três tipos de determinante. Insira uma sexta coluna que, no caso de discriminante nulo, calcula esta raiz única, que será igual a -b/2a.


next up previous contents
Next: Comandos de Seleção (IF-THEN Up: Técnicas de Programação Utilizando Previous: Introdução à Manipulação de
Flavio Soares Correa da Silva
2000-04-10