#Lógica #Aulas #Lógica

Matriz

Uma matriz é, essencialmente, uma coleção de dados organizada em linhas e colunas, sendo definida na lógica de programação como um vetor de vetores ou uma estrutura multidimensional. No Python, a forma mais comum de representar uma matriz é através de uma lista de listas.

Abaixo, detalho o passo a passo para manipular essa estrutura com exemplos práticos:

1. Declaração e Estrutura

Para criar uma matriz manualmente, você deve agrupar várias listas dentro de uma lista principal, utilizando colchetes. Cada lista interna representa uma linha da matriz.

Em contextos mais avançados e profissionais, utiliza-se a biblioteca NumPy (import numpy), que permite realizar operações complexas, como calcular o determinante de uma matriz gigantesca, com apenas uma linha de comando, de forma muito mais rápida.

2. Identificação das Dimensões

Para manipular uma matriz, é fundamental saber quantas linhas e colunas ela possui. No Python, utiliza-se a função len():

3. Acesso e Atribuição de Valores

O acesso aos elementos é feito através de índices (coordenadas) informados entre colchetes: o primeiro índice indica a linha e o segundo a coluna. Lembre-se que, em Python, a contagem sempre inicia no zero.

4. Percorrendo a Matriz (Iteração)

A forma mais eficaz de processar todos os elementos de uma matriz é utilizando laços de repetição aninhados (um for dentro de outro).

Se houver necessidade de ler a matriz por colunas em vez de linhas, basta inverter a ordem dos laços for no código.

5. Exemplo Prático: Jogo da Velha

Uma aplicação clássica de matrizes para iniciantes é o Jogo da Velha, onde o tabuleiro é uma matriz 3x3 de caracteres. Cada posição armazena um espaço vazio (" "), um "X" ou um "O". O programa manipula a matriz a cada jogada, solicitando ao usuário as posições horizontal (linha) e vertical (coluna) para atualizar o estado do tabuleiro.

O tabuleiro é uma matriz 3x3 de caracteres, onde cada posição armazena um espaço vazio (" "), um "X" ou um "O". O aluno deve criar uma função que peça as posições horizontal (linha) e vertical (coluna) para atualizar o estado da matriz a cada jogada.


Matriz X Dicionário

Com base nos materiais fornecidos, a comparação entre uma matriz e um dicionário foca principalmente na forma como os dados são organizados e acessados na memória do computador.

Abaixo estão as principais diferenças entre essas duas estruturas de dados:

1. Forma de Acesso e Identificação

2. Estrutura e Representação

3. Casos de Uso

Resumo Comparativo

Característica Matriz Dicionário
Identificador Índices numéricos (coordenadas) Chaves descritivas (rótulos)
Sintaxe Python Lista de listas [[]] Pares chave-valor {}
Natureza Rígida e tabular Flexível e associativa
Exemplo Prático Jogo da Velha ou Notas Escolares Cadastro de Clientes ou Perfil de Personagem

Embora sejam diferentes, as fontes mostram que é possível integrá-las em estruturas compostas, como criar uma lista de dicionários para gerenciar múltiplos registros de forma organizada e escalável.


Com base nos fundamentos de organização de dados e estruturas multidimensionais apresentados nas fontes, aqui está uma atividade prática passo a passo para alunos iniciantes, focada no conceito de matrizes.

Atividade Prática: Sistema de Gestão de Notas (Matriz)

Objetivo: Criar um programa que armazene as notas de vários alunos em uma estrutura de matriz (lista de listas) e utilize funções para calcular a média de cada estudante.

1. Entenda o Conceito de Matriz

Uma matriz é definida como um vetor de vetores ou um array multidimensional. No Python, ela é representada como uma lista de listas, onde cada lista interna representa uma "linha" (os dados de um aluno) e os elementos internos representam as "colunas" (as notas individuais).

2. Passo a Passo da Implementação

Passo A: Declare a Matriz Crie uma variável chamada boletim que contenha listas internas. Cada lista interna terá as notas de um aluno específico.

Passo B: Identifique as Dimensões Para manipular a matriz, o aluno deve saber como capturar seu tamanho:

Passo C: Crie a Função de Processamento Desenvolva uma função chamada processar_notas(matriz) que use laços de repetição aninhados (um for dentro de outro) para percorrer a estrutura.

  1. O primeiro laço percorre as linhas (cada aluno).
  2. O segundo laço percorre as colunas (cada nota daquele aluno) para somá-las.

Passo D: Acesse os Dados por Coordenadas Lembre os alunos que o acesso é feito por índices entre colchetes: matriz[linha][coluna]. O primeiro índice indica a linha e o segundo a coluna, sempre iniciando do zero.

3. Exemplo de Código Esperado (Python)

# Definindo a matriz: 3 alunos com 3 notas cada
boletim = [
    [8.0, 7.0, 9.0],  # Aluno 0
    [5.5, 6.0, 4.0],  # Aluno 1
    [10.0, 9.5, 8.5]  # Aluno 2
]

def calcular_medias(notas_alunos):
    linhas = len(notas_alunos)    # Quantidade de alunos
    colunas = len(notas_alunos) # Notas por aluno

    for i in range(linhas): # Percorre cada linha (aluno)
        soma_aluno = 0
        for j in range(colunas): # Percorre cada coluna (nota)
            soma_aluno += notas_alunos[i][j] # Acesso por coordenadas

        media = soma_aluno / colunas
        print(f"Média do Aluno {i}: {media:f}")

# Chamada da função no programa principal
print("--- RESULTADO DO SEMESTRE ---")
calcular_medias(boletim)

Por que usar essa abordagem?

Referências

Aulas de Logica - Dicionarios em Python - Formacao em Logica