SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Prof. Adriano Teixeira de Souza
   Não podem ser decompostos em valores
    mais simples

   Costumam ser definidos na implementação
    da LP




                      Prof. Adriano Teixeira de Souza
   Corresponde a um intervalo do conjunto dos
    números inteiros

   Há vários tipos inteiros numa mesma LP
    ◦ Normalmente, intervalos são definidos na
      implementação do compilador


   Em JAVA, o intervalo de cada tipo inteiro é
    estabelecido na definição da própria LP




                            Prof. Adriano Teixeira de Souza
Tipo    Tamanho                           Intervalo
          (bits)
                          Início                               Fim

byte       8              -128                                 127

short     16             -32768                              32767

 int      32          -2.147.483.648                    2.147.483.647

long      64       -9223372036854775808 9223372036854775807




                                   Prof. Adriano Teixeira de Souza
   Armazenados como códigos numéricos
    ◦ Tabelas ASCII e UNICODE
   Java oferece o tipo char
   Em C, o tipo primitivo char é classificado
    como um tipo inteiro

    char d;
    d = 'a' + 3;

    …
    while (*p) *q++ = *p++;




                              Prof. Adriano Teixeira de Souza
   Tipo mais simples
    ◦ Possui apenas dois valores

   C não possui o tipo de dado booleano, mas
    qualquer expressão numérica pode ser usada
    como condicional

      Valores ¹ zero => verdadeiro
      Valores = zero => Þfalso

    ◦ Abordagem de C pode provocar erros
      if (c += 1) x = 10;

   JAVA inclui o tipo de dado boolean

                                Prof. Adriano Teixeira de Souza
 Por
    que a linguagem de
 programação C, umas das
 mais usadas da história,
 não implementa o tipo
 booleano?



             Prof. Adriano Teixeira de Souza
   Armazena um número fixo de dígitos
    decimais
    ◦ Existe, por exemplo, no Cobol e no Pascal




                           Prof. Adriano Teixeira de Souza
   O tipo primitivo ponto flutuante modela os
    números reais
   LPs normalmente incluem dois tipos de ponto
    flutuante: float e double




                        Prof. Adriano Teixeira de Souza
   O numero xx,yyyy . Onde xx é a parte inteira
    e yyyy é a parte fracionaria (que pode assumir
    um número infinito)

   Os computadores não podem representar
    números reais da forma acima.

   Os computadores adotam método de
    representação de números reais chamado
    notação científica

   O número 52,258 é representado na notação
    científica como 0,52258 X 10^2

                         Prof. Adriano Teixeira de Souza
   C e C++ e Java permitem que o programador
    defina novos tipos primitivos através da
    enumeração de identificadores dos valores do
    novo tipo

    ◦ enum mes_letivo {mar, abr, mai, jun, ago, set, out, nov };
    ◦ enum mes_letivo m1, m2;

   Possuem correspondência direta com intervalos
    de tipos inteiros e podem ser usados para
    indexar vetores e para contadores de repetições

   Aumentam a legibilidade e confiabilidade do
    código


                               Prof. Adriano Teixeira de Souza
   Em PASCAL e ADA, também é possível definir
    tipos intervalo de inteiros

    ◦ type meses = 1 .. 12;


   Tipos intervalos herdam as operações dos
    inteiros




                              Prof. Adriano Teixeira de Souza
   Tipos compostos são aqueles que podem ser
    criados a partir de tipos mais simples
    ◦ registros, vetores, listas, arquivos

   Permitem Operações
    ◦ Ex.: Produtocartesiano, união e conjunto de
      potências

   Possuem Cardinalidade
    ◦ Número de valores distintos que fazem parte do
      tipo



                              Prof. Adriano Teixeira de Souza
   Podem ser implementados em Pascal, C, C++
    e JAVA

   É necessário alocar nova memória e copiar
    conteúdo quando vetor aumenta de tamanho

   É encargo do programador controlar alocação
    e cópia. Em C e C++, o programador deve
    controlar desalocação também. Isso torna a
    programação mais complexa e suscetível a
    erros

                        Prof. Adriano Teixeira de Souza
   Também são conhecidos como matrizes.
   Em linguagens que não possuem o conceito
    de matrizes, como JAVA, vetores
    multidimensionais são obtidos com o uso de
    vetores unidimensionais cujos elementos são
    outros vetores

    ◦ int [ ] [ ] a = new int [5] [ ];


   O mesmo efeito pode ser obtido em C com o
    uso de ponteiros para ponteiros

                                  Prof. Adriano Teixeira de Souza
   Valores correspondem a uma seqüência de
    caracteres

   Não existe consenso sobre como devem ser
    tratadas

   Podem ser consideradas tipos primitivos,
    mapeamentos finitos ou tipo recursivo lista




                         Prof. Adriano Teixeira de Souza
   Os objetos String encapsulam seqüências de
    caracteres de 16-bits (representação
    Unicode).
   Podemos criar objetos String de várias
    formas. Veja alguns exemplos:

    ◦   String s = “Meu texto”; //mais usual
    ◦   String s = new String(“Meu texto”);
    ◦   char [] c = {'M', 'e', 'u', ' ', 't', 'e', 'x', 't', 'o'};
    ◦   String s = new String(c);




                                        Prof. Adriano Teixeira de Souza
   length()
    ◦ Ex: System.out.println(“Hello”.length()); // imprime 5
   O operador + é usado para concatenar strings.
    ◦ Ex: String str = “Java é ” + “segura.”;
   charAt(1) – retorna o caracter na posição 1 ('a')‫‏‬
   equals(“Java é segura.”) - retorna true
   equalsIgnoreCase(“java é segura”) - retorna true
   indexOf('J') – retorna 0
   lastIndexOf('a') – retorna 12
   substring(0, 4) – retorna 'Java'



                                 Prof. Adriano Teixeira de Souza
   Uma instância da classe StringBuffer
    representa uma String que pode ser
    facilmente alterada.
   O tamanho e conteúdo da seqüencia da
    StringBuffer pode ser alterada por alguns
    métodos.

   Veja o exemplo:
    ◦   StringBuffer sb = new StringBuffer();
    ◦   StringBuffer sb = new StringBuffer(“Meu texto”);
    ◦   sb.append(“!!!”); // Meu texto!!!
    ◦   sb.insert(0, “Esse é o “); // Esse é o Meu texto!!!


                                Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Todo tipo primitivo no Java possui uma classe
    correspondente chamada de classe wrapper.
   A classe wrapper ou empacotadora
    simplesmente encapsula um valor primitivo
    dentro de um objeto.




                        Prof. Adriano Teixeira de Souza
   Classes Wrappers possuem métodos públicos
    disponíveis na subclasse Object, devemos dar um
    maior destaque para os métodos equals(Object) e
    toString, o primeiro é utilizado para comparações
    enquanto que o segundo permite que o conteúdo de
    um objeto seja representado em formato de texto.

   Classes derivadas da subclasse Number possuem
    vários métodos para devolverem um tipo primitivo,
    tais como: byteValue(), shortValue(), intValue(),
    longValue(), doubleValue(), floatValue().

   Alem disso a as classes derivadas de Number
    possuem também o método
    comparareTo(Object) que faz comparações entre
    objetos wrapper


                           Prof. Adriano Teixeira de Souza
