Ir para conteúdo
Entre para seguir isso  
Forger

[N:Médio] [Aula] Introdução às tabelas

Recommended Posts

Forger    2
Forger

Olá.

Estarei começando uma seqüência de tutorias sobre programação em Lua.

 

Hoje, estaremos vendo os conceitos sobre tabelas (arrays). Estas são muito usadas em configuração, distribuição de dados, organização, redução de linhas, etc.

Ou seja, ela é muito útil em várias coisas.

Esse conceito é bem fácil de ser compreendido, e estarei falando apenas sobre o basicão de tabelas.

 

Conceitos que são necessários para a aula:

[b]conjunto[/b] - agrupamento de caracteres, algarismos, tabelas, valores.
[b]mínimo de conhecimento em conjuntos[/b]

 

 

1 - Tabelas

1.1 - Conceitos

1.2 - Representação, exemplos reais, observações importantes e algumas formas de representar valores cujo índice é dado

 

 

1.1 - Conceitos

 

O que são tabelas? Essa é a questão.

 

Ora, tabelas são como conjuntos, seus elementos são agrupados de acordo com seus dados, atributos, propriedades, qualquer coisa que tenha a ver com outra pode ser colocado dentro de uma.

Não é só em matemática e ciências exatas que elas são usadas, em programação, elas também o são.

Aqui, elas são mais chamadas de arrays.

 

1.2 - Representação, exemplos reais, observações importantes e algumas formas de representar valores cujo índice é dado

 

Mas, como represento uma tabela (array)?

Simples.

 

local tabela = {elementos aqui dentro}

 

Repararam? Declaro a variável local tabela com chaves, pois representa um conjunto.

Importante: Nunca se esqueça de declarar uma variável (como tabela, no caso) como local.

Vamos representar o conjunto dos números naturais, algo bem fácil.

 

local tabela = {0, 1, 2, 3, ...}

Entre os elementos, colocamos vírgulas, para representar que o elemento daquele índice (veremos isso mais tarde) acabou de ser representado.

Sim, não temos que escrever todos os elementos! Podemos colocar as reticências. ;)

 

Agora, representar os números naturais de 1 a 10:

local tabela = {1, 2, 3, ..., 10}

Podemos colocar também reticências entre números. :D

 

Vejamos agora um exemplo mais comum ainda de tabelas (arrays):

Quero representar o conjunto dos meus amigos:

local tabela = {'Fulano', 'Cicrano', 'Fulaninho', 'Cicraninho', 'Cicraninho Jr', 'Fulaninho Jr'}

Como devem ter reparado, em tabelas, podemos representar também palavaras, letras, qualquer caracter.

Para representá-los, os colocamos entre apóstrofes(' ') ou aspas(" ").

 

Agora vou representar meus amigos de uma outra forma, mais complicada:

local tabela = {  {name='Fulano', age=25}, {name='Cicrano', age = 20}, ...}

 

Eu representei os meus amigos da forma key-value(será estudado em outro tutorial).

Para representar os amigos desta forma, no caso, temos que criar um outro conjunto dentro de tabela, e colocar 'key=value', no caso, 'name= XXX'.

 

Importante: E agora? Como iria representar dessa forma no 4º exemplo, o nome do meu 2º amigo?

local tabela = {  {name='Fulano', age=25}, {name='Cicrano', age = 20}, ...}
local pos = [b]tabela[2].name[/b] ---ou simplesmente [b]table[2]['name'][/b]

Entenderam? Já que queremos o nome do 2º amigo colocamos tabela[2], e já que queremos o nome dele, colocamos o índice cujo valor-chave (no caso, 'name'), colocamos '.name' ou '['name']'.

Com isso, entendemos que: primeiramente, representamos o índice da array principal, para depois representarmos os respectivos índices-chave, ou de tabelas dentro de tabelas. ;)

 

Sabendo disso que acabei de lhes ensinar, agora quero descobrir qual o valor cujo índice é 2:

Para isso, as arrays possuem um recurso bom útil e interessante:

local tabela = {0, 1, 2, 3, ...}
local number = tabela[2]

 

Isso retornaria : 1, já que o algarismo 1 está na 2ª posição da tabela.

 

Podemos também fazer o seguinte:

local a = 1
local tabela = {0, 1, 2}
local number = tabela[a]

Ou seja, number iria retornar 1, já que 'a' corresponde a 1.

 

Para inserir indiretamente o valor em uma tabela, fazemos o seguinte:

local tabela = {0, 1}
tabela[3] = 2

Com isso, representamos que o valor cujo índice é 3, é o algarismo 2. Como esse índice ainda não estava na tabela, cria-se um novo valor dentro da mesma.

 

Nos meus próximos tutoriais, irei ensinar outras formas de lidar com tabelas, em diversas situações. :)

 

Essas foram apenas algumas noções básicas, aprofundaremos bastante. O:

É isso, espero que tenham gostado, acho que foi de fácil compreensão. :)

 

Até a próxima aula.

Compartilhar este post


Link para o post
Dark    3
Dark

Já temos tutoriais sobre arrays, mas o seu esta bem explicado e formatado.

 

