🚀 Biblioteca: Tabela

Funções para organizar e manipular suas listas!

🚀

Criando tabelas

-- Criar tabela com tamanho pré-alocado
local lista = tabela.crie(10)  -- Cria tabela para 10 elementos sequenciais
local mapa = tabela.crie(0, 5)   -- Cria tabela para 5 pares chave-valor

Adicionando itens

local lista = {"A", "B"}

-- Adiciona no final
tabela.insira(lista, "C")
-- Agora: {"A", "B", "C"}

-- Adiciona numa posição específica (no meio!)
tabela.insira(lista, 2, "X")
-- Agora: {"A", "X", "B", "C"}

Removendo itens

local numeros = {10, 20, 30, 40}

-- Remove o último
local removido = tabela.remova(numeros)
exiba(removido)   -- Mostra: 40

-- Remove da posição 1
tabela.remova(numeros, 1)
-- Agora: {20, 30}

Ordenando

Coloca tudo em ordem!

local notas = {7, 3, 9, 1, 5}

tabela.ordene(notas)
-- Agora: {1, 3, 5, 7, 9}

para i, nota em obtenha_pares_indexados(notas) faça
    exiba(nota)
fim

Juntando textos

Transforma uma lista em uma única frase:

local palavras = {"Sol", "é", "legal"}

-- Junta com espaço
local frase = tabela.concatene(palavras, " ")
exiba(frase)   -- Mostra: Sol é legal

-- Junta com vírgula
local frutas = {"Maçã", "Banana", "Uva"}
exiba(tabela.concatene(frutas, ", "))
-- Mostra: Maçã, Banana, Uva

Movendo elementos

local origem = {1, 2, 3, 4, 5}
local destino = {}

-- Move elementos 2 a 4 para o destino na posição 1
tabela.mova(origem, 2, 4, 1, destino)
-- destino agora: {2, 3, 4}

-- Mover dentro da mesma tabela
local lista = {"a", "b", "c", "d"}
tabela.mova(lista, 1, 2, 3)
-- lista agora: {"c", "a", "b", "d"}

Empacotamento e desempacotamento

-- Empacotar valores em uma tabela
local pacote = tabela.empacote(10, 20, 30)
-- pacote = {10, 20, 30, n = 3}
exiba(pacote.n)  -- 3 (número de elementos)

-- Desempacotar tabela em valores individuais
local valores = {5, 10, 15}
exiba(tabela.desempacote(valores))  -- 5, 10, 15

-- Desempacotar intervalo específico
exiba(tabela.desempacote(valores, 2, 3))  -- 10, 15

Encontrando coisas

local cores = {"Vermelho", "Verde", "Azul"}

função tem_na_lista(lista, item)
    para i, valor em obtenha_pares_indexados(lista) faça
        se valor == item então
            retorne verdadeiro
        fim
    fim
    retorne falso
fim

se tem_na_lista(cores, "Verde") então
    exiba("Tem verde! ?")
fim

Exemplo: Fila de atendimento

local fila = {}

-- Pessoas chegando
tabela.insira(fila, "Maria")
tabela.insira(fila, "João")
tabela.insira(fila, "Ana")

-- Atendendo (tira o primeiro)
local atendido = tabela.remova(fila, 1)
exiba("Atendendo: " .. atendido)   -- Maria

local atendido = tabela.remova(fila, 1)
exiba("Atendendo: " .. atendido)   -- João
Com a biblioteca de tabela, você pode criar listas, filas, pilhas e muito mais!
```