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

Preview:

Citation preview

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 >

barbosa@exatas.unisinos.brbarbosa@exatas.unisinos.br

2

1 – IntroduçãoSumárioSumário

3

1 – Introdução2 – Fundamentos dos Subprogramas

SumárioSumário

4

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

SumárioSumário

5

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

SumárioSumário

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

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

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

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

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

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

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

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

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

15

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

SumárioSumário

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

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

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

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

20

Código

DadosEstáticos

Heap

Pilha

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

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

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

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

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

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

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

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

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

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

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

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

Recommended