Tipo primitivo     Classe Wrapper         Subclasse
Lógico            boolean            Boolean
                                                                     Object
Caractere         char               Caracter
                  byte               Byte
                  short              Short
Inteiro
                  int                Integer
                                                                     Number
                  long               Long
                  float              Float
Ponto flutuante
                  double             Double




                                   Prof. Adriano Teixeira de Souza
   Tipos primitivos são bem rápidos

   Consomem pouca memória

   Além de permitirem operações mais
    complexas

   São bastantes eficientes em laços e expressões



                        Prof. Adriano Teixeira de Souza

Mais conteúdo relacionado

Mais procurados

Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação pythonCleyton Fábio
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresRegis Magalhães
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasFelipe J. R. Vieira
 
Teoria da Computação
Teoria da ComputaçãoTeoria da Computação
Teoria da ComputaçãoAlefe Variani
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvRCiro Matheus
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 

Mais procurados (20)

Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Aula4
Aula4Aula4
Aula4
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Teoria da Computação
Teoria da ComputaçãoTeoria da Computação
Teoria da Computação
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvR
 
Semanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantesSemanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantes
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 

Destaque

Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Seminário sobre GO
Seminário sobre GOSeminário sobre GO
Seminário sobre GOgptavares
 
Módulo 3 - Variáveis e Constantes
Módulo 3 - Variáveis e ConstantesMódulo 3 - Variáveis e Constantes
Módulo 3 - Variáveis e ConstantesCarlos Fernando Jung
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem GoAllisson Azevedo
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 
Tipos de Dados, Variáveis, Constantes
Tipos de Dados, Variáveis, ConstantesTipos de Dados, Variáveis, Constantes
Tipos de Dados, Variáveis, ConstantesMicael Coutinho
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoWesley R. Bezerra
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasAdriano Teixeira de Souza
 

Destaque (20)

Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Seminário sobre GO
Seminário sobre GOSeminário sobre GO
Seminário sobre GO
 
