SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Variáveis Compostas (Vetores e Matrizes)

              Prof. Adriano Teixeira de Souza
   São um conjunto de variáveis identificadas
    por um mesmo nome.

    ◦ Homogêneas (vetores e matrizes)

    ◦ Heterogêneas (Objetos)




                           Prof. Adriano Teixeira de Souza
   Correspondem a posições da memória:
      ◦ identificadas por um único nome
      ◦ individualizadas por índices
      ◦ cujo conteúdo é de um mesmo tipo




Notas:     6,1 2,3   9,4 5,1 8,9 9,8              10      7,0   6,3   4,4

Posição: 0       1    2   3       4        5       6       7    8     9



                              Prof. Adriano Teixeira de Souza
Posição do livro
                  0      1     2       …       n-1

             0    788 598 265          …      156

             1    145 258 369          …      196
Prateleira




             2    989 565 345          …      526

              ⋮    ⋮     ⋮     ⋮       ⋱         ⋮

             m-1 845 153 564 892 210

                             Prof. Adriano Teixeira de Souza
   Utilizados para armazenar conjuntos de
    dados cujos elementos podem ser
    endereçados por um único índice.

   Também são conhecidos como vetores.




                        Prof. Adriano Teixeira de Souza
   Utilizados para armazenar conjuntos de
    dados cujos elementos necessitam ser
    endereçados por mais de um índice.

   Também são conhecidos como matrizes.




                        Prof. Adriano Teixeira de Souza
   Arranjos de 2 dimensões


               0    1     2       …       n-1

           0   788 598 265        …      156

           1   145 258 369        …      196

           2   989 565 345        …      526

           ⋮    ⋮   ⋮     ⋮       ⋱         ⋮

          m-1 845 153 564 892 210

                        Prof. Adriano Teixeira de Souza
   Arranjo de 3 dimensões



    0   1       2   3       0   1       2   3         0   1       2   3       0   1       2   3
0                       0                         0                       0
1                       1                         1                       1
2                       2                         2                       2
3                       3                         3                       3
            0                       1                         2                       3




                                                Prof. Adriano Teixeira de Souza
   Arranjo de 4 dimensões
    0   1   2   3       0   1   2   3         0   1    2   3        0     1   2   3
0                   0                     0                     0
1                   1                     1                     1
2                   2                     2                     2
3                   3                     3                     3
        (0,0)               (0,1)                  (0,2)                  (0,3)


    0   1   2   3       0   1   2   3         0   1    2   3        0     1   2   3
0                   0                     0                     0
1                   1                     1                     1
2                   2                     2                     2
3                   3                     3                     3
        (1,0)               (1,1)                  (1,2)                  (1,3)




                                        Prof. Adriano Teixeira de Souza
   Como declarar:



    Exemplos:
<tipo> <nome> [][] = new <tipo> [<tamanho1>][<tamanho2>];




      float   VetReais[]    =   new    float[100];
      int     Vetor[][]     =   new    int[5][9];
      char    Nome_cliente[]=   new    char[50];
      float   cubo[][][]    =   new    float[20][12][7];




                                      Prof. Adriano Teixeira de Souza
int VetInt[] = new int[n];



Índices:     0      1       2      3          4         5       ...   n-1


VetInt                                                          ...




            Índice do primeiro elemento:      zero
            Índice do último elemento:        n–1
            Quantidade de elementos:                    n



                                  Prof. Adriano Teixeira de Souza
   Índices fora dos limites podem causar uma
    exceção em tempo de execução.
   java.lang.ArrayIndexOutOfBoundsException
              0   1     2      3        4        5

        2         9                                       8


        X1            Vetor[6]                            X2

    int X1;                         Vetor[1]           = 9;
    int Vetor[]= new int[6];        Vetor[-1] =;//Error
    int X2;                         Vetor[6]           =;//Error


                               Prof. Adriano Teixeira de Souza
   O tamanho de um vetor ou matriz é pré-
    definido, ou seja, após a compilação, não
    pode ser mudado.

   Portanto, vetores e matrizes são chamadas
    estruturas de dados estáticas, pois mantém o
    mesmo tamanho ao longo de toda a
    execução do programa.




                         Prof. Adriano Teixeira de Souza
   Atribuir valores na declaração do vetor:

