Usando Tabelas [Básico]

Vodkart
em Tutoriais de Scripting

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

 

 

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.

bossisg.png

Saymon14

.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 05/05/10Posts: 544

melhor colaborador de scripting do forum, parabens mano, belo topico

Eu Recomendo

 

Não entro em equipes, já tenho meu projeto, não insista.

 

 

 

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Concordo com o saymon, ótimo tutorial, muito obrigado pela contribuição. Até um cavalo entenderia, não sei o karis valeu cara.

Oie :D

fsg

Felipe Sartori
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 16/05/10Posts: 1510Char no Tibia: Alia Dori

Excelente conteúdo Vodkart, não entendo de scripts mas para quem quer aprender será um "prato cheio". Obrigado por ajudar o XTibia!

Guarani da minha vida, a razão do meu viver, se ele jogasse lá no céu eu morreria só pra te ver! 1911 - 2015 ♥ 

Joinu

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 04/08/08Posts: 213

Isso não se chama matrix ?

walefxavier

Sonhei que tava acordado, quando acordei tava dormindo.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/05/09Posts: 91Char no Tibia: Dewolive

MatheusGlad

<~~> Scripter <~~>
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/09/09Posts: 528Char no Tibia: Emekalo Makalo

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

Yours Mkalo :)

BryanModesto

leite dança, dança
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/03/11Posts: 24Char no Tibia: Vigilante Rodoviario

Muito show gostei, espero que ajude a galera :*

Atenciosamente,

Bryan Modesto Sampaio

 

tumblr_lil0onSnB81qc7xc4o1_250.gif

 

[Denuncias/Reports] - Area de Scripting

MaXwEllDeN

string.reverse("adiV a arohaD")
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 18/10/10Posts: 246Char no Tibia: Elite Pamcadaum

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

eq9qh0.png

romera

Programador
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/10Posts: 66

 

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

 

 

Tópicos antigos:

- You see yourself. You are .
-> Eliminando Erro de Vocations

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

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.

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

Lordfire

TFS Maintainer
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 04/10/06Posts: 2605Gênero: MasculinoChar no Tibia: Knight Orion

Isso não se chama vetor ou matriz? Tabela que eu saiba é a representação visual de uma matriz.

Tutorial manero, ficou muito bem explicado.

thequestion

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/09/10Posts: 23

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

 

damarium2.png

740860.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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

bossisg.png

romera

Programador
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/10Posts: 66

Valeu por corrigir, bom tuto..

 

Flws

Tópicos antigos:

- You see yourself. You are .
-> Eliminando Erro de Vocations