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

    Marc Wayne "B-Dup"

  • Globální moderátor
  • Příspěvků: 496
  • Je tu celkem: 45d 22h 16m 55s

 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


96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
Roses are gay, violets are gayer, fuck the poem and listen to Slayer.
Unix is user friendly. It just happens to be very selective about who it decides to make friends with.


#2
HighPrint

HighPrint

    Proud =NTP= Member

  • Ověřený uživatel
  • Příspěvků: 1 082
  •   
  • Je tu celkem: 25d 9h 58m 6s

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
Posted Image

#3
vEnd

vEnd

    Marc Wayne "B-Dup"

  • Globální moderátor
  • Příspěvků: 496
  • Je tu celkem: 45d 22h 16m 55s

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

 

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


  • 0

96b259ac47244701b5097887d9439120.png

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
Roses are gay, violets are gayer, fuck the poem and listen to Slayer.
Unix is user friendly. It just happens to be very selective about who it decides to make friends with.


#4
HighPrint

HighPrint

    Proud =NTP= Member

  • Ověřený uživatel
  • Příspěvků: 1 082
  •   
  • Je tu celkem: 25d 9h 58m 6s

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


  • 0
Posted Image





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?