SlideShare uma empresa Scribd logo
1 - FUNCÕES
OS PROGRAMAS EM C SÃO ESCRITOS COMBINANDO-SE
FUNÇÕES
• main normalmente é implementada como um grupo de chamadas
para funções que realizam a maior parte do trabalho no
programa.
AS VANTAGENS DE REUTILIZAR FUNÇÕES SERIA SOBRE A
REUTILIZAÇÃO DE SOFTWARE,
E PRINCIPALMENTE SOBRE O PROCESSO DE ABSTRAÇÃO,
OCULTAÇÃO DE DETALHES.
MÓDULARIZAÇÃO
DE ALGORITMOS
“DIVIDIR E CONQUISTAR”
EXEMPLO DE PROGRAMA DIVIDO EM MÓDULOS.
CALCULO MEDIA
CALCULO MEDIA
MEDIA <- (N1 + N2) / 2
MEDIA
RETORNA
MEDIA
INÍCIO
FIM
CHAMADA DE FUNÇÃO
FUNÇÕES DA BIBLIOTECA
MATEMÁTICA
ESTRUTURA DE UMA
FUNÇÂO
EXEMPLO DE FUNÇÃO
PROTÓTIPOS DE FUNÇÕES
• VALIDAM CHAMADAS DE
FUNÇÕES
COERÇÃO DE ARGUMENTOS
• FORÇAR UM ARGUMENTO PARA
O TIPO APROPRIADO.
REGRAS DE PROMOÇÃO
• ESPECIFICAM COMO OS TIPOS PODEM SER
CONVERTIDOS PARA OUTRO TIPO SEM QUE
HAJA PERDA DE DADOS.
• SE APLICAM AUTOMATICAMENTE A
EXPRESSÕES DE TIPO MISTO PARA O TIPO
MAIS ALTO NA EXPRESSÃO.
HIERARQUIA DE PROMOÇÃO PARA
TIPOS DE DADOS
1. CONVERTER UM VALOR PARA TIPO UM TIPO
INFERIOR SÓ PELA ATRIBUIÇÃO A UMA VARIÁVEL
DE TIPO INFERIOR OU USANDO OPERADOR DE
COERÇÃO.
2. NA EXPRESSÃO DE TIPO MISTO CADA VALOR É
PROMOVIDO PARA O TIPO MAIS ALTO NA
EXPRESSÃO (UMA VERSÃO TEMPORÁRIA DOS
VALORES É CRIADA PARA FAZER A OPERAÇÃO, OS
VALORES ORIGINAIS PERMANECEM INALTERADOS).
+ ALGUMAS REGRAS:
2 – PILHA DE CHAMADA DE
FUNÇÃO
CONCEITO DE PILHA
COMO UMA FUNÇÃO RETORNA
AO CHAMADOR ?
QUANDO UMA FUNÇÃO É CHAMADA O ENDEREÇO DE
RETORNO DA FUNÇÃO CHAMADORA É COLOCADO NA
PILHA DE EXECUÇÃO DO PROGRAMA (AS VEZES
CHAMAMOS DE PILHA DE CHAMADA DE FUNÇÃO).
EXEMPLO DE PILHA +
RECURSIVIDADE:
3 – REGISTRO DE ATIVAÇÃO
ESTRUTURA REGISTRO DE ATIVAÇÃO
FUNCIONAMENTO
QUANDO TEMOS UMA CHAMADA DE FUNÇÃO É
CRIADO UM REGISTRO DE ATIVAÇÃO OU QUADRO DE
PILHA, NA PILHA DE EXECUÇÃO DO PROGRAMA, ESSE
REGISTRO DE ATIVAÇÃO CONTÉM AS VARIÁVEIS
LOCAIS, OS PARÂMETRO, VALOR E ENDEREÇO DE
RETORNO DA FUNÇÃO. APÓS SEU RETORNO AO
CHAMADOR O REGISTRO DE ATIVAÇÃO PARA ESSA
FUNÇÃO É RETIRADO DA PILHA.
STACK OVERFLOW
 SE HOUVER MAIS CHAMADAS DE FUNÇÃO
DO QUE É POSSÍVEL ARMAZENAR NOS
REGISTROS DE ATIVAÇÃO DA PILHA DE
EXERCUÇÃO DO PROGRAMA, OCORRE UM
ERRO CONHECIDO COMO ESTOURO DE
PILHA OU STACK OVERFLOW.

Mais conteúdo relacionado

Semelhante a Funções

Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
Elaine Cecília Gatto
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
Andrey Wallace
 
Funções em C
Funções em CFunções em C
Funções em C
Elaine Cecília Gatto
 
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
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
aronoliveira3
 
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
 
Aula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando DadosAula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando Dados
César Augusto Pessôa
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
Luis Ferreira
 
Excel VBA: Aula 2
Excel VBA: Aula 2Excel VBA: Aula 2
Excel VBA: Aula 2
Gustavo Zimmermann
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
Elaine Cecília Gatto
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
12anogolega
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
Duane Bertoldo
 
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 e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Alex Camargo
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
dasko
 
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAISSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS
SergioSouza
 
