Ir para conteúdo

Usando Tabelas [Básico]


Vodkart

Posts Recomendados

 

 

Um pouco mais:
Meu primeiro tutorial,aprendi tabelas com o grande amigo Oneshot,e estarei compartilhando esse conhecimento com vocês.
Oque vamos aprender no tutorial:
Como manipular tabelas
Como criar tabelas avançadas
Como pegar os dados de sua tabelas
Como estruturar uma tabela.



Introdução a Tabelas

Tabelas antes de mais nada são variáveis que podem armazenar vários valores,que também podem ser sub-tabelas,sejam elas indexes ou valores(strings ou números).
Logo,se elas são variáveis,para abrir uma tabela em um script como devemos começar? Como se declara um variável em um script?
Simples!declaramos a tabela assim:


local tabble = {}

Pergunta:
Mais poderia ser qualquer outra variável de vez de "tabble"?
Resposta:
Sim,poderia ser dado qualquer outro nome para sua variável exemplo:
local vodkart = {}
ou
local xtibia = {}
ou
local config = {}
ou
local x = {}
...
Não importa o nome da sua variável,apenas certifique-se que ela está lá.

-----------------------------------------------
Obs:
Lembre-se que tabelas sempre usam chaves, é como se fosse um "if" e um "end",abriu uma chave "{" você deve fecha-lá "}".
-----------------------------------------------


Manipulando e pegando valores dentro de Tabelas

já aprendemos como declarar uma tabela certo?,agora iremos colocar alguns valores dentro dela...Mas como fazer isso? OH MY GOD!
Vou escolher alguns números aleátorios e colocar dentro da nossa tabela:

local tabble = {150, 410, 25}

Pronto, nós já tem uma tabela! Viram como é easy?

Agora prestem atenção a explicação cambada de vagabundo!
Para pegar os valores de uma tabela é mais fácil ainda,conforme você vai adicionando o elemento dentro de uma tabela elas vão ganhando posições,por exemplo:


150 = 1° posição
410 = 2° posição
25 = 3° posição


Então como pegar esses valores na tabela?
Você deve primeiro usar o nome da sua tabela seguido de colhetes "[]",entre esses colchetes ficam o valor de posição do que você quer pegar,exemplo:

Vamos supor que queremos pegar o valor 150 em um script e a nossa tabela foi declarada assim:

local tabble = {150, 410, 25}

logo para pegar o valor 150 fariamos assim:

tabble[1]

Ou sejá:
tabble[1] retornaria 150
tabble[2] retornaria 410
tabble[3] retornaria 25

Tudo certo por aqui? espero que sim.


Criando tabelas avançadas:

Agora vamos estudar sub-tabelas e indexes,vou propor o seguinte problema:


 

Marco é um empregado que trabalha em um escritório de registros,e ele precisa fazer uma tabela com nome,idade e sexo das pessoas. Crie uma tabela para ajudar-lo,seguem as pessoas abaixo:

Bruno: idade 22, masculino
Thiago: idade 17, masculino
Marina: idade 16, feminino



Como prosseguir?

Primeiro de tudo vamos declarar nossa tabela:

local tabela = {}

Agora vamos criar os chamados indexes,quais os index que temos nesse problema?
nome,idade e sexo certo?

Então :

local tabela = {nome="", idade=, sexo=""}

Mais espera,como é uma tabela de múltiplas linhas devemos separar por vírgulas e abrir mais algumas chaves para surgir as sub-tabelas:

local tabela = {
{nome="", idade=, sexo=""},
{nome="", idade=, sexo=""},
{nome="", idade=, sexo=""}
}

-----------------------------------------------
Obs:
Porque Nome e sexo tem ""?
"" significa string,são usados para nome e palavras.
-----------------------------------------------



Peço que vocês preencham a tabela antes de abrir o spoiler para que vocês possam aprender,depois que vocês preencherem sua tabela abram o spoiler para ver se está tudo de acordo.


local tabela = {
{nome="Bruno", idade=22, sexo="Masculino"},
{nome="Thiago", idade=17, sexo="Masculino"},
{nome="Marina", idade=16, sexo="Feminino"}
}



Hmm e agora vamos para a parte complicadinha,vamos pegar os valores dentro da tabela,como fazer isso?
Nesse caso faríamos assim:

tabela[linha].index


-----------------------------------------------
Obs:
se a tabela tivesse só uma linha por exemplo:

local tabela = {idade=22, nome="Bruno", sexo="masculino"}

para pegar o nome você usaria tabela.index ou seja:

tabela.idade retornaria 22
tabela.nome retornaria "Bruno"
tabela.sexo retornaria "masculino"
-----------------------------------------------


Agora quando a tabela tem várias linhas é preciso consultar os valores assim:

tabela[linha].index


Pegando o nosso exemplo

