segunda-feira, 18 de fevereiro de 2008

PDA - Aula 03: Tipos de Dados

* Esta obra é uma adptação do autor desse blog da disciplina de Projeto e Desenvolvimento de Algoritmo para Computação do curso de Tecnologia em Sistemas de Computacão/Cederj UFF das aulas originais cujo os autores são: Adriano Cruz e Jonas Knopman.

Revisão em 27/fev/2008 21:14
Conteúdo:
  1. Objetivos
  2. Introdução
  3. Dados Numéricos
  4. Dados Literais
  5. Dados Lógicos
  6. Bibliografia

1. Objetivos
  • Apresentar os tipos de dados manipulados pelos computadors.
  • Mostrar as limitações do armazenamento de dados nos computadores.
2. Introdução

Os tipos de dados
  • Algoritmos manipulam dados fornecidos pelos usuários.
  • Algoritmos devolvem dados aos usuários.
  • Que tipos de dados podemos manipular ?
  • Algortimos manipularão os seguintes tipos de dados:
.: Dados numéricos;
.: Dados literais;
.: Dados lógicos.

Como representar os dados ?
  • A maneira de representar os dados em nosso algoritmos deverão seguir padrões rígidos.
  • Linguagens de programação estabelecem regras de como os dados são escritos.
  • Existem regras para indicar quais os símbolos que podem ser usados.
  • Existem regras para indicar como estes símbolos devem ser combinados.
Representação
  • Para descrever a maneira como representar os dados iremos usar as seguintes convenções:
  • [ ] o que estiver dentro dos colchetes é opcional.
  • { } o que estiver dentro das chaves deve ser repetidos zero ou mais vezes.
  • | usado para mostrar as opções de uma definição.
