SlideShare a Scribd company logo
Algoritmos e Programação I
Funções
Sumário
05/07/2023
Professor Paulo Nunes 2
 Definição
 Sintaxe
 Protótipo
 Funções que retornam
valor
 Função sem retorno de
valor
 Passando valores para a
função
 Passando variáveis como
argumentos
 Escopo das variáveis
 Local
 Global
 Por parâmetros
 Recursão
 Unidade de código de programa autônoma desenhada para
cumprir uma tarefa particular. (Mizrahi, Victorine Viviane. 1990)
 Utilizamos uma função para agilizar a escrita e execução de
programas, fazendo com que o programador não tenha que
reescrever código já existente.
 Podemos dividir um programa maior em partes menores,
ficando assim mais fácil de mantê-lo.
Definição
05/07/2023
Professor Paulo Nunes 3
 Todas as funções possuem um nome seguido de parênteses “()”;
nome_da_função(<argumentos>)
 Nos parênteses podem ou não conter uma lista de parâmetros;
 O corpo da função pode conter outros comandos/funções de C,
variáveis e expressões, envolvidas entre chaves “{ }”;
 As funções podem vir antes ou após a função principal main();
 Na declaração, as funções não finalizam com ponto-e-vírgula, apenas
na chamada da função;
 As funções main(), getche() e printf() são exemplos de funções de
biblioteca C.
05/07/2023
Professor Paulo Nunes 4
Sintaxe de uma função
 Informa como a função será criada e utilizada.
 É prática saudável, opcional, criar os protótipos de funções
antes da função propriamente dita.
05/07/2023
Professor Paulo Nunes 5
Protótipo de função
Protótipo da função
Diz o tipo de dado de retorno da
função, no caso “float”.
O número de parâmetros recebidos,
no caso dois.
O tipo de dado dos parâmetros, no
caso ambos são “int”.
A ordem da passagem dos
parâmetros.
 Nem sempre funções recebem parâmetros, ou retornam
valores. Nesses casos são definidas como “void”, vazias.
 Não existe limite para o número de funções que podem ser
incluídas em um programa C.
05/07/2023
Professor Paulo Nunes 6
Protótipo de função
05/07/2023
Professor Paulo Nunes 7
Protótipo de função
Protótipos das
funções
Corpo do programa
principal
Função definida
 O programa anterior utiliza uma função que lê um caractere
do teclado e o converte em minúsculo, caso seja maiúsculo;
 Nele utilizamos o comando return. O comando return tem
dois usos importantes:
 Primeiro: devolver um valor e retornar imediatamente para a
próxima instrução do código chamada;
 Segundo: usá-lo sem os parênteses para causar uma saída
imediata da função na qual ele se encontra.
05/07/2023
Professor Paulo Nunes 8
Funções que retornam valor
05/07/2023
Professor Paulo Nunes 9
Retornando valor
Chamada da função
Retorno da função
05/07/2023
Professor Paulo Nunes 10
Retornando valor
Chamada da função
Retorno da função
05/07/2023
Professor Paulo Nunes 11
Função sem retorno de valor
Esta função não
retorna valor!
05/07/2023
Professor Paulo Nunes 12
Passando valores para a função
Chamada passando valores
Informa ao compilador que abs()
requer um argumento, e que esse
argumento será do tipo inteiro
Aqui, a variável “x” é uma nova variável, chamada de
“parêmetro formal”, e funciona como uma variável
local da função, sendo criada quando a função inicia a
execução e destruída no retorno da função.
Passando variáveis como
argumentos
05/07/2023
Professor Paulo Nunes 13
Saída na tela:
05/07/2023
Professor Paulo Nunes 14
 Quando necessário, podem ser passados vários argumentos
em uma função;
 Os argumentos devem ser separados por vírgulas;
 Não existem limites para o número de argumentos passados.
05/07/2023
Professor Paulo Nunes 15
Passagem de valores: detalhes
Exemplo...
05/07/2023
Professor Paulo Nunes 16
Função “retang()” recebe
os parâmetros “largura” e
“altura”
Chamada da função
“retang” com os valores que
serão tratados.
 Identifica e determina o tempo de vida de qualquer variável.
 É uma região do programa onde uma variável definida pode
