Funções em C - Prof. Yandre

182 visualizações

Publicada em

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

Publicada em: Tecnologia
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
182
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
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 - 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.

×