Variáveis
VariáveisVariáveis
Variáveis
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Módulo 3 - Variáveis e Constantes
Módulo 3 - Variáveis e ConstantesMódulo 3 - Variáveis e Constantes
Módulo 3 - Variáveis e Constantes
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem Go
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Escopo de variaveis
Escopo de variaveisEscopo de variaveis
Escopo de variaveis
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Tipos de Dados, Variáveis, Constantes
Tipos de Dados, Variáveis, ConstantesTipos de Dados, Variáveis, Constantes
Tipos de Dados, Variáveis, Constantes
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e Heterogêneas
 

Semelhante a Paradigmas de Linguagens de Programação - Tipos primitivos e compostos

Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: IntroduçãoWesley R. Bezerra
 
Poo1 aula 4 - tipos de dados variáveis-constantes - copia
Poo1   aula 4 - tipos de dados variáveis-constantes - copiaPoo1   aula 4 - tipos de dados variáveis-constantes - copia
Poo1 aula 4 - tipos de dados variáveis-constantes - copiaDenis Sobrenome
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantesDenis Sobrenome
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantesDenis Sobrenome
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10Felipe Santos
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python PoliRodrigo Lira
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Mauricio Volkweis Astiazara
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfValter moreira
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 

Semelhante a Paradigmas de Linguagens de Programação - Tipos primitivos e compostos (20)

Java Básico
Java BásicoJava Básico
Java Básico
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: Introdução
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Poo1 aula 4 - tipos de dados variáveis-constantes - copia
Poo1   aula 4 - tipos de dados variáveis-constantes - copiaPoo1   aula 4 - tipos de dados variáveis-constantes - copia
Poo1 aula 4 - tipos de dados variáveis-constantes - copia
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
 
Ud3
Ud3Ud3
Ud3
 
Introdução a Python
Introdução a PythonIntrodução a Python
Introdução a Python
 
Java2
Java2Java2
Java2
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10
 
02 1 algoritmos
02 1 algoritmos02 1 algoritmos
02 1 algoritmos
 
Aula02
Aula02Aula02
Aula02
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdf
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
7194099-Manual-de-Java
7194099-Manual-de-Java7194099-Manual-de-Java
7194099-Manual-de-Java
 

Mais de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

Mais de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

