SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Tutoria AEDSI
Pablo Silva
O que são funções?
Função é um bloco de código que, como o próprio
nome diz, tem uma função, uma tarefa específica.
Veja função como uma maneira de se evitar a
repetição de código.
Por que usar funções?
- Organizar e modularizar o código
- Evitar repetição de código
Funções
Se você já fez algum programa, então com certeza
já utilizou uma função, pois a main é uma função.
Praticamente tudo o que programamos é feito em
funções.
Estrutura das Funções
Vamos ver como é a estrutura de uma função
int foo(int b) {
int a;
a = b;
return a;
}
Tipo da função: este tipo indica o
tipo de dado que a função retorna.
Se a função não tiver que retornar
nada, ela será do tipo void.
Nome da função: o nome da
função deve seguir as mesmas
regras de nomeação de variáveis.
Parâmetros ou argumentos: a
função pode receber parâmetros
de seu chamador, que podem ser
usados no seu escopo. Uma função
pode ou não ter parâmetros.
Escopo da função: as variáveis que
são definidas dentro da função só
existem lá dentro e não podem ser
utilizadas fora deste escopo.
Função main
Como dito, a main é uma função. Mas ela é uma função
especial, como o próprio nome diz, ela é a função principal do
programa. Todo programa se inicia e termina na main.
int main() {
return 0;
}
O return 0, quando inserido na main,
indica para o computador, o ponto de
parada do programa.
Funções
É muito importante entender que um programa
pode (e deve) ter várias funções. É importante saber
também, que existem funções pré-definidas pela
linguagem que estão nas bibliotecas do sistema e ás
incluímos através do comando include.
Funções incluídas
Um exemplo de uma função pré-definida que
utilizamos a todo momento é a printf. A função
printf é uma função da biblioteca padrão stdio.
#include <stdio.h>
int main(){
printf(“Hello world”);
return 0;
}
A biblioteca padrão, stdio.h, é obrigatória para
execução de qualquer programa, pois a main
também está definida lá. Sem o comando include,
não conseguiríamos utilizar uma função pré-
definida em uma biblioteca. Existem diversas
bibliotecas disponíveis.
Programas com e sem funções
Vamos ver um exemplo de dois programas que fazem a mesma coisa, porém um com
duas funções e outro com uma. Seja o problema de somar dois números.
#include <stdio.h>
int main(){
int soma;
int a = 10;
int b = 5;
soma = a + b;
return 0;
}
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
Todo código na main Utilizando duas funções
Análise de um programa com mais de uma função
Vamos analisar a execução
deste programa para ver o
que acontece.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Passo 1
O programa começa a
executar a partir da função
main.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Passo 2
A variável a recebe o valor
10.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Variável Valor
a 10
Passo 3
A variável b recebe o valor 5.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Variável Valor
a 10
b 5
Passo 4
A execução na main é
colocada em standby até
que haja um retorno da
função chamada.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Variável Valor
a 10
b 5
A propósito, a maneira como
chamamos uma função é
com o nome dela e
exatamente a quantidade de
parâmetros que ela requere.
Passo 5
A execução se inicia na
função. Neste momento n1 e
n2 recebem os valores
passados na chamada da
função. Neste caso, os
valores de a e b.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Variável Valor
a 10
b 5
n1 10
n2 5
Passo 6
O programa sabe que uma
função chegou ao fim
quando a execução encontra
a palavra return para
funções que retornam algo.
Para um função que retorna
algo, a palavra return é
obrigatória.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
7
Variável Valor
a 10
b 5
n1 10
n2 5
Para funções que não
retornam nada, o fim é
identificado pela chave de
fechamento.
Para o nosso caso, o retorno
deve ser um inteiro. Nada
nos impede de retornar uma
soma, cujo valor é um
inteiro. É exatamente isto
que estamos fazendo.
Passo 7
Como a função retornou,
voltamos para a main. É isso
que a retorno faz, voltar
para onde a função foi
chamada e envia o valor de
retorno.
#include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
8
Variável Valor
a 10
b 5
n1 10
n2 5
soma 15
A variável soma vai receber
o valor de retorno da função,
que nesse caso é a soma de
n1 e n2, que nos dá 15.
7
Passo 9
O programa encontra o
return 0 na main e se
encerra. #include <stdio.h>
int somar (int n1, int n2){
return n1 + n2;
}
int main(){
int a = 10;
int b = 5;
int soma = somar(a,b);
return 0;
}
1
2
3
4
5
6
8
Variável Valor
a 10
b 5
n1 10
n2 5
soma 15
7
Alguns fatos que precisamos reforçar
No exemplo anterior aprendemos várias características de uma função. Vamos reforçar
alguns fatos:
• A chamada da função deve passar exatamente o número de parâmetros que a função
requere e todos devem ser do tipo especificado. Se a função requer um inteiro e um
caracter e você passar dois inteiros por exemplo, o programa não irá compilar.
• Se a função retorna algo, este retorno deve ser exatamente do tipo especificado.
• Um função pode chamar outras funções. Você faz isto na main a todo momento e
lembre-se que ela é uma função!
Alguns fatos que precisamos reforçar
• Sempre que uma função é chamada, a execução sequencial do programa é
quebrada e enviada para a função. Em algum momento, obrigatoriamente,
essa execução será retomada do mesmo ponto em que parou. Isto
acontece quando a função termina sua execução e acontece então um
retorno para o local de sua chamada, sendo ele a main ou qualquer outra
função.

