1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa [email protected].

76
1 Aula 5 Aula 5 Tipos de Dados Tipos de Dados 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]

Transcript of 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa [email protected].

Page 1: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

1

Aula 5Aula 5Tipos de DadosTipos de Dados

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 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

2

SumárioSumário

1 – Introdução

Page 3: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

3

1 – Introdução2 – Tipos de dados primitivos

SumárioSumário

Page 4: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

4

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres

SumárioSumário

Page 5: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

5

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário

SumárioSumário

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

6

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array

SumárioSumário

Page 7: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

7

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos

SumárioSumário

Page 8: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

8

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro

SumárioSumário

Page 9: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

9

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União

SumárioSumário

Page 10: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

10

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União9 – Tipos Conjunto

SumárioSumário

Page 11: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

11

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União9 – Tipos Conjunto10 – Tipos Ponteiro (referências)

SumárioSumário

Page 12: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

12

IntroduçãoIntrodução

1 – Introdução - Relação Tipos x Espaço do Problema - Descritor (estático ou dinâmico) - Tabela de Símbolos

Page 13: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

13

1 – Introdução2 – Tipos de dados primitivos - Tipos básicos - Primitivos + Construtores => Estruturados - Tipos de dados primitivos

Tipos de dados primitivosTipos de dados primitivos

Page 14: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

14

1 – Introdução2 – Tipos de dados primitivos - Tipos básicos - Primitivos + Construtores => Estruturados - Tipos de dados primitivos (esquema)

Tipos de dados primitivosTipos de dados primitivos

Page 15: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

15

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Page 16: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

16

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Page 17: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

17

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

Decimais

Page 18: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

18

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

Decimais

– Grupo de bits com sinal - Signal magnitude - Complemento de dois

Page 19: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

19

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

– Frações e expoentes– Padronizado: IEEE Floating Point Standard 754 (1985)

Decimais

Page 20: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

20

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

– Frações e expoentes– Padronizado: IEEE Floating Point Standard 754 (1985)

Tanenbaum (1990)Organização Estruturada de ComputadoresApêndice B (p. 448 – 454)

Decimais

Page 21: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

21

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

Decimais

– BCD (Binary Coded Decimal)– Pelo menos 4 bits para um decimal

Page 22: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

22

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

Decimais

– Introduzidos por ALGOL 60– Menor célula de memória (normalmente um byte)

Page 23: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

23

– ASCII– Unicode (16 bites): Utilizada no Java

Tipos de dados primitivosTipos de dados primitivos

Primitivos

Numéricos

Booleanos

Caracterere

Inteiros

Ponto-flutuante

Decimais

Page 24: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

24

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres - Strings como tipos primitivos?

Tipos Tipos StringsStrings de caracteres de caracteres

Page 25: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

25

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres - Strings como tipos primitivos? - Tamanho da string => Estático => Dinâmico Limitado => Dinâmico

Tipos Tipos StringsStrings de caracteres de caracteres

Page 26: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

26

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres - Strings como tipos primitivos? - Tamanho da string => Estático => Dinâmico Limitado => Dinâmico - Implementação (Pascal e C)

Tipos Tipos StringsStrings de caracteres de caracteres

Page 27: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

27

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário - Enumeração Constantes enumeradas na definição

Tipos ordinais definidos pelo usuárioTipos ordinais definidos pelo usuário

Page 28: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

28

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário - Enumeração Constantes enumeradas na definição - Subfaixa Subseqüência de um ordinal Introduzidos pelo Pascal Herdam todas as operações do pai Implementação: Verificação de faixa

Tipos ordinais definidos pelo usuárioTipos ordinais definidos pelo usuário

Page 29: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

29

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias: Onde e quando é alocado

Tipos Tipos ArrayArray

Page 30: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

30

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias (esquema): Onde e quando é alocado

Tipos Tipos ArrayArray

Page 31: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

31

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico Fixo

Page 32: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

32

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

Page 33: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

33

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

Page 34: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

34

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

Page 35: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

35

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

Page 36: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

36

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

Page 37: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

37

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

– Tudo estático– Altamente eficiente

Page 38: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

38

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

– Faixas de índice estáticas– Alocação durante execução

Page 39: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

39

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

– Faixas de índices dinâmicas– Não são alteradas durante execução– Alocação durante execução

Page 40: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

40

Tipos Tipos Array: CategoriasArray: Categorias

Categorias

Estático

Stack Dinâmico

Heap Dinâmico

Stack Dinâmico FixoCódigo

DadosEstáticos

Heap

Pilha

– Faixas de índices dinâmica– – Alocação durante execução

– Faixas de índices dinâmicas– Podem ser alteradas na execução– Alocação durante execução– Resumo: Tudo dinâmico

Page 41: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

41

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias

Tipos Tipos ArrayArray

Page 42: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

42

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias - Operações com Arrays (array é uma unidade)

Tipos Tipos ArrayArray

Page 43: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

43

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias - Operações com Arrays (array é uma unidade) - Implementação: Alocação: Linha ou Coluna Acesso: Função de acesso

Tipos Tipos ArrayArray

Page 44: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

44

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos - Hash como suporte à associatividade - Registradores associativos

Arrays associativosArrays associativos

Page 45: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

45

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro - Referências: Amplamente Qualificada Elípticas (with do Pascal)

Tipos RegistroTipos Registro

Page 46: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

46

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro - Referências: Amplamente Qualificada Elípticas (with do Pascal) - Operações com registros (comparação, atribuição, etc)

Tipos RegistroTipos Registro

Page 47: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