Paradigmas de Linguagens de Programação - Tipos primitivos e compostos

  • 2. Não podem ser decompostos em valores mais simples  Costumam ser definidos na implementação da LP Prof. Adriano Teixeira de Souza
  • 3. Corresponde a um intervalo do conjunto dos números inteiros  Há vários tipos inteiros numa mesma LP ◦ Normalmente, intervalos são definidos na implementação do compilador  Em JAVA, o intervalo de cada tipo inteiro é estabelecido na definição da própria LP Prof. Adriano Teixeira de Souza
  • 4. Tipo Tamanho Intervalo (bits) Início Fim byte 8 -128 127 short 16 -32768 32767 int 32 -2.147.483.648 2.147.483.647 long 64 -9223372036854775808 9223372036854775807 Prof. Adriano Teixeira de Souza
  • 5. Armazenados como códigos numéricos ◦ Tabelas ASCII e UNICODE  Java oferece o tipo char  Em C, o tipo primitivo char é classificado como um tipo inteiro char d; d = 'a' + 3; … while (*p) *q++ = *p++; Prof. Adriano Teixeira de Souza
  • 6. Tipo mais simples ◦ Possui apenas dois valores  C não possui o tipo de dado booleano, mas qualquer expressão numérica pode ser usada como condicional  Valores ¹ zero => verdadeiro  Valores = zero => Þfalso ◦ Abordagem de C pode provocar erros  if (c += 1) x = 10;  JAVA inclui o tipo de dado boolean Prof. Adriano Teixeira de Souza
  • 7.  Por que a linguagem de programação C, umas das mais usadas da história, não implementa o tipo booleano? Prof. Adriano Teixeira de Souza
  • 8. Armazena um número fixo de dígitos decimais ◦ Existe, por exemplo, no Cobol e no Pascal Prof. Adriano Teixeira de Souza
  • 9. O tipo primitivo ponto flutuante modela os números reais  LPs normalmente incluem dois tipos de ponto flutuante: float e double Prof. Adriano Teixeira de Souza
  • 10. O numero xx,yyyy . Onde xx é a parte inteira e yyyy é a parte fracionaria (que pode assumir um número infinito)  Os computadores não podem representar números reais da forma acima.  Os computadores adotam método de representação de números reais chamado notação científica  O número 52,258 é representado na notação científica como 0,52258 X 10^2 Prof. Adriano Teixeira de Souza
  • 11. C e C++ e Java permitem que o programador defina novos tipos primitivos através da enumeração de identificadores dos valores do novo tipo ◦ enum mes_letivo {mar, abr, mai, jun, ago, set, out, nov }; ◦ enum mes_letivo m1, m2;  Possuem correspondência direta com intervalos de tipos inteiros e podem ser usados para indexar vetores e para contadores de repetições  Aumentam a legibilidade e confiabilidade do código Prof. Adriano Teixeira de Souza
  • 12. Em PASCAL e ADA, também é possível definir tipos intervalo de inteiros ◦ type meses = 1 .. 12;  Tipos intervalos herdam as operações dos inteiros Prof. Adriano Teixeira de Souza
  • 13. Tipos compostos são aqueles que podem ser criados a partir de tipos mais simples ◦ registros, vetores, listas, arquivos  Permitem Operações ◦ Ex.: Produtocartesiano, união e conjunto de potências  Possuem Cardinalidade ◦ Número de valores distintos que fazem parte do tipo Prof. Adriano Teixeira de Souza
  • 14. Podem ser implementados em Pascal, C, C++ e JAVA  É necessário alocar nova memória e copiar conteúdo quando vetor aumenta de tamanho  É encargo do programador controlar alocação e cópia. Em C e C++, o programador deve controlar desalocação também. Isso torna a programação mais complexa e suscetível a erros Prof. Adriano Teixeira de Souza
  • 15. Também são conhecidos como matrizes.  Em linguagens que não possuem o conceito de matrizes, como JAVA, vetores multidimensionais são obtidos com o uso de vetores unidimensionais cujos elementos são outros vetores ◦ int [ ] [ ] a = new int [5] [ ];  O mesmo efeito pode ser obtido em C com o uso de ponteiros para ponteiros Prof. Adriano Teixeira de Souza
  • 16. Valores correspondem a uma seqüência de caracteres  Não existe consenso sobre como devem ser tratadas  Podem ser consideradas tipos primitivos, mapeamentos finitos ou tipo recursivo lista Prof. Adriano Teixeira de Souza
  • 17. Os objetos String encapsulam seqüências de caracteres de 16-bits (representação Unicode).  Podemos criar objetos String de várias formas. Veja alguns exemplos: ◦ String s = “Meu texto”; //mais usual ◦ String s = new String(“Meu texto”); ◦ char [] c = {'M', 'e', 'u', ' ', 't', 'e', 'x', 't', 'o'}; ◦ String s = new String(c); Prof. Adriano Teixeira de Souza
  • 18. length() ◦ Ex: System.out.println(“Hello”.length()); // imprime 5  O operador + é usado para concatenar strings. ◦ Ex: String str = “Java é ” + “segura.”;  charAt(1) – retorna o caracter na posição 1 ('a')‫‏‬  equals(“Java é segura.”) - retorna true  equalsIgnoreCase(“java é segura”) - retorna true  indexOf('J') – retorna 0  lastIndexOf('a') – retorna 12  substring(0, 4) – retorna 'Java' Prof. Adriano Teixeira de Souza
  • 19. Uma instância da classe StringBuffer representa uma String que pode ser facilmente alterada.  O tamanho e conteúdo da seqüencia da StringBuffer pode ser alterada por alguns métodos.  Veja o exemplo: ◦ StringBuffer sb = new StringBuffer(); ◦ StringBuffer sb = new StringBuffer(“Meu texto”); ◦ sb.append(“!!!”); // Meu texto!!! ◦ sb.insert(0, “Esse é o “); // Esse é o Meu texto!!! Prof. Adriano Teixeira de Souza
  • 21. Todo tipo primitivo no Java possui uma classe correspondente chamada de classe wrapper.  A classe wrapper ou empacotadora simplesmente encapsula um valor primitivo dentro de um objeto. Prof. Adriano Teixeira de Souza
  • 22. Classes Wrappers possuem métodos públicos disponíveis na subclasse Object, devemos dar um maior destaque para os métodos equals(Object) e toString, o primeiro é utilizado para comparações enquanto que o segundo permite que o conteúdo de um objeto seja representado em formato de texto.  Classes derivadas da subclasse Number possuem vários métodos para devolverem um tipo primitivo, tais como: byteValue(), shortValue(), intValue(), longValue(), doubleValue(), floatValue().  Alem disso a as classes derivadas de Number possuem também o método comparareTo(Object) que faz comparações entre objetos wrapper Prof. Adriano Teixeira de Souza
  • 23. Tipo primitivo Classe Wrapper Subclasse Lógico boolean Boolean Object Caractere char Caracter byte Byte short Short Inteiro int Integer Number long Long float Float Ponto flutuante double Double Prof. Adriano Teixeira de Souza
  • 24. Tipos primitivos são bem rápidos  Consomem pouca memória  Além de permitirem operações mais complexas  São bastantes eficientes em laços e expressões Prof. Adriano Teixeira de Souza