Más contenido relacionado

La actualidad más candente

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 CJose Augusto Cintra
 
Ergonomia -aula
Ergonomia  -aulaErgonomia  -aula
Ergonomia -aulapamcolbano
 
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çõesElaine Cecília Gatto
 
Determinação da aceleração da gravidade através de procedimentos experimentais
Determinação da aceleração da gravidade através de procedimentos experimentaisDeterminação da aceleração da gravidade através de procedimentos experimentais
Determinação da aceleração da gravidade através de procedimentos experimentaisDiego Padilha
 
Projeto de Intervenção Pedagógica (PIP)
Projeto de Intervenção Pedagógica (PIP)Projeto de Intervenção Pedagógica (PIP)
Projeto de Intervenção Pedagógica (PIP)Debora_Marques
 
Módulo 01 1 ERGONOMIA
Módulo 01 1 ERGONOMIAMódulo 01 1 ERGONOMIA
Módulo 01 1 ERGONOMIALucila Soares
 
Análise ergonômica de uma sala de aula de ensino regular
Análise ergonômica de uma sala de aula de ensino regularAnálise ergonômica de uma sala de aula de ensino regular
Análise ergonômica de uma sala de aula de ensino regularDamiao131093ocara
 
Aula 4.1 biomecânica ocupacional
Aula 4.1   biomecânica ocupacionalAula 4.1   biomecânica ocupacional
Aula 4.1 biomecânica ocupacionalDaniel Moura
 
Equipamento de proteção individual
Equipamento de proteção individualEquipamento de proteção individual
Equipamento de proteção individualWillame Araújo
 
Saúde e Segurança no Trabalho
Saúde e Segurança no TrabalhoSaúde e Segurança no Trabalho
Saúde e Segurança no TrabalhoLeonardo Machado
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em CBruno Oliveira
 
Elaboração de relatórios
Elaboração de relatóriosElaboração de relatórios
Elaboração de relatóriosFátima Santos
 
Planejamento estratégico da manutenção
Planejamento estratégico da manutençãoPlanejamento estratégico da manutenção
Planejamento estratégico da manutençãoEdinhoguerra
 
introdução ao balanço de massa
introdução ao balanço de massaintrodução ao balanço de massa
introdução ao balanço de massamlbf23
 

La actualidad más candente (20)

Apresentação estágio 1
Apresentação estágio 1Apresentação estágio 1
Apresentação estágio 1
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
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
 
Ergonomia -aula
Ergonomia  -aulaErgonomia  -aula
Ergonomia -aula
 
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
 
Determinação da aceleração da gravidade através de procedimentos experimentais
Determinação da aceleração da gravidade através de procedimentos experimentaisDeterminação da aceleração da gravidade através de procedimentos experimentais
Determinação da aceleração da gravidade através de procedimentos experimentais
 
Projeto de Intervenção Pedagógica (PIP)
Projeto de Intervenção Pedagógica (PIP)Projeto de Intervenção Pedagógica (PIP)
Projeto de Intervenção Pedagógica (PIP)
 
Ler dort
Ler dortLer dort
Ler dort
 
Módulo 01 1 ERGONOMIA
Módulo 01 1 ERGONOMIAMódulo 01 1 ERGONOMIA
Módulo 01 1 ERGONOMIA
 
