Java Basico Modulo 03

download Java Basico Modulo 03

of 18

Transcript of Java Basico Modulo 03

  • 8/8/2019 Java Basico Modulo 03

    1/18

    Curso Java Starter

    www.t2ti.com1

  • 8/8/2019 Java Basico Modulo 03

    2/18

    Curso Java Starter

    Apresentao

    O Curso Java Starter foi projetado com o objetivo de ajudar quelas pessoas

    que tm uma base de lgica de programao e desejam entrar no mercado de

    trabalho sabendo Java,

    A estrutura do curso formada por mdulos em PDF e por mini-cursos em

    vdeo. O aluno deve baixar esse material e estud-lo. Deve realizar os exerccios

    propostos. Todas as dvidas devem ser enviadas para a lista de discusso que est

    disponvel para inscrio na pgina do Curso Java Starter no site www.t2ti.com. As

    dvidas sero respondidas pelos instrutores Albert Eije, Cludio de Barros e Miguel

    Kojiio, alm dos demais participantes da lista.

    Nosso objetivo que aps o estudo do Curso Java Starter o aluno no tenha

    dificuldades para acompanhar um curso avanado onde poder aprender a

    desenvolver aplicativos para Web, utilizando tecnologias como Servlets e JSP e

    frameworks como Struts e JSF, alm do desenvolvimento para dispositivos mveis.

    Albert Eije trabalha com informtica desde 1993. Durante esse perodo j

    trabalhou com vrias linguagens de programao: Clipper, PHP, Delphi, C, Java, etc.

    Atualmente mantm o site www.alberteije.com.

    Cludio de Barros Tecnlogo em Processamento de Dados.

    Miguel Kojiio bacharel em Sistemas de Informao, profissional certificado

    Java (SCJP 1.5).

    O curso Java Starter surgiu da idia dos trs amigos que trabalham juntos em

    uma instituio financeira de grande porte.

    www.t2ti.com2

    http://www.alberteije.com/http://www.alberteije.com/http://www.alberteije.com/http://www.alberteije.com/
  • 8/8/2019 Java Basico Modulo 03

    3/18

    Curso Java Starter

    Mdulo

    03 Arrays eentrada de dadosIntroduo

    Antes de iniciarmos vale relembrar que o seu aprendizado depende muito

    da qualidade do seu estudo, com isto ns queremos dizer que: Os exerccios so

    parte importante da sedimentao do seu conhecimento.

    Durante o texto as palavras array e vetores sero utilizadas sempre com o

    mesmo significado (estruturas de dados seqenciais).

    Uma coleo nada mais do que um conjunto de elementos contidos em

    uma nica estrutura em Java um objeto cuja funo oferecer meios de

    armazenar, disponibilizar, remover, localizar e percorrer o seu contedo.

    Colees so estruturas de dados que agrupam elementos que formam um

    grupo natural como por exemplo: baralho (conjunto de cartas), time (conjunto dejogadores), turma (conjunto de alunos) e etc.

    A seguir conceituaremos superficialmente1 os tipos de colees mais

    comuns:

    Vetor: formado por um grupo de elementos acessados atravs do seu

    ndice;

    Pilha: Estrutura de dados onde o ltimo elemento a ser inserido na coleo

    o primeiro a ser retirado (Baseado no princpio LIFO, Last in, first out);

    Fila: Coleo onde a ordem de insero representa a ordem de sada dos

    elementos (Baseado no princpio FIFO, First in, first out);

    rvores: Estrutura de dados que garante a ordenao dos elementos que a

    compe;

    1Para saber saber mais sobre estruturas de dados visite:http://pt.wikipedia.org/wiki/Estrutura_de_dados

    www.t2ti.com3

    http://pt.wikipedia.org/wiki/Estrutura_de_dadoshttp://pt.wikipedia.org/wiki/Estrutura_de_dadoshttp://pt.wikipedia.org/wiki/Estrutura_de_dados
  • 8/8/2019 Java Basico Modulo 03

    4/18

    Curso Java Starter

    Cada uma das estruturas de dados apresentadas possui caractersticas que

    as diferenciam quanto a:

    Eficincia de busca;

    Eficincia de insero;

    Organizao;

    Ordenao;

    Forma de acesso;

    Forma de busca e;

    Forma de insero.

    Arrays unidimensionais:

    A forma mais eficiente de trabalhar com colees de elementos em Java

    atravs da construo de vetores (arrays). Em Java, arrays so objetos que

    armazenam mltiplas variveis do mesmo tipo ou do mesmo sub-tipo (sub-tipo? No

    se preocupe por enquanto com isto).

    Observe que apesar da sua eficincia, normalmente, para armazenar dados

    ns utilizamos estruturas de dados mais flexveis j existentes na linguagem, mais

    especificamente, no Framework Collections (assunto a ser abordado em mais detalhes

    durante este curso) ao invs de arrays.

    Um array um objeto que armazena um nmero pr-definido de

    elementos, isto , o seu tamanho definido no momento da sua construo. Seus

    elementos so acessados atravs de ndices que iniciam-se sempre por 0 (zero), ou

    seja, um array de tamanho quatro ter ndices 0, 1, 2 e 3.

    Em Java existem diversas formas de declarar, construir e inicializar arrays e

    a melhor forma de utilizar estas estruturas de dados conhecendo como sorealizadas cada uma destas etapas.

    A seguir apresentaremos cada uma destas etapas e a forma como elas

    acontecem na prtica:

    1. Declarao: Etapa em que a referncia do array declarada;

    2. Construo: Aqui definido o tamanho e instanciado o array;

    3. Inicializao: Os elementos so inseridos no array.

    www.t2ti.com4

  • 8/8/2019 Java Basico Modulo 03

    5/18

    Curso Java Starter

    Abaixo temos um exemplo com todas as etapas bem definidas:

    1. int[] jogoSena; //Declarao

    2.

    3. jogoSena = newint[6]; //Criao

    4.5. jogoSena[0] = 23; //Inicializao da posio 0

    6. jogoSena[1] = 12; //Inicializao da posio 1

    7. jogoSena[2] = 55; //Inicializao da posio 2

    8. jogoSena[3] = 02; //Inicializao da posio 3

    9. jogoSena[4] = 07; //Inicializao da posio 4

    10.jogoSena[5] = 19; //Inicializao da posio 5

    Neste caso estamos criando um vetor de inteiros (int), perceba que a

    declarao da varivel ocorre na linha 1, na seqencia temos a criao do vetor

    (linha 3) e por ltimo a inicializao de cada uma das suas posies.Existem formas mais enxutas de efetuarmos as mesmas etapas mostradas

    no exemplo anterior. Podemos declarar, construir e inicializar em apenas uma linha da

    seguinte forma:

    int[] outroJogoSena = {23, 12, 55, 02, 07, 19};

    No exemplo acima, acontecem quatro coisas em apenas uma linha:

    I. Declarao de uma referncia a um array de inteiros chamado

    outroJogoSena;

    II. Criao de um array com seis posies;

    III.Inicializao das posies com os valores 23, 12, 55, 02, 07 e 19;

    IV. Atribuio do novo objeto (array) a referncia outroJogoSena;

    O outro atalho que a linguagem Java nos permite o seguinte:

    int[] outroJogoSena = newint[]{23, 12, 55, 02, 07, 19};

    Em ambos os casos todas as etapas continuam sendo executadas

    (declarao, construo e inicializao).

    Certo, mas qual o tamanho destes arrays? Quando criamos arrays desta

    maneira a quantidade mxima de elementos que o array ir armazenar ser igual a

    quantidade de elementos com que ele foi inicializado, isto , em ambos os casos os

    arrays seriam suficientes para armazenar at 6 elementos. Caso haja necessidade de

    www.t2ti.com5

  • 8/8/2019 Java Basico Modulo 03

    6/18

    Curso Java Starter

    mais espao um novo array deve ser construdo.

    Para conhecer o tamanho total de um array basta voc acessar o atributo

    length. Este atributo retorna um valor inteiro (int) que indica qual a capacidade

    mxima de armazenamento deste array.

    Lembretes:

    Primeira posio (ndice): de qualquer array sempre 0;

    ltima posio (ndice): sempre o seu tamanho 1 (length - 1).

    Exerccio Resolvido

    Implemente a lgica para realizao de saques em um caixa eletrnico

    considerando que o mesmo armazena cdulas de R$100,00, R$50,00, R$20,00, R$10,00, R$5,00, R$2,00 e R$1,00 e devem ser entregues ao cliente o menor

    nmero possvel de cdulas.

    publicclass CaixaEletronico {

    publicstaticvoidmain(String[] args) {

    //Cedulas disponiveis no caixa eletronico

    int[] cedulas = {100, 50, 20, 10, 5, 2, 1};

    //Quantidade total de cedulas entregues ao cliente

    int quantidadeTotal = 0;

    //valor a ser sacado pelo cliente

    int valorReais = 163;

    //Percorrendo todas as cedulas disponiveis no caixa eletronicofor(int i = 0; i < cedulas.length; i++)

    {

    //Quantidade de cedulas para o valor cedulas[i]

    int quantidadeCedulas = valorReais/cedulas[i];

    //Impressao da quantidade de cedulas

    System.out.println("Quantidadde de cedulas de "+ cedulas[i] +

    ": " +quantidadeCedulas );

    //Resto da divisao

    valorReais %= cedulas[i];

    //Quantidade total de cedulas entregues ao cliente

    quantidadeTotal += quantidadeCedulas;

    }

    //Impressao

    System.out.println("Quantidade total: "+quantidadeTotal);

    }

    }

    Resultado obtido durante a execuo deste cdigo:

    Quantidadde de cedulas de 100: 1

    Quantidadde de cedulas de 50: 1

    Quantidadde de cedulas de 20: 0

    Quantidadde de cedulas de 10: 1

    Quantidadde de cedulas de 5: 0

    Quantidadde de cedulas de 2: 1

    Quantidadde de cedulas de 1: 1Quantidade total: 5

    www.t2ti.com6

  • 8/8/2019 Java Basico Modulo 03

    7/18

    Curso Java Starter

    Exerccio Resolvido

    Implemente um algoritmo que ordene um array com 10 nmeros inteiros. O

    algoritmo deve efetuar uma comparao de cada elemento com o seu sucessor e se a

    ordem no for crescente os elementos devem ter suas posies trocadas, este

    processo deve se repetir at que o array esteja ordenado.

    publicclass OrdenarArray {

    publicstaticvoidmain(String[] args) {

    int[] arrayInteiros = {55, 27, 33, 45, 92, 100, 3, 8, 11, 70};

    boolean estaOrdenado = false;

    while(!estaOrdenado)

    {estaOrdenado = true;

    for(int i = 1; i < arrayInteiros.length; i++)

    {

    if(arrayInteiros[i-1] > arrayInteiros[i])

    {

    estaOrdenado = false;

    int aux = arrayInteiros[i];

    arrayInteiros[i] = arrayInteiros[i-1];

    arrayInteiros[i-1] = aux;

    System.out. println("Ordem atual: "+

    arrayInteiros[0]+ " " + arrayInteiros[1]+" "+

    arrayInteiros[2]+ " " + arrayInteiros[3]+" "+

    arrayInteiros[4]+ " " + arrayInteiros[5]+" "+

    arrayInteiros[6]+ " " + arrayInteiros[7]+" "+

    arrayInteiros[8]+ " " + arrayInteiros[9]);

    }}

    }

    }

    }

    Resultado da execuo deste cdigo:

    Ordem atual: 27 55 33 45 92 100 3 8 11 70

    Ordem atual: 27 33 55 45 92 100 3 8 11 70

    Ordem atual: 27 33 45 55 92 100 3 8 11 70

    Ordem atual: 27 33 45 55 92 3 100 8 11 70

    Ordem atual: 27 33 45 55 92 3 8 100 11 70Ordem atual: 27 33 45 55 92 3 8 11 100 70

    Ordem atual: 27 33 45 55 92 3 8 11 70 100

    Ordem atual: 27 33 45 55 3 92 8 11 70 100

    Ordem atual: 27 33 45 55 3 8 92 11 70 100

    Ordem atual: 27 33 45 55 3 8 11 92 70 100

    Ordem atual: 27 33 45 55 3 8 11 70 92 100

    Ordem atual: 27 33 45 3 55 8 11 70 92 100

    Ordem atual: 27 33 45 3 8 55 11 70 92 100

    Ordem atual: 27 33 45 3 8 11 55 70 92 100

    Ordem atual: 27 33 3 45 8 11 55 70 92 100

    Ordem atual: 27 33 3 8 45 11 55 70 92 100

    Ordem atual: 27 33 3 8 11 45 55 70 92 100

    Ordem atual: 27 3 33 8 11 45 55 70 92 100Ordem atual: 27 3 8 33 11 45 55 70 92 100

    Ordem atual: 27 3 8 11 33 45 55 70 92 100

    www.t2ti.com7

  • 8/8/2019 Java Basico Modulo 03

    8/18

    Curso Java Starter

    Ordem atual: 3 27 8 11 33 45 55 70 92 100

    Ordem atual: 3 8 27 11 33 45 55 70 92 100

    Ordem atual: 3 8 11 27 33 45 55 70 92 100

    Arrays Multi-dimensionais

    Arrays unidimensionais so estruturas de dados bastante simples. Uma

    estrutura um pouco mais complexa so os arrays multi-dimensionais ou n-

    dimensionais.

    A funo destes arrays a mesma dos seus irmos unidimensionais porm

    arrays multi-dimensionais permitem a construo de estruturas de dados mais ricas.

    No caso de arrays multi-dimensionais a declarao, construo einicializao realizada conforme exemplos a seguir, observe que os trechos de

    cdigos so substituveis entre si, isto , equivalentes:

    Java permite a construo de arrays com qualquer nmero de dimenses,

    contudo dificilmente encontram-se arrays com mais de trs dimenses.

    Exerccio Resolvido

    Implemente um programa que construa uma matriz de double 4x4 e para

    cada clula atribua o valor correspondente a i*j.

    www.t2ti.com8

  • 8/8/2019 Java Basico Modulo 03

    9/18

    Curso Java Starter

    Resoluo:

    1. A matriz ser de double;

    2. A classe dever manipular um array bidimensional;

    3. O valor de cada clula corresponder ao valor dos respectivos ndices

    multiplicados.

    publicclass Matriz

    {

    publicstaticvoidmain(String[] args)

    {

    double matriz[][] = newdouble[4][4];//declaracao e construcao da matriz

    for(int i = 0; i < matriz.length; i++)//percorre a matriz no eixo i

    {

    for(int j = 0; j < matriz[i].length; j++)//percorre a matriz no eixo j

    {

    matriz[i][j] = i*j;//atribui o valor a celula

    }

    }

    for(int i = 0; i < matriz.length; i++) //percorre a matriz no eixo i

    {

    for(int j = 0; j < matriz[i].length; j++) //percorre a matriz no eixo j

    {

    //imprime o resultado

    System.out.println("Valor da posio ["+i+","+j+"]: "+

    matriz[i][j]);

    }

    }

    }

    }

    Sada console:

    Valor da posio [0,0]: 0.0

    Valor da posio [0,1]: 0.0

    Valor da posio [0,2]: 0.0

    Valor da posio [0,3]: 0.0

    Valor da posio [1,0]: 0.0

    Valor da posio [1,1]: 1.0

    Valor da posio [1,2]: 2.0

    Valor da posio [1,3]: 3.0

    Valor da posio [2,0]: 0.0

    Valor da posio [2,1]: 2.0

    Valor da posio [2,2]: 4.0Valor da posio [2,3]: 6.0

    Valor da posio [3,0]: 0.0

    Valor da posio [3,1]: 3.0

    Valor da posio [3,2]: 6.0

    Valor da posio [3,3]: 9.0

    Manipulando vetores utilizando a classe Arrays

    A classe Arrays, disponvel no pacote java.util, fornece uma grande

    www.t2ti.com9

  • 8/8/2019 Java Basico Modulo 03

    10/18

    Curso Java Starter

    quantidade de mtodos utilitrios, como por exemplo mtodos para ordenao,

    procura, comparao e etc.. Estes mtodos so muito teis quando manipulamos

    arrays. A seguir sero apresentados os principais mtodos e a as respectivas

    funcionalidades oferecidas.

    Ordenao: Realizada utilizando-se o mtodo sort cujo parmetro o vetor

    a ser ordenado;

    Pesquisa: A localizao de um determinado elemento em um array realizada

    utilizando-se o mtodo binarySearch que retorna a posio que o elemento foi

    encontrado no array. Caso o elemento no seja encontrado retorna um valor

    negativo;

    Preenchimento: Utilizando-se o mtodo fill da classe utilitria Arrays possvel preencher um determinado array com o elemento desejado;

    Comparao: Dados dois arrays o mtodo equals compara valor a valor e

    retorna true se os vetores so idnticos em valores e ndices.

    Agora que conhecemos, superficialmente, a forma como a classe Arrays

    fornece mtodos utilitrios vamos ver na prtica como algumas destas funcionalidades

    so utilizadas.

    Exerccio Resolvido - Ordenao

    Implemente um programa que construa um array de inteiros (int) de

    tamanho 10.000 com valores atribudos da seguinte forma, cada posio do array

    conter o resultado da operao 10.000 ndice da posio, isto , a posio 0 ter o

    valor 10.000, a posio 1 ter o valor 9.999 e assim por diante. Ordene utilizando o

    algoritmo de ordenao implementado no exerccio resolvido pag. 6 e na seqenciautilizando a classe utilitria Arrays. Compare os tempos de ordenao.

    import java.util.Arrays;

    publicclass OrdenacaoArray {

    publicstaticvoidmain(String[] args)

    {

    //Criacao do array de 10.000 posicoes

    int[] arrayInteiros = newint[10000];

    //Atribuindo os valores a cada posicao

    for(int i = 10000; i > 0; i--){

    arrayInteiros[arrayInteiros.length - i] = i;

    www.t2ti.com10

  • 8/8/2019 Java Basico Modulo 03

    11/18

    Curso Java Starter

    }

    //inicio do algoritmo de ordenacao - implementado

    boolean estaOrdenado = false;

    //armazena o tempo de inicio da ordenacao

    long inicio = System.currentTimeMillis();

    while(!estaOrdenado)

    {

    estaOrdenado = true;

    for(int i = 1; i < arrayInteiros.length; i++)

    {

    if(arrayInteiros[i-1] > arrayInteiros[i])

    {

    estaOrdenado = false;

    int aux = arrayInteiros[i];

    arrayInteiros[i] = arrayInteiros[i-1];

    arrayInteiros[i-1] = aux;

    }

    }

    }

    //armazena o tempo fim da ordenacao

    long fim = System.currentTimeMillis();

    //Imprime o tempo total de ordenacao

    System.out.println("Tempo ordenar 1: "+(fim-inicio)+" ms");

    //Atribuindo os valores a cada posicao

    for(int i = 10000; i > 0; i--)

    {arrayInteiros[arrayInteiros.length - i] = i;

    }

    //armazena o tempo de inicio da ordenacao

    inicio = System.currentTimeMillis();

    //Ordena utilizando a classe Arrays

    Arrays.sort(arrayInteiros);

    //armazena o tempo fim da ordenacao

    fim = System.currentTimeMillis();

    //Imprime o tempo total de ordenacao

    System.out.println("Tempo ordenar 2: "+(fim-inicio)+" ms");

    }

    }

    Resultado da execuo:Tempo ordenar 1: 1013 ms

    Tempo ordenar 2: 9 ms

    O resultado desta execuo mostra que o mtodo de ordenao

    implementado pela classe Arrays foi, aproximadamente, 100 vezes mais eficiente que

    a implementao feita no exerccio referenciado.

    Exerccio Resolvido - Pesquisa

    Implemente um programa que construa um array de inteiros (int) de

    tamanho 1.000.000 com valores atribudos de acordo com o seu ndice, procure o

    valor 555.000, entre os valores armazenados no vetor. Compare o tempo gasto

    utilizando o mtodo binarySearch da classe Arrays e uma procura simples

    percorrendo todos os elementos do array at encontrar o valor desejado.

    import java.util.Arrays;

    publicclass PesquisarArray {

    publicstaticvoidmain(String[] args) {//Criacao do array de 1.000.000 de posicoes

    int[] numerosInteiros = newint[1000000];

    www.t2ti.com11

  • 8/8/2019 Java Basico Modulo 03

    12/18

    Curso Java Starter

    //Definicao do numero a ser pesquisado

    int numeroPesquisado = 555000;

    //Preenchimento do Array

    for(int i = 0; i < 1000000; i++)

    numerosInteiros[i] = i;

    //Inicio da contagem do tempo

    long inicio = System.currentTimeMillis();

    //Percorrendo o array em busca do numero

    for(int i = 0; i < 1000000; i++)

    {

    if(numerosInteiros[i] == numeroPesquisado)

    break;

    }

    //fim da contagem do tempo

    long fim = System.currentTimeMillis();

    //Imprime o tempo total de pesquisa

    System.out.println("Pesquisa 1: "+(fim-inicio)+" ms");

    //Inicia a contagem do tempo

    inicio = System.currentTimeMillis();

    //Faz a pesquisa utilizando a classe Arrays

    Arrays.binarySearch(numerosInteiros, numeroPesquisado);

    //Fim da contagem do tempo

    fim = System.currentTimeMillis();

    //Imprime o tempo total de pesquisa

    System.out.println("Pesquisa 2: "+(fim-inicio)+" ms");

    }}

    Possvel sada no console:

    Pesquisa 1: 94 ms

    Pesquisa 2: 1 ms

    Como era esperado, a pesquisa utilizando a classe Arrays foi muito mais

    eficiente que a pesquisa percorrendo todos os elementos.

    Entrada de dados linha de comando

    Da mesma forma que outras linguagens de programao, em Java

    possvel passar argumentos atravs da linha de comando. Nestes casos ns

    invocamos o interpretador e na seqencia passamos os parmetros para nossa

    aplicao.

    No exemplo a seguir a classe Teste est recebendo 3 parmetros (param1,

    param2 e param3) durante a execuo.

    www.t2ti.com12

  • 8/8/2019 Java Basico Modulo 03

    13/18

    Curso Java Starter

    Estes parmetros so recebidos atravs do mtodo main. Observe abaixo aassinatura do mtodo, os parmetros so agrupados em um vetor de String, ou seja,

    uma das portas de entrada de informao externa para programas Java o prprio

    mtodo main.

    publicstaticvoidmain(String[] args)

    importante compreender que todos os parmetros so recebidos pelo

    mtodo main como String, para serem tratados como nmeros eles devem serconvertidos, esta converso ser abordada no Mdulo 7.

    Exerccio Resolvido

    Implemente um programa Java que imprima e conte quantos parmetros

    foram passados durante a sua interpretao, execute este programa passando 6

    parmetros quaisquer e , aps, execute novamente sem passar parmetros.

    www.t2ti.com13

  • 8/8/2019 Java Basico Modulo 03

    14/18

    Curso Java Starter

    publicclass mainParametros {

    publicstaticvoidmain(String[] parametros) {

    if(parametros != null)

    {

    System.out.println("Foram passados: "+parametros.length+" parametros");

    for(int i = 0; i < parametros.length; i++)

    System.out.println("parametro "+i+": "+parametros[i]);}

    }

    }

    Abaixo temos a imagem com a execuo deste programa, primeiro foram

    passados 6 parmetros e na seqencia nenhum.

    Agora ns j sabemos como enviar parmetros atravs do prompt de duas

    formas, uma atravs do mtodo main e outra, apresentada no Mdulo 4, atravs do

    uso de um Scanner. Mas ns podemos fazer estas mesmas funes de forma um

    pouco mais elaborada utilizando interfaces grficas. A prxima seo ir descrever

    como isto pode ser realizado.

    www.t2ti.com14

  • 8/8/2019 Java Basico Modulo 03

    15/18

    Curso Java Starter

    Entrada de dados interface grfica

    Aqui ns iremos utilizar a biblioteca Swing que responsvel pela gerao

    dos artefatos grficos em Java mas ns no iremos nos aprofundar nesta biblioteca

    pois este assunto ser abordado em um mdulo dedicado apenas a isto.

    A entrada de dados utilizando prompt pode, dependendo da situao, deixar

    o seu programa menos palatvel para usurios iniciantes. Para evitar esta situao

    podemos efetuar a entrada de dados utilizando a classe JOptionPane.

    A classe JOptionPane torna simples a implementao de dilogos que

    solicitam a entrada de dados ou mesmo apenas informam alguma coisa. Os principais

    mtodos desta classe esto relacionados a seguir.

    Mtodo Descrio

    showConfirmDialog Utilizado para confirmaes, dilogos cuja resposta seja do tipo

    sim, no ou cancela.

    showInputDialog Utilizado para entrada de dados pelo usurio.

    showMessageDialog Informa ao usurio alguma coisa

    showOptionDialog Uma mistura dos trs outros mtodos, ou seja, pode ser

    utilizado para informar, para entrada de dados e aindaconfirmaes.

    Vamos ao exemplo prtico para melhor compreenso, neste exemplo sero

    utilizados os mtodos showInputDialog e showMessageDialog.

    //Importando classe do Swing

    import javax.swing.JOptionPane;

    publicclass Dialogo {publicstaticvoidmain(String[] args) {

    String nome;

    //Este comando mostra um dialogo que solicita entrada de dados

    nome = JOptionPane.showInputDialog("Digite o seu nome: ");

    String mensagem = nome+" est fazendo o curso Java Iniciante";

    //Este comando mostra um dialogo que apenas exibe a mensagem

    JOptionPane.showMessageDialog(null, mensagem);

    }

    }

    A seguir temos as telas demonstrando a execuo deste programa no

    prompt.

    www.t2ti.com15

  • 8/8/2019 Java Basico Modulo 03

    16/18

    Curso Java Starter

    Entrada de dados no dilogo.

    Exibio da mensagem de concluso do programa.

    www.t2ti.com16

  • 8/8/2019 Java Basico Modulo 03

    17/18

    Curso Java Starter

    Exerccios

    Aprenda com quem tambm est aprendendo, veja e compartilhe as suas

    respostas no nosso Frum:

    Exerccios Mdulo 03 Vetores (Arrays) e Entrada de Dados

    1) Crie um programa que percorra um array de 10 posies e imprima o seu

    contedo.

    2) Escreva um programa que some todos os valores contidos em um array de

    inteiros e calcule a mdia.3) Desenvolva um programa que dado um array de 10 nmeros inteiros

    multiplique o primeiro elemento pelo seguinte, o resultado deve ento ser

    multiplicado pelo prximo elemento at que todos os elementos sejam

    percorridos. Imprima o valor final.

    4) Faa um programa que inverta as posies de um array com 10 elementos.

    5) Dados dois vetores quaisquer de booleanos compare-os e informe se ambos so

    idnticos, para serem idnticos os vetores devem possuir o mesmo tamanho e

    os mesmos elementos em cada posio.

    6) Faa um programa que calcule o produto escalar de dois vetores de double, isto

    , multiplique cada elemento pelo seu respectivo no outro vetor e some os

    resultados.

    7) Utilizando a classe Scanner, j apresentada em mdulos anteriores, faa um

    programa que permita o usurio efetuar a entrada de 10 nmeros quaisquer.

    Ordene estes nmeros utilizando a classe Arrays e imprima o resultado.

    8) Faa um programa que receba um parmetro qualquer atravs do mtodo main

    e informe ao usurio atravs de uma caixa de dilogo qual foi o parmetro

    passado.

    9) Crie um programa que mostre um dilogo, informando que no existem

    parmetros, caso no seja passado nenhum parmetro atravs da linha de

    comando.

    10)Utilizando a classe Scanner faa um programa que solicite a entrada de 10

    nmeros inteiros, logo aps solicite a entrada de mais 5 nmeros inteiroscompare os nmeros obtidos e verifique se o segundo vetor est contido dentro

    www.t2ti.com17

    http://www.t2ti.com/forumhttp://www.t2ti.com/forum/viewforum.php?f=7http://www.t2ti.com/forumhttp://www.t2ti.com/forum/viewforum.php?f=7
  • 8/8/2019 Java Basico Modulo 03

    18/18

    Curso Java Starter

    do primeiro.

    11)Utilizando a classe Scanner faa um programa que solicite a entrada de 10

    nmeros inteiros, verifique a freqncia de ocorrncia de cada nmero no vetor.

    12)Crie um programa que receba como parmetro de entrada 16 valores, coloque

    os em uma matriz 4x4 e faa a transposio dos valores.

    13)Desenvolva um programa que receba 10 parmetros por linha de comando,

    inverta todas as posies e imprima o resultado.

    14)Desenvolva um programa, utilizando a classe Scanner, que obtenha 10 valores

    de entrada e verifique se eles formam uma progresso aritmtica.

    15)Desenvolva um programa, utilizando a classe Scanner, que obtenha 10 valores

    de entrada e identifique o maior valor, o menor e a diferena entre os valores.

    16)Faa um algoritmo para ordenar um vetor da seguinte forma, o algoritmoidentifica o maior valor e o coloca na ltima posio livre de um outro vetor. Na

    prxima iterao este valor descartado, repetindo at no sobrarem mais

    valores.

    www t2ti com