int vetor[] = new int[]{1,2,3,4,5};


    Atribuir valores na declaração da matriz:

float matriz[][] = new float[][]{{1,2,3},{4,5,6}}




                          Prof. Adriano Teixeira de Souza
   Colocar os números de 1 a 5 num vetor:
     for (int i=0; i<5; i++)
            Vetor[i] = i + 1;


   Colocar os números de 5 a 1 num vetor:

     for (int i=0; i<5; i++)
            Vetor[i] = 5 - i;




                         Prof. Adriano Teixeira de Souza
   Preencher uma matriz n         m com zeros:


     for (int i=0; i < N; i++)
       for (int j=0; j < M; j++)
           Matriz[i][j] = 0;




                         Prof. Adriano Teixeira de Souza
   Copiar dados de um vetor para outro:
     final int TAM_MAX = 10;
     double VetReais[] = new double[TAM_MAX],
            VetCopia[] = new double[TAM_MAX];
     for (int i=0; i<TAM_MAX; i++)
            VetCopia[i] = VetReais[i];


   Boa prática de programação:
    ◦ Definir o tamanho de vetores com constantes
      flexibiliza a manutenção do código.




                           Prof. Adriano Teixeira de Souza
   Leitura dos dados de um vetor:



for (int i=0; i<TAM_MAX; i++)
{
   System.out.println("Digite um número: ");
   Vet[i] = leitor.nextFloat();
}




                        Prof. Adriano Teixeira de Souza
Determinar:                       0    1    2    3
1.  M[3][0]                   0   1    2    3    4
2.  M[4][2]
                              1   5    -5   3    0
3.  M[1][3]
4.  M[5][M[0][2]]             2   1    1    1    1

5.  M[M[3][1]][1]             3   -3   2    0    0
6.  M[4][(M[1][2]+M[3][0])]   4   0    0    1    1

    1.   -3    4.   -2
                              5   -1   -1   -2   -2
    2.   1     5.   1
    3.   0     6.   0
   Ler um elemento K.
   Ler um vetor A de N elementos.
   Verificar se o elemento K está presente no
    vetor:
    ◦ Se estiver, imprimir a posição onde ele foi
      encontrado.
    ◦ Caso contrário, imprimir mensagem "elemento K
      não encontrado".




                           Prof. Adriano Teixeira de Souza
   Ler N valores inteiros (N ≤ 100) até que seja
    digitado o valor zero.

   A seguir, inverter o vetor, trocando o 1º
    elemento com o último, o 2º com o
    penúltimo, e assim sucessivamente.

   Ao final, imprimir o vetor invertido.




                          Prof. Adriano Teixeira de Souza
   Faça um programa que imprima uma matriz
    quadrada de dimensão N contendo:
    ◦   o número 1 nos elementos abaixo da diagonal principal
    ◦   o número 0 nos demais elementos


   N deve ser menor ou igual a 20.




                               Prof. Adriano Teixeira de Souza
Fonte: DENIT




                         FORTALEZA




                                                                                  SÃO PAULO
                                                                       SALVADOR
                                        MANAUS




                                                         JANEIRO
                                                 PORTO


                                                         RIO DE
                                                 VELHO
                 BELÉM
BELÉM                     1611          5298      4397      3250       2100       2933
FORTALEZA        1611                   5763      4865      2805       1389       3127
MANAUS           5298     5763                     901      4374       5009       3971
PORTO VELHO      4397     4865           901                3473       4023       3070
RIO DE JANEIRO   3250     2805          4374      3473                 1649         429
SALVADOR         2100     1389          5009      4023      1649                  1962
SÃO PAULO        2933     3127          3971      3070       429       1962


                                     Prof. Adriano Teixeira de Souza
1.   Construir um algoritmo que leia a tabela anterior
     e informe ao usuário a distância entre duas
     cidades fornecidas por ele, até que ele forneça
     duas cidades iguais (origem e destino).

