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]

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

Embed Size (px)

Citation preview

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