NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
Objetivos
No primeiro capítulo foi dito que um programa em C pode ser composto de uma ou mais funções, sendo que a única obrigatória é main(). Agora, estudaremos como utilizar outras funções em nossos programas.
Pré-requisitos
Para um melhor aprendizado é necessário que o leitor tenha acompanhado o artigo anterior, pois os artigos obedecem a uma seqüência.
Nota: Este artigo faz parte do curso de “Linguagem C – Básico”.
As funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:
Tipo_da_função nome_da_função (tipo var1, tipo var2,...,tipo varN)
{
corpo da função
}
O tipo da função pode ser qualquer um dos mostrados até agora e representa o tipo do dado que é retornado pela função. Caso a função não retorne nenhum valor dizemos que ela é do tipo void. E caso não seja especificado nenhum tipo, por padrão a função retorna um inteiro. Mas é importante lembrar que sempre se deve declarar o tipo da função garantindo assim maior portabilidade. Entre parênteses estão os parâmetros da função que é constituído pelos nomes das variáveis que se deseja passar para função separados por virgulas e acompanhados de seus respectivos tipos, como mostra a sintaxe acima. No caso da função não conter parâmetros a lista de parâmetros será vazia, mas mesmo assim será necessário utilizar os parênteses. No corpo da função vem o código em C, este código é privativo da função, ou seja, nenhuma outra função poderá acessa-la com nenhum comando, exceto por meio de uma chamada a função. Isso quer dizer que o código da função não pode afetar outras partes do programa, a menos que sejam utilizadas variáveis Globais. Isto porque as variáveis contidas em uma função são locais, só existem naquela função. Essas variáveis são criadas quando entram na função e destruídas ao sair.
Para entender melhor o uso de funções veja o exemplo abaixo. Este programa calcula o fatorial de um número qualquer.
No programa acima temos a função main() que é obrigatória em qualquer programa, nela pedimos para que o usuário digite o número que se deseja calcular o fatorial. Depois chamamos a função CalculaFatorial passando para ela o argumento Num. É necessário que o tipo dos argumentos (Num) usados para chamar a função seja compatíveis com o tipo de seus parâmetros (x). Caso contrario poderá ocorrer erros. Ao chamar a função que calcula o fatorial o valor do argumento contido na variável Num é copiado para o parâmetro x da função CalculaFatorial e qualquer modificação no seu valor é feito apenas na variável local x, não alterando o valor da variável usada na chamada.
O comando return usado no final da função é o responsável por retornar um valor para a instrução que o chamou, neste caso para a variável Fatorial. Que por sua vez é impressa na tela.
Através do protótipo usado no inicio do programa é possível que o compilador verifique se existem erros nos tipos de dados entre os argumentos usados para chamar uma função e a definição de seus parâmetros. Além de verificar se a quantidade de argumentos é igual a quantidade de parâmetros, caso contrario causará erros na execução do programa. A sintaxe para definir o protótipo de uma função é dada por:
tipo Nome_Da_Função(tipo parametro1, tipo parametro2,..., tipo parametroN);
Caso a função não utilize nenhum parâmetro deve-se utilizar o void. Dessa forma teríamos:
tipo Nome_Da_Função(void);
É importante lembrar que antes que a função seja usada pela primeira vez é necessário que ela seja declarada. Isso ocorre devido o compilador C (em sua grande maioria) por padrão assume que uma função devolve um valor inteiro. Portanto se alguma função devolver um tipo diferente de inteiro o compilador gera um código errado para chamá-la. Por esse motivo que é importante declarar o tipo que a função retorna no inicio do programa e isso pode ser feito utilizando os protótipos. Além dos protótipos existe um outro método que era muito usado quando a linguagem C foi inventa, no entanto hoje ela é considerada obsoleta. Porém existem alguns programas que ainda usa este método obsoleto, dessa forma sua declaração seria:
tipo Nome_Da_Função();
A diferença deste método para o do protótipo é que neste mesmo que a função tenha argumentos não é preciso de declara-los. Na verdade o protótipo é uma extensão deste método.
Veja um outro exemplo de programa que utiliza função:
Neste ultimo programa, temos uma função que tem como parâmetros os coeficientes de uma equação do tipo: . Esta função verifica se a for igual a zero identificando assim a equação como sendo do 2º Grau e posteriormente se delta é maior ou igual a zero, caso seja a equação será resolvido pela formula de baskara. Caso delta seja menor que zero será impresso a seguinte mensagem: “Não foi possível calcular x1 e x2, pois são números imaginários”. Se a diferente de zero a equação será do 1º grau, então verifica se b é igual a zero, caso seja não terá solução, pois não pode haver divisão por zero. A função CalculaEquacao é do tipo void pois não retorna nenhum valor para função main(). Exatamente por esse motivo a função principal apenas chama a CalculaEquacao. A biblioteca “math.h” foi inserida pela diretiva include, ou seja, a linha “#include <math.h>” foi inserida no programa para que as funções pow() e sqrt() pudessem ser utilizadas. A função pow() calcula a base elevada à uma potencia. Já a função sqrt() calcula a raiz quadrada de um número. Estas e outras funções pertencentes à biblioteca math.h serão descritas e estudas com mais detalhes no decorrer deste tutorial.
No exemplo anterior não foi utilizada a função return, pois nenhum valor necessitou ser devolvido. Neste caso o programa retorna à função que a chamou quando o ultimo comando (}) da função CalculaEquacao for encontrado. É claro que a chave não estará no código-objeto do programa, mas pode-se imaginar como se estivesse. O código-objeto nada mais é do que o código contendo as instruções traduzidas para a linguagem de maquina.
Neste artigo vimos como utilizar funções em nossos programas, facilitando assim o entendimento do código. Através desse estudo conclui-se que as funções devem obedecer à sintaxe apresentada neste trabalho onde deve ser definidos o tipo de dado que a função retorna, os parâmetros e os seus respectivos tipos. Os tipos dos argumentos e dos parâmetros das funções devem ser compatíveis. Do mesmo modo a quantidade de argumentos deve ser igual as dos parâmetros. Para que a função retorne um valor utiliza-se return. Foi visto também que as funções devem ser declaradas antes de serem chamadas e isto pode ser feito utilizando os protótipos de funções. Lembre-se que o compilador C por padrão define que toda função retorna um valor inteiro, portanto é necessário muito cuidado caso a função retorne um tipo diferente de inteiro. Todas essas informações foram apresentadas através de exemplos simples e práticos. Com isso verifica-se que o uso de funções em nossos programas são indispensáveis.
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI