Přejít na obsah

#5 Operátory – další typy op. a priorita op. [*]

tut tutorial samp Pawn operátor operand relační logický priorita

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

#1
vEnd

vEnd

    Python maniac

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

Obtížnost: 1.png

Osnova:
1. Úvod
2. Relační operátory
3. Logické operátory
4. Přiřazovací operátory
5. Bitové operátory

6. Priorita operátorů
7. Závěr

1. Úvod
Vítám Vás u pátého návodu pro začínající pawnery. Téma se týká dalších druhů operátorů a navazuje na předchozí návod o operátorech. Abyste tento návod pochopili, přečtěte si nejprve ten předchozí.

2. Relační operátory
Úkolem relačních operátorů je porovnávat operandy (vrací pravdu, nebo nepravdu). S nimi se zpravidla setkáme v podmínkách. Jedná se o operátory rovnosti, nerovnosti, větší/menší a větší/menší nebo rovno.

.

new cislo = 5, cislo2 = 10;

cislo == cislo2 //dvě rovnítka porovnají, zda jsou čísla stejná (výsledek je false, 5 a 10 nejsou stejná)
cislo != cislo2 //vykřičník a rovnítko zjistí, zda se čísla různí (výsledek je true, 5 a 10 jsou různá)
cislo > cislo2 //znak pro "větší" zjistí, zda je číslo vlevo větší než to vpravo (výsledek je false, 5 není větší než 10)
cislo < cislo2 //znak pro "menší" zjistí, zda je číslo vlevo menší než to vpravo (výsledek je true, 5 je menší než 10)
cislo >= cislo2 //znak pro "větší nebo rovno" zjistí, zda je číslo vlevo větší nebo rovno tomu vpravo (výsledek je false, 5 není větší ani rovno 10)
cislo <= cislo2 //znak pro "menší nebo rovno" zjistí, zda je číslo vlevo menší nebo rovno tomu vpravo (výsledek je true, 5 není rovno 10, ale je menší)

.

Všechno to jsou binární operátory. Doufám, že není třeba si je blíže vysvětlovat, princip je stejný jako v matematice, stačí nám znalosti základní školy.

 

Zajímavost:

Spoiler

 

3. Logické operátory
Pomocí logických operátorů tvoříme složitější podmínky. Stejně jako relační, tak i tyto operátory vrací buď pravdu, nebo nepravdu. Logickými operacemi jsou logický součin, logický součet a logická negace.

a) Logický součin
Logický součin je binární operace a značí se dvěma ampersandy (&&). Výsledek této operace je pravdivý, právě když jsou oba výrazy pravdivé.

.

new cislo = 5, cislo2 = 10, cislo3 = 15;

cislo < cislo2 && cislo2 > cislo3 //výsledek je false

.

Prvním výrazem je "cislo < cislo2". Ten je pravdivý, 5 je menší než 10. Druhým výrazem je "cislo2 > cislo3". To pravda není, 10 není větší než 15. Jeden z výrazů je nepravdivý, proto je celá podmínka nepravdivá.

b ) Logický součet
Logický součet je binární operace a značí se dvěma svislicemi (||). Výsledek této operace je pravdivý, když alespoň jeden výraz je pravdivý.

.

cislo < cislo2 || cislo2 > cislo3 //výsledek je true

.

Vraťme se k předchozímu příkladu. Už víme, že první výraz je pravdivý a druhý nepravdivý. Poněvadž se teď jedná o logický součet, tak celá podmínka bude pravdivá – stačí jen jeden pravdivý výraz.

Při složitějších podmínkách si nemusíme být jisti tím, jak ji jazyk vyhodnotí. Proto nám Pawn umožňuje i v tomto případě použít kulaté závorky k určení priority vyhodnocení.

.

(cislo < cislo2 && cislo2 > cislo3) || (cislo3 > cislo && cislo3 >= cislo2)

.

Teď jsme si jistí, že se napřed vykoná logický součin a až poté logický součet.

c) Logická negace
Logická negace je unární operace a značí se vykřičníkem (!). Účelem této operace je převrátit pravdu v nepravdu a naopak.

.

new bool:logicka = true;

!logicka //hodnota bude false

.

Počáteční hodnota proměnné logicka je true. Po znegování bude hodnota převrácená – false.

4. Přiřazovací operátory
Operátor přiřazení již známe – rovnítko. Probrali jsme jej v předchozích návodech, takže teď si ho jen rychle zopakujeme. Na levé straně je proměnná/pole, do které(ho) přiřazujeme, a na pravé straně hodnota nebo výraz, který přiřazujeme.

.

new cislo = 5; //přiřazení celého čísla
new desetinne = 3.14; //přiřazení desetinného čísla
new znak = 'o'; //přiřazení znaku
new retezec[] = "ahoj"; //přiřazení řetězce
new pole[] = {1, 3, 6}; //přiřazení hodnot poli

.

Pro zajímavost (rozklikněte spoiler):

Spoiler

.

5. Bitové operátory
Bitové operátory manipulují s bity. Tato problematika zdaleka přesahuje znalosti potřebné pro nováčky, proto ji zde uvádět nebudu. Nicméně, pokud se přeci jen chcete o manipulaci s bity něco dozvědět, přečtěte si tento návod, kde se tomu Mort podrobně věnuje.

 

6. Priorita operátorů

Už jsme si zmínili, že prioritu operátorů můžeme ovlivnit kulatými závorkami jako v matematice, ale jaká je vlastně výchozí priorita operátorů? Na to se lze podívat do spoileru. Je to jen pro zajímavost, nic, bez čeho bychom se neobešli.

 

Spoiler

.

7. Závěr
A tímto končí druhý návod věnující se operátorům. Nyní už víte to potřebné o operátorech. Samozřejmě jich existuje mnoho, neuvedl jsem všechny (čárka, dvojtečka i všechny druhy závorek jsou také operátory), ale to už jsou drobnosti, které v praxi sami pochytíte.

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ý.


  • 3


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
milous22

milous22

    Vítěz 1. ročníku Pawn soutěže

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

zdar, k tým relačným operátorom by sa mohla prihodiť aj poznámka, že sa dajú aj "opakovať" napr. "a < b < c...". Pričom treba ale spomenúť, že sa v takomto zápise nesmú stretnúť pri sebe dve rvalue (pevné hodnoty) napr. "1 < 2 < a", lebo to vracia vždy false.


Upraveno uživatelem milous22: 22 srpen 2017 - 15:13:21

  • 0

c39184173ac10a90f8b682f9e7533036.gif
svet ide do sračiek...


#3
vEnd

vEnd

    Python maniac

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

zdar, k tým relačným operátorom by sa mohla prihodiť aj poznámka, že sa dajú aj "opakovať" napr. "a < b < c...". Pričom treba ale spomenúť, že sa v takomto zápise nesmú stretnúť pri sebe dve rvalue (pevné hodnoty) napr. "1 < 2 < a", lebo to vracia vždy false.

Ahoj, přidám to tam, ale do spoileru jako zajímavost (má to náročnost 1/5 a bez tohohle se nováčci hravě obejdou). Díky za návrh na doplnění.


  • 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






Také označeno jedním nebo více klíčovými slovy: Návod, tut, tutorial, samp, Pawn, operátor, operand, relační, logický, priorita

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?