Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro

Slides:



Advertisements
Apresentações semelhantes
Tipos de Dados Paradigmas de Programação
Advertisements

INE5408 Estruturas de Dados Ponteiros, passagem de parâmetros e modelos de memória.
Técnicas de Programação I Reconhecer e aplicar corretamente o conceito da Estrutura de Repetição com variável de controle.
Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino.
Linguagens de Programação Conceitos e Técnicas Comandos Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Variáveis Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro
Linguagens de Programação Conceitos e Técnicas Definições e declarações Prof. Isabel Cafezeiro
Common Lisp A linguagem de programação programável Vítor De Araújo htp://inf.ufrgs.br/~vbuaraujo/
Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador.
Algoritmos e Programação utilizando Visualg
Estruturas de Dados Aula 2: Estruturas Estáticas
Projeto de Compiladores
Linguagens de Programação Conceitos e Técnicas
Linguagens de Programação Conceitos e Técnicas
Revisão de Lógica de Programação e Desenvolvimento Web
Construção de Compiladores
Linguagem Funcional 2.
Algoritmos e Estruturas de Dados I Prof. Dsc. Alex F. V. Machado
Teoria da Computação Prof. Msc. Ricardo Loiola
Resolução De Problemas Em Informática
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
INF1007: Programação 2 2 – Alocação Dinâmica
Algoritmos e Estruturas de Dados I Prof. Dsc. Alex F. V. Machado
Introdução ao VisuALG Prof. Andrew Rodrigues
Módulo I Capítulo 2: IDE e Variáveis
Programação em C Aula 2.
Linguagem C Para programadores Python
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
Linguagens de Programação Conceitos e Técnicas
Programação - algoritmia
Estrutura Escolha/caso
Prof. Wellington Franco
Estrutura de dados Pilhas e filas
FUNDAMENTO DE PROGRAMAÇÃO
Linguagem de Programação TM 333
Introdução à Programação BCC 201 Aula
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. WELLINGTON FRANCO
Departamento de Estatística e Informática
Algoritmos e Técnicas CEFET/RN.
Introdução à Computação
PROGRAMAÇÃO I UNIDADE 3.
Programação de Computadores I – Ponteiros
COMPILADORES 06 Prof. Marcos.

Tecnologia para Internet - II
Algoritmos Prof.: Carlos Alberto _1:
O que é Simulação? Capítulo 1 Páginas 3-23 Prof. Afonso C Medina
Tipos Abstratos de Dados
Programação Funcional
Professora Roberta Bonamichi Guidi Garcia
Programação de Computadores I – Ponteiros
Linguagem de Programação I
MATEMÁTICA Módulo 08 Conjuntos Numéricos Dé.
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Computação Eletrônica Vetores e Matrizes
Algoritmos e Estruturas de Dados I – Ponteiros
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação – CECOMP Algoritmos e Programação Jadsonlee da Silva Sá
Representação de Algoritmos
Programação de Computadores LINGUAGEM C – AULA 03 – PROF. WELLINGTON TELLES.
Vetores.
Compiladores – análise semântica
Tratamento de Exceções (try)
Ementário O ambiente de desenvolvimento
Programação Funcional
JAVA - BÁSICO COL. ESTADUAL MARIA AGUIAR TEIXEIRA
Aula 2 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro

Linguagens de Programação Valores & tipos de dados Valor (dado)‏ É qualquer entidade que existe durante uma computação. Pode ser avaliado, armazenado, incorporado em estrutura de dados, passado como argumento, retornado em função.

Linguagens de Programação Valores & tipos de dados Que tipos de valores suporta a linguagem Pascal? Números inteiros e reais, caracteres, seqüências de caracteres, valores lógicos, registros, arrays, ponteiros,....

