Přejít na obsah

#2 Pole [**]

tutorial tut Pawn samp pole array new řetězec string

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

#1
vEnd

vEnd

    Python maniac

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

 Obtížnost: :2:
 
Osnova:
1. Úvod, co je to pole
2. Deklarace pole
3. Práce s indexy (přiřazování hodnot)
4. Pole a řetězec

5. Vícerozměrné pole
6. Závěr
 
1. Úvod
Zdravím, tohle je druhý ze série návodů pro začínající pawnery. Návod navazuje na ten předchozí o proměnných (klik). Znalost proměnných je nutná k pochopení tohoto návodu, proto Vám doporučuji, abyste si nejprve přečetli ten první návod (odkaz je k dispozici).
 
Co je to pole? Pole (angl. array) je, zjednodušeně řečeno, proměnná, do které můžeme ukládat více hodnot. Funguje to tak, že se nám v paměti vymezí prostor a tento prostor se nám rozdělí na tolik buněk, kolik určíme. Jako kdybychom vzali dort a rozkrojili ho na námi určený počet kousků. K těmto jednotlivým buňkám (kouskům dortu) pak přistupujeme pomocí tzv. indexů.
 
2. Deklarace pole
Jako první začneme s deklarací pole. Ta funguje stejně jako u proměnné, akorát s malým rozdílem.

.

new hraci[3];

.

Opět jsme použili slůvko new, opět jsme zvolili název a opět jsme to všechno zakončili středníkem. Co se tedy změnilo? Hned za název jsme přidali hranaté závorky [ ] a do nich jsme vepsali velikost pole. Je tam 3, což znamená, že pole s názvem hraci má celkem 3 buňky.
 
Samozřejmě můžeme deklarovat více polí naráz a přidat k nim různé tagy (pro různé datové typy), stejně jako u proměnných.

.

new hraci[3], Float:souradnice[4], bool:admin[10];

.

3. Práce s indexy (přiřazování hodnot)
Nyní máme vytvořené pole. Jak teď do jednotlivých buněk uložíme hodnoty? Budeme k nim přistupovat přes, již zmíněné, indexy. Každá buňka má svůj unikátní index. Indexy vždy začínají od nuly. Poslední index bude vždy o jedno menší, než je velikost pole.
 
Takže naše pole hraci bude mít indexy 0 až 2, pole souradnice bude mít indexy 0 až 3 a pole admin bude mít indexy 0 až 9. Teď pojďme poli hraci přiřadit nějaké hodnoty.

.

hraci[0] = 1;
hraci[1] = 0;
hraci[2] = -3;

.

Takhle jsme všem třem buňkám určili hodnotu. Indexy zapisujeme tam, kde jsme při deklaraci zapisovali velikost. Pro procvičení to samé uděláme i s druhým polem.

.

souradnice[0] = 4.7; //ukládáme čísla s desetinnou čárkou
souradnice[1] = 8.52;
souradnice[2] = -1.02;
souradnice[3] = -0.5;

.

Pro zajímavost (rozklikněte spoiler):

Spoiler

 

4. Pole a řetězec

Už u proměnných jsme narazili na tento způsob deklarace  – jednalo se o řetězce. Je načase si říci, že řetězec není nic jiného než pole znaků.

 

Každá buňka obsahuje jeden znak z řetězce. Podívejme se na následující příklad:

.

new pozdrav[4+1]; //deklarace pole znaků (řetězce), nezapomeňme přičíst jedničku (znak) navíc

pozdrav = "ahoj";

.

Teď máme v poli/řetězci pozdrav slovo "ahoj". Když si ho rozpitváme, zjistíme, že každý index v sobě má jedno písmeno.

.

pozdrav[0] = 'a'
pozdrav[1] = 'h'
pozdrav[2] = 'o'
pozdrav[3] = 'j'

.

Index 4 jsem záměrně nezmínil. Proč? Podrobněji se tomu budu věnovat v návodu o řetězcích, prozatím si vystačíme s informací, že jedná-li se o řetězec (u ostatních polí to neplatí), musí poslední buňka zůstat nezměněná. Necháme ji prostě tak, jak je.

 

Pro zajímavost (rozklikněte spoiler):

Spoiler

 

5. Vícerozměrné pole (pro středně pokročilé – rozklikněte spoiler)

Spoiler

 

6. Závěr

A jsme na konci. Nyní už víme, jak funguje pole, jak jej vytvořit a jak s ním pracovat. Taky jsme si řekli něco málo o principu vícerozměrných polí a o tom, jaký vztah má řetězec k poli.

 

Tento návod, stejně jako ten předchozí, je určen pro nováč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ý.


  • 0


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
HighPrint

HighPrint

    =NTP= Member

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

Jenom dodatek:

 

Inicializace může ještě fungovat takovýmhle způsobem:

 

new hraci[50] = {1,,...}; // hraci[0] = hraci[1] = ... = hraci[49] = 1;

new hraci[50] = {1,2,...}; // hraci[0] = 1, hraci[1] = 2, hraci[2] = 3;...

new hraci[50] = {50,49,...}; // hraci[0] = 50, hraci[1] = 49, hraci[2] = 48;...

new hraci[50] = {2,4,...}; // hraci[0] = 2, hraci[1] = 4, hraci[2] = 8;...

 

a různé posloupnosti, které vás napadnou


  • 1

podpis.png


#3
vEnd

vEnd

    Python maniac

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

http://pawno.cz/topi...-hodnot-v-polí/

 

Není nutno zmiňovat, je to už tady. ;) :d


  • 0

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


#4
HighPrint

HighPrint

    =NTP= Member

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

:d Já myslel že mi ho smazali, když jsem ho nenašel, tak jsem to tu dodatečně zmínil :d


  • 0

podpis.png






Také označeno jedním nebo více klíčovými slovy: Návod, tutorial, tut, Pawn, samp, pole, array, 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?