prof. fabiano utiyama

13
Prof. Fabiano Utiyama Funções em C

Upload: zanna

Post on 25-Jan-2016

23 views

Category:

Documents


2 download

DESCRIPTION

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; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Prof. Fabiano Utiyama

Prof. Fabiano Utiyama

Funções em C

Page 2: Prof. Fabiano Utiyama

• 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

Page 3: Prof. Fabiano Utiyama

• 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

Page 4: Prof. Fabiano Utiyama

• 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

Page 5: Prof. Fabiano Utiyama

• 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

Page 6: Prof. Fabiano Utiyama

• 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

Page 7: Prof. Fabiano Utiyama

• 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

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çãoDeclaração da função

Declaração da função

Page 8: Prof. Fabiano Utiyama

• Exemplo: função para calcular a soma;

Funções em C

#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(); }

#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(); }

...

int soma(int a, int b){ int r; r = a + b; return(r); }

...

int soma(int a, int b){ int r; r = a + b; return(r); }

Page 9: Prof. Fabiano Utiyama

• 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

Cp=nn!

p! (n-p)!

com n p

Page 10: Prof. Fabiano Utiyama

• 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

Page 11: Prof. Fabiano Utiyama

• 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

Page 12: Prof. Fabiano Utiyama

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"); }...

#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); }

...int fatorial (int num) { int i, fat=1; for (i=1;i<=num;i++) fat=fat*i; return (fat); }

Page 13: Prof. Fabiano Utiyama

Funções em C

• 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.