Windows Vista - Curso Completo - 1476 páginas Windows Server 2003 - Curso Completo SQL Server 2005 - Curso Completo 1500 Tutoriais de Informática Windows Vista - Curso Completo - 1476 páginas Curso Completo de Access Certificações Microsoft

Você está aqui: Principal » Lista Completa de Tutoriais

Sobre este Tutorial

Autor: Kátia Duarte
Data: 18-10-2005
Categoria: Programação
Assunto: C - BÁSICO
Visitas: 73594
E-mail: katchuskaduarte@yahoo.com.br
Site:
Avaliação: (108 votos)
1 2 3 4 5
Comentários: Ler / Escrever

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.

 

LISTA DE TODOS OS TUTORIAIS DISPONÍVEIS

 

CURSO EM FORMATO DE VÍDEO-AULA
EXEMPLOS PRÁTICOS PASSO A PASSO COM SOM E IMAGEM
Clique no curso para informações detalhadas
Curso Duração Mais informações
DVD - Conversão de Formatos Digitais: Áudio e Vídeo 1 h 26 min Clique aqui
DVD - Curso de Oratória - Falando em Público sem Medo 33 min Clique aqui
Vídeo-Aula - Access 2007 Básico 2 h 1 min Clique aqui
Vídeo-Aula - Aprenda a Criar uma Agenda Telefônica no Excel 40 min Clique aqui
Vídeo-aula - Concursos: Inglês ESAF - Simulados e Provas Comentadas 2 h Clique aqui
Vídeo-Aula - Criação de Sites - Curso Básico 2 h 53 min Clique aqui
Vídeo-Aula - Curso Autocad 2D 4 h Clique aqui
Vídeo-Aula - Curso Autocad 3D 3 h 45 min Clique aqui
Vídeo-Aula - Curso Avançado de Access 2003 2 h 48 min Clique aqui
Vídeo-Aula - Curso Avançado de Excel 2003 3 h 41 min Clique aqui
Vídeo-Aula - Curso Avançado de Word 2003 1 h 34 min Clique aqui
Vídeo-Aula - Curso Básico de Access 2003 2 h 49 min Clique aqui
Vídeo-Aula - Curso Básico de Excel 2003 3 h 3 min Clique aqui
Vídeo-Aula - Curso Básico de PowerPoint 2003 2 h 22 min Clique aqui
Vídeo-Aula - Curso Básico de Windows XP 2 h 36 min Clique aqui
Vídeo-Aula - Curso Básico de Word 2003 2 h 14 min Clique aqui
Vídeo-Aula - Curso de Microinformática Prática 4 h 35 min Clique aqui
Vídeo-Aula - Curso de Teoria Musical 2 h 50 min Clique aqui
Vídeo-Aula - Curso Prático de Internet 40 min Clique aqui
Vídeo-Aula - Curso Profissional Photoshop 4 h 20 min Clique aqui
Vídeo-Aula - Excel 2007 - Curso Avançado 2 h 30 min Clique aqui
Vídeo-Aula - Excel 2007 - Curso Básico 2 h 35 min Clique aqui
Vídeo-Aula - Excel Para Concursos - Simulados e Provas Comentadas 2 h Clique aqui
Vídeo-Aula - Flash CS3 - Básico e Prático 4 h 45 min Clique aqui
Vídeo-Aula - Flash MX - Curso Básico 2 h 26 min Clique aqui
Vídeo-Aula - Fórmulas e Funções Matriciais no Excel 2 h 30 min Clique aqui
Vídeo-Aula - HTML - Curso Prático 2 h 40 min Clique aqui
Vídeo-Aula - Lógica de Programação - Curso Completo 22 h 15 min Clique aqui
Vídeo-Aula - Matemática Financeira - Teoria e Prática 9 h 10 min Clique aqui
Vídeo-Aula - Outlook Express – Curso Prático 55 min Clique aqui
Vídeo-Aula - PHP + HTML + CSS - Curso Completo 27 h 35 min Clique aqui
Vídeo-Aula - Programação VBA no Excel 2 h 54 min Clique aqui
Vídeo-Aula - Tudo Sobre Gráficos no Excel 9 h Clique aqui
Vídeo-Aula - Windows XP Básico + Intermediário + Dicas Práticas 8 h Clique aqui
Vídeo-Aula - Word 2007 - Curso Básico 2 h 23 min Clique aqui
Vídeo-Aula interativa: Tudo Sobre Tabelas Dinâmicas no Excel 2003 2 h 30 min Clique aqui
LIVROS CAMPEÕES DE VENDA NO SITE
Dossiê Hacker
Universidade Project
Loja de Livros

© Júlio Battisti, 2001 - 2008. Todos os direitos reservados.
É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998. Este tutorial só pode ser publicado no site www.juliobattisti.com.br e no site do Autor do tutorial. Nenhum outro site tem permissão para copiar e publicar este tutorial, mesmo que sejam mantidas todas as referências ao autor e ao site www.juliobattisti.com.br. Não é permitida a publicação deste tutorial em nenhum outro site.