SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Linguagem c wellington telles - aula 08
Linguagem c   wellington telles - aula 08Linguagem c   wellington telles - aula 08
Linguagem c wellington telles - aula 08profwtelles
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Ismar Silveira
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
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
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandremarcosnem
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em CPablo Silva
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem cRafael_Lima87
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersRodrigo Almeida
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introduçãoRicardo Fahham
 

Tendances (20)

Linguagem c wellington telles - aula 08
Linguagem c   wellington telles - aula 08Linguagem c   wellington telles - aula 08
Linguagem c wellington telles - aula 08
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
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
 
Aula17
Aula17Aula17
Aula17
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Aula 6 pc - slides
Aula 6   pc - slidesAula 6   pc - slides
Aula 6 pc - slides
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffers
 
Tema 2 | Linguagem PHP Básico (II)
Tema 2 | Linguagem PHP Básico (II)Tema 2 | Linguagem PHP Básico (II)
Tema 2 | Linguagem PHP Básico (II)
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 

En vedette

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
 

En vedette (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
 

Similaire à Funções AEDSI

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
 
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
 
Aula01
Aula01Aula01
Aula01vdlos
 

Similaire à Funções AEDSI (20)

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
 
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
 
Aula 4
Aula 4Aula 4
Aula 4
 
Python 03
Python 03Python 03
Python 03
 
Modularização
ModularizaçãoModularização
Modularização
 
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
 
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
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Aula01
Aula01Aula01
Aula01
 

Plus 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
 

Plus de Pablo Silva (17)

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
 
Structs em C
Structs em CStructs em C
Structs em C
 

Dernier

Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?MrciaRocha48
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoCelianeOliveira8
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxkarinasantiago54
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.HildegardeAngel
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxHlioMachado1
 
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxEVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxHenriqueLuciano2
 
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxSlides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxLuizHenriquedeAlmeid6
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptAlineSilvaPotuk
 
Mini livro sanfona - Diga não ao bullying
Mini livro sanfona - Diga não ao  bullyingMini livro sanfona - Diga não ao  bullying
Mini livro sanfona - Diga não ao bullyingMary Alvarenga
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAlexandreFrana33
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...nexocan937
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREIVONETETAVARESRAMOS
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdfCarlosRodrigues832670
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxAntonioVieira539017
 
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mim
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mimJunto ao poço estava eu Quando um homem judeu Viu a sede que havia em mim
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mimWashingtonSampaio5
 
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxAULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxGislaineDuresCruz
 

Dernier (20)

Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e feminino
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptx
 
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptxEVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
EVANGELISMO É MISSÕES ATUALIZADO 2024.pptx
 
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxSlides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
 
Mini livro sanfona - Diga não ao bullying
Mini livro sanfona - Diga não ao  bullyingMini livro sanfona - Diga não ao  bullying
Mini livro sanfona - Diga não ao bullying
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptx
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...
Minha Luta (Mein Kampf), A História do País que Lutou contra a União Soviétic...
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
 
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mim
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mimJunto ao poço estava eu Quando um homem judeu Viu a sede que havia em mim
Junto ao poço estava eu Quando um homem judeu Viu a sede que havia em mim
 
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxAULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
 

Funções AEDSI

  • 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.