Carregar apresentação
A apresentação está carregando. Por favor, espere
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: Precisão Única 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 Tamanho dinâmico limitado: C e C++
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
Implementação de Cadeias de Caracteres
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
15
Implementação de Cadeias de Caracteres
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 Projeto em Ada
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 Confiabilidade
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)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.