procedimentos e fun es n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Procedimentos e Funções PowerPoint Presentation
Download Presentation
Procedimentos e Funções

Loading in 2 Seconds...

play fullscreen
1 / 56

Procedimentos e Funções - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

Procedimentos e Funções. Motivação. Procedimentos e Funções promovem o reuso de código eliminando a necessidade de replicação Facilitam a manutenção, legibilidade extensão dos programas. Motivação Exemplo 1. Algoritmo testeSemFunção () início inteiro base=0 ler base inteiro fat=1

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Procedimentos e Funções' - fausto


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
motiva o
Motivação
  • Procedimentos e Funções promovem o reuso de código eliminando a necessidade de replicação
  • Facilitam a manutenção, legibilidade extensão dos programas
motiva o exemplo 1
Motivação Exemplo 1

Algoritmo testeSemFunção ()

início

inteiro base=0

ler base

inteiro fat=1

inteiro cont=1

para (cont<base;cont=cont+1) faça

fat = fat*cont

fimpara

base=fat

motiva o exemplo 11
Motivação Exemplo 1

inteiro expoente =0

ler expoente

fat=1

cont=1

para (cont<expoente;cont=cont+1) faça

fat = fat*cont

fimpara

expoente=fat

motiva o exemplo 12
Motivação Exemplo 1

inteiro divisor =0

ler divisor

fat=1

cont=1

para (cont<divisor;cont=cont+1) faça

fat = fat*cont

fimpara

divisor=fat

motiva o exemplo 13
Motivação Exemplo 1

inteiro x =0

ler x

fat=1

cont=1

para (cont<x;cont=cont+1) faça

fat = fat*cont

fimpara

x=fat

motiva o exemplo 14
Motivação Exemplo 1

imprimir "fatorial base:"+base

imprimir "fatorial expoente:"+expoente

imprimir "fatorial fatorial:"+fatorial

imprimir "fatorial x:"+x

Fim

motiva o1
Motivação
  • Foi necessário replicar o código para calcular o fatorial quatro vezes dentro do código
  • Será preciso replicar este código sempre que quisermos calcular o fatorial de um número?
  • Há alguma maneira mais eficiente e elegante de se fazer isso?
motiva o2
Motivação
  • Uso de Procedimentos/Funções
  • Evitam replicação desnecessária de código promovendo assim o reuso
motiva o exemplo 2
Motivação Exemplo 2

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

motiva o exemplo 21
Motivação Exemplo 2

inteiro fatorial =0

ler fatorial

fatorial = móddulo (fatorial)

inteiro x =0

ler x

x=fatorial(x)

imprimir "fatorial base:"+base

imprimir "fatorial expoente:"+expoente

imprimir "fatorial fatorial:"+fatorial

imprimir "fatorial x:"+x

Fim

motiva o exemplo 22
Motivação Exemplo 2

inteiro fatorial(inteiro x)

início

inteiro result=1

inteiro cont=1

para (cont<x;cont=cont+1) faça

resut = result*cont

fimpara

retorne result

fim

motiva o3
Motivação
  • Redução clara no tamanho do código
    • Exemplo 1 = 5 slides
    • Exemplo 2 = 3 slides
  • Aumento da legibilidade – todas as funcionalidades do programa estão em um único slide
motiva o4
Motivação
  • Possível Manutenção - o uso de procedimentos e funções facilitam a manutenção do código
  • Imagine que houvesse um erro no exemplo 1 no trecho de atualização dos contadores. A correção teria que ser propagada por todo o código
motiva o5
Motivação
  • No exemplo 2 a manutenção só teria que ser feita em um ponto, ou seja, no função fatorial
motiva o reuso
Motivação - Reuso
  • No exemplo 1, sempre que necessário calcular um fatorial de um número uma nova réplica do código de cálculo deverá ser feita
  • No exemplo 2, é necessário apenas uma chamada à função
sintaxe
Sintaxe
  • Procedimentos

Procedimento nome(<lista parâmetros>) início corpo fim

  • Funções

tipo nome(<lista de parâmetros>)

início corpo fim