Análise ergonômica de uma sala de aula de ensino regular
Análise ergonômica de uma sala de aula de ensino regularAnálise ergonômica de uma sala de aula de ensino regular
Análise ergonômica de uma sala de aula de ensino regular
 
Aula 4.1 biomecânica ocupacional
Aula 4.1   biomecânica ocupacionalAula 4.1   biomecânica ocupacional
Aula 4.1 biomecânica ocupacional
 
Equipamento de proteção individual
Equipamento de proteção individualEquipamento de proteção individual
Equipamento de proteção individual
 
Saúde e Segurança no Trabalho
Saúde e Segurança no TrabalhoSaúde e Segurança no Trabalho
Saúde e Segurança no Trabalho
 
Como fazer citações
Como fazer citaçõesComo fazer citações
Como fazer citações
 
A taxa de frequência de acidente
A taxa de frequência de acidenteA taxa de frequência de acidente
A taxa de frequência de acidente
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em C
 
Aula 4.1- Ergonomia
Aula 4.1- ErgonomiaAula 4.1- Ergonomia
Aula 4.1- Ergonomia
 
Elaboração de relatórios
Elaboração de relatóriosElaboração de relatórios
Elaboração de relatórios
 
Planejamento estratégico da manutenção
Planejamento estratégico da manutençãoPlanejamento estratégico da manutenção
Planejamento estratégico da manutenção
 
introdução ao balanço de massa
introdução ao balanço de massaintrodução ao balanço de massa
introdução ao balanço de massa
 

Destacado

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroJuan Basso
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic lilianakhjhjhjh
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDSPablo Silva
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPAlmir Neto
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Relações de recorrência
Relações de recorrênciaRelações de recorrência
Relações de recorrênciaPablo Silva
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basicDaniel Carrara
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 

Destacado (20)

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiro
 
PROGRAMAS QBASIC
PROGRAMAS QBASICPROGRAMAS QBASIC
PROGRAMAS QBASIC
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic liliana
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDS
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHP
 
Linguagem C - Uniões
Linguagem C - UniõesLinguagem C - Uniões
Linguagem C - Uniões
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Relações de recorrência
Relações de recorrênciaRelações de recorrência
Relações de recorrência
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basic
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 

Similar a Funções em C

Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e RecursivasKadzuwa Kuyeri
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
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.pdfGabrielEduardo16342
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcionalGabriel Schade Cardoso
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
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
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocosRicardo Bolanho
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 

Similar a Funções em C (20)

Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
 
Apostila de-arduino
Apostila de-arduinoApostila de-arduino
Apostila de-arduino
 
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
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Aula17
Aula17Aula17
Aula17
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Funções em C
Funções em CFunções em C
Funções em C
 
Aula 4
Aula 4Aula 4
Aula 4
 
Python 03
Python 03Python 03
Python 03
 
Modularização
ModularizaçãoModularização
Modularização
 
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
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 

Más de Pablo Silva

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas maisPablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Pablo Silva
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?Pablo Silva
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Pablo Silva
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologiaPablo Silva
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemPablo Silva
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Pablo Silva
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRsPablo Silva
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-drivenPablo Silva
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Pablo Silva
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Pablo Silva
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Pablo Silva
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Pablo Silva
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoPablo Silva
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em CPablo Silva
 

Más de Pablo Silva (18)

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas mais
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologia
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vem
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRs
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Structs em C
Structs em CStructs em C
Structs em C
 

Último

Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º anoRachel Facundo
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedJaquelineBertagliaCe
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptxMarlene Cunhada
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...DirceuNascimento5
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfAutonoma
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxSilvana Silva
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 

Último (20)

Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 

