Tipos Primitivos e Operadores

download Tipos Primitivos e Operadores

of 37

Transcript of Tipos Primitivos e Operadores

  • 8/2/2019 Tipos Primitivos e Operadores

    1/37

    Linguagem e Tcnica de Programao

    Tecnologia Java

    Professor: Hlder Seixas LimaE-mail: [email protected]

  • 8/2/2019 Tipos Primitivos e Operadores

    2/37

    Tipos primitivos e operadores

    Mdulo II

  • 8/2/2019 Tipos Primitivos e Operadores

    3/37

    Tipos primitivos

    Tipo Contedo Tamanho (bits) Mnimo Mximo

    boolean Valor lgico(true ou false)

    8 -- --

    char CaracterUnicode

    16 \u0000 \uFFFF

    byte Inteiro com sinal 8 -128 127

    short Inteiro com sinal 16 -32.768 32.767

    int Inteiro com sinal 32 -2.147.483.648 2.147.483.647

    long Inteiro com sinal 64 -263 263 - 1

    float Ponto flutuante 32 IEEE 754 IEEE 754

    double Ponto flutuante 64 IEEE 754 IEEE 754

    Mais detalhes: http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

  • 8/2/2019 Tipos Primitivos e Operadores

    4/37

    Variveis

    Uma varivel a unidade bsica dearmazenamento;

    As variveis devem ser declaradasexplicitamente;

    Cada varivel tem um tipo, um identificador, eum valor;

    As variveis podem ser inicializadas na

    declarao.

    int idade;boolean estudante;

    double salario = 1500.50;

    Tipo Identificador

    Valor

  • 8/2/2019 Tipos Primitivos e Operadores

    5/37

    Variveis

    package br.edu.ifnmg.fundamentos;

    public class AulaFundamentos{

    public static void main (String args[ ]){int idade;

    boolean estudante = true;double salario = 1500.50;

    idade = 20;

    System.out.println("Minha idade: "+idade);}

    }javac br/edu/ifnmg/fundamentos/AulaFundamentos.java java br.edu.ifnmg.fundamentos.AulaFundamentosMinha idade: 20

  • 8/2/2019 Tipos Primitivos e Operadores

    6/37

    Constantes

    Uma constante declarada de formasemelhante a uma varivel;

    Adiciona o modificador final para transformar

    uma varivel em constante.

    final int IDADE_PENAL = 18;

    ModificadorIdentificador

    Valor

    Tipo

  • 8/2/2019 Tipos Primitivos e Operadores

    7/37

    Constantes

    package br.edu.ifnmg.fundamentos;

    public class AulaFundamentos{

    public static void main (String args[ ]){int idade;

    boolean estudante = true;double salario = 1500.0;

    final int IDADE_PENAL = 18;

    idade = 20;

    System.out.println("Minha idade: "+idade);System.out.println("Idade penal : "+IDADE_PENAL);}

    }

    javac br/edu/ifnmg/fundamentos/AulaFundamentos.java java br.edu.ifnmg.fundamentos.AulaFundamentos

    Minha idade: 20Idade penal : 18

  • 8/2/2019 Tipos Primitivos e Operadores

    8/37

    Constantes

    package br.edu.ifnmg.fundamentos;public class AulaFundamentos{

    public static void main (String args[ ]){int idade;boolean estudante = true;double salario = 1500.0;

    final int IDADE_PENAL = 18;IDADE_PENAL = 21;

    idade = 20;

    System.out.println("Minha idade: "+idade);

    System.out.println("Idade penal : "+IDADE_PENAL);}}

    Constantes no podem ter o valor alterado.

    javac br/edu/ifnmg/fundamentos/AulaFundamentos.javabr/edu/ifnmg/fundamentos/AulaFundamentos.java:9: error: cannot assign a valueto final variable IDADE_PENAL

    IDADE_PENAL = 21;

    ^1 error

  • 8/2/2019 Tipos Primitivos e Operadores

    9/37

    Palavras Reservadas Java

  • 8/2/2019 Tipos Primitivos e Operadores

    10/37

    Identificadores das variveis

    Os identificadores das variveis devem comear por

    uma letra do alfabeto, um underscore, ou um $; Podem conter dgitos;

    No pode conter caracteres especias, exceto, $ e

    undescore; No pode possuir o mesmo nome de uma palavra

    reservada.

  • 8/2/2019 Tipos Primitivos e Operadores

    11/37

    Operadores de Atribuio

    A expresso da direita atribuda varivel daesquerda:

    A expresso da direita sempre avaliada antesda atribuio.

    As atribuies podem ser agrupadas:

  • 8/2/2019 Tipos Primitivos e Operadores

    12/37

    Operadores Aritmticos

    Realizam operaes aritmticas bsicas Operam sobre variveis e literais numricos

  • 8/2/2019 Tipos Primitivos e Operadores

    13/37

    Operadores Aritmticos

    A maioria das operaes resultam num int oulong:

    Valores byte, char, e short so promovidos a intantes da operao.

    Se algum argumento for long, o outro promovido a long, e o resultado long.

    No caso de nmeros com ponto flutuante o

    padro double.

  • 8/2/2019 Tipos Primitivos e Operadores

    14/37

    Converses e Casts

    O Java converte automaticamente valores deum tipo numrico para outro tipo maior.

    O Java no faz automaticamente o downcast.

  • 8/2/2019 Tipos Primitivos e Operadores

    15/37

    Exerccio 1

    Faa um programa que considere as notas de3 alunos e depois apresente a mdia dasnotas, conforme definies abaixo:

    Declare as variveis nota1, nota2 e nota3 do tipobyte; Atribua os valores 10, 5 e 8 para as respectivas

    variveis;

    Declare uma nova varivel para armazenar oresultado da mdia das variveis.

    Exiba na tela a mdia das notas.

  • 8/2/2019 Tipos Primitivos e Operadores

    16/37

    Exerccio 1: resoluo

    package br.edu.ifnmg.fundamentos;

    public class MediaNotas{

    public static void main(String args[]){byte nota1 = 10;

    byte nota2 = 5;byte nota3 = 8;

    int notasSomada = nota1 + nota2 + nota3;

    double notaMedia = notasSomada/3.0;

    System.out.println("Mdia notas: "+notaMedia);}}

    Mdia notas: 7.666666666666667

  • 8/2/2019 Tipos Primitivos e Operadores

    17/37

    Exerccio 2

    Faa um programa que considere os salriosde 3 funcionrios e depois apresente a mdiados salrios, conforme definies abaixo:

    Declare as variveis salario1 e salario2 do tipofloat; Declare a varivel salrio3 do tipo double; Atribua os valores 1500.5, 2000.99 e 5000 para as

    respectivas variveis; Exiba na tela a mdia dos salrios.

  • 8/2/2019 Tipos Primitivos e Operadores

    18/37

    Exerccio 2: resoluo

    package br.edu.ifnmg.fundamentos;

    public class MediaSalarios{

    public static void main(String args[]){float salario1 = 1500.50f;float salario2 = (float) 2000.99;

    double salario3 = 5000;

    double mediaSalarios = (salario1 + salario2+ salario3)/3;

    System.out.println("Mdia salrios: "+mediaSalarios);}

    }

    Mdia salrios: 2833.8299967447915

    Exerccio 3: Declarao de

  • 8/2/2019 Tipos Primitivos e Operadores

    19/37

    Exerccio 3: Declarao devariveis e tipos

    byte sizeof = 200;

    short mom = 43;

    short hello mom;

    int big = sizeof * sizeof * sizeof;

    long bigger = big + big + big

    double old = 78.0;

    double new = 0.1;

    boolean consequence = true;

    boolean max = big > bigger;

    char 10Valor = 10;

    char #ming = 'd';

    Encontrar os erros no cdigo abaixo e corrigi-los.byte a = 10;

    byte b = 50;

    byte c = a+b;

    int x = 100;

    long y = 300;

    int z = x+y;

    float f = 10;

    float f1 = 10.0;double d = 10.0;

    float f2 = d * 2;

    int xyz = 100L;

  • 8/2/2019 Tipos Primitivos e Operadores

    20/37

    Operadores de Comparao

    > (Maior que) >= (Maior ou igual que) < (Menor que)

  • 8/2/2019 Tipos Primitivos e Operadores

    21/37

    Operadores Booleanos

    || (Ou) && (E)

    ! (Negao) ^ (Ou exclusivo)

  • 8/2/2019 Tipos Primitivos e Operadores

    22/37

    Condicional com If-Else

    if (condio){comando1

    }

    else{

    comando2}

    if (x==0){

    y = 5;}

    else{

    y+=6;x++;

    }

  • 8/2/2019 Tipos Primitivos e Operadores

    23/37

    Exerccio 4

    Faa um programa que mostre a situao deum aluno no final do semestre, conforme asseguintes definies:

    Crie uma varivel que armazene um valorhipottico de nota de um aluno; Se a nota for maior ou igual a 60 ento informe que

    o aluno foi aprovado;

    Se a nota for maior ou igual a 30 ento informe queo aluno est em recuperao;

    Se a nota for inferior a 30 ento o informe que oaluno foi reprovado.

    i l

  • 8/2/2019 Tipos Primitivos e Operadores

    24/37

    Exerccio 4: resoluo

    package br.edu.ifnmg.fundamentos;

    public class SituacaoAluno{

    public static void main(String args[]){float notaAluno = 70;

    if(notaAluno >= 60){System.out.println("Aluno aprovado");

    }else if(notaAluno >= 30){System.out.println("Aluno em recuperao");

    }else{System.out.println("Aluno reprodado");

    }}

    }

    Aluno aprovado

    E i 5

  • 8/2/2019 Tipos Primitivos e Operadores

    25/37

    Exerccio 5

    Modifique a resoluo do exerccio 4 para queleia, atravs do teclado, a nota do aluno. Uma boa soluo para fazer isto utilizar a classe

    Scanner. Para conhecer melhor a classe Scanner pesquise

    no google:javadoc Scanner

    E i 5 l

  • 8/2/2019 Tipos Primitivos e Operadores

    26/37

    Exerccio 5: resoluo

    package br.edu.ifnmg.fundamentos;import java.util.Scanner;

    public class SituacaoAluno{

    public static void main(String args[]){

    Scanner scanner = new Scanner(System.in);

    System.out.println("Nota aluno: ");float notaAluno = scanner.nextFloat();

    if(notaAluno >= 60){System.out.println("Aluno aprovado");

    }else if(notaAluno >= 30){System.out.println("Aluno em recuperao");}else{

    System.out.println("Aluno reprodado");}

    }}

    E i 6

  • 8/2/2019 Tipos Primitivos e Operadores

    27/37

    Exerccio 6

    Altere novamente o exerccio 4 para que a notado aluno seja recebida atravs de umparmetro no momento da execuo.

    Para que serve o String args[] passado ao mtodomain? Este array de String representa os parmetros

    passados no momento da execuo.

    E i 6 l

  • 8/2/2019 Tipos Primitivos e Operadores

    28/37

    Exerccio 6: resoluo

    package br.edu.ifnmg.fundamentos;

    public class SituacaoAluno{

    public static void main(String args[]){float notaAluno = Float.parseFloat(args[0]);

    if(notaAluno >= 60){System.out.println("Aluno aprovado");

    }else if(notaAluno >= 30){System.out.println("Aluno em recuperao");

    }else{System.out.println("Aluno reprodado");

    }}

    }

    Cl W

  • 8/2/2019 Tipos Primitivos e Operadores

    29/37

    Classes Wrappers

    til para converter String para um tipo primitivoTipo Primitivo Classe Wrapper

    Exemplo de converso deString

    byte Byte Byte.parseByte(10)

    short Short Short.parseShort(10)

    int Integer Integer.parseInt(10)

    long Long Long.parseLong(10)

    float Float Float.parseFloat(10.10)

    double Double Double.parseDouble(10.10)

    Condicional com Switch

  • 8/2/2019 Tipos Primitivos e Operadores

    30/37

    Condicional com Switch

    switch(Expr)

    {case const1: com1;

    ...case constN: comN;

    default: comDef

    }

    Condicional com Switch

  • 8/2/2019 Tipos Primitivos e Operadores

    31/37

    Condicional com Switch

    switch(letra){

    case i: System.out.println(inserir);

    break;case e: System.out.println(excluir);

    break;case a: System.out.println(alterar);

    break;

    default:System.out.println(

    Ao ignorada: +letra);

    }

    Exerccio 7

  • 8/2/2019 Tipos Primitivos e Operadores

    32/37

    Exerccio 7

    Faa um programa que informe ao usurio o nome docanal de TV, conforme as seguintes definies:

    Usurio informa o nmero do canal de TV e o sistemaexibe o nome do canal, conforme a relao abaixo:

    2 Record 4 Rede TV! 5 SBT 7 Band

    12 Globo Quando o usurio digitar um canal no previsto o

    sistema deve informar que o canal desconhecido; Utilize a estrutura switch para implementar o algoritmo.

    Exerccio 7: resoluo

  • 8/2/2019 Tipos Primitivos e Operadores

    33/37

    Exerccio 7: resoluo

    package br.edu.ifnmg.fundamentos;

    public class CanaisTV{

    public static void main(String args[]){int numeroCanal = Integer.parseInt(args[0]);String nomeCanal;

    switch(numeroCanal){

    case 2: nomeCanal = "Record";break;

    case 4: nomeCanal = "Rede TV!";break;

    case 5: nomeCanal = "SBT";break;

    case 7: nomeCanal = "Band";

    break;case 12: nomeCanal = "Globo";break;

    default: nomeCanal = "desconhecido";}

    System.out.println("Canal: "+nomeCanal);}

    }

    Repetio com while

  • 8/2/2019 Tipos Primitivos e Operadores

    34/37

    Repetio com while

    while(condio){Comando;

    }

    while(i

  • 8/2/2019 Tipos Primitivos e Operadores

    35/37

    Repetio com for

    for(Expr.Inicializao;condio; expr.passo){Comando;

    }

    for(i=1; i

  • 8/2/2019 Tipos Primitivos e Operadores

    36/37

    Exerccio 8

    Faa um programa que exiba na tela o osvalores de 1 at 100, conforme as definiesabaixo:

    Faa o solicitado utilizandowhile; Faa o solicitado utilizando do while; Faa o solicitado utilizando for;

    Exerccio 8: resoluo

  • 8/2/2019 Tipos Primitivos e Operadores

    37/37

    Exerccio 8: resoluo

    package br.edu.ifnmg.fundamentos;

    public class Repeticao{

    public static void main(String args[]){System.out.print("\n0 at 100 com while: ");int i = 0;while(i < 100){

    i = i + 1;

    System.out.print(i+", ");}

    System.out.print("\n0 at 100 com do ... while: ");int j = 0;do{

    j++;

    System.out.print(j+", ");}while(j