O que usar para representar ?

  • Letras maiúsculas = 'A'| ' B ' | ' C ' | ' D ' | ' E ' | ' F ' | ' G ' | ' H ' | ' I ' | ' J' | ' K' | ' L ' | ' M ' | ' N ' | ' O ' | ' P ' | ' Q ' | ' R ' | ' S ' | ' T ' | ' U ' | ' V ' | ' W ' | ' X ' | ' Y ' | ' Z '
  • Letras minúsculas = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'
  • Algarismo = ' 0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
  • Outros = '~' | '!' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '(' | ' )' | '_' | '-' | '{' | '[' | '}' | ']' | '\' | ':' | ';' | ''' | '<' | ',' | '>' | '.' | '?' | '/' | ''' | ' ' | '|'
3. Dados numéricos
  • Antes de apresentar os dados numéricos que os computadores podem manipular vamos considerar os vários tipos que são estudados na Matemática.
  • Os tipos de dados que os computadores manipulam são subconjuntos dos estudados em Matemática.
  • Usados para representar
.: número de amigos
.: quantidade de CDs
.: número de ovelhas no pasto
  • O número zero é recente e foi descoberto pelos hindus
  • Era fácil pastores contarem com pedras (calculus) as ovelhas existentes. Mas para que calcular quando não há ovelhas.
  • Em Matemática este conjunto é representado por N = { 0, 1, 2, 3 ... }
  • O conjunto dos números inteiros é definido como
.: Z = { ..., - 3, - 2, -1, 0, +1, +2, +3, ... }
  • Usando para representar quantidades que podem assumir valores positivos e negativos.
  • Se eu tenho 7 ovelha e vendi 5, tenho 2 ovelhas.
  • Se eu tenho 5 ovelhas e vendi 7, tenho - 2 ovelhas.
  • Composto por todos os números que podem ser representados como uma fração da forma p/q, onde p e q pertencem ao conjunto dos números inteiros.
  • Conjunto usado para representar temperaturas (-10,0 ), preços (R$ 312,50), altura (1,75 m), etc.
  • Pode ser representado como
.: Q = {p/q | p, q Z }
  • Composto por todos os números que não podem ser representados como uma fração da forma p/q, onde p e q, q 0 pertencem ao conjunto dos números inteiros.
  • Exemplos são os números = 3,1415 ..., e = 2,71828 ...
  • Podemos representar este conjunto por Q'
  • É a união dos conjuntos dos números racionais e irracionais.
  • Este conjunto é normalmente representado pela letra
  • Números que são representados pela forma a+ib,
  • i é a raiz quadrada de - 1.
  • A raiz quadrada de - 1 é o número imaginário i.
  • a e b são números pertencentes ao conjunto dos números reais.
  • Quando b = 0 o número complexo se torna um número real.
Relações de Pertinência



Os números e os computadores
  • Computadores típicos manipulam com números na base 2 e não na base 10 que costumamos usar.
  • O número de dígitos na base 2 que um computaddor pode armazenar é limitado e é função da largura da palavra de memória do computador.
Números interios e bits
  • Um bit pode representar dois números inteiros 0 e 1.
  • Dois bits podem representar quatro números inteiros diferentes: 00, 01, 10 e 11.
  • Em geral com n bits podemos representar 2 números inteiros.
  • Normalmente 1 bit é reservado para guardar o sinal.
  • Considere um computador típico que use 32 bits para armazenar números inteiros.
  • Reservar um bit para guardar o sinal.
  • Portanto os números inteiros podem variar entre
.: - 2 <= N <= 2 - 1

  • Observar que há um número negativo a mais porque não é necessário representar o número - 0.
.: Inteiro = [ '+' | '-' ] algarismo {algarismo}
  • A definição, dada pelos colchetes, diz que um número inteiro pode ou não ter um sinal (+ ou -).
  • Em seguida deve vir obrigatoriamente um algarimso, que pode ser ou não seguido de outro algarismos.
  • Observe que não há espaços em branco entre o sinal e os algarismos.
Exemplos de inteiros
  • +3
  • 3
  • -3
  • -121
  • +12345
Exemplos de erros
  • + 3 Não é permitido espaços em banco entre o sinal e o algarismo.
  • -1.0 Não é possível usar ponto.
  • -2,0 Não é possível usar vírgula.
  • 3 Expoentes não são permitidos.
  • A definição deve ser seguida ao pé da letra
Números reais

.: Real = [ '+' | '-' ]algarismos{algarismo}.algarismo{algarismo}
  • Um número real pode ou não ter um sinal.
  • Em seguida deve vir um algarismo seguido de zero ou mais algarismos.
  • O próximo item é o ponto decimal que é obrigatório.
  • Finalmente um algarismo seguido de zero ou mais algarismos.
Exemplos de reais
  • +3.0
  • 3.0
  • -3.0
  • -121.15
  • 3.1415
Exemplos de erros
  • + 3.0 Não é permitido espaço em branco entre o sinal e o algarismo.
  • -1. É necessário um algarismo após o ponto.
  • -2,0 Não é possível usar vírgula.
  • .325 É necessário um algarismo antes do ponto.
  • 0.7... Dízimas períodicas não podem ser representadas desta maneira.
4. Dados literais
  • São usados por exemplo em:
.: Tratamento de textos;
.: Impressão de avisos aos usuários;
.: Tratamento de dados do tipo nome, endereços, etc.

Caracteres
  • Dados literais são compostos por caracteres.
  • Caracteres são basicamente as letras minúsculas e maiúsculas, algarismos, sinais de pontuação, etc.
  • Caracteres são representados por códigos binários.
  • O código mais disseminado de todo é o ASCII (Americam Standard Code for Information Interchange).
  • ASCII usa 8 bits para representar os caracteres
  • ASCII pode representar portanto até 2 = 256 caracteres.
  • Entre os códigos há váriso que são usados somente para comunicação entre computadores (ACK, NACK, EOF, EOL, etc)
Exemplos de caracteres ASCII
  • 'a' = 97
  • 'z' = 122
  • 'A' = 65
  • 'Z' = 90
  • 'O' = 48
  • '9' = 57
  • '$' = 36
  • '+' = 43
Dados caracteres
  • Um caractere isoldado em nossos algoritmos será representado pelo caractere entre 's.
  • Por exemplo:
  • 'a' caractere a minúsculo
  • '1' caractere 1
  • 'A' caractere A maiúsculo
  • ':' caractere dois pontos
  • '''' caractere ', represenado por dois '', para ser reconhecido por computador
Cadeias de caracteres
  • Conjunto de caracteres, como por exemplo um nome , devem ser representados entre 's
  • Por exemplo:
  • '12345' Conjunto de algarismos
  • 'Jorge da Silva' Nome
  • '!@#$%&*' Conjunto de caracteres variados

5. Dados lógicos
  • Aplicados no processo de tomada de decisões que o computador faz.
  • Este tipo de dados também é chamado de dado booleano, devido a George Boole, matemático inglês, que deu ao nome à álgebra (álgebra booleana) que manipula este tipo de dados.
  • A àlgebra booleana é aplicada no projeto de computadores digitais.
  • Os dados deste tipo somente podem assumir dois valores: verdadeiro e falso.
  • Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores.
  • Considere a questão:
.: Se saldo maior que valor do cheque então aceita cheque senão devolve cheque.
  • Os dados lógicos serão representados como:
  • Verdadeiro = verdadeiro
  • Falso = falso
6. Bibliografia

http://equipe.nce.ufrj.br/adriano/algoritmos/apostila/tipos.htm
http://tutomania.com.br/file.php?cod=14072


Nenhum comentário: