A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tipos de Dados Paradigmas de Programação Prof. Gláucya Carreiro Boechat

Apresentações semelhantes


Apresentação em tema: "Tipos de Dados Paradigmas de Programação Prof. Gláucya Carreiro Boechat"— Transcrição da apresentação:

1 Tipos de Dados Paradigmas de Programação Prof. Gláucya Carreiro Boechat

2 Introdução Um tipo de dado define uma coleção de dados e um conjunto de operações pré- definidas sobre esses dados Um descritor é um conjunto de atributos de uma variável Um objeto representa uma instância de um tipo de dado abstrato definido pelo usuário

3 Tipos de Dados Primitivos Tipos de dados não-definidos em termos de outros tipos são chamados tipos de dados primitivos Praticamente todas as linguagens de programação oferecem um conjunto de tipos de dados primitivos

4 Tipos de Dados Primitivos Inteiro  Quase sempre um reflexo da plataforma utilizada (hardware e/ou SO)  Muitos computadores suportam diferentes tamanhos para inteiros Em Java, diferentes tamanhos para inteiros  byte, short, int, long  Existem vários tipos de números inteiros numa linguagem: inteiro com/sem sinal, inteiro base decimal, inteiro base binária, precisão simples, etc.

5 Tipos de Dados Primitivos Ponto Flutuante  Modelam os números reais, mas são aproximações  Linguagens para fins científicos suportam pelo menos dois tipos ponto flutuante (float e double)  IEEE Floating-Point Standard 754

6 Tipos de Dados Primitivos: Ponto Flutuante  Formato: a) Precisão Única b) Precisão Dupla

7 Tipos de Dados Primitivos Booleano  Mais simples de todos  Faixa de valores Dois elementos: um para “true” zero para “false”  Pode ser implementado como bits, mas geralmente são como bytes Vantagem: legibilidade

8 Tipos de Dados Primitivos Caracter  Armazenados como codificações numéricas  O código mais usado: ASCII  Uma alternativa, codificação de 16-bit: Unicode Inclui caracteres da maioria das linguagens naturais Usado em Java C# e JavaScript também suportam Unicode

9 Tipos cadeia de caracteres Valores consistem em seqüências de caracteres Questões de projeto:  É um tipo primitivo ou apenas um tipo especial de vetores de caracteres?  As cadeias devem ter tamanho estático ou dinâmico?

10 Opções Operações típicas:  Atribuição e cópia  Comparação (=, >, etc.)  Concatenação  Referências a subcadeias

11 Aplicação em Linguagens C e C++  Não primitivo  Usam vetores char e uma biblioteca de funções que oferecem operações (string.h) SNOBOL4 (uma linguagem de manipulação de cadeias)  Primitivo Java  Primitivo através da classe String

12 Opções de Tamanho Estático  COBOL, FORTRAN 90, Pascal, Ada e Java classe String Tamanho dinâmico limitado: C e C++  Um caractere especial é usado para indicar o final da cadeia, em vez de manter seu tamanho Dinâmico (sem máximo): SNOBOL4, Perl, JavaScript

13 Cadeias de Caracteres Avaliação São importantes para a capacidade de escrita de uma linguagem Como um tipo primitivo com tamanho estático, não é caro  Por que não usá-las? Tamanho dinâmico é mais flexível  Mas o custo compensa?

14 Tamanho estático  descritor em tempo de compilação Tamanho dinâmico limitado  Podem exigir um descritor em tempo de execução para armazenar tanto o tamanho máximo como o tamanho atual (mas não em C e C++) Tamanho dinâmico  Exigem um descritor em tempo de execução  Exigem um gerenciamento de armazenagem mais complexo Alocação e desalocação Implementação de Cadeias de Caracteres

15 Descritor em Tempo de Compilação para cadeias estáticas

16 Semântica Axiomática: Instruções de atribuição  Descritor em tempo de execução para cadeias dinâmicas limitadas

17 Tipos Ordinários definidos pelo Usuário Um tipo ordinário é aquele cuja faixa de valores possíveis pode ser associada ao conjunto dos números inteiros positivos  Tipos Enumeração  Tipos Subfaixa Exemplos de tipos ordinários em Java  integer  char  boolean

18 Enumerações Todos os valores possíveis, os quais se tornam constantes simbólicas, são enumerados na definição Exemplo C#  enum days {mon, tue, wed, thu, fri, sat, sun};

19 Enumerações Exemplo Pascal type tipocor = {vermelho, azul, amarelo, verde}; var cor : tipo cor; cor := verde; if (cor > amarelo)

20 Enumerações Avaliação  Vantagens em termos de legibilidade Não é necessário codificar uma cor como um número  Vantagens em termos de confiabilidade Operações (não permite adicionar cores) Nenhum variável de enumeração será assinalada para valores fora de sua faixa

21 Subfaixa É uma subsequência de um ordinal  Exemplo: é uma subfaixa dos inteiros Projeto em Ada type Days is (mon, tue, wed, thu, fri, sat, sun); subtype Weekdays is Days range mon..fri; subtype Index is Integer range ; Day1: Days; Day2: Weekday; Day2 := Day1;

22 Subfaixa Avaliação  Legibilidade Informam ao leitor que as variáveis podem armazenar apenas uma faixa de valores  Confiabilidade A atribuição de um valor a uma variável fora de sua faixa pode ser detectado pelo compilador como sendo um erro

23 Outros Tipos especiais Vetores (array com uma dimensão) Matrizes (array com n dimensões) Ponteiros Referências Registros (estruturas)


Carregar ppt "Tipos de Dados Paradigmas de Programação Prof. Gláucya Carreiro Boechat"

Apresentações semelhantes


Anúncios Google