ter a sua existência, além dessa região a variável não pode
ser acessada.
 Onde uma variável pode ser declarada em C:
 Dentro de uma função ou bloco, denominadas locais;
 Fora de qualquer função, denominadas globais;
 Na definição de parâmetros de função, chamadas de
parâmetros formais.
05/07/2023
Professor Paulo Nunes 17
Escopo das variáveis
05/07/2023
Professor Paulo Nunes 18
Escopo local
Essas variáveis são acessadas
apenas pela função main()
Seus dados são perdidos
após a execução de main()
05/07/2023
Professor Paulo Nunes 19
Escopo local: mesmo nome
05/07/2023
Professor Paulo Nunes 20
Escopo global
Variável declarada fora de
qualquer função.
A variável pode ser acessada
por todas as outras funções.
05/07/2023
Professor Paulo Nunes 21
Escopo global
05/07/2023
Professor Paulo Nunes 22
Escopo global Vs. local
Variáveis podem coincidir os nomes, a
variável local prevalece sobre a global.
05/07/2023
Professor Paulo Nunes 23
Parâmetros formais
As variáveis passadas como
parâmetros sobrepõe as globais.
 Posso atribuir dados para a variável global em uma função e
referenciar o mesmo espaço de memória em outra função.
 O uso de variáveis globais é desaconselhado, pois podem
provocar erros de segurança.
 Usar variáveis globais permite que todas as funções em um
arquivo de programa possa ter acesso aos mesmos dados, o
que vai contra o conceito de ocultação de informações.
05/07/2023
Professor Paulo Nunes 24
Escopo global Vs. Local
 A função é recursiva quando realiza uma chamada a ela
mesma;
 Utiliza mais memória, o que a torna mais lenta;
 Não são difíceis de se criar, mas de encontrar onde utilizá-las!
 O melhor exemplo de recursividade é para resolução de
fatorial de um número, pois a própria definição de fatorial
sugere recursão:
fatorial(n) = n * fatorial(n – 1)
05/07/2023
Professor Paulo Nunes 25
Funções Recursivas
05/07/2023
Professor Paulo Nunes 26
Exemplo: Fatorial
Exemplo 02: Fatorial
05/07/2023
Professor Paulo Nunes 27
05/07/2023
Professor Paulo Nunes 28
Exemplo: Fibonacci
 SOUSA, A. J. de. Linguagem C Descomplicada: Desvendando as Funções em C. São Paulo: Novatec
Editora, 2019.
 DIAS, F. L. Linguagem C: Programação em C - Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC
Editora, 2021.
 CELES, W.; CERQUEIRA, R.; RANGEL, J. Lógica de Programação: Crie seus primeiros programas
usando funções em C. São Paulo: Editora Novatec, 2017.
 PRATA, S. C Primer Plus. 6th ed. New York: Addison-Wesley Professional, 2013.
 KERNIGHAN, B. W.; RITCHIE, D. M. The C Programming Language. 2nd ed. New Jersey: Prentice Hall,
1988.
 KING, K. N. C Programming: A Modern Approach. 2nd ed. New York: W. W. Norton & Company,
2008.
05/07/2023
Professor Paulo Nunes 29
Bibliografia
05/07/2023
Professor Paulo Nunes 30
O professor

More Related Content

Similar to Utilizando funções em C: modularizando os programas.

python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
ronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
ronaldo ramos
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
SchoolByte
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
Texas Instruments
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
Sérgio Souza Costa
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
Maicon Rodrigues
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
AmlieOGalaxias
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
Gabriel Schade Cardoso
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
marcosnem
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
Andrey Wallace
 
Funções PHP - Criação de sites II
Funções PHP - Criação de sites II Funções PHP - Criação de sites II
Funções PHP - Criação de sites II
info_cimol
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova
Rogério Cardoso
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
Engenharia de Software Ágil
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
Jorge Ávila Miranda
 
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 !
 
poster
posterposter
poster
Ruan Costa
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
Jose Augusto Cintra
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
Odair Soares
 
Gabarito da P1 de PROG
Gabarito da P1 de PROGGabarito da P1 de PROG
Gabarito da P1 de PROG
Marcos de Vita
 
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
 

