Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
INFORMAÇÕES COMPLEMENTARES
AULA 8 Profa. Sandra de Amo GBC053 – BCC
A busca das mulheres para alcançar seu espaço dentro das organizações
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Capa Disciplina: Ajustamento de Observações
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Paradigmas de Linguagens Tipos de Dados
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Curso de ADMINISTRAÇÃO
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Paulo Sérgio Rodrigues PEL205
Aula 3 Evolução da Principais Linguagens
Aula 2 Aspectos Preliminares
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Linguagens de Programação
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
A Tabuada.
Nossa Velha - Nova Cruz Alta Parte 31.
Provas de Concursos Anteriores
Renda até 2 SM.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
PESQUISA SOBRE PRAZO MÉDIO DA ASSISTÊNCIA NA SAÚDE SUPLEMENTAR
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Regulamento FMTKD adaptado para Categorias Não-Oficiais
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
PROCESSOS PRINCIPAIS Alunos - Grau de Satisfação 4971 avaliações * Questões que entraram em vigor em 2011 ** N.A. = Não Aplicável Versão: 07/02/2012 INDICADORES.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 06.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 11.
Trabalho sobre Cor Thiago Marques Toledo.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 08.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 12.
FISCALIZAÇÃO DIRECIONADA CONDUTA - AUXILIAR ANO IV – Nº 04.
FISCALIZAÇÃO DIRECIONADA CONDUTA - AUXILIAR ANO III – Nº 05.
FISCALIZAÇÃO DIRECIONADA NÍVEL DE SERVIÇO ANO I – Nº 7.
FISCALIZAÇÃO DIRECIONADA NÍVEL DE SERVIÇO ANO I – Nº 9.
FISCALIZAÇÃO DIRECIONADA NÍVEL DE SERVIÇO ANO I – Nº 4.
Coordenação Geral de Ensino da Faculdade
Os números a seguir, representam as notas de
Plataforma Brasil – Submissão de pesquisa
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO V – Nº 01.
PERFIL DOS BENEFICIÁRIOS E NÃO-BENEFICIÁRIOS DO PROGRAMA BOLSA FAMÍLIA EM TERMOS DE MERCADO DE TRABALHO: CONSIDERAÇÕES METODOLÓGICAS E SUBSTANTIVAS Alessandra.
Tributação da Exportação nas Empresas optantes pelo Simples Nacional
Estudo dos Gases Prof. Fabio Costa.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
1/40 COMANDO DA 11ª REGIÃO MILITAR PALESTRA AOS MILITARES DA RESERVA, REFORMADOS E PENSIONISTAS - Mar 06 -
Projeto Medindo minha escola.
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
Organização do Ambiente de Execução (Runtime System)
Tipos de Dados Paradigmas de Programação
Semântica de Linguagens de Programação
DIEGO RICARDO DE ARAUJO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE CIÊNCIA EXATAS UNIVERSIDADE FEDERAL DE JUIZ DE FORA Seleção de Características.
Estatística Aula 9 – 28/02/2011.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
CONCEITOS FUNDAMENTAIS
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
AM020C A interface entre Meio Ambiente, Sociedade e Economia Indicadores de produtividade e empregabilidade da agricultura do Brasil. Aluna Andressa Santos.
Transcrição da apresentação:

Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos < Página da Disciplina > www.inf.unisinos.br/~barbosa <Endereço do Professor > barbosa@exatas.unisinos.br

Sumário 1 – Introdução

Sumário 1 – Introdução 2 – Tipos de dados primitivos

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União 9 – Tipos Conjunto

Sumário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União 9 – Tipos Conjunto 10 – Tipos Ponteiro (referências)

Introdução 1 – Introdução - Relação Tipos x Espaço do Problema - Descritor (estático ou dinâmico) - Tabela de Símbolos

Tipos de dados primitivos 1 – Introdução 2 – Tipos de dados primitivos - Tipos básicos - Primitivos + Construtores => Estruturados - Tipos de dados primitivos

Tipos de dados primitivos 1 – Introdução 2 – Tipos de dados primitivos - Tipos básicos - Primitivos + Construtores => Estruturados - Tipos de dados primitivos (esquema)

Tipos de dados primitivos

Tipos de dados primitivos Numéricos Primitivos Booleanos Caracterere

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – Grupo de bits com sinal - Signal magnitude - Complemento de dois

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – Frações e expoentes – Padronizado: IEEE Floating Point Standard 754 (1985)

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – Frações e expoentes – Padronizado: IEEE Floating Point Standard 754 (1985) Tanenbaum (1990) Organização Estruturada de Computadores Apêndice B (p. 448 – 454)

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – BCD (Binary Coded Decimal) – Pelo menos 4 bits para um decimal

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – Introduzidos por ALGOL 60 – Menor célula de memória (normalmente um byte)

Tipos de dados primitivos Inteiros Numéricos Ponto-flutuante Decimais Primitivos Booleanos Caracterere – ASCII – Unicode (16 bites): Utilizada no Java

