Operátoři#

Zavedení#

Bloky operátorů ve VEXcode pomáhají robotovi pracovat s čísly a slovy. Tyto bloky dokáží řešit matematické úlohy, porovnávat hodnoty, vyhodnocovat, zda jsou podmínky pravdivé nebo nepravdivé, a pracovat s řetězci. Řetězce lze použít k výpisu hodnot a slov.

Níže je uveden seznam dostupných bloků:

  • matematický operátor – Provádí sčítání, odčítání, násobení nebo dělení.

  • operátor porovnání – Porovnává dvě hodnoty pomocí operátorů větší než, menší než nebo rovno.

  • logický operátor – Vyhodnocuje více podmínek pomocí operátorů and nebo or.

  • není operátor – Invertuje booleovskou hodnotu.

  • operátor rozsahu – Zkontroluje, zda číslo spadá do zadaného rozsahu.

  • pick random – Generuje náhodné číslo v zadaném rozsahu.

  • zaokrouhlí číslo – Zaokrouhlí číslo na nejbližší celé číslo.

  • matematické funkce – Aplikuje operace jako odmocnina, trigonometrie, logaritmy a umocňování.

  • atan2 – Vypočítá inverzní tangens osy y/x.

  • zbytek – Vrací zbytek operace dělení.

  • join – Spojí dva řetězce do jednoho.

  • letter – Vybere znak z řetězce podle pozice.

  • length – Vrací počet znaků v řetězci.

  • obsahuje – Zkontroluje, zda řetězec obsahuje určité slovo nebo znak.

  • convert – Převede číslo na text, celé číslo nebo desetinné číslo.

matematický operátor#

Blok reportéru math operator provádí základní matematické operace s hodnotami umístěnými na obou stranách operátoru. Vrací výsledek na základě přesnosti tisku projektu, která je standardně 0 desetinných míst, ale lze ji upravit pomocí bloku set print precision on console.

Blok reportéru matematických operátorů.#
([0] [math_plus v] [0])

Parametry

Popis

hodnota 1

První číslo použité v operaci.

operátor

Matematický operátor, který je třeba použít:

  • + - Sčítání
  • - - Odčítání
  • * - Násobení
  • / - Dělení

hodnota 2

Druhé číslo použité v operaci.

Příklad

při spuštění
[Perform basic addition and show two decimal places.]
nastavit přesnost tisku na [0.01 v] v konzoli
tisk ([10] [math_plus v] [10.5]) v konzoli ◀ a přesunout kurzor na další řádek

operátor porovnání#

Logický blok operátor porovnání hlásí, zda je porovnání mezi dvěma hodnotami True nebo False.

  • Pravda – Porovnání je správné (např. 5 > 3 vrací Pravda).

  • Nepravda – Porovnání je nesprávné (např. 2 ≥ 5 vrací Nepravda).

Blok booleovského operátoru porovnání.#
<[0] [math_equal v] [0]>

Parametr

Popis

hodnota 1

První hodnota k porovnání.

operátor

Použité porovnání:

  • = - Rovno
  • < - Menší než
  • ≤ - Menší nebo rovno
  • > - Větší než
  • ≥ - Větší nebo rovno

hodnota 2

Druhá hodnota k porovnání.

logický operátor#

Booleovský blok logického operátoru hlásí, zda je logická podmínka mezi více hodnotami True nebo False.

  • Pravda – Logická podmínka je splněna.

  • Nepravda – Logická podmínka není splněna.

Blok logických operátorů Boolean.#
<<> [a v] <>>

Parametr

Popis

podmínka 1

První booleovská podmínka, která se má vyhodnotit.

operátor

Logický operátor, který se má použít: and vrátí True, pokud obě podmínky jsou True. or vrátí True, pokud alespoň jedna podmínka je True.

podmínka 2

Druhá booleovská podmínka k vyhodnocení.

není operátor#

Logický blok not invertuje výsledek logického bloku. Pokud je vstup True, vrátí False, a pokud je vstup False, vrátí True.

  • Pravda – Vstupní podmínka by normálně hlásila Nepravda.

  • Nepravda – Vstupní podmínka by normálně hlásila Pravda.

