Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Funções em C - Prof. Yandre

192 views

Published on

Funções em C - Prof. Yandre Maldonado e Gomes da Costa

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Funções em C - Prof. Yandre

  1. 1. Prof. Yandre Maldonado e Gomes da Costa Funções em CProf.YandreMaldonado-1
  2. 2. • Subprogramas são estabelecidos em linguagem C através da construção de funções; • A sub-programação é uma ferramenta que contribui com a tarefa de programar: – Favorecendo a estruturação do programa; – Facilitando a correção do programa; – Facilitando a modificação do programa; – Melhorando a legibilidade do programa; – Divisão do problema a ser resolvido em partes (modularização); Funções em CProf.YandreMaldonado-2
  3. 3. • Com a modularização de um programa, as partes que o compõem podem ser desenvolvidas por diferentes equipes; • Para isto deve-se estabelecer antes padrões de programação; • Deve-se definir também que dependência haverá entre os vários subprogramas; Funções em CProf.YandreMaldonado-3
  4. 4. • As funções dividem um programa em tarefas menores que, juntas, cumprem o objetivo inicial do programa; • Quando um determinado conjunto de instruções tiver que ser repetido dentro da solução de um problema, é conveniente colocá-lo dentro de uma única função; – Para se criar uma função é necessário: – Um identificador (o nome da função); – Uma lista de parâmetros (que possibilitam a comunicação com outras funções); – E as ações que serão executadas por esta função, que formam o corpo da mesma; Funções em CProf.YandreMaldonado-4
  5. 5. • As funções declaradas em C podem retornar um valor. Este valor ficará associado ao identificador da função e normalmente é resultante de um processamento realizado dentro da mesma; • As funções em C podem apresentar parâmetros. Estes são utilizados para que se possa dar um caráter mais genérico às mesmas, permitindo que sejam descritos os formatos dos argumentos de entrada das mesmas; • Declaração de uma função: • Uma função deve ser declarada antes de ser utilizada, como acontece com as variáveis; • Isto deve ser feito para fornecer ao compilador informações sobre o tipo da função e seus parâmetros; Funções em CProf.YandreMaldonado-5
  6. 6. • Na declaração da função deve constar o tipo da mesma, que deve ser o tipo do valor que ela deve retornar; • O comando return é utilizado para retornar um valor ao ponto onde uma função foi chamada (utilizada); Funções em CProf.YandreMaldonado-6
  7. 7. • Sintaxe: tipo f1 (declaração de argumentos); void main (void) { a=f1(..); } tipo f1 (declaração dos parâmetros recebidos) { declaração das variáveis locais; comandos; return(x); } Funções em CProf.YandreMaldonado-7 Valor retornado pela função f1, que neste caso seria atribuído a variável a Valor retornado pela função f1, que neste caso seria atribuído a variável a Declaração do protótipo da função Declaração do protótipo da função Uso da funçãoUso da função Declaração da função Declaração da função
  8. 8. • Exemplo: função para traçar moldura na tela; Funções em CProf.YandreMaldonado-8 #include <stdio.h> #include <conio.h> void traca_moldura (int x1, int y1, int x2, int y2); main() { clrscr(); gotoxy (12,07); printf ("Teste de funcao"); traca_moldura (10,5,70,20); printf("nnn"); getch(); } ... #include <stdio.h> #include <conio.h> void traca_moldura (int x1, int y1, int x2, int y2); main() { clrscr(); gotoxy (12,07); printf ("Teste de funcao"); traca_moldura (10,5,70,20); printf("nnn"); getch(); } ... ... void traca_moldura (int x1, int y1, int x2, int y2) { int i; for (i=x1;i<=x2;i++) { gotoxy(i,y1); printf("%c",219); } for (i=y1;i<=y2;i++) { gotoxy(x2,i); printf("%c",219); } for (i=x1;i<=x2;i++) { gotoxy(i,y2); printf("%c",219); } for (i=y1;i<=y2;i++) { gotoxy(x1,i); printf("%c",219); } } ... void traca_moldura (int x1, int y1, int x2, int y2) { int i; for (i=x1;i<=x2;i++) { gotoxy(i,y1); printf("%c",219); } for (i=y1;i<=y2;i++) { gotoxy(x2,i); printf("%c",219); } for (i=x1;i<=x2;i++) { gotoxy(i,y2); printf("%c",219); } for (i=y1;i<=y2;i++) { gotoxy(x1,i); printf("%c",219); } }
  9. 9. • Outro exemplo de aplicação: • Fazer um algoritmo para calcular a combinação (análise combinatória) de N elementos tomados P a P. Sabe-se que isto é possível através da seguinte expressão Funções em CProf.YandreMaldonado-9 Cp= n n! p! (n-p)! com n ≥ p
  10. 10. • A solução deste problema sem o uso de uma função teria N e P como argumentos de entrada e C como argumento de saída; • Seriam necessários os seguintes passos: • Calcular o fatorial de N (armazenar em uma variável); • Calcular o fatorial de P (armazenar em outra variável); • Calcular o fatorial de N-P (armazenar em outra variável); • E finalmente calcular a expressão FatN/(FatP*FatNP); Funções em CProf.YandreMaldonado-10
  11. 11. • Note que nesta solução teríamos que descrever várias vezes uma mesma seqüência de ações que são utilizadas para o cálculo do fatorial de um número; • Esta seqüência tem um comportamento padrão; •A seguir, será descrita uma solução mais elegante, que utiliza uma função que calcula o fatorial de um número inteiro dado como argumento e retorna este valor; Funções em CProf.YandreMaldonado-11
  12. 12. Funções em CProf.YandreMaldonado-12 • Exemplo: função para calcular o fatorial de um número inteiro; #include <stdio.h> #include <conio.h> int fatorial (int num); main() { int i, n, p; float combinacao; printf ("Digite um valor para n: "); scanf ("%d",&n); printf ("Digite um valor para p: "); scanf ("%d",&p); combinacao=fatorial(n)/(fatorial(p)*fatorial(n-p)); printf ("nnValor da combinacao: %fnn", combinacao); getch(); } ... #include <stdio.h> #include <conio.h> int fatorial (int num); main() { int i, n, p; float combinacao; printf ("Digite um valor para n: "); scanf ("%d",&n); printf ("Digite um valor para p: "); scanf ("%d",&p); combinacao=fatorial(n)/(fatorial(p)*fatorial(n-p)); printf ("nnValor da combinacao: %fnn", combinacao); getch(); } ... ... int fatorial (int num) { int i, fat=1; for (i=1;i<=num;i++) fat=fat*i; return (fat); } ... int fatorial (int num) { int i, fat=1; for (i=1;i<=num;i++) fat=fat*i; return (fat); }
  13. 13. Funções em CProf.YandreMaldonado-13 • Exercícios: 1. Construa uma função que calcule a soma de dois valores inteiros e retorne o valor obtido. 2. Construa uma função que receba como argumento o valor do raio de uma circunferência e retorne o valor da área da mesma. 3. Construa uma função que receba como argumento de entrada uma cadeia de 20 caracteres e um caractere e retorne o número de vezes que este caractere aparece na cadeia.

×