Operátoři#
Zavedení#
Bloky operátorů ve VEXcode EXP 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ě nastavena na 0 desetinných míst, ale lze ji upravit pomocí bloků set print precision on screen nebo set print precision on console.
([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:
|
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] na obrazovce
tisk ([10] [math_plus v] [10.5]) na obrazovce ▶
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).
<[0] [math_equal v] [0]>
Parametr |
Popis |
|---|---|
hodnota 1 |
První hodnota k porovnání. |
operátor |
Použité porovnání:
|
hodnota 2 |
Druhá hodnota k porovnání. |
Příklad
při spuštění
[Turn right until the heading reaches 90 degrees.]
otočit [vpravo v]
čekat [0.5] sekund
čekat dokud <(kurz jízdy ve stupních) [math_greater_than v] [90]>
zastavit jízdu
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.
<<> [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í. |
Příklad
při spuštění
[Display if the ▼ and B Controller buttons are pressed.]
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <<[Controller1 v] [▼ v] stisknuto?> [a v] <[Controller1 v] [B v] stisknuto?>> pak
tisk [Buttons pressed!] na obrazovce ▶
konec
konec
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.
<ne <>>
Parametr |
Popis |
|---|---|
stav |
Booleovská podmínka, která má být invertována. |
Příklad
při spuštění
[Turn until the robot is facing left. ]
navždy
pokud <ne <(kurz jízdy ve stupních) [math_greater_than v] [270]>> pak
otočit [vpravo v]
jinak
zastavit jízdu
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.
<[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:
|
hodnota |
Hodnota, která se má zkontrolovat. |
druhý operátor |
Porovnávací operátor, který se má použít:
|
Příklad
při spuštění
[Turn and display when facing forward or back. ]
otočit [vpravo v] o [360] stupňů ◀ a nečekat
navždy
vymazat obrazovku
nastavit kurzor na řádek [1] sloupec [1] na obrazovce
pokud <[90] [math_less_than v] (kurz jízdy ve stupních) [math_less_than v] [270]> pak
tisk [Facing backward!] na obrazovce ▶
jinak
tisk [Facing forward!] na obrazovce ▶
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.
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]) na obrazovce ▶
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ů.
(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] na obrazovce
tisk (zaokrouhlit ([10] [math_division v] [3]) na [1] desetinných míst) na obrazovce ▶
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í.
[abs v] z [0]
Parametr |
Popis |
|---|---|
funkce |
Matematická operace, která se má aplikovat na vstupní hodnotu:
|
čí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]) na obrazovce ▶
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]) na obrazovce ▶
zbytek#
Blok reportéru remainer hlásí zbytek operace dělení mezi dvěma hodnotami.
(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]) na obrazovce ▶
připojit se#
Blok reportéru join hlásí jeden řetězec, který kombinuje dva vstupní řetězce.
(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]) na obrazovce ▶
dopis#
Blok reportéru letter hlásí řetězec o jednom znaku ze zadané pozice v daném řetězci.
(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]) na obrazovce ▶
délka#
Blok reportéru length hlásí počet znaků v zadaném řetězci včetně mezer.
(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]) na obrazovce ▶
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.
<[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".] na obrazovce ▶
jinak
tisk [Not found.] na obrazovce ▶
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.
(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:
|
Příklad
při spuštění :: hat events
[Display the robot's heading as it turns.]
otočit [vpravo v]
navždy
vymazat všechny řádky
tisk (spojit [Currently facing: ] (převést (kurz jízdy ve stupních) na [text v])) ▶
čekat [0.5] sekund