WINDOWS SERVER 2008 - CURSO COMPLETO - JÚLIO BATTISTI - CLIQUE AQUI
Você está em: PrincipalTutoriaisKatiaduarte : Cbasico006
Quer receber novidades e e-books gratuitos?
›››

Conheça o Júlio Battisti

Julio Battisti - Autor de mais de 25 livros de informática Júlio Battisti tem mais de 36 livros publicados, dezenas de e-books e é certificado Microsoft.

Ganhe o a Seguir

 grátis Windows 7 Básico

476h



Windows Server 2008 - Inscreva-se já!

Curta Nossa Fanpage

Loja Virtual do Site

Livros do Julio Battisti

FILTRO DE TUTORIAIS:




Linguagem C – Funções

 

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”.

 

Funções

 

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.

 

Conclusão

 

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.

Windows Server 2008 - Inscreva-se já -s Últimas Vagas! Curso Completo de SAP!

Universidade PHP - Inscreva-se já -s Últimas Vagas! Curso Online de Java para Iniciantes!

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Vídeo-Aulas

  • Access
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • E-books

  • Access
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • Livros

  • Administração
  • Excel
  • Programação
  • Windows/Linux
  • Redes
  • + Todas as categorias
  • Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Conteúdo Gratuito

  • +1500 Artigos e Tutoriais
  • ASP 3.0
  • ASP.NET
  • Access Básico
  • Access Avançado
  • Excel Básico - 120 lições
  • Excel Avançado - 120 lições
  • SQL Server 2005
  • Windows 7
  • Windows XP
  • Windows 2003 Server
  • Windows 2008 Server
  • Novidades e E-books grátis

    Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



    Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

  • Júlio Battisti Livros e Cursos Ltda
  • Rua Vereador Ivo Cláudio Weigel, 537 Universitário
  • Santa Cruz do Sul/RS
  • CEP 96816-208

  • Atendimento: (51) 3717-3796 - webmaster@juliobattisti.com.br Todos os direitos reservados, Júlio Battisti 2001-2014 ®