Tipos Strings de caracteres 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres - Strings como tipos primitivos?

Tipos Strings de caracteres 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres - Strings como tipos primitivos? - Tamanho da string => Estático => Dinâmico Limitado => Dinâmico

Tipos Strings de caracteres 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres - Strings como tipos primitivos? - Tamanho da string => Estático => Dinâmico Limitado => Dinâmico - Implementação (Pascal e C)

Tipos ordinais definidos pelo usuário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário - Enumeração Constantes enumeradas na definição

Tipos ordinais definidos pelo usuário 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – 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 Array 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias: Onde e quando é alocado

Tipos Array 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias (esquema): Onde e quando é alocado

Tipos Array: Categorias Estático Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico – Tudo estático – Altamente eficiente

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico – Faixas de índice estáticas – Alocação durante execução

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico – Faixas de índices dinâmicas – Não são alteradas durante execução – Alocação durante execução

Tipos Array: Categorias Estático Código Dados Estáticos Heap Pilha Stack Dinâmico Fixo Categorias Stack Dinâmico Heap Dinâmico – Faixas de índices dinâmicas – Podem ser alteradas na execução – Alocação durante execução – Resumo: Tudo dinâmico – Faixas de índices dinâmica – – Alocação durante execução

Tipos Array 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias

Tipos Array 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array - Referência a elementos: Nome e Seletor - Seletor estático ou dinâmico - Categorias - Operações com Arrays (array é uma unidade)

Tipos Array 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – 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

Arrays associativos 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos - Hash como suporte à associatividade - Registradores associativos

Tipos Registro 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro - Referências: Amplamente Qualificada Elípticas (with do Pascal)

Tipos Registro 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro - Referências: Amplamente Qualificada Elípticas (with do Pascal) - Operações com registros (comparação, atribuição, etc)

Tipos Registro 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – 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 União 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – 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 Conjunto 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União 9 – Tipos Conjunto - Coleções não ordenadas de tipos ordinais - Modelagem de conjuntos matemáticos - Implementação: Strings de bits indicando elementos

Tipos Ponteiro 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União 9 – Tipos Conjunto 10 – Tipos Ponteiro (referências)

Tipos Ponteiro 1 – Introdução 2 – Tipos de dados primitivos 3 – Tipos Strings de caracteres 4 – Tipos ordinais definidos pelo usuário 5 – Tipos Array 6 – Arrays associativos 7 – Tipos Registro 8 – Tipos União 9 – Tipos Conjunto 10 – Tipos Ponteiro (referências)

Tipos Ponteiro - Usos

Tipos Ponteiro - Usos Poder de endereçamento direto (assembly) Gerenciamento de Heap

Tipos Ponteiro Código - Usos Dados Estáticos Heap Pilha Poder de endereçamento direto (assembly) - Usos Gerenciamento de Heap Código Dados Estáticos Heap Pilha

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - Usos - Operações com ponteiros Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - Usos - Operações com ponteiros - Aritmética de ponteiros Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - Usos - Operações com ponteiros - Aritmética de ponteiros - Ponteiros oscilantes Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - Usos - Operações com ponteiros - Aritmética de ponteiros - Ponteiros oscilantes - Vazamento de memória Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - 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 Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - 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 Gerenciamento de Heap

Tipos Ponteiro - Usos - Operações com ponteiros Poder de endereçamento direto (assembly) - 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) Gerenciamento de Heap

Exercícios Práticos: Estudo de caso Turbo Pascal 1 – Strings em Pascal

Exercícios Práticos: Estudo de caso Turbo Pascal 1 – Strings em Pascal - Tamanho da String? => Estático ? => Dinâmico Limitado ? => Dinâmico ?

Exercícios Práticos: Estudo de caso Turbo Pascal 1 – Strings em Pascal - Tamanho da String? - Como é controlado o tamanho? => Estático ? => Dinâmico Limitado ? => Dinâmico ?

Exercícios Práticos: Estudo 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.

Exercícios Práticos: Estudo 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.

Exercícios Práticos: Estudo 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.

Exercícios Práticos: Estudo de caso Turbo Pascal 2 – Tamanho máximo de conjuntos (sets) - Qual é o tamanho máximo ?

Exercícios Práticos: Estudo 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;

Exercícios Práticos: Estudo 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

Exercícios Práticos: Estudo 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.

Exercícios Práticos: Estudo 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.

Exercícios Práticos: Estudo de caso Turbo Pascal 3 – Diretivas de compilação:

Exercícios Práticos: Estudo de caso Turbo Pascal 3 – Diretivas de compilação: - Dimensionamento de memória: Diretiva $M

Exercícios Práticos: Estudo de caso Turbo Pascal 3 – Diretivas de compilação: - Dimensionamento de memória: Diretiva $M - Verificação de faixas: Diretiva $R

Exercícios Práticos: Estudo 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