local tabela = {
{nome="Bruno", idade=22, sexo="Masculino"},
{nome="Thiago", idade=17, sexo="Masculino"},
{nome="Marina", idade=16, sexo="Feminino"}
}

Se quiséssemos retornar o nome da linha 2 como faríamos?

tabela[2].index

ou seja

tabela[2].nome retornaria "Thiago"
tabela[2].idade retornaria 17

tabela[1].idade retornaria 22
tabela[1].sexo retornaria "Masculino"

tabela[3].nome retornaria "Marina"

é isso pessoal,espero que vocês tenham aprendido a criar e retirar valores de suas tabelas!

Exercícios:

Vou deixar alguns exercícios para vocês:

 

1. Crie uma tabela com 5 nomes de amigos do XTibia,não precisar conter index.

2. Crie uma tabela que contenha 5 linhas(subtabelas),com nome, idade, sexo de pessoas aleatórias.

3. Usando o exercicio 2, o que irá retornar:
a) tabela[1].idade
b) tabela[3].sexo
c) tabela[2].idade
d) tabela[4].nome
e) tabela[2].nome
f) tabela[1].sexo


Favor colocar os exercicios em Spoiler,estarei vendo e auxiliando os membros do tópico que se interresarem em aprender. Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

Erro:

 

local tabela = {

{nome="Bruno", idade=22, sexo="Masculino"},

{nome="Thiago", idade=17, sexo="Masculino"},

{nome="Marina", idade=16, sexo="Feminino"}

}

 

tabela[1][1] nao retorna Bruno, somente tabela[1].nome retorna bruno ou tabela[1]["nome"]

 

Tirando isso ta bom o tutorial

Editado por MatheusMkalo
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Esqueceu de falar que tabelas e nem váriaveis podem ter " "(espaço) no nome, e nenhum outro carácter além de números, letras e _(underline),

e esqueceu de dizer que podemos decclarar indexes de tabelas como tipo:

config ={

["Assassin"] = {life = 500, xp = 250},

["Dragon"] = {life = 1200, xp = 700},

["Demon"] = {life = 10000, xp = 4000},

}

 

e para chamar:

config[nomedoindex]

exemplo:

config["Demon"].life

retornará:

10000

config["Dragon"].xp

retornará

700

 

Abraços,

Maxwell Denisson

Link para o comentário
Compartilhar em outros sites

 

Exercícios, Favor Revisar:

 

1- Não irei fazer, não estou afim, kkk...

 

2-

local table = {

{nome="Noob1", sexo="M", Idade=1}

{nome="Noob2", sexo="F", Idade=2}

{nome="Noob3", sexo="M", Idade=3}

{nome="Noob4", sexo="F", Idade=4}

{nome="Noob5", sexo="M", Idade=5}

}

 

3-

a) tabela[1][2]= M

b) tabela[3][3]= 3

c) tabela[4][1]= Noob4

d) tabela[5][1]= Noob5

e) tabela[3].sexo= M

f) tabela[2].idade= 2

g) tabela[1]nome= Noob1

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

vodkart só pra melhorar a explicação do seu tutorial.

tabelas não são variáveis são simplesmente tabelas.

as variáveis são os nome atribuido a elas.

 

você poderia explicar também sobre chaves de index nominais e atribuidos.

Link para o comentário
Compartilhar em outros sites

Concordo com o @MatheusMkalo

table[1][1] retorna nada

 

1. Crie uma tabela com 5 nomes de amigos do XTibia,não precisar conter index.

local t={{nome="João"}, {nome="Bruna"}, {nome="Pedro"}, {nome="Ana"}, {nome="Carlos"}}

2. Crie uma tabela que contenha 5 linhas(subtabelas),com nome, idade, sexo de pessoas aleatórias.

local t={

{nome="João", idade=15, sexo="M"},

{nome="Pedro", idade=14, sexo="M"},

{nome="Bruna", idade=17, sexo="F"},

{nome="Alex", idade=18, sexo="M"},

{nome="Carlos", idade=15, sexo="M"}}

3. Usando o exercicio 2, o que irá retornar:

a) tabela[1][2] nil

b) tabela[3][3] nil

c) tabela[4][1] nil

d) tabela[5][1] nil

e) tabela[3].sexo F

f) tabela[2].idade 14

g) tabela[1]nome João

 

Editado por TheQuestion
Link para o comentário
Compartilhar em outros sites

ok,é porque me ensinaram assim achei que funcionava,embora eu prefira chamar por index.

 

@UP

 

 

 

só era nomes de amigos

não precisava de informações

ficaria assim:

local t = {"João","Bruna","Pedro","Ana","carlos"}

 

 

 

@Marcryzius

 

Obrigado pela informação,estarei editando o tópico

abraços

 

@Romera

 

Muito bom rapaz,você jpa sabe manipular uma tabela :D

 

@All

 

obrigado pessoal,é bom ver que vocês tenham entendido um pouco mais sobre tabelas =]

se tiverem alguma dúvida só postar

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...