sintaxe lista de par metros
Sintaxe – lista de parâmetros
  • Pode ser uma lista vazia – nesse caso, a função não recebe dados de entrada
  • Pode um ou mais elementos seguindo a sintaxe

tipo par1, tipo par2, ..., tipo parFinal

sintaxe tipos
Sintaxe - Tipos
  • Qualquer tipo básico da linguagem – Inteiro, Real, Texto, etc
  • Qualquer tipo definido na linguagem, string, vector, iterator, etc
  • Qualquer tipo definido pelo programador
sintaxe nomes
Sintaxe - Nomes
  • Os nomes, tanto de funções como de parâmetros devem ser identificadores válidos
  • Eles devem começar por um caractere (a-z, A-Z) e podem ser seguidos de um ou mais caractere ou dígitos(a-z,A-Z,0-9,_)
sintaxe nomes1
Sintaxe - Nomes
  • Não podem conter espaços em branco

Inteiro calcular fatorial(Inteiro x )

    • Erro de compilação

Inteiro calcular_fatorial(Inteiro x )

    • Correto

Inteiro calcularFatorial(Inteiro x )

    • Correto
dicas
Dicas
  • O nome de uma função deve expressar claramente o que ela faz
  • A dificuldade em definir o nome de uma função pode indicar que ela deve ser dividida em mais de uma função
sintaxe corpo
Sintaxe - Corpo
  • Corpo de um procedimento é um conjunto de comandos válidos na linguagem
  • Podemos declarar variáveis, fazer comandos de entrada e saída
  • Funções e procedimentos podem usar outras funções e procedimentos previamente declarados
  • Funções e procedimentos não podem declarar dentro de seu corpo outras funções e procedimentos
sintaxe1
Sintaxe
  • Procedimentos

Procedimento nome(<lista parâmetros>) início corpo fim

  • Funções

tipo nome(<lista de parâmetros>)

início corpo fim

sintaxe retorno
Sintaxe - Retorno
  • Procedimentos não possuem em sua assinatura nenhum tipo, que significa que esta função não retorna nenhum valor
  • Funções necessariamente possuem um tipo de retorno, que pode ser qualquer um dos mencionados anteriormente
sintaxe retorno1
Sintaxe - Retorno

Inteiro calcularAreaRetangulo (Inteiro base, Inteiro alt)

  • Esta assinatura indica que a função calcularAreaRetangulo recebe dois parâmetros Inteiros e retorna um valor inteiro.
sintaxe retorno2
Sintaxe - Retorno
  • A presença de um tipo de retorno indica que ao terminar sua execução uma função deve retornar um valor do tipo de retorno especificado
  • Assim, uma função que possui um tipo de retorno Inteiro deve retornar um valor Inteiro, Lógico um valor lógico e assim sucessivamente
sintaxe retorno3
Sintaxe - Retorno

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt)

início

Inteiro area=base * alt

retorne area

fim

sintaxe assinatura
Sintaxe - Assinatura
  • Em algumas linguagens de programação, entre elas c++, não é possível fazer uma chamada para uma função antes da declaração dela
  • No entanto, por questões organizacionais, pode não ser Interessante definir uma função em um determinado ponto do código
sintaxe assinatura1
Sintaxe - Assinatura
  • Suponha que você quer manter suas funções em ordem alfabética
  • Suponha que, por clareza, você quer que duas funções fiquem próximas, por exemplo funções de entrada e saída
sintaxe assinatura2
Sintaxe - Assinatura
  • Como resolver situações como as expostas anteriormente?
  • A resposta é a declaração da assinatura da função
  • A assinatura permite que se utilize uma função antes de sua declaração
sintaxe assinatura3
Sintaxe - Assinatura

Inteiro fatorial(inteiro x);

Algoritmo principal()

Início

Inteiro base=0

ler base

base = fatorial(base)

sintaxe assinatura4
Sintaxe - Assinatura

Inteiro fatorial(inteiro x);

Algoritmo principal()

Início

Inteiro base=0

ler base

base = fatorial(base)

Assinatura

slide34
Uso
  • Como usar uma função?
  • Basta apenas fazer uma chamada para função
slide35
Uso

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt);

Procedimento main()

início

Inteiro base =2

Inteiro alt = 3

