Porém,
se você lembrar bem, você já usou as benditas funções: printf,
scanf, system e própria main é uma função. A partir de
agora, vamos ensinar a você os conceitos de funções em C.
- Baixar nossa apostila: Apostila de C
O que é uma função em linguagem C
Função
é um bloco de código que, como o próprio nome diz, tem uma função,
uma tarefa específica.
As
funções servem como um atalho à um bloco de código.
Veja função como uma maneira de se evitar a repetição de código.
Veja função como uma maneira de se evitar a repetição de código.
Em
vez de programar um trecho de código várias vezes, definimos uma
função que faz tal tarefa e depois, ao longo do programa, basta
invocar essa função que, automaticamente, o código nela é
executado.
Desta maneira, podemos criar um trecho de código, que representa uma lógica, um passo ou rotina, do processo inteiro e isolá-lo.
Com a criação das funções, vamos ver como elas irão facilitar a vida de um programador, pois será necessário criar a função somente uma vez, e ela estará disponível e pronta para ser usada no futuro.
Desta maneira, podemos criar um trecho de código, que representa uma lógica, um passo ou rotina, do processo inteiro e isolá-lo.
Com a criação das funções, vamos ver como elas irão facilitar a vida de um programador, pois será necessário criar a função somente uma vez, e ela estará disponível e pronta para ser usada no futuro.
Para que serve uma função em C?
Um
dos motivos nós já expomos no tópico anterior, que é o fato de
você economizar linhas de código.
O
que é possível fazer com função, é possível fazer sem, usando
os laços e testes condicionais estudados na unidade anterior.
Porém,
nossos programas em C ficariam enormes, e essa falta de organização
deixa inviável a criação de programas mais complexos. Se estudou
todos os tutoriais de nosso curso, deve ter notado que alguns
programas ficaram bem extensos, e é difícil ter controle sobre
centenas ou milhares de linhas de código.
Uma
das utilidades das funções é, portanto, a organização e a
redução de nossos códigos.
Quando
um programador profissional inicia um projeto, ele já tem que ter
boa parte do código pronto.
“Como
ter código pronto, se você nem sabe que projeto vai participar nem
o que o programa vai fazer?”
Todos
os programadores, inclusive você que já é programador C, deve
fazer a reusabilidade de código, e uma das maneiras mais comuns de
se fazer isso é através de funções.
Durante
seus anos de estudo da linguagem C, você irá criar centenas ou
milhares de funções.
Então,
atente bem para essa dica: guarde e organize suas funções.
Ainda
não entendeu? Vamos dar um exemplo.
Vamos
supor que uma empresa te contratou para fazer um sistema em C. Nesse
sistema, serão necessários fazer cálculos matemáticos dos mais
diversos.
Ora,
se você já tiver feito uma função que soma números, outra que
multiplica e por ai vai, você não vai precisar escrever elas de
novo. Basta você ir em seu banco de dados de programação e copiar
o código já feito.
Isso
é reusabilidade. Ou seja, você vai usar bastante os códigos que
você programou durante toda sua vida.
Antes
de iniciar nossos estudos sobre funções, vamos dar uma dica
importantíssima, que frequentemente é ignorada, mesmo por
programadores experientes: suas funções devem fazer uma única
coisa e muito bem feita.
Por
exemplo, em vez de fazer uma função que calcula as raízes de uma
equação do segundo grau, faça uma função que calcula do delta
(Bháskara) e outra que calcula a raiz quadrada de um número. Só
então faça a função que calcula as raízes, usando as outras
funções.
Não
faça uma função que cria uma casa. Faça uma função que cria
quartos, outra que cria banheiros, outra que cria sala, outra que
cria um jardim, outra que cria um cozinha etc.
Por
fim, faça uma função que invoca as funções anteriores, montando
assim, sua casa.
Se
um dia você precisar de uma função que constrói banheiro, você
já tem ela separada. Afinal, banheiro é banheiro. Mas se tivesse
feito uma função que criava a casa de uma vez, você não teria
esse código, que cria o banheiro, de maneira acessível.
Como declarar funções em C
A
sintaxe de uma função é a seguinte
tipo_de_retorno
nome_da_função(lista de parâmetros)
{
//
código da
//
função
}
E
para invocar a função basta usar o comando: nome_da_função(lista
de argumentos).
Quando
aos parâmetros, argumentos e tipos de retorno, serão explicados em
breve.
Por
hora vamos usar funções que não retornam nada (funções do tipo
void) e que não recebem nenhum argumento.
Exemplo
de código:
Função
que mostra uma mensagem na tela.
Criamos
a função hello(), que não retorna nada, por isso colocamos o void.
A
função dessa função é simplesmente mostrar uma mensagem na tela,
quando é invocada.
#include<stdio.h>
void hello()
{
printf("Ola mundo! Estou aprendendo C com o curso C Progressivo\n");
}
int main()
{
hello();
}
Podemos colocar esse chamado da função em qualquer lugar da main, ou de outra função.
Poderíamos
colocar dentro de um laço, e repetir o chamado dessa função
quantas vezes quiséssemos. E a vantagem é que não precisamos
escrever de novo o printf, basta chamar a função hello() que ela
irá imprimir, automaticamente, a frase na tela.
55 comentários:
vlew,muitos leem os tutoriais e nem dão um simples obrigado q gente egoista !
Muito bom mesmo, na faculdade estava com muita dificuldade em entender isto, e aqui deu uma esclarecida de como se utilizar
Obrigado Mano, os tutoriais estão ajudando muito, se puder me add no skype ou fb para tirar uma duvidas:
skype: matheus.nascimento60
facebook:facebook.com/matheuslolnascimento
Simplesmente muito show!!
Me ajudou a compreender e com uma linguagem fácil.
Olá Matheus,
Você pode tirar suas dúvidas de programação no nosso fórum, na seção da linguagem C:
http://progressiva.forumeiros.com/f4-c-duvidas
É interessante colocar lá, pois pode ser dúvida de outros estudantes.
Valew pelo empenho e por compartilhar todo esse conhecimento!!!!
obrigado por disponibilizarem este conteúdo. mesmo o livro da faculdade com quase 900 paginas nao explica da forma tao pratica e funcional quanto voces. parabens
Muita boa explicação vou fazer prova semana que vem e estou com dificuldade, mais deu uma clareada legal.
Olá a todo(a)s! Recentemente, não consegui passar na disciplina Estrutura de Dados, e agora estou revendo todos os conceitos de C, para depois aplicar em ED. Adoro a didática de vocês, sempre eficiente, simples (sem cair no banal) e elegante, além de algumas pitadas de bom humor: resumindo sensacional! Parabéns e continuem nos presenteando com projetos como esses.
Muito bom :]
Ótimo tutorial em C, Parabéns!
Valeu muito Obrigado!!!
Instituto Federal de Ciência e Tecnologia!!! Já passei o site pra turma!!!!!
Muito boa explicação.
Obrigado pessoal da C Progressivo. :)
Muito obrigado
No exemplo dado, diz-se que a função não retorna nada e por isso pomos void antes de seu nome. Mas a função hello() "retorna" uma frase quando é executada.
Então há uma diferença entre o conceito de retorno e de saída que a função realiza. Imprimir uma frase é o "retorno" da função chamada.
Acho que se deveria explicitar essa diferença. É uma sugestão.
Ajudou demais! Sensacional!!!
Nao posso deixar de dizer q esse site cprogressivo tem todo o meu RESPEITO...como sou um kbeca dura pra aprender a programar esses tutorias estao sendo mto uteis pra mim!!!
Parabéns pela iniciativa
site mto bom ... estão de parabens ... esta me ajudando mto na facu ... Deus abençoe vcs
obrigado, muito o curso.
OBRIGADO :)
Muito massa este conteúdo!!
Muito massa este conteúdo!!
Muito massa este conteúdo!!
parabéns! ótima explicação!
Muito Obrigado, tenho certeza que vcs estão ajudando a muitas pessoas com esse curso maravilhoso.
Continuem com esse altruismo.
Isso e verdade!
Este é meu primeiro comentário mais estou muito grato pelo aprendizado!
Parabéns pela iniciativa em compartilhar conhecimento
Que Deus te abençoe
Site muito top...Obrigado!
Sempre muito bom!
Sempre Muito bom!
Muito obrigado!
Muito bem explicado. =D
Parabéns.
Muito legal!
muito bem explicado. muito bom
Alguém poderia, por gentileza, me ajudar com estes exercicios?1 Não é preciso resolvê-los por inteiro, mas ao menos dar uma ideia de como são feitos.
1. Faça um algoritmo que leia um numero real nao negativo de cada vez, calcule a media dos valores maiores que cinco e quantos numeros lidos sao menores ou iguais a cinco. Estabelça um criterio para finalizar o algoritmo atraves da leitura de dados, uma vez que n˜ao´e conhecido previamente o numero de valores que serao lidos.
3. Faca um programa em C para dividir sucessivamente, k vezes, um segmento AB do plano ao meio até que fique menor que 0.00001. Para isto, construa os seguintes subalgoritmos:
• uma funçao que calcule a distancia entre dois pontos no plano, fornecendo as suas coordenadas (dist =p(x2 −x1)2 + (y2 −y1)2).
• um procedimento que entre com as coordenadas de dois pontos no plano e saia com as coordenadas do ponto m´edio e com a distancia entre um dos pontos ao ponto medio. Utilize a funçao distancia implementada.
O seu programa deve ler as coordenadas de dois pontos do plano e sair com o numero de vezes que intervalo foi dividido, k, as coordenadas do ponto medio final e o tamanho final do intervalo.
Muito obrigado!!
valeu cara!!!
Muito bom, ótima explicação
Os tutoriais são ótimos, obrigado por vocês ensinarem de uma forma de tão fácil compreensão!
Muito obrigado pelo excelente conteúdo, já recomendei para todos na minha Universidade.
Muito grata! Ajudou muito!
Minha salvação
VALEU !!!
Muito boa explicação está me ajudando na faculdade.
Grato!
Sensacional essa aula ,estao de parabens,muito obrigado!
Muito obrigado, tem me ajudado demais as aulas daqui.
Obrigado estrou apredendo muito com vcs!!
Vcs explicam bem explicadinho com exemplos simples de entender, vlwww!!
Voces sao demais!!!
Muito obrigado!
Sensacional! Estou lendo vários tópicos e está me ajudando muito na faculdade! Obrigada!
Obrigado!!!
Muito bom
Excelente Material !
Ótima explicação. Gostei muito. Obrigado.
Postar um comentário