Aprovado

 

Movido

(Scripting Tutoriais)

Compartilhar este post


Link para o post
Raphael Carnaúba    1
Raphael Carnaúba

Muito bom Forger!

Acho que a sociedade OTNET estava precisando de um bom professor de Lua, pois os demasiados são péssimos.

 

Abraços e boa sorte!

Compartilhar este post


Link para o post
Fadi    0
Fadi

*Forger:

Apesar de já existir um tutorial sobre arrays no fórum, o seu está MUITO bem explicado. Faltam algumas coisas relacionadas a tabelas, que vc não colocou, mas isso vc pode acrescentar dpois. Parabéns!

 

*Raphael:

"os demasiados" não pode dar idéia de "os outros" ou de "os demais", pois seu verdadeiro significado é "excessivo", "acima do necessário". Apesar de ser semelhante ao significado de "demais", não pode ser empregado nas mesmas expressões. Isso é apenas uma sugestão pra vc, para q não se engane novamente em outros tópicos ou fórums e acabe sendo, na linguagem vulgar, "zoado" por outros usuários. Tão logo vc corrija seu post, apagarei esse comentário, a intenção não é ridicularização, e sim aprendizado.

 

ps: Forger, acrescente funções como table.sort, table.maxn, table.concat, etc. Seria um bom complemento ao seu tutorial.

 

~no more

Compartilhar este post


Link para o post
Forger    2
Forger

@Fadi

Isso será o tema do meu próximo tutorial. De qualquer forma, obrigado pelo elogio.

 

@Raphael Carnaúba

Que bom que me acha bom professor. :)

 

Até o próximo tutorial.

Compartilhar este post


Link para o post
Nord    2
Nord

Ae Forger, eu tava querendo aprender sobre tabelas e tive uma boa noção já, consegui fazer alguns scripts já através disso. Motivação hehe.

 

Um bom script para aprender sobre tabelas é o food.lua system.

Compartilhar este post


Link para o post
Elys Zarox    0
Elys Zarox

bem legal tutorias de aula e ainda bem explicado

Compartilhar este post


Link para o post
Undead Slayer    0
Undead Slayer

Mto bom essa explicações sobre tabelas, eu raramente uso tabelas, eu prefiro antes de começar o sistema eu colocar:

 

local name_1 = Futraninho
local futraninho_ano = 25

local name_2 = Putinho
local putinho_ano = 23

 

Mas adorei o seu tutorial, VLW

Compartilhar este post


Link para o post
PoSo    0
PoSo

Desculpe 'reviver' o tópico, mas estava pesquisando sobre oque voces chama de tabelas, reparei que em lua, a primeira posição da mesma é 1, de acordo com esse exemplo:

Para isso, as arrays possuem um recurso bom útil e interessante:

local tabela = {0, 1, 2, 3, ...}
local number = tabela[2]

Isso retornaria : 1, já que o algarismo 1 está na 2ª posição da tabela.

Porém essa parte nos traz a ideia de que a primeira posição é 0:

Podemos também fazer o seguinte:

local a = 1
local tabela = {0, 1, 2}
local number = tabela[a]

Ou seja, number iria retornar 1, já que 'a' corresponde a 1.

e agora, a primeira posição é 0 ou 1?

Mais uma vez, estou 'revivendo' este tópico com a intenção de que mais ninguém além de mim tenha a mesma dúvida, e que a mesma seja esclarecida.

Grato,

Abraços.

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

uia Oo

nunk tinha visto esse tuto no forum =P

ta muito bem explicado mesmo

porem eu já aprendi tudo que tá ai no tuto do dark..

mais de qlqer modo..

foi lançado a parte 2 (ou ate mais) dessa aula?

me interessei..

pois comecei a usar tabelas.. e são bem praticas =P

 

flws~~

Compartilhar este post


Link para o post
Laweit    0
Laweit
Podemos também fazer o seguinte:

local a = 1
local tabela = {0, 1, 2}
local number = tabela[a]

Ou seja, number iria retornar 1, já que 'a' corresponde a 1.

Amigo, tem um erro ai!

Isso só daria 1 se o código fosse assim:

local a = 1
local tabela = {1, 0, 2}
local number = tabela[a]

Nesse caso a variável number está verificando se no 1º lugar da tabela for o seu valor ela seria igual a 1.

 

Eu dei uma testada nesse site:

http://www.lua.org/cgi-bin/demo

Eu só modifiquei um pouco o código para mostrar o resultado. Ficou assim:

local a = 1
local tabela = {0, 1, 2}
local number = tabela[a]
if number == 1 then
print("ok")
else
print("erro")
end

 

Se eu tiver errado, por favor, me expliquem onde eu errei!

Fui!

Compartilhar este post


Link para o post
Eventide    7
Eventide

@motoboy

foi sim, revive um pouco mais no fórum que se acha...

 

@poso

a primeira parte é 1

Compartilhar este post


Link para o post
PoSo    0
PoSo

A primeira posição, você diz?

É, então a primeira posição do array em Lua é 1, é que varia de linguagem à linguagem..

Em Php, por exemplo, é 0.

Abraços.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×