Operatörer#
Introduktion#
Operatorblocken i VEXcode AIR hjälper drönaren att arbeta med siffror och ord. Dessa block kan lösa matematiska problem, jämföra värden, utvärdera om villkor är sanna eller falska och arbeta med strängar. Strängar kan användas för att skriva ut värden och ord.
Nedan följer en lista över tillgängliga block:
matematisk operator — Utför addition, subtraktion, multiplikation eller division.
jämförelseoperator — Jämför två värden med hjälp av operatorerna större än, mindre än eller lika med.
logisk operator — Utvärderar flera villkor med hjälp av och eller eller.
not operator — Inverterar ett booleskt värde.
intervalloperator — Kontrollerar om ett tal faller inom ett intervall.
välj slumpmässigt — Genererar ett slumpmässigt tal inom ett angivet intervall.
avrundat tal — Avrundar ett tal till närmaste heltal.
matematiska funktioner — Tillämpar operationer som kvadratrot, trigonometri, logaritmer och exponentiering.
atan2 — Beräknar den inversa tangenten till Y/X.
rest — Rapporterar resten av en divisionsoperation.
join – Kombinerar två strängar till en.
bokstav – Extraherar ett tecken från en sträng efter position.
längd – Anger antalet tecken i en sträng.
innehåller – Kontrollerar om en sträng innehåller ett specifikt ord eller tecken.
konvertera – Konverterar ett tal till text, ett heltal eller ett decimaltal.
matematisk operator#
Reporterblocket matematikoperator utför grundläggande matematiska operationer på värdena som placeras på vardera sidan om operatorn. Det returnerar ett resultat baserat på projektets utskriftsprecision, som som standard är 0 decimaler men kan justeras med hjälp av blocken set print precision on screen eller set print precision on console.
([0] [math_plus v] [0])
Parametrar |
Beskrivning |
|---|---|
värde 1 |
Det första numret som används i operationen. |
operatör |
Den matematiska operatorn att använda:
|
värde 2 |
Det andra numret som används i operationen. |
Exempel
när startad
[Perform basic addition and show two decimal places.]
ställ in utskriftsprecision till [0.01 v] i konsolen
skriv ut ([10] [math_plus v] [10.5]) i konsolen ▶
jämförelseoperator#
Det booleska blocket jämförelseoperator rapporterar om jämförelsen mellan två värden är Sant eller Falskt.
Sant – Jämförelsen är korrekt (t.ex. 5 > 3 returnerar Sant).
Falskt – Jämförelsen är felaktig (t.ex. 2 ≥ 5 returnerar Falskt).
<[0] [math_equal v] [0]>
Parameter |
Beskrivning |
|---|---|
värde 1 |
Det första värdet att jämföra. |
operatör |
Jämförelsen att använda:
|
värde 2 |
Det andra värdet att jämföra. |
Exempel
när startad
[Fly to position (0, 300, 500).]
lyft till [500] [mm v] ▶
vänta (1) sekunder
rör [framåt v]
vänta tills <([y v] position i [mm v]) [math_greater_than v] [300]>
vänta (1) sekunder
landa ▶
logisk operator#
Det booleska blocket logisk operator rapporterar om det logiska villkoret mellan flera värden är Sant eller Falskt.
Sant – Det logiska villkoret är uppfyllt.
Falskt – Det logiska villkoret är inte uppfyllt.
<<> [och v] <>>
Parameter |
Beskrivning |
|---|---|
villkor 1 |
Det första booleska villkoret att utvärdera. |
operatör |
Den logiska operatorn som ska användas: och rapporterar Sant om båda villkoren är Sanna. eller rapporterar Sant om minst ett villkor är Sant. |
villkor 2 |
Det andra booleska villkoret att utvärdera. |
Exempel
när startad
[Display when buttons 5 and 7 are pressed together.]
vänta tills <<styrdonknapp [5 v] tryckt?> [och v] <styrdonknapp [7 v] tryckt?>>
skriv ut [Both buttons pressed!] i konsolen ▶
inte operatör#
Det booleska blocket not-operator inverterar resultatet av ett booleskt block. Om inmatningen är True rapporteras False, och om inmatningen är False rapporteras Sant.
Sant – Indatavillkoret rapporterar normalt Falskt.
Falskt – Indatavillkoret rapporterar normalt Sant.
<inte <>>
Parameter |
Beskrivning |
|---|---|
skick |
Det booleska villkor som ska inverteras. |
Exempel
när startad
[Move with controller while button 5 is not pressed.]
lyft till [500] [mm v] ▶
medan <inte <styrdonknapp [5 v] tryckt?>>
rör med styrdon
avsluta
landa ▶
intervalloperator#
Det booleska blocket intervalloperator rapporterar om ett värde faller inom ett angivet intervall.
Sant – Om värdet ligger inom intervallet.
Falskt – Om värdet ligger utanför intervallet.
<[0] [math_less_than v] [0] [math_less_than v] [0]>
Parameter |
Beskrivning |
|---|---|
första operatören |
Jämförelseoperatorn att använda:
|
värde |
Värdet att kontrollera. |
andra operatören |
Jämförelseoperatorn att använda:
|
Exempel
när startad
[Hover at approximately 1000mm then land.]
lyft till [500] [mm v] ▶
klättra [upp v]
vänta tills <[1000] [math_less_than v] (altitude in [mm v]) [math_less_than v] [1100]>
hovra
vänta (3) sekunder
landa ▶
välj slumpmässigt#
Reporterblocket välj slumpmässigt rapporterar ett slumpmässigt positivt eller negativt tal mellan ett minimum och ett maximum. Det kan returnera både min- och maxvärdet. Till exempel kan val av 1 till 10 returnera vilket heltal som helst från 1 till 10.
välj slumpmässigt [1] till [10]
Parametrar |
Beskrivning |
|---|---|
min |
Det lägsta möjliga numret som kan väljas. |
max |
Det högsta möjliga antalet som kan väljas. |
Exempel
när startad
[Display a number between 1 and 10.]
skriv ut (välj slumpmässigt [1] till [10]) i konsolen ▶
när startad
[Display a decimal number between 1 and 10.5.]
ställ in utskriftsprecision till [Alla siffror v] i konsolen
skriv ut (välj slumpmässigt [1] till [10.5]) i konsolen ▶
runda talet#
Rapporteringsblocket runda tal rapporterar det givna talet avrundat till närmaste heltal, enligt standardreglerna för avrundning:
Om decimaltalet är 0,5 eller större avrundas talet uppåt.
Om decimaltalet är mindre än 0,5 avrundas talet nedåt.
(avrunda [0] till [0] decimaler)
Parameter |
Beskrivning |
|---|---|
antal |
Siffran att avrunda. |
decimaler |
Antalet decimaler att avrunda till. |
Exempel
när startad
[Display the rounded result of 10 / 3.]
ställ in utskriftsprecision till [0.01 v] i konsolen
skriv ut (avrunda ([10] [math_division v] [3]) till [1] decimaler) i konsolen ▶
matematiska funktioner#
Reporterblocket matematiska funktioner tillämpar en vald matematisk funktion på ett givet tal och returnerar resultatet. Det stöder operationer som absolutvärde, avrundning, kvadratrötter, trigonometriska funktioner, logaritmer och exponentiering.
[abs v] av [0]
Parameter |
Beskrivning |
|---|---|
fungera |
Den matematiska operationen som ska tillämpas på inmatningsvärdet:
|
antal |
Det tal som funktionen ska tillämpas på. |
Exempel
när startad
[Display the square root of 16.]
skriv ut ([sqrt v] av [16]) i konsolen ▶
atan2#
Reporterblocket atan2 rapporterar den inversa tangenten till Y/X som en vinkel i grader, vilket representerar vinkeln mellan den positiva X-axeln och punkten (X, Y).
(atan2 av x:[4] y:[3])
Parameter |
Beskrivning |
|---|---|
x |
Punktens horisontella position, mätt från origo (0,0). |
y |
Punktens vertikala position, mätt från origo (0,0). |
Exempel
när startad
[Calculate the angle from current position (4, 3).]
skriv ut (atan2 av x:[4] y:[3]) i konsolen ▶
resten#
Rapporteringsblocket rest rapporterar resten av divisionen mellan två värden.
rest av [0] / [0]
Parameter |
Beskrivning |
|---|---|
utdelning |
Talet som ska divideras. |
divisor |
Talet att dividera med. |
Exempel
när startad
[Display the remainder of 10 / 3.]
skriv ut (rest av [10] / [3]) i konsolen ▶
ansluta sig till#
Reporterblocket join rapporterar en enda sträng som kombinerar två inmatningssträngar.
(sätt ihop [apple] [banana])
parameter |
beskrivning |
|---|---|
sträng 1 |
Den första strängen att kombineras. |
sträng 2 |
Den andra strängen att kombinera. |
Exempel
när startad
[Display "VEXcode" on the Console.]
skriv ut (sätt ihop [VEX] [code]) i konsolen ▶
brev#
Reporterblocket bokstav rapporterar en sträng med ett tecken från den angivna positionen i den givna strängen.
(bokstav [1] av [apple])
parameter |
beskrivning |
|---|---|
placera |
Tecknets position i strängen (från och med 1). |
sträng |
Strängen att extrahera en bokstav från. |
Exempel
när startad
[Display the first letter of "drone".]
skriv ut (bokstav (1) av [drone]) i konsolen ▶
längd#
Reporterblocket längd rapporterar antalet tecken i den angivna strängen, inklusive mellanslag.
(längd av [apple])
parameter |
beskrivning |
|---|---|
sträng |
Strängen att mäta längden på. |
Exempel
när startad
[Count the number of characters in "VEX Robotics".]
skriv ut (längd av [VEX Robotics]) i konsolen ▶
innehåller#
Det booleska blocket innehåller rapporterar om den angivna strängen innehåller det angivna ordet eller tecknet.
Sant – Strängen innehåller det specifika ordet eller tecknet.
Falskt – Strängen innehåller inte det specifika ordet eller tecknet.
<[apple] innehåller [a]?>
parameter |
beskrivning |
|---|---|
sträng |
Huvudsträngen att söka inom. |
sökterm |
Ordet eller tecknet som ska kontrolleras inuti strängen. |
Exempel
när startad
[Check if "robotics" contains "bot".]
om <[robotics] innehåller [bot]?> då
skriv ut [The word contains "bot".] i konsolen ▶
annars
skriv ut [Not found.] i konsolen ▶
avsluta
konvertera#
Reporterblocket konvertera rapporterar värdet på ett tal som konverterats till den angivna typen, antingen som text eller ett tal.
text – Konverterar talet till en sträng. Tal måste vara i strängformat för att fungera med Strängoperator-block.
tal – Konverterar talet till ett decimalvärde.
(konvertera [0] till [text v])
parameter |
beskrivning |
|---|---|
värde |
Talet som ska konverteras. |
typ |
Typen att konvertera talet till:
|
Exempel
när startad
[Add any number to 5.]
fråga [Give me a number.] och vänta
skriv ut ((konvertera (svar) till [nummer v]) [math_plus v] [5]) i konsolen ▶