Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faculdade Estácio S.A. BREITNER BRUNO JORGE SANTIAGO 201603073809 RELATÓRIO 3 – Tipos de Dados. Fortaleza, CE 2020 TIPOS DE DADOS Um tipo de dado define uma coleção de valores de dados e um conjunto de operações pré-definidas sobre eles. Um fator importante em determinar a facilidade com a qual eles realizam suas tarefas é o quão bem os tipos de dados disponíveis na linguagem usada casam com os objetos no espaço do problema no mundo real. Nas primeiras linguagens, todas as estruturas de dados do espaço do problema tinham de ser modeladas com apenas poucas estruturas de dados suportadas pela linguagem. Por exemplo, nas versões do Fortran pré-90, as listas ligadas e as árvores binárias eram implementadas com vetores, as estruturas de dados do COBOL deram o primeiro passo na direção oposta do modelo do Fortran I ao permitir que os programadores especificassem a precisão dos valores de dados decimais, e também por fornecer um tipo de dados estruturado para registros de informação. Uma abordagem melhor, introduzida no ALGOL 68, é fornecer alguns tipos básicos e operadores de definição de estrutura flexíveis que permitem a um programador projetar uma estrutura de dados para cada necessidade. TIPOS DE DADOS PRIMITIVOS Tipos de dados não definidos em termos de outros são chamados de tipos de dados primitivos. Praticamente todas as linguagens de programação fornecem um conjunto de tipos de dados primitivos alguns dos tipos primitivos são meramente reflexos de hardware – por exemplo, a maioria dos tipos inteiros, outros requerem apenas um pouco de suporte externo ao hardware para sua implementação. Os tipos de dados primitivos de uma linguagem são usados, com um ou mais construtores de tipo, para fornecer os tipos estruturados. TIPOS NUMERICOS Muitas das primeiras linguagens de programação têm apenas tipos primitivos numéricos. Tipos numéricos ainda desempenham um papel central entre as coleções de tipos suportadas pelas linguagens contemporâneas. Inteiro: O tipo de dados primitivo numérico mais comum é o inteiro. Muitos computadores agora suportam diversos tamanhos de inteiros. Por exemplo, Java inclui quatro tamanhos inteiros com sinal: byte, short, int e long. Algumas linguagens, como C++ e C#, incluem tipos inteiros sem sinal, simplesmente tipos para valores inteiros sem sinal. Tipos sem sinal são geralmente usados para dados binários. Um valor inteiro com sinal é representado em um computador como uma cadeia de bits, com um dos bits (normalmente o mais à esquerda) representando o sinal. A maioria dos tipos inteiros é suportada diretamente por hardware. Um exemplo de um tipo inteiro não suportado diretamente por hardware é o tipo inteiro longo de Python. Valores desse tipo podem ter um tamanho ilimitado. Valores inteiros longos podem ser especificados como literais, como no seguinte exemplo: 243725839182756281923 Além disso, operações aritméticas inteiras que produzem valores muito grandes para serem representados com o tipo int são armazenadas como valores do tipo inteiro longo. Ponto flutuante: Tipos de dados de ponto flutuante modelam números reais, mas as representações são apenas aproximações para muitos valores reais. Por exemplo, nenhum dos números fundamentais π ou e (a base para logaritmos naturais) pode ser corretamente representado em notação de ponto flutuante. Na maioria dos computadores, os números de ponto flutuante são armazenados em binário, o que agrava o problema. Por exemplo, mesmo o valor 0.1 em decimal não pode ser representado por um número finito de dígitos binários1 Valores de ponto flutuante são representados como frações expoentes, uma forma emprestada da notação científica. Entretanto, a maioria das máquinas mais novas usam o formato padrão para ponto flutuante da IEEE chamado IEEE Floating-Point Standard 754. O tipo double é fornecido para situações nas quais partes fracionárias maiores e/ou uma faixa de expoentes maior são necessárias.A coleção de valores que podem ser representados por um tipo ponto flutuante é definida em termos de precisão e faixa. Precisão é a exatidão da 1 1. 0.1 em decimal é 0.0001100110011... em binário. Complexo: Algumas linguagens de programação suportam um tipo de dados complexo – por exemplo, Fortran e Python. Valores complexos são representados como pares ordenados de valores de ponto flutuante. Em Python, a parte imaginária de um literal complexo é especificada seguindo a por j ou J – por exemplo, (7 + 3j) Linguagens que suportam um tipo complexo incluem operações para aritmética em valores complexos. Decimal: maioria dos computadores de grande porte projetados para suportar aplicações de sistemas de negócios tem suporte em hardware para tipos de dados decimais. Tipos de dados decimais armazenam um número fixo de dígitos decimais, com o ponto decimal em uma posição fixa no valor. Esses são os tipos de dados primários para processamento de dados de negócios e, dessa forma, são essenciais para o COBOL. Tipos decimais têm a vantagem de serem capazes de armazenar precisamente valores decimais, ao menos dentro de uma faixa restrita, o que não pode ser feito com tipos de ponto flutuante. As desvantagens dos tipos decimais são que a faixa de valores é restrita porque nenhum expoente é permitido, e sua representação em memória é dispendiosa, pelas razões discutidas no parágrafo a seguir. Tipos decimais são armazenados de maneira muito parecida com as cadeias de caracteres, usando códigos binários para os dígitos decimais. Logo, armazenar um número decimal codificado de seis dígitos requer 24 bits de memória. TIPOS BOOLEANOS Tipos booleanos são talvez os mais simples. Sua faixa de valores tem apenas dois elementos: um para verdadeiro e outro para falso. Eles foram introduzidos em ALGOL 60 e incluídos na maioria das linguagens de propósito geral projetadas desde 1960. Em tais expressões, todos os operandos com valores diferentes de zero são considerados verdadeiros, e zero é considerado falso. Apesar do C99 e do C++ terem um tipo booleano, também permitem que expressões numéricas sejam usadas como se fossem booleanas. Apesar de outros tipos, como inteiros, poderem ser usados para tais propósitos, o uso de tipos booleanos é mais legível. Um valor booleano poderia ser representado por um único bit, mas como um único bit de memória não pode ser acessado de maneira eficiente em muitas máquinas, eles são armazenados na menor célula de memória eficientemente endereçável, um byte. TIPOS CARACTERES Caracteres Dados na forma de caracteres são armazenados nos computadores como codificações numéricas. American Standard Code for Information Interchange) de 8 bits, que usa os valores de 0 a 127 para codificar 128 caracteres diferentes. É claro, a menos que um programa precise manter um grande número de grandes valores decimais, a diferença é insignificante. outra codificação de 8 bits para caracteres, mas ele permite 256 caracteres diferentes. Por causa da globalização dos negócios e da necessidade de os computadores se comunicarem com outros computadores pelo mundo, o conjunto de caracteres ASCII se tornou inadequado. Em resposta, em 1991, o Consórcio Unicode publicou o padrão UCS-2, um conjunto de caracteres de 16 bits. Unicode inclui os caracteres da maioria das linguagens naturais do mundo. Os primeiros 128 caracteres do Unicode são idênticos àqueles do ASCII. Java foi a primeira linguagem amplamente usada a usar o conjunto de caracteres Unicode. Após 1991, o Consórcio Unicode, em cooperação com a Organização Internacional de Padrões (ISO – International Standards Organization) desenvolveu uma codificação de caracteres de 4 bytes chamada UCS-4 ou UTF-32, que é descrita pelo padrão ISO/IEC 10646, publicadoem 2000.
Compartilhar