Přejít na obsah

#1 Proměnná [*]

tutorial tut proměnná variable Pawn samp new řetězec string

  • Pokud chcete odpovědět, přihlaste se
2 odpovědí

#1
vEnd

vEnd

    Emmet

  • Globální moderátor
  • Příspěvků: 606

*
POPULÁRNÍ

Obtížnost: :1:
 
Osnova:
1. Úvod, co je to proměnná
2. Deklarace (vytvoření) proměnné
3. Přiřazování hodnot
4. Datové typy (tagy)
5. Lokální a globální proměnná
6. Závěr
 
1. Úvod
Zdravím Vás, tohle je první ze série návodů věnujících se základům jazyka Pawn. Cílem těchto návodů je seznámit Vás se strukturami tohoto jazyka, s jeho syntaxí a s jeho využitím v praxi. Tento návod se bude věnovat proměnné.
 
Co je to proměnná? Pod pojmem proměnná si můžeme představit nějaké místo v paměti, které má svůj název a do kterého si pro naše potřeby ukládáme hodnoty.
 
Všichni proměnné už známe, a to z matematiky – zde proměnné jako x a y používáme nepřetržitě. A funguje to i podobně – v matematice za ně můžeme dosazovat různé hodnoty, v programování do nich také ukládáme různé hodnoty.
 
2. Deklarace (vytvoření) proměnné
Prvním naším krokem bude deklarace proměnné. Když mluvíme o deklaraci proměnné, máme na mysli, víceméně, její vytvoření. To provedeme následovně:

.

new id;

.

Pomocí slova new deklarujeme nové proměnné. Jinak to nejde, jazyk to od nás vyžaduje.
 
id je název (identifikátor) naší nové proměnné. V názvu můžeme používat standardní písmena (A až Z, a až z), číslice (0 až 9) a podtržítko (_). Název bychom měli volit tak, aby odpovídal tomu, k čemu budeme proměnnou potřebovat (např. penize – pro ukládání peněz apod.)
 
Středníkem (;) deklaraci ukončíme. Jazyku tak sdělíme fakt, že jsme s tímto příkazem (s deklarací proměnné) skončili. Takhle to funguje i u jiných příkazů, ne jenom u deklarací.
 
Pokud potřebujeme deklarovat více proměnných najednou, je to možné provést tak, že jednotlivé názvy oddělíme čárkou, takhle:

.

new id, penize, score;

.

Takto jsme vytvořili 3 proměnné naráz.
 
3. Přiřazování hodnot
Teď už víme, jak proměnnou vytvořit. Jak do ní ale uložím hodnotu? To udělám pomocí operátoru rovnítko / rovná se (=).

.

id = 5;

.

Na levé straně (tzv. lvalue) máme proměnnou, do které chceme ukládat, poté následuje rovnítko, které nám určí, že do proměnné ukládáme hodnotu, a nakonec přichází samotná hodnota (tzv. rvalue). Hodnotou může být číslo, ale také jiná proměnná nebo výraz. Stejně jako deklaraci, tak i tento příkaz zakončíme středníkem. Ono středníkem budeme ukončovat téměř všechno, ale to brzy samo vyjde najevo.
 
Pokud bychom chtěli přiřadit hodnotu už při deklaraci, tak i to nám Pawn dovoluje:

.

new id = 7;
new id = 1, penize = 5000, score = -100; //znak mínus (-) před hodnotou nám značí zápornou hodnotu

.

Pro zajímavost (rozklikněte spoiler):

Spoiler

 
4. Datové typy (tagy)
Už umíme proměnnou vytvořit a přiřadit jí hodnotu. Teď si musíme říct něco o datových typech. Datový typ nám určuje, jaké hodnoty můžeme do proměnné uložit. Může se jednat o běžná celá čísla (ty jsme používali do teď), ale pak také můžeme ukládat čísla s desetinnou čárkou, různé texty, znaky apod.
 
Čím se nám to bude lišit, když budeme chtít do proměnné uložit např. číslo s desetinnou čárkou? Bude se to lišit způsobem deklarace. Vyjmenujme si všechny běžné datové typy a způsob, kterým je budeme deklarovat.
 
a) Celá čísla (7, 666, -5, -114 apod.)

new cela_cisla; //deklarujeme tak, jak jsme se před chvílí naučili
cela_cisla = 7;

.

b ) Reálná čísla – čísla s desetinnou čárkou (3.14159, 10.254, -177.8, -23.23 apod.)

new Float:realna_cisla; //před název proměnné jsme přidali tzv. tag, a to tag "Float:"
realna_cisla = 3.14159; //tečka (.) nám v programování představuje desetinnou čárku

.

c) Logické hodnoty (true a false)

