Variбvel, Array e Enumerador (By Artista) -
F1N4L - 28.06.2016
Encontrei um tуpico relacionado a esse tema e ficou meio аs escondidas em um tуpico apenas para sanar a dъvida de um usuбrio, mas com certeza vai sanar a dъvida de mais alguns, apesar de simples.
O que й uma variбvel e uma array?
Uma variбvel й uma posiзгo da memуria que armazenarб algum valor. Quando vocк declara alguma variбvel no seu script, vocк estб ocupando um espaзo na memуria, por isso й importante nгo criar variбveis desnecessбrias, para evitar o desperdнcio de memуria. Contudo quando vocк cria alguma variбvel de forma local esta serб destruнda apуs chegar no final das chaves.
Se uma variбvel й uma posiзгo da memуria, entгo o que й uma array? Falando de forma resumida, uma array й simplesmente um conjunto de posiзхes de memуria! Ou seja, quando vocк declara no seu script new arr[5]; vocк estб declarando uma array com 5 posiзхes (0, 1, 2, 3, 4).
Pra ficar mais claro ainda, basta vocк pensar nas arrays como uma lata de sardinha
Enumeradores e defines
Um enumerador й uma forma de organizar os seus cуdigos, tipo uma lista numйrica, porйm com nomes no lugar de nъmeros.
No exemplo abaixo eu numerei os dias da semana, tendo domingo como o primeiro dia (valor 0) e sбbado como sйtimo (valor 6).
PHP код:
enum DIAS
{
DOMINGO // 0
SEGUNDA, // 1
TERCA, // 2
QUARTA, // 3
QUINTA, // 4
SEXTA, // 5
SABADO // 6
}
Portanto se vocк fizer...
printf("%d", QUINTA);
... irб imprimir 4 no console!
Ok, agora sabemos que os enumeradores servem para enumerar itens, entгo pra que servem as defines?
As defines (macros) trata-se de uma diretiva capaz de definir um termo em algum valor. Diferente dos enumeradores, as defines tem um uso muito mais amplo do que simplesmente enumerar itens, й possнvel atй mesmo criar funзхes com macros! Mas como o objetivo da minha resposta й explicar um pouco sobre os recursos que vocк perguntou, nгo vou chegar a fundo nesse assunto.
Uma define que vocк certamente deve conhecer й a MAX_PLAYERS, que estб definida por padrгo com o valor 500.
Portanto quando vocк declara new arr[MAX_PLAYERS]; vocк estб criando uma array com 500 posiзхes!
NOTA: MAX_PLAYERS й uma definiзгo, nгo array!
Colocando em prбtica
Quando vocк faz:
Код:
new Usuario[MAX_PLAYERS][Enum];
Vocк estб criando uma array multidimensional com 500 posiзхes e cada posiзгo abriga x posiзхes! Й como se fosse uma array de arrays, porйm organizada
Ex:
de forma ilustrada й o mesmo que:
Код:
|0|1|2|3|4|5|
|0|1|2|3|4|5|
|0|1|2|3|4|5|
|0|1|2|3|4|5|
Ou seja, 4 linhas (posiзхes) e 6 colunas (posiзхes)
e de forma organizada e de fбcil manuseio й o mesmo que:
PHP код:
enum COLUNAS
{
coluna_zero,
coluna_um
coluna_dois,
coluna_tres
coluna_quatro,
coluna_cinco
}
new arr2d[4][COLUNAS];
Totais crйditos ao
Artista
Alguns tуpicos relacionados:
Array Single e Multi-Dimensional (
Inglкs)
Variбveis (
Portuguкs)
Enumeradores (
Inglкs)
Re: Variбvel, Array e Enumerador (By Artista) -
teteu99 - 01.07.2016
Уtimo rsrs, Muito boom para quem ta querendo aprender mais sobre a linguagem pawn rs.
Respuesta: Variбvel, Array e Enumerador (By Artista) -
OverKiller - 07.07.2016
Quote:
Cуdigo PHP:
enum DIAS
{
DOMINGO // 0
SEGUNDA, // 1
TERCA, // 2
QUARTA, // 3
QUINTA, // 4
SEXTA, // 5
SABADO // 6
}
Portanto se vocк fizer...
printf("%d", QUINTA);
... irб imprimir 4 no console!
|
Oxente a variбvel vai ter valor quatro quando for usar ela? Tipo: if (playerinfo [playerid][quinta] == 1);
Pois como dito por vc o cara ja teria valor 4 e nгo 0(valo padrгo quando anuncia-se uma variбvel)
Re: Respuesta: Variбvel, Array e Enumerador (By Artista) -
F1N4L - 07.07.2016
Quote:
Originally Posted by OverKiller
Oxente a variбvel vai ter valor quatro quando for usar ela? Tipo: if (playerinfo [playerid][quinta] == 1);
Pois como dito por vc o cara ja teria valor 4 e nгo 0(valo padrгo quando anuncia-se uma variбvel)
|
Estamos falando de enumeradores, enumerador trabalha com constantes do tipo inteiro e podem ser nomeados.
Quando criamos um enumerador e nгo definimos nenhum valor inicial, automaticamente serб acrescentado +1 partindo do valor da constante anterior, formando assim uma ordem numйrica. (um "auto increment")
Supondo que eu
nгo utilize um valor inicial:
Seria, basicamente:
Estamos criando constantes do tipo inteiro, porйm nomeadas. Algo parecido com macros:
Код:
#define a 0
#define b 1
#define c 2
Supondo que eu
utilize um valor inicial:
Код:
enum
{
a = 2,
b,
c
}
Seria, basicamente:
Assim como variбveis possuem um valor padrгo, enumeradores tambйm. Por estб razгo nуs zeramos os mesmos e posteriormente atribuнmos um valor para cada variбvel/constante.