[Tutorial] Variбveis - Definiзгo, uso e tipos.
#1

Bem, neste tutorial irei explicar passo a passo como criar uma variбvel e como elas podem ser ъteis .


Considero este um tema muito importante na linguagem Pawn, por isso, leiam com atenзгo:





1 - O que sгo variбveis ?





Variбveis sгo sнmbolos criados para assumir algum valor, elas podem variar (daн o nome variбvel) dependendo de onde e de como estamos usando-as .



Em uma questгo de Matemбtica por exemplo, se ela diz que X = 2, entгo sabemos que quando o X aparecer em algum lugar da conta que fizermos, poderemos substituн-lo por 2.



Essa questгo de Matemбtica, como voce resolveria se a questгo dissesse que Y = 10 e voce tivesse que achar o valor de X ?


Код:
X = 3 + Y
E aн ? Quanto valeria o X ?


Resposta: X valeria 13, pois:


Код:
X = 3 + Y
Й igual б:


Код:
X = 3 + 10
que й igual б:


Код:
X = 13

Nгo entendeu ? Leia de novo .






2 - Variбveis na linguagem Pawn:




No Pawn, as variбveis sгo usadas em quase tudo .


Como exemplo, vamos restringir um comando chamado /pum, sу usando vбriavйis :



- Primeiro criamos uma variбvel:

pawn Код:
new Futebol;//Ao criarmos a variбvel, ela automaticamente ganha o valor 0.

- Agora vamos fazer com que ela ganhe um valor (4, por exemplo), ao usar qualquer comando (no caso, o comando /ei):


pawn Код:
if(strcmp("/ei",cmdtext,true,3)==0)
    {
        Futebol = 4;//Ao usar o comando /ei, a variбvel ganha valor igual б 4
        return 1;
    }

E finalmente, o comando /pum que querнamos restringir:


pawn Код:
if(strcmp("/pum",cmdtext,true,4)==0)
    {
        if(Futebol == 4)//Isso checarб se a variбvel "Futebol" й igual б 4, sу se for igual б 4, acontecerб o que tem dentro das chaves do if, ou seja, o print("PUMMM!");
        {
            print("PUMMM!");
        }
        return 1;
    }

Agora vamos pensar..., a linha if(Futebol == 4) checou se variбvel й igual б 4 certo ?


Mas, tem um porйm aн, A VARIБVEL SУ SERБ 4 SE O CARA TIVER USADO O COMANDO /ei ANTES, POIS ELA SУ VIRA 4 QUANDO ESSE COMANDO Й USADO, LEMBRA ?



Viu ? , agora o comando /pum sу pode ser ativado se o comando /ei for usado antes, em outras palavras, ele estб restrito agora .






3 - Tipos de variбveis I (Locais e Globais) :





* Variбveis Locais.



Uma variбvel local sу pode ser usada em um ъnico lugar, por exemplo:



pawn Код:
if(strcmp("/afff",cmdtext,true,5)==0)
    {
        new TENSO; //A variбvel TENSO foi criada dentro do comando /afff
        return 1;
    }//A variбvel TENSO й destruнda quando esta chave й lida apуs o processamento do comando.


Se a variбvel foi criada dentro do comando /afff e destruнda quando a chave foi lida, entгo nem podemos pensar em usar a TENSO em outro comando, pois ela sу й criada dentro do comando /afff e destruнda no final dele.



Por isso chamados esse tipo de variбvel de Variбvel Local, pois sу podemos usб-la em um local do GM/FS (no caso acima, sу poderнamos usar a variбvel dentro do comando, e antes do final dele ).




* Variбveis Globais.


As globais normalmente sгo criadas no Topo do GM ou FS, um lugar que й livre de chaves que possam destruir essas variбveis.


Se criamos uma variбvel no Topo do GM, por exemplo:


pawn Код:
new PQP;

Como ela estб no topo do GM e nгo foi destruнda por nenhuma chave, entгo podemos usa-lб em qualquer lugar do GM/FS que seja, sem precisar criб-la de novo pois ela jб existe no Topo do GM.


Se й assim, poderнamos usб-la em um comando:


pawn Код:
if(strcmp("/xiu",cmdtext,true,4)==0)
    {
        PQP = 3; //A variбvel jб foi criada no Topo do GM, por isso vamos igualб-la aqui no comando.
        return 1;
    }

Obs: Variбveis Globais nгo podem ser destruнdas por chaves de nenhuma public, comando etc.






4 - Tipos de variбveis II (new, static e const) :




* New