Inteiro result = calcularAreaRetangulo(base, alt)

imprimir “o resultado é ” + result

fim

slide36
Uso

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt);

Procedimento main()

início

Inteiro b =2

Inteiro t = 3

Inteiro result = calcularAreaRetangulo(b, t)

imprimir “o resultado é ” + result

fim

slide37
Uso

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt);

Procedimento main()

início

Inteiro base =2

Real alt = 3

Inteiro result = calcularAreaRetangulo(base, alt)

imprimir “o resultado é ” + result

fim

slide38
Uso

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt);

Procedimento main()

início

Inteiro base =2

Real alt = 3

Inteiro intAlt=(Inteiro)alt

Inteiro result = calcularAreaRetangulo(base, intAlt)

imprimir “o resultado é ” + result

fim

como funciona
Como Funciona?
  • Ao iniciar o programa, o SO tem o endereço de todas as funções definidas
  • Ao encontrar uma chamada de função/procedimento, o fluxo do programa é desviado para o a função
  • Ao terminar a execução da função, o fluxo retorna para o ponto imediatamente após o ponto onde a função foi chamada
como funciona1
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

como funciona2
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

como funciona3
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

como funciona4
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

inteiro fatorial(inteiro x)

início

inteiro result=1

inteiro cont=1

para (cont<x;cont=cont+1) faça

resut = result*cont

fimpara

retorne result

fim

como funciona5
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

inteiro fatorial(inteiro x)

início

inteiro result=1

inteiro cont=1

para (cont<x;cont=cont+1) faça

resut = result*cont

fimpara

retorne result

fim

como funciona6
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

inteiro fatorial(inteiro x)

início

inteiro result=1

inteiro cont=1

para (cont<x;cont=cont+1) faça

resut = result*cont

fimpara

retorne result

fim

como funciona7
Como Funciona?

Algoritmo testeComFunção ()

início

inteiro base=0

ler base

base = fatorial(base)

inteiro expoente =0

ler expoente

expoente = fatorial (expoente)

vari veis locais
Variáveis Locais
  • Funções permitem a definição de variáveis
vari veis locais1
Variáveis Locais
  • Funções permitem a definição de variáveis

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt)

Início

Inteiro area=base * alt;

return area;

Fim

vari veis locais2
Variáveis Locais
  • Funções permitem a definição de variáveis
  • As variáveis declaradas dentro das funções só tem validade dentro destas funções
vari veis locais3
Variáveis Locais
  • Funções permitem a definição de variáveis
  • As variáveis declaradas dentro das funções só tem validade dentro destas funções
  • Variáveis declaradas dentro de funções são chamadas variáveis automáticas pois são criadas e destruídas sempre que a função para executada
como funciona8
Como Funciona?
  • Mecanismo é chamado pilha de execução
    • A pilha de execução está vazia
    • Ao iniciar a execução de um bloco (início... fim), as variáveis são empilhadas à medida em que são criadas;
    • Ao final de um bloco, essas variáveis são desempilhadas, liberando espaço na memória.
exemplo
Exemplo

Inteiro calcularAreaRetangulo(Inteiro base, Inteiro alt)

Início

Inteiro area=base * alt;

return area;

Fim

area

Início da função

Durante a Função

Depois da Função

vari veis locais x globais
Variáveis Locais x Globais
  • É possível declarar variáveis locais com o mesmo nome de variáveis globais
  • Nestes caso, a variável local “esconde” a variável global

Inteiro nota

procedimento funcao()

Início

Inteiro nota;

/* Neste ponto, nota é variável local*/

Fim

revis o
Revisão
  • Porquê usar funções
  • Sintaxe
  • Como usar funções
  • Como funciona a chamada de funções
  • Definição de variáveis locais
  • Execução da pilha de execução
pr ximos passos
Próximos Passos
  • Variações nas passagens de parâmetro (valor, referência, limitações)
  • Recursão
exerc cios
Exercícios
  • Criar uma função que receba as coordenadas x,y e z de dois vetores e calcule o produto escalar destes 2 vetores
  • Criar uma função que calcule a área de um circulo que receba o raio como parâmetro
  • Criar funções que calculem a área de um triangulo( parâmetros a serem definidos)