1 / 15

Projeto e Desenvolvimento de Algoritmos

Projeto e Desenvolvimento de Algoritmos. Funções Renato Campioni. Funções. Funções são blocos de programas que retornam um valor. Sintaxe: função nome ( entradas : nono, nonono[], nono, ... saídas : nono, nonono, nono[], ...) inicio { comandos } nome  ... fim.

Download Presentation

Projeto e Desenvolvimento de Algoritmos

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projeto e Desenvolvimento de Algoritmos Funções Renato Campioni

  2. Funções • Funções são blocos de programas que retornam um valor. • Sintaxe: funçãonome ( entradas: nono, nonono[], nono, ... saídas: nono, nonono, nono[], ...) inicio { comandos } nome ... fim

  3. Funções: Retorno • O bloco de comandos deve conter pelo menos uma instrução que atribui um valor ao identificador da função. funçãonome ( ... inicio { comandos } nome ... fim

  4. Funções – Exemplo função Patas (entradas: N1,N2) início Patas  4*(N1 + N2) fim programa teste inicio caes  4 gatos  3 pes  Patas(caes, gatos); imprima 'Total de patas: ', pes fim

  5. Outro exemplo: A função Converte função Converte(entradas: Fer) início Converte  ((Fer - 32) * 5) / 9 fim programa teste início imprima'Temperatura em Fahrenheit: ' leiaFar Cel  Converte(Far) imprima'Celsius: ', Cel fim

  6. A função Converte • Saída: Temperatura em Fahrenheit: 212 Celsius: 100.00 • Alocação de memória: 100 Tcel:Converte 212 Fer:Converte 100 Cel 212 Far

  7. Outro exemplo função CalculaArea(entradas l, c) início CalculaArea  l * c fim Programaarea início imprima'Largura do jardim? ‘ leialarg imprima'Comprimento do jardim? ‘ leiacomp imprima 'Area:',CalculaArea(larg,comp) fim

  8. A função area Saída:Largura do jardim? 100Comprimento do jardim? 50Area: 5000

  9. Vetores e funções • Um vetor pode ser passado como parâmetro usando-se apenas o nome do mesmo na chamada à função

  10. Vetores e funções (passagem valor) ConstanteDim = 3 funçãoAchaMaior(entradas: tab[] saídas:pos) início { Assume temporariamente que o primeiro elemento da tabela e' o maior } AchaMaior  tab[1] pos  1 { Percorre a tabela procurando um elemento maior do que maior } parai  2atéDIMfaça setab[i]>maiorentão AchaMaior  tab[i] pos  i fim se próximo i fim

  11. Vetores e funções(continuação) Programa maior início { O usuario inicializa a tabela } para i  1 até DIM faça leiatabela[i]); próximo i { chama a funcao para determinar o maior } maior  AchaMaior(tabela, pos); { imprime o resultado } imprimamaior, pos fim

  12. ? i:AchaMaior tab[3]:AchaMaior 3.0 2.0 tab[2]:AchaMaior 1.0 tab[1]:AchaMaior maior ? 3.0 tabela[3] tabela[2] 2.0 tabela[1] 1.0 pos ? pos:AchaMaior i 3 Passagem por valor: Alocação em memória • Uma cópia de cada um dos elementos do vetor é criada na pilha.

  13. Vetores e funções (passagem referência) ConstanteDim = 3 funçãoAchaMaior(saídas : tab[], pos) início { Assume temporariamente que o primeiro elemento da tabela e' o maior } AchaMaior  tab[1] pos  1 { Percorre a tabela procurando um elemento maior do que maior } parai  2atéDIMfaça setab[i]>maiorentão AchaMaior  tab[i] pos  i fim se próximo i fim Agora é saída

  14. ? i:AchaMaior maior ? 3.0 tabela[3] tab[3]:AchaMaior tabela[2] 2.0 tab[2]:AchaMaior tabela[1] 1.0 tab[1]:AchaMaior pos ? pos:AchaMaior i 3 Passagem por referência (continuação) • Alocação em memória

  15. Passagem por referência (continuação) • A passagem de vetores por referência pode ser vantajosa, se os vetores forem grandes, e se o tempo de processamento for um dado crítico no programa. Evita-se com isso a cópia dos valores dos vetores na pilha.

More Related