130 likes | 233 Views
Funções em C. Prof. Fabiano Utiyama. Funções em C. 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;
E N D
Funções em C Prof. Fabiano Utiyama
Funções em C • 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 C • 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 C • 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 C • 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 C • 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 C Declaração do protótipo da função Uso da função Declaração da função Valor retornado pela função f1, que neste caso seria atribuído a variável a • Sintaxe: • tipo f1 (declaração de argumentos); • main () • { • a=f1(..); • } • tipo f1 (declaração dos parâmetros recebidos) • { • declaração das variáveis locais; • comandos; • return(x); • }
Funções em C • Exemplo: função para calcular a soma; ... int soma(int a, int b) { int r; r = a + b; return(r); } #include <stdio.h> #include <conio.h> int soma(int a, int b); main() { int a,b,result; printf("Digite o valor de a: "); scanf("%d",&a); printf("Digite o valor de b: "); scanf("%d",&b); result = soma(a,b); printf("%d",result); getch(); }
Funções em C n! p! (n-p)! Cp= n com n p • 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 C • 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 C • 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 C • Exemplo: função para calcular o fatorial de um número inteiro; #include <stdio.h> #include <stdlib.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 ("\n\nValor da combinacao: %f\n\n", combinacao); system ("PAUSE"); } ... ... int fatorial (int num) { int i, fat=1; for (i=1;i<=num;i++) fat=fat*i; return (fat); }
Funções em C • Exercícios: • Construa uma função que calcule a soma de dois valores inteiros e retorne o valor obtido. • Construa uma função que receba como argumento o valor do raio de uma circunferência e retorne o valor da área da mesma. • 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.