47

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro - Referências: Amplamente Qualificada Elípticas (with do Pascal) - Operações com registros (comparação, atribuição, etc) - Implementação: Campos diferentes

Tipos RegistroTipos Registro

Page 48: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

48

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União - Verificação de tipos é sempre dinâmica (tag) - Registros variantes em Pascal - Verificação: Trocar tag sem trocar variante - Elimina a tipificação forte (Pascal, Fortran, etc)

Tipos UniãoTipos União

Page 49: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

49

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União9 – Tipos Conjunto - Coleções não ordenadas de tipos ordinais - Modelagem de conjuntos matemáticos - Implementação: Strings de bits indicando elementos

Tipos ConjuntoTipos Conjunto

Page 50: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

50

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União9 – Tipos Conjunto10 – Tipos Ponteiro (referências)

Tipos PonteiroTipos Ponteiro

Page 51: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

51

1 – Introdução2 – Tipos de dados primitivos3 – Tipos Strings de caracteres4 – Tipos ordinais definidos pelo usuário5 – Tipos Array6 – Arrays associativos7 – Tipos Registro8 – Tipos União9 – Tipos Conjunto10 – Tipos Ponteiro (referências)

Tipos PonteiroTipos Ponteiro

Page 52: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

52

Tipos PonteiroTipos Ponteiro

- Usos

Page 53: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

53

Tipos PonteiroTipos Ponteiro

- UsosPoder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 54: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

54

Tipos PonteiroTipos Ponteiro

- UsosPoder de endereçamento direto (assembly)

Gerenciamento de Heap

Código

DadosEstáticos

Heap

Pilha

Page 55: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

55

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 56: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

56

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 57: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

57

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros- Ponteiros oscilantes

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 58: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

58

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros- Ponteiros oscilantes- Vazamento de memória

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 59: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

59

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros- Ponteiros oscilantes- Vazamento de memória- Variável de referência Ponteiro constante inicializado Sem aritmética

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 60: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

60

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros- Ponteiros oscilantes- Vazamento de memória- Variável de referência Ponteiro constante inicializado Sem aritmética- Java: Não possibilita ponteiros oscilante

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 61: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

61

Tipos PonteiroTipos Ponteiro

- Usos- Operações com ponteiros- Aritmética de ponteiros- Ponteiros oscilantes- Vazamento de memória- Variável de referência Ponteiro constante inicializado Sem aritmética- Java: Não possibilita ponteiros oscilante- Implementação (2 ou 4 bytes): - Soluções para ponteiros oscilantes - Gerenciamento do Heap (Garbage Collection)

Poder de endereçamento direto (assembly)

Gerenciamento de Heap

Page 62: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

62

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal

Page 63: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

63

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal - Tamanho da String?

=> Estático ?

=> Dinâmico Limitado ?

=> Dinâmico ?

Page 64: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

64

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal - Tamanho da String?

- Como é controlado o tamanho?

=> Estático ?

=> Dinâmico Limitado ?

=> Dinâmico ?

Page 65: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

65

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal - Tamanho da String?

- Como é controlado o tamanho?

=> Estático ?

=> Dinâmico Limitado ?

=> Dinâmico ?

program teste; var x : string[10]; begin x := ‘teste’; x[0] := 3; write(x); end.

Page 66: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

66

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal - Tamanho da String?

- Como é controlado o tamanho?

=> Estático ?

=> Dinâmico Limitado ?

=> Dinâmico ?

program teste; var x : string[10]; begin x := ‘teste’; x[0] := ‘3’; write(x); end.

Page 67: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

67

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

1 – Strings em Pascal - Tamanho da String?

- Como é controlado o tamanho?

=> Estático ?

=> Dinâmico Limitado ?

=> Dinâmico ?

program teste; var x : string[10]; begin x := ‘teste’; x[0] := chr(3); write(x); end.

Page 68: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

68

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

Page 69: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

69

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

program teste; type dias = (seg,ter,quar,quin,sex,sab,dom); conj_dias = set of dias; conj_bytes = set of bytes; conj_int = set of integer;

Page 70: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

70

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

program teste; type dias = (seg,ter,quar,quin,sex,sab,dom); conj_dias = set of dias; conj_bytes = set of bytes; conj_int = set of integer;

Acima do limite

Page 71: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

71

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

program teste; type dias = (seg,ter,quar,quin,sex,sab,dom); conj_dias = set of dias; conj_bytes = set of bytes;

var var_conj : conj_dias; begin if seg in var_conj then write(‘Esta no conjunto’) else write(‘Não esta no conjunto’);; end.

Page 72: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

72

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

program teste; type dias = (seg,ter,quar,quin,sex,sab,dom); conj_dias = set of dias; conj_bytes = set of bytes;

var var_conj : conj_dias; begin var_conj := [seg]; if seg in var_conj then write(‘Esta no conjunto’) else write(‘Não esta no conjunto’);; end.

Page 73: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

73

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

3 – Diretivas de compilação:

Page 74: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

74

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

3 – Diretivas de compilação:

- Dimensionamento de memória: Diretiva $M

Page 75: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

75

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

3 – Diretivas de compilação:

- Dimensionamento de memória: Diretiva $M

- Verificação de faixas: Diretiva $R

Page 76: 1 Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.

76

Exercícios Práticos: Exercícios Práticos: Estudo de caso Turbo PascalEstudo de caso Turbo Pascal

3 – Diretivas de compilação:

- Dimensionamento de memória: Diretiva $M

- Verificação de faixas: Diretiva $R

- Curto-circuito em expressões booleadas $B