2º Trimestre

1º ano

LP1

Tema: Vetores, Matrizes e Pesquisa

Em Java, as estruturas de dados homogêneas são usadas para armazenar vários elementos do mesmo tipo. Elas são comumente implementadas usando arrays, que podem ser unidimensionais (vetores) ou bidimensionais (matrizes).

Variáveis Compostas Unidimensionais (Vetores)

Um vetor é uma lista linear de elementos, todos do mesmo tipo, acessados por um índice.

Declaração e Inicialização


// Declaração de um vetor de inteiros
int[] vetor;
// Alocação de memória para 5 elementos
vetor = new int[5];
// Inicialização
vetor[0] = 10;
vetor[1] = 20;
vetor[2] = 30;
vetor[3] = 40;
vetor[4] = 50;
// Declaração e inicialização em uma linha
int[] vetor2 = {1, 2, 3, 4, 5};
        

Acessando Elementos


System.out.println(vetor[0]); // Saída: 10
        

Iterando Sobre um Vetor


for (int i = 0; i < vetor.length; i++) {
    System.out.println(vetor[i]);
}
// Usando um loop for-each
for (int valor : vetor) {
    System.out.println(valor);
}
        

Variáveis Compostas Bidimensionais (Matrizes)

Uma matriz é um array de arrays, com elementos organizados em linhas e colunas.

Declaração e Inicialização


// Declaração de uma matriz 3x3
int[][] matriz;
// Alocação de memória
matriz = new int[3][3];
// Inicialização
matriz[0][0] = 1;
matriz[0][1] = 2;
matriz[0][2] = 3;
matriz[1][0] = 4;
matriz[1][1] = 5;
matriz[1][2] = 6;
matriz[2][0] = 7;
matriz[2][1] = 8;
matriz[2][2] = 9;
// Declaração e inicialização em uma linha
int[][] matriz2 = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
        

Acessando Elementos


System.out.println(matriz[1][2]); // Saída: 6
        

Iterando Sobre uma Matriz


for (int i = 0; i < matriz.length; i++) {
    for (int j = 0; j < matriz[i].length; j++) {
        System.out.print(matriz[i][j] + " ");
    }
    System.out.println();
}
        

Método de Pesquisa Sequencial

A pesquisa sequencial percorre cada elemento de um array para verificar se ele é igual ao valor desejado. É uma abordagem simples e útil para arrays desordenados.

Implementação em Vetor


public class PesquisaSequencial {
    public static int buscaSequencial(int[] array, int valor) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == valor) {
                return i; // Retorna o índice do elemento encontrado
            }
        }
        return -1; // Retorna -1 se o elemento não for encontrado
    }

    public static void main(String[] args) {
        int[] vetor = {10, 20, 30, 40, 50};
        int valorProcurado = 30;
        int resultado = buscaSequencial(vetor, valorProcurado);

        if (resultado != -1) {
            System.out.println("Valor encontrado no índice: " + resultado);
        } else {
            System.out.println("Valor não encontrado.");
        }
    }
}
        

Implementação em Matriz


public class PesquisaEmMatriz {
    public static int[] buscaSequencial(int[][] matriz, int valor) {
        for (int i = 0; i < matriz.length; i++) {
            for (int j = 0; j < matriz[i].length; j++) {
                if (matriz[i][j] == valor) {
                    return new int[]{i, j}; // Retorna as coordenadas do valor encontrado
                }
            }
        }
        return null; // Retorna null se o valor não for encontrado
    }

    public static void main(String[] args) {
        int[][] matriz = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        int valorProcurado = 5;
        int[] resultado = buscaSequencial(matriz, valorProcurado);

        if (resultado != null) {
            System.out.println("Valor encontrado na posição: [" + resultado[0] + "][" + resultado[1] + "]");
        } else {
            System.out.println("Valor não encontrado.");
        }
    }
}