Similar to Utilizando funções em C: modularizando os programas. (20)

python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Funções PHP - Criação de sites II
Funções PHP - Criação de sites II Funções PHP - Criação de sites II
Funções PHP - Criação de sites II
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
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...
 
poster
posterposter
poster
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Gabarito da P1 de PROG
Gabarito da P1 de PROGGabarito da P1 de PROG
Gabarito da P1 de PROG
 
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
 

More from SchoolByte

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.
SchoolByte
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.
SchoolByte
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitos
SchoolByte
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.
SchoolByte
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
SchoolByte
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.
SchoolByte
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
SchoolByte
 
Utilizando ponteiros em C.
Utilizando ponteiros em C.Utilizando ponteiros em C.
Utilizando ponteiros em C.
SchoolByte
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-Sankoré
SchoolByte
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do Dropbox
SchoolByte
 

More from SchoolByte (10)

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitos
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
 
Utilizando ponteiros em C.
Utilizando ponteiros em C.Utilizando ponteiros em C.
Utilizando ponteiros em C.
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-Sankoré
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do Dropbox
 

Recently uploaded

Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
Manuais Formação
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
MessiasMarianoG
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
ReinaldoSouza57
 

Recently uploaded (20)

Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
 

Utilizando funções em C: modularizando os programas.

  • 2. Sumário 05/07/2023 Professor Paulo Nunes 2  Definição  Sintaxe  Protótipo  Funções que retornam valor  Função sem retorno de valor  Passando valores para a função  Passando variáveis como argumentos  Escopo das variáveis  Local  Global  Por parâmetros  Recursão
  • 3.  Unidade de código de programa autônoma desenhada para cumprir uma tarefa particular. (Mizrahi, Victorine Viviane. 1990)  Utilizamos uma função para agilizar a escrita e execução de programas, fazendo com que o programador não tenha que reescrever código já existente.  Podemos dividir um programa maior em partes menores, ficando assim mais fácil de mantê-lo. Definição 05/07/2023 Professor Paulo Nunes 3
  • 4.  Todas as funções possuem um nome seguido de parênteses “()”; nome_da_função(<argumentos>)  Nos parênteses podem ou não conter uma lista de parâmetros;  O corpo da função pode conter outros comandos/funções de C, variáveis e expressões, envolvidas entre chaves “{ }”;  As funções podem vir antes ou após a função principal main();  Na declaração, as funções não finalizam com ponto-e-vírgula, apenas na chamada da função;  As funções main(), getche() e printf() são exemplos de funções de biblioteca C. 05/07/2023 Professor Paulo Nunes 4 Sintaxe de uma função
  • 5.  Informa como a função será criada e utilizada.  É prática saudável, opcional, criar os protótipos de funções antes da função propriamente dita. 05/07/2023 Professor Paulo Nunes 5 Protótipo de função Protótipo da função Diz o tipo de dado de retorno da função, no caso “float”. O número de parâmetros recebidos, no caso dois. O tipo de dado dos parâmetros, no caso ambos são “int”. A ordem da passagem dos parâmetros.
  • 6.  Nem sempre funções recebem parâmetros, ou retornam valores. Nesses casos são definidas como “void”, vazias.  Não existe limite para o número de funções que podem ser incluídas em um programa C. 05/07/2023 Professor Paulo Nunes 6 Protótipo de função
  • 7. 05/07/2023 Professor Paulo Nunes 7 Protótipo de função Protótipos das funções Corpo do programa principal Função definida
  • 8.  O programa anterior utiliza uma função que lê um caractere do teclado e o converte em minúsculo, caso seja maiúsculo;  Nele utilizamos o comando return. O comando return tem dois usos importantes:  Primeiro: devolver um valor e retornar imediatamente para a próxima instrução do código chamada;  Segundo: usá-lo sem os parênteses para causar uma saída imediata da função na qual ele se encontra. 05/07/2023 Professor Paulo Nunes 8 Funções que retornam valor
  • 9. 05/07/2023 Professor Paulo Nunes 9 Retornando valor Chamada da função Retorno da função
  • 10. 05/07/2023 Professor Paulo Nunes 10 Retornando valor Chamada da função Retorno da função
  • 11. 05/07/2023 Professor Paulo Nunes 11 Função sem retorno de valor Esta função não retorna valor!
  • 12. 05/07/2023 Professor Paulo Nunes 12 Passando valores para a função Chamada passando valores Informa ao compilador que abs() requer um argumento, e que esse argumento será do tipo inteiro Aqui, a variável “x” é uma nova variável, chamada de “parêmetro formal”, e funciona como uma variável local da função, sendo criada quando a função inicia a execução e destruída no retorno da função.
  • 15.  Quando necessário, podem ser passados vários argumentos em uma função;  Os argumentos devem ser separados por vírgulas;  Não existem limites para o número de argumentos passados. 05/07/2023 Professor Paulo Nunes 15 Passagem de valores: detalhes
  • 16. Exemplo... 05/07/2023 Professor Paulo Nunes 16 Função “retang()” recebe os parâmetros “largura” e “altura” Chamada da função “retang” com os valores que serão tratados.
  • 17.  Identifica e determina o tempo de vida de qualquer variável.  É uma região do programa onde uma variável definida pode ter a sua existência, além dessa região a variável não pode ser acessada.  Onde uma variável pode ser declarada em C:  Dentro de uma função ou bloco, denominadas locais;  Fora de qualquer função, denominadas globais;  Na definição de parâmetros de função, chamadas de parâmetros formais. 05/07/2023 Professor Paulo Nunes 17 Escopo das variáveis
  • 18. 05/07/2023 Professor Paulo Nunes 18 Escopo local Essas variáveis são acessadas apenas pela função main() Seus dados são perdidos após a execução de main()
  • 19. 05/07/2023 Professor Paulo Nunes 19 Escopo local: mesmo nome
  • 20. 05/07/2023 Professor Paulo Nunes 20 Escopo global Variável declarada fora de qualquer função. A variável pode ser acessada por todas as outras funções.
  • 22. 05/07/2023 Professor Paulo Nunes 22 Escopo global Vs. local Variáveis podem coincidir os nomes, a variável local prevalece sobre a global.
  • 23. 05/07/2023 Professor Paulo Nunes 23 Parâmetros formais As variáveis passadas como parâmetros sobrepõe as globais.
  • 24.  Posso atribuir dados para a variável global em uma função e referenciar o mesmo espaço de memória em outra função.  O uso de variáveis globais é desaconselhado, pois podem provocar erros de segurança.  Usar variáveis globais permite que todas as funções em um arquivo de programa possa ter acesso aos mesmos dados, o que vai contra o conceito de ocultação de informações. 05/07/2023 Professor Paulo Nunes 24 Escopo global Vs. Local
  • 25.  A função é recursiva quando realiza uma chamada a ela mesma;  Utiliza mais memória, o que a torna mais lenta;  Não são difíceis de se criar, mas de encontrar onde utilizá-las!  O melhor exemplo de recursividade é para resolução de fatorial de um número, pois a própria definição de fatorial sugere recursão: fatorial(n) = n * fatorial(n – 1) 05/07/2023 Professor Paulo Nunes 25 Funções Recursivas
  • 26. 05/07/2023 Professor Paulo Nunes 26 Exemplo: Fatorial
  • 28. 05/07/2023 Professor Paulo Nunes 28 Exemplo: Fibonacci
  • 29.  SOUSA, A. J. de. Linguagem C Descomplicada: Desvendando as Funções em C. São Paulo: Novatec Editora, 2019.  DIAS, F. L. Linguagem C: Programação em C - Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC Editora, 2021.  CELES, W.; CERQUEIRA, R.; RANGEL, J. Lógica de Programação: Crie seus primeiros programas usando funções em C. São Paulo: Editora Novatec, 2017.  PRATA, S. C Primer Plus. 6th ed. New York: Addison-Wesley Professional, 2013.  KERNIGHAN, B. W.; RITCHIE, D. M. The C Programming Language. 2nd ed. New Jersey: Prentice Hall, 1988.  KING, K. N. C Programming: A Modern Approach. 2nd ed. New York: W. W. Norton & Company, 2008. 05/07/2023 Professor Paulo Nunes 29 Bibliografia