2.   Construir um algoritmo que permita ao usuário
     informar várias cidades, até inserir “xx”, e que
     imprima a distância total para cumprir todo o
     percurso especificado entre as cidades
     fornecidas.




                           Prof. Adriano Teixeira de Souza

Weitere ähnliche Inhalte

Was ist angesagt?

Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
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
 
Inserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaInserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaElaine Cecília Gatto
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesAdriano Teixeira de Souza
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)Marcello Thiry
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasDelacyr Ferreira
 

Was ist angesagt? (20)

Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
 
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)
 
Inserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaInserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista Encadeada
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Arrays em java
Arrays em javaArrays em java
Arrays em java
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 

Andere mochten auch

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
 
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
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
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 (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 - 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 (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 - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
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
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEverson Wolf
 
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3PeslPinguim
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7PeslPinguim
 

Andere mochten auch (20)

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
 
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...
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
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
 
JAVA - Matrizes
JAVA - MatrizesJAVA - Matrizes
JAVA - Matrizes
 
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 - 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 (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 - 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 - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
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
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programação
 
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3
 
Vetores e matrizes
Vetores e matrizesVetores e matrizes
Vetores e matrizes
 
JAVA - Vetores
JAVA - VetoresJAVA - Vetores
JAVA - Vetores
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
 
Apostila Java2D (correta)
Apostila Java2D (correta)Apostila Java2D (correta)
Apostila Java2D (correta)
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 

Ähnlich wie Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)

Ficha de trabalho 8
Ficha de trabalho 8Ficha de trabalho 8
Ficha de trabalho 8aldaalves
 
Mat numeros decimais parte ii
Mat numeros decimais parte iiMat numeros decimais parte ii
Mat numeros decimais parte iitrigono_metria
 
Estatística Descritiva - parte 2 (ISMT)
Estatística Descritiva - parte 2 (ISMT)Estatística Descritiva - parte 2 (ISMT)
Estatística Descritiva - parte 2 (ISMT)João Leal
 
Unidade ainda os números
Unidade  ainda os númerosUnidade  ainda os números
Unidade ainda os númerosaldaalves
 
Unidade ainda os números
Unidade  ainda os númerosUnidade  ainda os números
Unidade ainda os númerosaldaalves
 
Mat multiplos de um numero
Mat multiplos de um numeroMat multiplos de um numero
Mat multiplos de um numerotrigono_metria
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - MatrizesPacc UAB
 
Introdução ao MATLAB
Introdução ao MATLABIntrodução ao MATLAB
Introdução ao MATLABCaioTelefonica
 
3 - Vetores - Tratamento algébrico GA.pdf
3 - Vetores - Tratamento algébrico GA.pdf3 - Vetores - Tratamento algébrico GA.pdf
3 - Vetores - Tratamento algébrico GA.pdfIndiaAndreiaCostaSiq
 
Apresentacao mochila - parte 1
Apresentacao mochila - parte 1Apresentacao mochila - parte 1
Apresentacao mochila - parte 1Bianca Dantas
 

Ähnlich wie Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes) (15)

Ficha de trabalho 8
Ficha de trabalho 8Ficha de trabalho 8
Ficha de trabalho 8
 
Mat numeros decimais parte ii
Mat numeros decimais parte iiMat numeros decimais parte ii
Mat numeros decimais parte ii
 
Estatística Descritiva - parte 2 (ISMT)
Estatística Descritiva - parte 2 (ISMT)Estatística Descritiva - parte 2 (ISMT)
Estatística Descritiva - parte 2 (ISMT)
 
Unidade ainda os números
Unidade  ainda os númerosUnidade  ainda os números
Unidade ainda os números
 
Unidade ainda os números
Unidade  ainda os númerosUnidade  ainda os números
Unidade ainda os números
 
Tarefa 6 cálculo mental
Tarefa 6   cálculo mentalTarefa 6   cálculo mental
Tarefa 6 cálculo mental
 
Mat multiplos de um numero
Mat multiplos de um numeroMat multiplos de um numero
Mat multiplos de um numero
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Introdução ao MATLAB
Introdução ao MATLABIntrodução ao MATLAB
Introdução ao MATLAB
 
3 - Vetores - Tratamento algébrico GA.pdf
3 - Vetores - Tratamento algébrico GA.pdf3 - Vetores - Tratamento algébrico GA.pdf
3 - Vetores - Tratamento algébrico GA.pdf
 
E | Estatística
E | EstatísticaE | Estatística
E | Estatística
 
mtmbasica.pdf
mtmbasica.pdfmtmbasica.pdf
mtmbasica.pdf
 
Apresentacao mochila - parte 1
Apresentacao mochila - parte 1Apresentacao mochila - parte 1
Apresentacao mochila - parte 1
 
Matemática 2012 quarta manhã 22 08 12
Matemática  2012 quarta manhã  22 08 12Matemática  2012 quarta manhã  22 08 12
Matemática 2012 quarta manhã 22 08 12
 
Ft 02
Ft 02Ft 02
Ft 02
 

Mehr von 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
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
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 Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 

Mehr von Adriano Teixeira de Souza (17)

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
 
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 - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de Exceções
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
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 Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 

Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)

  • 1. Variáveis Compostas (Vetores e Matrizes) Prof. Adriano Teixeira de Souza
  • 2. São um conjunto de variáveis identificadas por um mesmo nome. ◦ Homogêneas (vetores e matrizes) ◦ Heterogêneas (Objetos) Prof. Adriano Teixeira de Souza
  • 3. Correspondem a posições da memória: ◦ identificadas por um único nome ◦ individualizadas por índices ◦ cujo conteúdo é de um mesmo tipo Notas: 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4 Posição: 0 1 2 3 4 5 6 7 8 9 Prof. Adriano Teixeira de Souza
  • 4. Posição do livro 0 1 2 … n-1 0 788 598 265 … 156 1 145 258 369 … 196 Prateleira 2 989 565 345 … 526 ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ m-1 845 153 564 892 210 Prof. Adriano Teixeira de Souza
  • 5. Utilizados para armazenar conjuntos de dados cujos elementos podem ser endereçados por um único índice.  Também são conhecidos como vetores. Prof. Adriano Teixeira de Souza
  • 6. Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser endereçados por mais de um índice.  Também são conhecidos como matrizes. Prof. Adriano Teixeira de Souza
  • 7. Arranjos de 2 dimensões 0 1 2 … n-1 0 788 598 265 … 156 1 145 258 369 … 196 2 989 565 345 … 526 ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ m-1 845 153 564 892 210 Prof. Adriano Teixeira de Souza
  • 8. Arranjo de 3 dimensões 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 0 1 2 3 Prof. Adriano Teixeira de Souza
  • 9. Arranjo de 4 dimensões 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 (0,0) (0,1) (0,2) (0,3) 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 (1,0) (1,1) (1,2) (1,3) Prof. Adriano Teixeira de Souza
  • 10. Como declarar:  Exemplos: <tipo> <nome> [][] = new <tipo> [<tamanho1>][<tamanho2>]; float VetReais[] = new float[100]; int Vetor[][] = new int[5][9]; char Nome_cliente[]= new char[50]; float cubo[][][] = new float[20][12][7]; Prof. Adriano Teixeira de Souza
  • 11. int VetInt[] = new int[n]; Índices: 0 1 2 3 4 5 ... n-1 VetInt ... Índice do primeiro elemento: zero Índice do último elemento: n–1 Quantidade de elementos: n Prof. Adriano Teixeira de Souza
  • 12. Índices fora dos limites podem causar uma exceção em tempo de execução.  java.lang.ArrayIndexOutOfBoundsException 0 1 2 3 4 5 2 9 8 X1 Vetor[6] X2 int X1; Vetor[1] = 9; int Vetor[]= new int[6]; Vetor[-1] =;//Error int X2; Vetor[6] =;//Error Prof. Adriano Teixeira de Souza
  • 13. O tamanho de um vetor ou matriz é pré- definido, ou seja, após a compilação, não pode ser mudado.  Portanto, vetores e matrizes são chamadas estruturas de dados estáticas, pois mantém o mesmo tamanho ao longo de toda a execução do programa. Prof. Adriano Teixeira de Souza
  • 14. Atribuir valores na declaração do vetor: int vetor[] = new int[]{1,2,3,4,5};  Atribuir valores na declaração da matriz: float matriz[][] = new float[][]{{1,2,3},{4,5,6}} Prof. Adriano Teixeira de Souza
  • 15. Colocar os números de 1 a 5 num vetor: for (int i=0; i<5; i++) Vetor[i] = i + 1;  Colocar os números de 5 a 1 num vetor: for (int i=0; i<5; i++) Vetor[i] = 5 - i; Prof. Adriano Teixeira de Souza
  • 16. Preencher uma matriz n m com zeros: for (int i=0; i < N; i++) for (int j=0; j < M; j++) Matriz[i][j] = 0; Prof. Adriano Teixeira de Souza
  • 17. Copiar dados de um vetor para outro: final int TAM_MAX = 10; double VetReais[] = new double[TAM_MAX], VetCopia[] = new double[TAM_MAX]; for (int i=0; i<TAM_MAX; i++) VetCopia[i] = VetReais[i];  Boa prática de programação: ◦ Definir o tamanho de vetores com constantes flexibiliza a manutenção do código. Prof. Adriano Teixeira de Souza
  • 18. Leitura dos dados de um vetor: for (int i=0; i<TAM_MAX; i++) { System.out.println("Digite um número: "); Vet[i] = leitor.nextFloat(); } Prof. Adriano Teixeira de Souza
  • 19. Determinar: 0 1 2 3 1. M[3][0] 0 1 2 3 4 2. M[4][2] 1 5 -5 3 0 3. M[1][3] 4. M[5][M[0][2]] 2 1 1 1 1 5. M[M[3][1]][1] 3 -3 2 0 0 6. M[4][(M[1][2]+M[3][0])] 4 0 0 1 1 1. -3 4. -2 5 -1 -1 -2 -2 2. 1 5. 1 3. 0 6. 0
  • 20. Ler um elemento K.  Ler um vetor A de N elementos.  Verificar se o elemento K está presente no vetor: ◦ Se estiver, imprimir a posição onde ele foi encontrado. ◦ Caso contrário, imprimir mensagem "elemento K não encontrado". Prof. Adriano Teixeira de Souza
  • 21. Ler N valores inteiros (N ≤ 100) até que seja digitado o valor zero.  A seguir, inverter o vetor, trocando o 1º elemento com o último, o 2º com o penúltimo, e assim sucessivamente.  Ao final, imprimir o vetor invertido. Prof. Adriano Teixeira de Souza
  • 22. Faça um programa que imprima uma matriz quadrada de dimensão N contendo: ◦ o número 1 nos elementos abaixo da diagonal principal ◦ o número 0 nos demais elementos  N deve ser menor ou igual a 20. Prof. Adriano Teixeira de Souza
  • 23. Fonte: DENIT FORTALEZA SÃO PAULO SALVADOR MANAUS JANEIRO PORTO RIO DE VELHO BELÉM BELÉM 1611 5298 4397 3250 2100 2933 FORTALEZA 1611 5763 4865 2805 1389 3127 MANAUS 5298 5763 901 4374 5009 3971 PORTO VELHO 4397 4865 901 3473 4023 3070 RIO DE JANEIRO 3250 2805 4374 3473 1649 429 SALVADOR 2100 1389 5009 4023 1649 1962 SÃO PAULO 2933 3127 3971 3070 429 1962 Prof. Adriano Teixeira de Souza
  • 24. 1. Construir um algoritmo que leia a tabela anterior e informe ao usuário a distância entre duas cidades fornecidas por ele, até que ele forneça duas cidades iguais (origem e destino). 2. Construir um algoritmo que permita ao usuário informar várias cidades, até inserir “xx”, e que imprima a distância total para cumprir todo o percurso especificado entre as cidades fornecidas. Prof. Adriano Teixeira de Souza