Blok Not Operator Boolean.#
<ne <>>

Parametr

Popis

stav

Booleovská podmínka, která má být invertována.

Příklad

při spuštění
[Check if the 6-Axis Arm can move to a position.]
pokud <ne <[paže v] přesunout na polohu x:[0] y:[0] z:[0] [mm v]?>> pak
tisk [The 6-Axis Arm can't move to this position.] v konzoli ◀ a přesunout kurzor na další řádek

operátor rozsahu#

Booleovský blok operátor rozsahu hlásí, zda hodnota spadá do zadaného rozsahu.

  • True – Pokud je hodnota v rozsahu.

  • Nepravda – Pokud je hodnota mimo rozsah.

Booleovský blok operátoru rozsahu.#
<[0] [math_less_than v] [0] [math_less_than v] [0]>

Parametr

Popis

první operátor

Porovnávací operátor, který se má použít:

  • < - Menší než
  • ≤ - Menší nebo rovno
  • - Větší než
  • ≥ - Větší nebo rovno

hodnota

Hodnota, která se má zkontrolovat.

druhý operátor

Porovnávací operátor, který se má použít:

  • < - Menší než
  • ≤ - Menší nebo rovno
  • - Větší než
  • ≥ - Větší nebo rovno

vybrat náhodně#

Blok reportéru pick random hlásí náhodné kladné nebo záporné číslo mezi minimem a maximem. Může vrátit jak minimální, tak maximální hodnotu. Například výběr od 1 do 10 může vrátit libovolné celé číslo od 1 do 10.

Blok reportéra Pick Random.#
náhodné číslo od [1] do [10]

Parametry

Popis

min.

Nejnižší možné číslo, které lze vybrat.

maximum

Nejvyšší možné číslo, které lze vybrat.

Příklady

při spuštění
[Display a number between 1 and 10.]
tisk (náhodné číslo od [1] do [10]) v konzoli ◀ a přesunout kurzor na další řádek

kulaté číslo#

Blok reportéru zaokrouhleného čísla hlásí dané číslo zaokrouhlené na nejbližší celé číslo podle standardních pravidel zaokrouhlování:

  • Pokud je desetinné číslo 0,5 nebo větší, číslo se zaokrouhlí nahoru.

  • Pokud je desetinné číslo menší než 0,5, číslo se zaokrouhlí dolů.

Blok reportéra kulatého čísla.#
(zaokrouhlit [0] na [0] desetinných míst)

Parametr

Popis

číslo

Číslo, které se má zaokrouhlit.

desetinná místa

Počet desetinných míst, na která se má zaokrouhlit.

Příklad

při spuštění
[Display the rounded result of 10 / 3.]
nastavit přesnost tisku na [0.01 v] v konzoli
tisk (zaokrouhlit ([10] [math_division v] [3]) na [1] desetinných míst) v konzoli ◀ a přesunout kurzor na další řádek

matematické funkce#

Reportérový blok matematických funkcí aplikuje vybranou matematickou funkci na dané číslo a vrací výsledek. Podporuje operace jako absolutní hodnota, zaokrouhlování, odmocniny, goniometrické funkce, logaritmy a umocňování.

Blok reportéru matematických funkcí.#
[abs v] z [0]

Parametr

Popis

funkce

Matematická operace, která se má použít na vstupní hodnotu:

  • abs - Absolutní hodnota
  • floor - Zaokrouhluje dolů
  • ceiling - Zaokrouhluje nahoru
  • sqrt - Druhá odmocnina
  • sin - Sinus
  • cos - Kosinus
  • tan - Tangens
  • asin - Inverzní sinus
  • acos - Inverzní kosinus
  • atan - Inverzní tangens
  • ln - Přirozený logaritmus
  • log - Desitinný logaritmus
  • e^ - Eulerovo číslo umocněné na
  • 10^ - 10 umocněné na
  • minus - Vrátí zápornou hodnotu čísla

číslo

Číslo, na které se má funkce aplikovat.

Příklad

při spuštění
[Display the square root of 16.]
tisk ([sqrt v] z [16]) v konzoli ◀ a přesunout kurzor na další řádek

atan2#

Blok reportéru atan2 hlásí inverzní tangens osy Y/X jako úhel ve stupních, který představuje úhel mezi kladnou osou X a bodem (X, Y).

(atan2 z x:[4] y:[3])

Parametr

Popis

x

Horizontální poloha bodu měřená od počátku (0,0).

y

Svislá poloha bodu měřená od počátku (0,0).

Příklad

při spuštění
[Calculate the angle from current position (4, 3).]
tisk (atan2 z x:[4] y:[3]) v konzoli ◀ a přesunout kurzor na další řádek

zbytek#

Blok reportéru remainer hlásí zbytek operace dělení mezi dvěma hodnotami.

Blok reportérů Remainder.#
(zbytek po dělení [0] / [0])

Parametr

Popis

dividenda

Číslo, které má být děleno.

dělitel

Číslo, kterým se má dělit.

Příklad

při spuštění
[Display the remainder of 10 / 3.]
tisk (zbytek po dělení [10] / [3]) v konzoli ◀ a přesunout kurzor na další řádek

připojit se#

Blok reportéru join hlásí jeden řetězec, který kombinuje dva vstupní řetězce.

Blok Připojit se k reportérovi.#
(spojit [apple] [banana])

parametr

popis

řetězec 1

První řetězec, který se má sloučit.

řetězec 2

Druhý řetězec ke sloučení.

při spuštění
[Display "VEXcode" on the screen.]
tisk (spojit [VEX] [code]) v konzoli ◀ a přesunout kurzor na další řádek

dopis#

Blok reportéru letter hlásí řetězec o jednom znaku ze zadané pozice v daném řetězci.

Blok reportérů Dopisu.#
(znak [1] z [apple])

parametr

popis

pozice

Pozice znaku v řetězci (počínaje 1).

řetězec

Řetězec, ze kterého se má extrahovat písmeno.

při spuštění
[Display the first letter of "Robot".]
tisk (znak (1) z [Robot]) v konzoli ◀ a přesunout kurzor na další řádek

délka#

Blok reportéru length hlásí počet znaků v zadaném řetězci včetně mezer.

Blok reportéra délky.#
(délka [apple])

parametr

popis

řetězec

Řetězec, jehož délka se má změřit.

Příklad

při spuštění
[Count the number of characters in "VEX Robotics".]
tisk (délka [VEX Robotics]) v konzoli ◀ a přesunout kurzor na další řádek

obsahuje#

Logický blok contains hlásí, zda zadaný řetězec obsahuje dané slovo nebo znak.

  • True – Řetězec obsahuje dané slovo nebo znak.

  • Nepravda – Řetězec neobsahuje dané konkrétní slovo nebo znak.

Blok Contains Boolean.#
<[apple] obsahuje [a]?>

parametr

popis

řetězec

Hlavní řetězec, ve kterém se má hledat.

vyhledávací výraz

Slovo nebo znak, který se má v řetězci kontrolovat.

Příklad

při spuštění
[Check if "robotics" contains "bot".]
pokud <[robotics] obsahuje [bot]?> pak
tisk [The word contains "bot".] v konzoli ◀ a přesunout kurzor na další řádek
jinak
tisk [Not found.] v konzoli ◀ a přesunout kurzor na další řádek
konec

konvertovat#

Blok reportéru convert hlásí hodnotu čísla převedeného na zadaný typ, buď jako text, nebo číslo.

  • text – Převede číslo na řetězec. Čísla musí být ve formátu řetězce, aby fungovala s bloky String Operator.

  • číslo – Převede číslo na desetinnou hodnotu.

Blok reportéra Convert.#
(převést [0] na [text v])

parametr

popis

hodnota

Číslo, které se má převést.

typ

Typ, na který se má číslo převést:

  • text
  • číslo

Příklad

při spuštění :: hat events
[Display the Arm's x-position as it moves.]
zvýšit polohu [paže v] o x:[100] y:[0] z:[0] [mm v] ◀ a nečekat
navždy
vymazat všechny řádky
tisk (spojit [X: ] (převést (poloha [paže v] [x v] v [mm v]) na [text v])) v konzoli ◀ a přesunout kurzor na další řádek
čekat [0.5] sekund