Buffer overflow slide prontos.pptx
Buffer overflow slide prontos.pptxBuffer overflow slide prontos.pptx
Buffer overflow slide prontos.pptx
JomarRich
 
Apostila2 clp logo
Apostila2 clp logoApostila2 clp logo
Apostila2 clp logo
Marcio Miranda
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 

Semelhante a Funções (20)

Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Funções em C
Funções em CFunções em C
Funções em C
 
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
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
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)
 
Aula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando DadosAula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando Dados
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Excel VBA: Aula 2
Excel VBA: Aula 2Excel VBA: Aula 2
Excel VBA: Aula 2
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
 
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 e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAISSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS
 
Buffer overflow slide prontos.pptx
Buffer overflow slide prontos.pptxBuffer overflow slide prontos.pptx
Buffer overflow slide prontos.pptx
 
Apostila2 clp logo
Apostila2 clp logoApostila2 clp logo
Apostila2 clp logo
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 

Funções

  • 2.
  • 3. OS PROGRAMAS EM C SÃO ESCRITOS COMBINANDO-SE FUNÇÕES • main normalmente é implementada como um grupo de chamadas para funções que realizam a maior parte do trabalho no programa. AS VANTAGENS DE REUTILIZAR FUNÇÕES SERIA SOBRE A REUTILIZAÇÃO DE SOFTWARE, E PRINCIPALMENTE SOBRE O PROCESSO DE ABSTRAÇÃO, OCULTAÇÃO DE DETALHES.
  • 5. EXEMPLO DE PROGRAMA DIVIDO EM MÓDULOS. CALCULO MEDIA CALCULO MEDIA MEDIA <- (N1 + N2) / 2 MEDIA RETORNA MEDIA INÍCIO FIM
  • 10. PROTÓTIPOS DE FUNÇÕES • VALIDAM CHAMADAS DE FUNÇÕES
  • 11.
  • 12. COERÇÃO DE ARGUMENTOS • FORÇAR UM ARGUMENTO PARA O TIPO APROPRIADO.
  • 13. REGRAS DE PROMOÇÃO • ESPECIFICAM COMO OS TIPOS PODEM SER CONVERTIDOS PARA OUTRO TIPO SEM QUE HAJA PERDA DE DADOS. • SE APLICAM AUTOMATICAMENTE A EXPRESSÕES DE TIPO MISTO PARA O TIPO MAIS ALTO NA EXPRESSÃO.
  • 14. HIERARQUIA DE PROMOÇÃO PARA TIPOS DE DADOS
  • 15. 1. CONVERTER UM VALOR PARA TIPO UM TIPO INFERIOR SÓ PELA ATRIBUIÇÃO A UMA VARIÁVEL DE TIPO INFERIOR OU USANDO OPERADOR DE COERÇÃO. 2. NA EXPRESSÃO DE TIPO MISTO CADA VALOR É PROMOVIDO PARA O TIPO MAIS ALTO NA EXPRESSÃO (UMA VERSÃO TEMPORÁRIA DOS VALORES É CRIADA PARA FAZER A OPERAÇÃO, OS VALORES ORIGINAIS PERMANECEM INALTERADOS). + ALGUMAS REGRAS:
  • 16. 2 – PILHA DE CHAMADA DE FUNÇÃO
  • 18. COMO UMA FUNÇÃO RETORNA AO CHAMADOR ? QUANDO UMA FUNÇÃO É CHAMADA O ENDEREÇO DE RETORNO DA FUNÇÃO CHAMADORA É COLOCADO NA PILHA DE EXECUÇÃO DO PROGRAMA (AS VEZES CHAMAMOS DE PILHA DE CHAMADA DE FUNÇÃO).
  • 19. EXEMPLO DE PILHA + RECURSIVIDADE:
  • 20. 3 – REGISTRO DE ATIVAÇÃO
  • 21. ESTRUTURA REGISTRO DE ATIVAÇÃO
  • 22. FUNCIONAMENTO QUANDO TEMOS UMA CHAMADA DE FUNÇÃO É CRIADO UM REGISTRO DE ATIVAÇÃO OU QUADRO DE PILHA, NA PILHA DE EXECUÇÃO DO PROGRAMA, ESSE REGISTRO DE ATIVAÇÃO CONTÉM AS VARIÁVEIS LOCAIS, OS PARÂMETRO, VALOR E ENDEREÇO DE RETORNO DA FUNÇÃO. APÓS SEU RETORNO AO CHAMADOR O REGISTRO DE ATIVAÇÃO PARA ESSA FUNÇÃO É RETIRADO DA PILHA.
  • 23. STACK OVERFLOW  SE HOUVER MAIS CHAMADAS DE FUNÇÃO DO QUE É POSSÍVEL ARMAZENAR NOS REGISTROS DE ATIVAÇÃO DA PILHA DE EXERCUÇÃO DO PROGRAMA, OCORRE UM ERRO CONHECIDO COMO ESTOURO DE PILHA OU STACK OVERFLOW.