Logické hodnoty máme jen dvě, a to pravda (true) a nepravda (false).

.

new bool:logicke_hodnoty; //doplníme tag "bool:"
logicke_hodnoty = true;

.

d) Znaky
Znakem může být cokoliv, co najdete na klávesnici – písmeno, číslice, vykřičník, pomlčka atd. Deklarace se neliší od celých čísel, ale ukládání ano!

.

new znak; //stejné jako u celých čísel
znak = 'a'; //ukládaný znak musíme vložit mezi apostrofy (')

.

e) Řetězec/string ("abcd1234?!", "jak se máš?", "jsem programátor" apod.)
Řetězec není nic jiného než posloupnost několika znaků. Jsou to slova, věty, hesla, vše, co nás napadne. Liší se deklarací i ukládáním!

.

new retezec[10+1]; //v hranatých závorkách [] udáváme délku řetězce, to je ta 10, a navíc přičteme ještě jedničku kvůli potřebám jazyka Pawn
retezec = "abcd1234?!"; //ukládaný řetězec znaků musíme vložit mezi uvozovky (")

.

Pro zajímavost (rozklikněte spoiler):

Spoiler

 
Těch tagů je omnoho více, ale když teď známe jejich princip, nebude těžké se vypořádat ani s těmi ostatními.
 
5. Lokální a globální proměnná
Proměnná se dělí na dva typy podle toho, kde ji deklarujete. Globální proměnná se nejčastěji deklaruje nahoře ve scriptu, těsně pod #include a #define. S touto proměnnou můžete pracovat všude ve scriptu.
 
Oproti tomu lokální proměnná se deklaruje v určitém bloku (bloky nám určují složené závorky { }) a má platnost pouze v něm a v podřazených blocích. Názorná ukázka:

.

public OnPlayerConnect(playerid)
{
    if(playerid == 0)
    {
        new id;
        id = 5; //bude fungovat, tohle je stejný blok, kde je deklarace
        if(IsPlayerInAnyVehicle(playerid))
        {
            id = 0; //bude fungovat, tohle je podřazený blok
        }
    }
    id = 7; //nebude fungovat, zahlásí nám to chybu, protože tohle už je nadřazený blok
}

.

6. Závěr
A takhle jsme došli ke konci návodu o proměnné. Dnes jsme se dozvěděli, co je to proměnná, k čemu slouží, jak do ní ukládat hodnoty a výrazy, jaké hodnoty do ní lze ukládat a jak ji rozdělujeme dle platnosti. Navíc jsme si také ukázali, jak psát do kódu komentáře, to jsou ty poznámky, které jsme uvedli za znaky // (dvě lomítka). Za ně si lze psát své vlastní poznatky, připomínky atd.
 
Ještě jednou říkám, že tento návod slouží pro úplné začátečníky, pokročilejší věci byly buďto úplně vynechány, nebo jsou uvedeny ve spoilerech. Přesto, zdá-li se Vám, že jsem něco opomněl, někde jsem se spletl nebo se jen chcete vyjádřit, pište do tohoto tématu.

 

Ověřený návod

Tento návod prošel validací, a lze ho proto považovat za ověřený.


  • 5


96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
It's hard to follow the train when you are hauling two number nines; a number nine large; a number six with extra dip; a number seven; two number 45s, one with cheese; and a large soda. -guess who


#2
(AW)Matej

(AW)Matej

    (°o°) .l.

  • Uživatel
  • Příspěvků: 799

nemozme true/false deklarovat aj to normalnej premenner? napr. new tom; tom = 1; ?  Ja som to asi vzdy takto robil :d

 

navod urcite dobry, vsetko si jednoducho vysvetlil, ak budes pokracovat tak sa mi to urcite zide(aj ked navodov je vela)


  • 0

#3
vEnd

vEnd

    Emmet

  • Globální moderátor
  • Příspěvků: 606

Jistě, je možné používat i 1 jako true a 0 jako false, ALE pak bys neměl u té deklarace dávat ten bool:, jinak by ti to házelo varování.

 

(Ono v jiných jazycích se používají bool proměnné, protože takové proměnné zabírají v paměti jenom jeden bajt, jenže v Pawn je to prakticky jedno, tam má každá proměnná, nehledě na typ, 4 bajty.)

 

A díky. :d


Upraveno uživatelem vEnd: 01 červenec 2016 - 20:31:16

  • 0

96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
It's hard to follow the train when you are hauling two number nines; a number nine large; a number six with extra dip; a number seven; two number 45s, one with cheese; and a large soda. -guess who






Také označeno jedním nebo více klíčovými slovy: Návod, tutorial, tut, proměnná, variable, Pawn, samp, new, řetězec, string

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?