32
1 Aula 6 Aula 6 Subprogramas Subprogramas Universidade do Vale do Rio dos S < Página da Disciplina > www.inf.unisinos.br/~barbosa www.inf.unisinos.br/~barbosa <Endereço do Professor > [email protected] [email protected]

1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa [email protected]

Embed Size (px)

Citation preview

Page 1: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

1

Aula 6Aula 6SubprogramasSubprogramas

Universidade do Vale do Rio dos Sinos

< Página da Disciplina >

www.inf.unisinos.br/~barbosawww.inf.unisinos.br/~barbosa

<Endereço do Professor >

[email protected]@exatas.unisinos.br

Page 2: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

2

1 – IntroduçãoSumárioSumário

Page 3: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

3

1 – Introdução2 – Fundamentos dos Subprogramas

SumárioSumário

Page 4: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

4

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto

SumárioSumário

Page 5: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

5

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais

SumárioSumário

Page 6: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

6

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros

SumárioSumário

Page 7: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

7

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros

SumárioSumário

Page 8: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

8

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados

SumárioSumário

Page 9: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

9

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos

SumárioSumário

Page 10: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

10

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente

SumárioSumário

Page 11: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

11

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções

SumárioSumário

Page 12: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

12

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais

SumárioSumário

Page 13: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

13

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados

SumárioSumário

Page 14: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

14

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados13 – Co-Rotinas

SumárioSumário

Page 15: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

15

1 – Introdução - Abstração de processo - Abstração de dados

SumárioSumário

Page 16: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

16

1 – Introdução2 – Fundamentos dos Subprogramas - Subprogramas x Métodos - Protocolo de um subprograma - Declarações e definições: protótipos em C - Parâmetros reais e formais - Parâmetros posicionais e nomeados

SumárioSumário

Page 17: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

17

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto - Quais métodos de passagem usar? - Locais são alocadas estática ou dinamicamente? - Suprogramas dentro de suprogramas?

SumárioSumário

Page 18: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

18

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais - Locais estáticas => Alocação estática - Locais dinâmicas => Heap - Recursividade - Economia de espaço x Eficiência

SumárioSumário

Page 19: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

19

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais - Locais estáticas => Alocação estática - Locais dinâmicas => Heap - Recursividade - Economia de espaço x Eficiência

SumárioSumário

Page 20: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

20

Código

DadosEstáticos

Heap

Pilha

Page 21: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

21

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais - Locais estáticas => Alocação estática - Locais dinâmicas => Heap - Recursividade - Economia de espaço x Eficiência

SumárioSumário

Page 22: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

22

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros - Entrada (in), Saída (out), Entrada/Saída (inout) - Passagem por Valor (in) - Passagem por Resultado (out) - Passagem por Valor-Resultado (inout) - Passagem por Referência (inout) - Passagem por Nome (inout) - Implementação de passagem de parâmetros - Arrays multidimensionais como parâmetros

SumárioSumário

Page 23: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

23

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros - Vinculação rasa - Vinculação profunda - Vinculação ad hoc

SumárioSumário

Page 24: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

24

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados

SumárioSumário

Page 25: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

25

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos - Subprograma genérico ou polimórfico - Polimorfismo paramétrico (Ada e C++)

SumárioSumário

Page 26: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

26

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente - Compilação Separada - Compilação Independente

SumárioSumário

Page 27: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

27

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções - Efeitos colaterais - Tipos de valores retornados

SumárioSumário

Page 28: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

28

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais - Visibilidade externa - Opção EXTERN

SumárioSumário

Page 29: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

29

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados

SumárioSumário

Page 30: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

30

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados13 – Co-Rotinas

SumárioSumário

Page 31: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

31

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados13 – Co-Rotinas

SumárioSumário

Page 32: 1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

32

1 – Introdução2 – Fundamentos dos Subprogramas3 – Questões de Projeto4 – Ambientes de Referência Locais5 – Métodos de Passagem de Parâmetros6 – Nomes de Suprograma como Parâmetros7 – Suprogramas Sobrecarregados8 – Subprogramas Genéricos9 – Compilação Separada e Independente10 – Questões de Projeto Referentes a Funções11 – Acessando Ambientes Não-Locais12 – Operadores Sobrecarregados13 – Co-Rotinas

SumárioSumário