SlideShare uma empresa Scribd logo
Prof. Yandre Maldonado e Gomes da Costa
Funções em CProf.YandreMaldonado-1
• 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
• 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
• 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
• 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
• 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
• 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
• 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);
}
}
• 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
• 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
• 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
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);
}
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.

Mais conteúdo relacionado

Mais procurados

M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
diogoa21
 
Php m18
Php m18Php m18
Php m18
tomascarol2
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
diogoa21
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
Lumabyte Soluções e Tecnologias
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
Gabriel Schade Cardoso
 
C pic
C picC pic
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
Fabio Moura Pereira
 
Modularização
ModularizaçãoModularização
Modularização
Sérgio Souza Costa
 
Compiladores
CompiladoresCompiladores
Compiladores
Marcelo Avila
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
George Mendonça
 
A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
Gabriel Schade Cardoso
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
Regis Magalhães
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
Elaine Cecília Gatto
 
Php Básico - Parte 1
Php Básico - Parte 1Php Básico - Parte 1
Php Básico - Parte 1
Marcus Camargo
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
diogoa21
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
sergiocrespo
 
Java4
Java4Java4
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
Ricardo Liyushiro Chikasawa
 
Linguagem c
Linguagem cLinguagem c

Mais procurados (20)

M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Php m18
Php m18Php m18
Php m18
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
C pic
C picC pic
C pic
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
Modularização
ModularizaçãoModularização
Modularização
 
Compiladores
CompiladoresCompiladores
Compiladores
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
A importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-diaA importância da programação funcional no dia a-dia
A importância da programação funcional no dia a-dia
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Php Básico - Parte 1
Php Básico - Parte 1Php Básico - Parte 1
Php Básico - Parte 1
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Java4
Java4Java4
Java4
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 

Destaque

Unidade i
Unidade iUnidade i
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Alex Camargo
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
Ataíde Ramos da Silva
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
Mauro Pereira
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
Felipe de Andrade Neves Lavratti
 
Lógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógicaLógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógica
Wellington Oliveira
 
Apostila C ANSI
Apostila C ANSIApostila C ANSI
Apostila C ANSI
Ricardo Terra
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
Mauro Pereira
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
Karoline Tavares
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
Elaine Cecília Gatto
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
Berjon Brito
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
thomasdacosta
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
rodfernandes
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
Karen Costa
 

Destaque (14)

Unidade i
Unidade iUnidade i
Unidade i
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Lógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógicaLógica e Algoritmos (pseudocódigo e C++) A lógica
Lógica e Algoritmos (pseudocódigo e C++) A lógica
 
Apostila C ANSI
Apostila C ANSIApostila C ANSI
Apostila C ANSI
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 

Semelhante a Funções em C - Prof. Yandre

Aula 4 | Funções
Aula 4 | Funções Aula 4 | Funções
Aula 4 | Funções
Henry Raúl González Brito
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdf
GabrielEduardo16342
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Os Fantasmas !
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Mauricio Wieler
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Rodrigo Kiyoshi Saito
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
Jorge Ávila Miranda
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
ItamarGoncalves2
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Alex Camargo
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
Jorge Ávila Miranda
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
Elaine Cecília Gatto
 
Aula 7 aed - sub algoritmos
Aula 7   aed - sub algoritmosAula 7   aed - sub algoritmos
Aula 7 aed - sub algoritmos
Elaine Cecília Gatto
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
Elaine Cecília Gatto
 
Recursividade
RecursividadeRecursividade
Recursividade
Raphael Leite Campos
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
Leonardo Lima
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
Aula01
Aula01Aula01
Aula01
vdlos
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
Carlos Santos
 
Funções em C
Funções em CFunções em C
Funções em C
Pablo Silva
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04
Willian Carvalho
 
Aula3
Aula3Aula3
Aula3
softeam
 

Semelhante a Funções em C - Prof. Yandre (20)

Aula 4 | Funções
Aula 4 | Funções Aula 4 | Funções
Aula 4 | Funções
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdf
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Aula 7 aed - sub algoritmos
Aula 7   aed - sub algoritmosAula 7   aed - sub algoritmos
Aula 7 aed - sub algoritmos
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Aula01
Aula01Aula01
Aula01
 
T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)T10_LM3: Subalgoritmos/funções (2013-2014)
T10_LM3: Subalgoritmos/funções (2013-2014)
 
Funções em C
Funções em CFunções em C
Funções em C
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04
 
Aula3
Aula3Aula3
Aula3
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (6)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Funções em C - Prof. Yandre

  • 1. Prof. Yandre Maldonado e Gomes da Costa Funções em CProf.YandreMaldonado-1
  • 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. • 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. • 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. • 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. • 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. • 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. • 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. • 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. • 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. • 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. 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. 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.