Linguagens de Programação Valores & tipos de dados Que tipos de valores suporta a linguagem C? Números inteiros e reais, caracteres, seqüências de caracteres, valores lógicos, registros, arrays, ponteiros, mas são simulados através de outros tipos de valores....

Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? É um conjunto de Valores. {..., -2, -1, 0, 1, 2,... } {..., -2.0,..., -1.3,..., 0.0,...,1.7,..., 2.99,... } { 'a',..., 'z', '1', '2',... } { 0.0,...,1.5,..., 'a',..., 'z', 1, 2,... } Inteiros ! Reais ! Caracteres ! ???

Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? É uma coleção de valores que têm alguma propriedade em comum. Coleção de valores que exibe comportamento uniforme nas operações associadas ao tipo. tipo = valores + operações

Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? tipo = valores + operações T 1 = e T 2 = ? Se C 1 = C 2 e O 1  O 2 então T 1  T 2 ? Se C 1  C 2 e O 1 = O 2 então T 1  T 2 ?... Vetores no plano real (conceito algébrico) e Números Complexos: representação por pares de reais Diversas implementações de inteiros em C: mesmas operações....

Linguagens de Programação Valores & tipos de dados Porquê tipos? Em Matemática: tipos para evitar paradoxos Teoria dos conjuntos: Paradoxo de Russel R = { x | x  x } R  R ?

Linguagens de Programação Valores & tipos de dados Porquê tipos? Em Computação: Abstração: tipos ajudam a estruturar a solução do problema. Tipos ajudam a compreender expressões indicando o conjunto de valores que podem ser denotados por ela Tipos ajudam a detectar erros: operações aplicadas a valores impróprios Tipos ajudam a gerar códigos eficientes: representação adequada de valores

Linguagens de Programação Valores & tipos de dados Em Computação: Linguagens “sem tipos” (com um único tipo) LISP PERL SELF A informação a respeito do tipo está amarrada ao valor, e não ao identificador. (define a 1) (define b 'casa') (+ a b) Erro de execução! Em tempo de execução verifica-se que o valor que a e b guardam não são compatíveis com a operação de soma

Linguagens de Programação Valores & tipos de dados Verificação Estática de Tipos Tempo de compilação erros detectados “cedo” programa não executa se tiver erros de tipo var i: integer; a: char begin readln(i); readln(a); writeln(i+a); end. erro de compilação! Em tempo de compilação sabe- se que as variáveis i e a não podem ser operadas com + A informação a respeito do tipo está amarrada ao identificador, usualmente, pela declaração de variáveis.

Linguagens de Programação Valores & tipos de dados Verificação Dinâmica de Tipos Tempo de execução Erros eventualmente detectados na execução. Todos os caminhos da execução devem ser testados para garantir a ausência de erros (if (= 1 1) 2 a) (if (= 1 1) a 2) Suponha a não definido: Roda sem erro ! Dá erro de execução !

Linguagens de Programação Valores & tipos de dados Verificação Dinâmica de Tipos (define segundo(lambda(l) (car (cdr l)))) (segundo ́(1 2 3)) Lista de números (segundo ́(“manga” “abacaxi” 5 6)) (segundo ́( ́(1 2 3) (4 5 6))) Lista de listas Lista de strings e números

Linguagens de Programação Valores & tipos de dados Verificação de Tipos estática: eficiência segurança flexibilidade dinâmica: eficiência segurança flexibilidade

Linguagens de Programação Valores & tipos de dados Valor do tipo: o valor pertence ao conjunto de valores definido pelo tipo Expressão do tipo: o resultado da expressão pertence ao conjunto de valores definido pelo tipo Cardinalidade do tipo: cardinalidade do conjunto de valores do tipo.

Linguagens de Programação Valores & tipos de dados Hierarquia de tipos: Tipos AtômicosCompostos Booleanos Inteiros Caracteres Decimais Ponto Flutuantes Enumerados Intervalos Uniões StringsRecursivos Mapeamentos Conjuntos Potência Produtos Cartesianos Ponteiros LivresDisjuntas FinitosFunções

Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. O conjunto de tipos primitivos costuma revelar o propósito da LP. Tipos atômicos de FORTRAN: inteiros reais complexos... Linguagem de aplicações numéricas !!!

Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. Sofrem limitações diretas do hardware. Sofrem diferenças entre implementações da mesma linguagem Inteiros em Pascal: [ ] Inteiros em C++: [ ]... em alguns compiladores !!!

Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. Built in (embutidos) Definidos Discretos Pré definidos na linguagem Definidos pelo programador Em correspondência direta com os inteiros

Linguagens de Programação Valores & tipos de dados Built In em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos

Linguagens de Programação Valores & tipos de dados Definidos em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos

Linguagens de Programação Valores & tipos de dados Discretos em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos Ótimos para indexar arrays e loops definidos!!!