Funções em C

  • 2. O que são funções? Função é um bloco de código que, como o próprio nome diz, tem uma função, uma tarefa específica. Veja função como uma maneira de se evitar a repetição de código.
  • 3. Por que usar funções? - Organizar e modularizar o código - Evitar repetição de código
  • 4. Funções Se você já fez algum programa, então com certeza já utilizou uma função, pois a main é uma função. Praticamente tudo o que programamos é feito em funções.
  • 5. Estrutura das Funções Vamos ver como é a estrutura de uma função int foo(int b) { int a; a = b; return a; } Tipo da função: este tipo indica o tipo de dado que a função retorna. Se a função não tiver que retornar nada, ela será do tipo void. Nome da função: o nome da função deve seguir as mesmas regras de nomeação de variáveis. Parâmetros ou argumentos: a função pode receber parâmetros de seu chamador, que podem ser usados no seu escopo. Uma função pode ou não ter parâmetros. Escopo da função: as variáveis que são definidas dentro da função só existem lá dentro e não podem ser utilizadas fora deste escopo.
  • 6. Função main Como dito, a main é uma função. Mas ela é uma função especial, como o próprio nome diz, ela é a função principal do programa. Todo programa se inicia e termina na main. int main() { return 0; } O return 0, quando inserido na main, indica para o computador, o ponto de parada do programa.
  • 7. Funções É muito importante entender que um programa pode (e deve) ter várias funções. É importante saber também, que existem funções pré-definidas pela linguagem que estão nas bibliotecas do sistema e ás incluímos através do comando include.
  • 8. Funções incluídas Um exemplo de uma função pré-definida que utilizamos a todo momento é a printf. A função printf é uma função da biblioteca padrão stdio. #include <stdio.h> int main(){ printf(“Hello world”); return 0; } A biblioteca padrão, stdio.h, é obrigatória para execução de qualquer programa, pois a main também está definida lá. Sem o comando include, não conseguiríamos utilizar uma função pré- definida em uma biblioteca. Existem diversas bibliotecas disponíveis.
  • 9. Programas com e sem funções Vamos ver um exemplo de dois programas que fazem a mesma coisa, porém um com duas funções e outro com uma. Seja o problema de somar dois números. #include <stdio.h> int main(){ int soma; int a = 10; int b = 5; soma = a + b; return 0; } #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } Todo código na main Utilizando duas funções
  • 10. Análise de um programa com mais de uma função Vamos analisar a execução deste programa para ver o que acontece. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7
  • 11. Passo 1 O programa começa a executar a partir da função main. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7
  • 12. Passo 2 A variável a recebe o valor 10. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10
  • 13. Passo 3 A variável b recebe o valor 5. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5
  • 14. Passo 4 A execução na main é colocada em standby até que haja um retorno da função chamada. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 A propósito, a maneira como chamamos uma função é com o nome dela e exatamente a quantidade de parâmetros que ela requere.
  • 15. Passo 5 A execução se inicia na função. Neste momento n1 e n2 recebem os valores passados na chamada da função. Neste caso, os valores de a e b. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 n1 10 n2 5
  • 16. Passo 6 O programa sabe que uma função chegou ao fim quando a execução encontra a palavra return para funções que retornam algo. Para um função que retorna algo, a palavra return é obrigatória. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 7 Variável Valor a 10 b 5 n1 10 n2 5 Para funções que não retornam nada, o fim é identificado pela chave de fechamento. Para o nosso caso, o retorno deve ser um inteiro. Nada nos impede de retornar uma soma, cujo valor é um inteiro. É exatamente isto que estamos fazendo.
  • 17. Passo 7 Como a função retornou, voltamos para a main. É isso que a retorno faz, voltar para onde a função foi chamada e envia o valor de retorno. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 8 Variável Valor a 10 b 5 n1 10 n2 5 soma 15 A variável soma vai receber o valor de retorno da função, que nesse caso é a soma de n1 e n2, que nos dá 15. 7
  • 18. Passo 9 O programa encontra o return 0 na main e se encerra. #include <stdio.h> int somar (int n1, int n2){ return n1 + n2; } int main(){ int a = 10; int b = 5; int soma = somar(a,b); return 0; } 1 2 3 4 5 6 8 Variável Valor a 10 b 5 n1 10 n2 5 soma 15 7
  • 19. Alguns fatos que precisamos reforçar No exemplo anterior aprendemos várias características de uma função. Vamos reforçar alguns fatos: • A chamada da função deve passar exatamente o número de parâmetros que a função requere e todos devem ser do tipo especificado. Se a função requer um inteiro e um caracter e você passar dois inteiros por exemplo, o programa não irá compilar. • Se a função retorna algo, este retorno deve ser exatamente do tipo especificado. • Um função pode chamar outras funções. Você faz isto na main a todo momento e lembre-se que ela é uma função!
  • 20. Alguns fatos que precisamos reforçar • Sempre que uma função é chamada, a execução sequencial do programa é quebrada e enviada para a função. Em algum momento, obrigatoriamente, essa execução será retomada do mesmo ponto em que parou. Isto acontece quando a função termina sua execução e acontece então um retorno para o local de sua chamada, sendo ele a main ou qualquer outra função.