Funções em C

150 visualizações

Publicada em

Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre funções em C.

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
150
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Funções em C

  1. 1. Tutoria AEDSI Pablo Silva
  2. 2. O que são funções? Função é um bloco de código que, como o próprio nome diz, tem uma função, uma tarefa específica. Veja função como uma maneira de se evitar a repetição de código.
  3. 3. Por que usar funções? - Organizar e modularizar o código - Evitar repetição de código
  4. 4. Funções Se você já fez algum programa, então com certeza já utilizou uma função, pois a main é uma função. Praticamente tudo o que programamos é feito em funções.
  5. 5. Estrutura das Funções Vamos ver como é a estrutura de uma função int foo(int b) { int a; a = b; return a; } Tipo da função: este tipo indica o tipo de dado que a função retorna. Se a função não tiver que retornar nada, ela será do tipo void. Nome da função: o nome da função deve seguir as mesmas regras de nomeação de variáveis. Parâmetros ou argumentos: a função pode receber parâmetros de seu chamador, que podem ser usados no seu escopo. Uma função pode ou não ter parâmetros. Escopo da função: as variáveis que são definidas dentro da função só existem lá dentro e não podem ser utilizadas fora deste escopo.
  6. 6. Função main Como dito, a main é uma função. Mas ela é uma função especial, como o próprio nome diz, ela é a função principal do programa. Todo programa se inicia e termina na main. int main() { return 0; } O return 0, quando inserido na main, indica para o computador, o ponto de parada do programa.
  7. 7. Funções É muito importante entender que um programa pode (e deve) ter várias funções. É importante saber também, que existem funções pré-definidas pela linguagem que estão nas bibliotecas do sistema e ás incluímos através do comando include.
  8. 8. Funções incluídas Um exemplo de uma função pré-definida que utilizamos a todo momento é a printf. A função printf é uma função da biblioteca padrão stdio. #include <stdio.h> int main(){ printf(“Hello world”); return 0; } A biblioteca padrão, stdio.h, é obrigatória para execução de qualquer programa, pois a main também está definida lá. Sem o comando include, não conseguiríamos utilizar uma função pré- definida em uma biblioteca. Existem diversas bibliotecas disponíveis.
  9. 9. Programas com e sem funções Vamos ver um exemplo de dois programas que fazem a mesma coisa, porém um com duas funções e outro com uma. Seja o problema de somar dois números. #include <stdio.h> int main(){ int soma; int a = 10; int b = 5; soma = a + b; return 0; } #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } Todo código na main Utilizando duas funções
  10. 10. Análise de um programa com mais de uma função Vamos analisar a execução deste programa para ver o que acontece. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7
  11. 11. Passo 1 O programa começa a executar a partir da função main. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7
  12. 12. Passo 2 A variável a recebe o valor 10. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10
  13. 13. Passo 3 A variável b recebe o valor 5. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5
  14. 14. Passo 4 A execução na main é colocada em standby até que haja um retorno da função chamada. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 A propósito, a maneira como chamamos uma função é com o nome dela e exatamente a quantidade de parâmetros que ela requere.
  15. 15. Passo 5 A execução se inicia na função. Neste momento n1 e n2 recebem os valores passados na chamada da função. Neste caso, os valores de a e b. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 n1 10 n2 5
  16. 16. Passo 6 O programa sabe que uma função chegou ao fim quando a execução encontra a palavra return para funções que retornam algo. Para um função que retorna algo, a palavra return é obrigatória. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 n1 10 n2 5 Para funções que não retornam nada, o fim é identificado pela chave de fechamento. Para o nosso caso, o retorno deve ser um inteiro. Nada nos impede de retornar uma soma, cujo valor é um inteiro. É exatamente isto que estamos fazendo.
  17. 17. Passo 7 Como a função retornou, voltamos para a main. É isso que a retorno faz, voltar para onde a função foi chamada e envia o valor de retorno. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 8 Variável Valor a 10 b 5 n1 10 n2 5 soma 15 A variável soma vai receber o valor de retorno da função, que nesse caso é a soma de n1 e n2, que nos dá 15. 7
  18. 18. Passo 9 O programa encontra o return 0 na main e se encerra. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 8 Variável Valor a 10 b 5 n1 10 n2 5 soma 15 7
  19. 19. Alguns fatos que precisamos reforçar No exemplo anterior aprendemos várias características de uma função. Vamos reforçar alguns fatos: • A chamada da função deve passar exatamente o número de parâmetros que a função requere e todos devem ser do tipo especificado. Se a função requer um inteiro e um caracter e você passar dois inteiros por exemplo, o programa não irá compilar. • Se a função retorna algo, este retorno deve ser exatamente do tipo especificado. • Um função pode chamar outras funções. Você faz isto na main a todo momento e lembre-se que ela é uma função!
  20. 20. Alguns fatos que precisamos reforçar • Sempre que uma função é chamada, a execução sequencial do programa é quebrada e enviada para a função. Em algum momento, obrigatoriamente, essa execução será retomada do mesmo ponto em que parou. Isto acontece quando a função termina sua execução e acontece então um retorno para o local de sua chamada, sendo ele a main ou qualquer outra função.

×