Mйtodo de criaзгo de uma variбvel comum, bastando colocar new + nome da variбvel + ponto e vнrgula :


Exemplo:

pawn Код:
new Eita; //variбvel criada.



* Static


Mйtodo de criaзгo de uma variбvel com uma caracterнstica especial: quando local ela nгo й destruнda :


Exemplo:

pawn Код:
if(strcmp("/noob",cmdtext,true,5)==0)
    {
        for(new x = 0; x < 5; x++)
        {
            static LOL;//Variбvel LOL й criada
            LOL = 3;
        }//Mesmo sendo local ela nгo й destruнda aqui. Por essa razгo, no prуximo giro do loop ela nгo й criada novamente e contйm o mesmo valor que tinha antes do momento no qual era para ser apagada.
        return 1;
    }



* Const



Mйtodo de criaзгo de uma constante, ou seja, uma variбvel que sempre terб o mesmo valor:


pawn Код:
const Pickup = 2;//Sempre terб o valor 2

Se depois for usado algo como:


pawn Код:
Pickup = 26;

O pawno gerarб um error pois nгo й possнvel mudar o valor de uma constante.






5 - Tags e Arrays :





*Tags



As Tags sгo formas de classificar uma variбvel com uma caracterista especial, elas normalmente aparecem na variбvel na forma de um complemento no comeзo do nome da mesma .


Float e bool sгo tags padrхes do Pawn.


Exemplo de uso de Float:

pawn Код:
new Float:Exemplo = 1.222; //Caracterista especial: conseguem se igualar б nъmeros fracionбrios.
Exemplo de uso de bool:

pawn Код:
new bool:Exemplo = true; //Caracterista especial: sу podem se igualar б dois valores, true e false.



*Arrays



Sгo multi-variбveis, com variбveis arrays й possнvel criar vбrias variбveis de uma vez sу .


Exemplo:

Ao invйs de usar:

pawn Код:
new Sanduiche1;
new Sanduiche2;
new Sanduiche3;

Pode se fazer com variбvel array :

pawn Код:
new Sanduiche[3];

Daн a igualaзгo seria assim:

pawn Код:
Sanduiche[0] = 1;
Sanduiche[1] = 1;
Sanduiche[2] = 1;

Ops, mas por que serб que nгo coloquei ali Sanduiche[3] = 1; ?


Por que nunca deve-se igualar uma variбvel no seu mбximo de cells permitidas, ou seja, como criamos assim:


pawn Код:
new Sanduiche[3];
Nгo poderemos usar:
pawn Код:
Sanduiche[3] = 1;

Apenas valores dentro dos colchetes [ ], que forem menores do que 3, pois a cell da array quando a criamos era 3 .


Mas mesmo assim, 3 valores da array foram igualados assim como seriam se tivessem sido criadas 3 variбveis comuns para cada valor.


Tambйm hб casos como:

Criamos uma variбvel array:

pawn Код:
new Sorriso[MAX_PLAYERS]; //Mesma coisa que VariavelArray[500];, pois MAX_PLAYERS estб definido assim no a_samp.inc
E a usamos como:

pawn Код:
Sorriso[playerid] = 1;
Ou seja, para cada ID diferente a variбvel vai ter um valor, por exemplo, se o playerid (ou ID no jogo) de um jogador й 5, entгo a variбvel ficaria assim quando fosse lida na execuзгo do jogo:

pawn Код:
Sorriso[5] = 1;
Pois, playerid = 5, no caso de um jogador, se fosse outro jogador de ID 9, entгo seria playerid = 9, entre outros.


Variбveis arrays tambйm sгo as ъnicas que podem armazenar texto, como por exemplo:

pawn Код:
new Jornal[10] = "й nуis";

Lembrando que o total de caracteres do texto deve ser menor do que a cell da array, no caso, menor que 10.



FIM, e este foi meu tutorial sobre variбveis


Espero ter ajudado
Reply
#2

Bom tutorial, parabйns
Reply
#3

Tem um tutorial desses na parte espanhola, tambйm muito bom por sinal
Reply
#4

Otimo Tuto..
Reply
#5

bom tut.
Reply
#6

Bom Tutorial Ken ..
Reply
#7

ia dar um edit mais como ja postaram...

tu se-preucupou em criar o tutorial do que explicar as funзхes.
Reply
#8

Awesome!

Parabens Ken!
Reply
#9

Muito Bom...Parabйns..
Ficou excelente..muito bem explicado
Reply
#10

Muito bom exelente aprendi coisas que nгo imaginava, eu via isso mais nгo sabia o que era.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)