Operators#
Invoering#
De Operator-blokken in VEXcode IQ (2e generatie) helpen de robot bij het werken met getallen en woorden. Deze blokken kunnen wiskundige problemen oplossen, waarden vergelijken, bepalen of voorwaarden waar of onwaar zijn en werken met tekenreeksen. Tekenreeksen kunnen worden gebruikt om waarden en woorden af te drukken.
Hieronder vindt u een lijst met beschikbare blokken:
wiskundige operator – Voert optellen, aftrekken, vermenigvuldigen of delen uit.
vergelijkingsoperator – Vergelijkt twee waarden met behulp van de operatoren groter dan, kleiner dan of gelijk aan.
logische operator – Evalueert meerdere voorwaarden met behulp van ‘en’ of ‘of’.
niet-operator – Keert een Booleaanse waarde om.
bereikoperator – Controleert of een getal binnen een bereik valt.
willekeurig kiezen – Genereert een willekeurig getal binnen een opgegeven bereik.
rond getal – Rondt een getal af naar het dichtstbijzijnde hele getal.
wiskundige functies – Past bewerkingen toe zoals worteltrekken, trigonometrie, logaritmen en machtsverheffing.
atan2 – Berekent de inverse tangens van y/x.
rest – Rapporteert het restant van een divisieoperatie.
join – Combineert twee strings tot één.
letter – Extraheert een teken uit een tekenreeks op basis van positie.
length – Geeft het aantal tekens in een tekenreeks weer.
bevat – Controleert of een tekenreeks een specifiek woord of teken bevat.
convert – Converteert een getal naar tekst, een geheel getal of een decimaal getal.
wiskundige operator#
Het math operator reporterblok voert basiswiskundige bewerkingen uit op de waarden die aan weerszijden van de operator worden geplaatst. Het retourneert een resultaat op basis van de afdrukprecisie van het project, die standaard op 0 decimalen staat, maar kan worden aangepast met behulp van de blokken set print precision on screen of set print precision on console.
([0] [math_plus v] [0])
Parameters |
Beschrijving |
|---|---|
waarde 1 |
Het eerste getal dat bij de bewerking is gebruikt. |
operator |
De wiskundige operatoren die je moet gebruiken:
|
waarde 2 |
Het tweede getal dat bij de operatie wordt gebruikt. |
Voorbeeld
wanneer gestart
[Perform basic addition and show two decimal places.]
stel afdrukprecisie in op [0.01 v] op scherm
druk ([10] [math_plus v] [10.5]) af op scherm ▶
vergelijkingsoperator#
Het Booleaanse blok vergelijkingsoperator geeft aan of de vergelijking tussen twee waarden waar of onwaar is.
Waar – De vergelijking is correct (bijv. 5 > 3 geeft Waar terug).
Onwaar – De vergelijking is onjuist (bijv. 2 ≥ 5 geeft Onwaar terug).
<[0] [math_equal v] [0]>
Parameter |
Beschrijving |
|---|---|
waarde 1 |
De eerste waarde om te vergelijken. |
operator |
De vergelijkingen die je moet gebruiken:
|
waarde 2 |
De tweede waarde om te vergelijken. |
Voorbeeld
wanneer gestart
[Turn right until the heading reaches 90 degrees.]
draai [rechts v]
wacht [0.5] seconden
wacht totdat <(rijkoers in graden) [math_greater_than v] [90]>
stop rijden
logische operator#
Het Booleaanse blok logische operator geeft aan of de logische voorwaarde tussen meerdere waarden waar of onwaar is.
Waar – De logische voorwaarde is voldaan.
Onwaar – De logische voorwaarde is niet voldaan.
<<> [en v] <>>
Parameter |
Beschrijving |
|---|---|
voorwaarde 1 |
De eerste Booleaanse voorwaarde die geëvalueerd moet worden. |
operator |
De te gebruiken logische operator: en geeft waar als beide voorwaarden waar zijn. of geeft waar als ten minste één voorwaarde waar is. |
voorwaarde 2 |
De tweede Booleaanse voorwaarde die geëvalueerd moet worden. |
Voorbeeld
wanneer gestart
[Display if the ◀ and ▶ buttons are pressed.]
altijd
wis scherm
stel cursor in op rij [1] kolom [1] op scherm
als <<Brain [◀ v] knop ingedrukt?> [en v] <Brain [▶ v] knop ingedrukt?>> dan
druk [Buttons pressed!] af op scherm ▶
einde
einde
niet operator#
De niet-operator in het Booleaanse blok keert het resultaat van een Booleaans blok om. Als de invoer waar is, geeft het onwaar terug, en als de invoer onwaar is, geeft het waar terug.
Waar – De invoerconditie zou normaal gesproken Onwaar rapporteren.
Onwaar – De invoerconditie zou normaal gesproken Waar rapporteren.
<niet <>>
Parameter |
Beschrijving |
|---|---|
voorwaarde |
De Booleaanse voorwaarde moet worden omgekeerd. |
Voorbeeld
wanneer gestart
[Turn until the robot is facing left. ]
altijd
als <niet <(rijkoers in graden) [math_greater_than v] [270]>> dan
draai [rechts v]
anders
stop rijden
schietbaanbeheerder#
Het Booleaanse blok bereikoperator geeft aan of een waarde binnen een opgegeven bereik valt.
Waar – Als de waarde binnen het bereik ligt.
Onwaar – Als de waarde buiten het bereik ligt.
<[0] [math_less_than v] [0] [math_less_than v] [0]>
Parameter |
Beschrijving |
|---|---|
eerste operator |
De te gebruiken vergelijkingsoperator:
|
waarde |
De te controleren waarde. |
tweede operator |
De te gebruiken vergelijkingsoperator:
|
Voorbeeld
wanneer gestart
[Turn and display when facing forward or back. ]
draai [rechts v] voor [360] graden ◀ en niet wachten
altijd
wis scherm
stel cursor in op rij [1] kolom [1] op scherm
als <[270] [math_greater_than v] (rijkoers in graden) [math_greater_than v] [90]> dan
druk [Facing backward!] af op scherm ▶
anders
druk [Facing forward!] af op scherm ▶
willekeurig kiezen#
Het willekeurige keuze-rapportageblok geeft een willekeurig positief of negatief getal weer tussen een minimum en een maximum. Het kan zowel de minimum- als de maximumwaarde retourneren. Bijvoorbeeld, het kiezen van 1 tot 10 kan elk geheel getal tussen 1 en 10 opleveren.
kies willekeurig [1] tot [10]
Parameters |
Beschrijving |
|---|---|
min |
Het laagst mogelijke getal dat gekozen kan worden. |
max |
Het hoogst mogelijke getal dat gekozen kan worden. |
Voorbeelden
wanneer gestart
[Display a number between 1 and 10.]
druk (kies willekeurig [1] tot [10]) af ▶
rond getal#
Het afrondingsblok geeft het opgegeven getal weer, afgerond naar het dichtstbijzijnde hele getal, volgens de standaard afrondingsregels:
Als het decimale getal 0,5 of groter is, wordt het naar boven afgerond.
Als het decimale getal kleiner is dan 0,5, wordt het naar beneden afgerond.
(rond [0] af op [0] decimalen)
Parameter |
Beschrijving |
|---|---|
nummer |
Het getal dat afgerond moet worden. |
decimalen |
Het aantal decimalen waarop afgerond moet worden. |
Voorbeeld
wanneer gestart
[Display the rounded result of 10 / 3.]
stel afdrukprecisie in op [0.01 v] op scherm
druk (rond ([10] [math_division v] [3]) af op [1] decimalen) af op scherm ▶
wiskundige functies#
Het rapporteerblok wiskundige functies past een geselecteerde wiskundige functie toe op een gegeven getal en geeft het resultaat terug. Het ondersteunt bewerkingen zoals absolute waarde, afronden, wortels trekken, goniometrische functies, logaritmen en machtsverheffing.
[abs v] van [0]
Parameter |
Beschrijving |
|---|---|
functie |
De wiskundige bewerking die op de invoerwaarde moet worden toegepast:
|
nummer |
Het getal waarop de functie moet worden toegepast. |
Voorbeeld
wanneer gestart
[Display the square root of 16.]
druk ([sqrt v] van [16]) af op scherm ▶
atan2#
Het atan2-reporterblok rapporteert de inverse tangens van Y/X als een hoek in graden, die de hoek weergeeft tussen de positieve X-as en het punt (X, Y).
(atan2 van x:[4] y:[3])
Parameter |
Beschrijving |
|---|---|
X |
De horizontale positie van het punt, gemeten vanaf de oorsprong (0,0). |
y |
De verticale positie van het punt, gemeten vanaf de oorsprong (0,0). |
Voorbeeld
wanneer gestart
[Calculate the angle from current position (4, 3).]
druk (atan2 van x:[4] y:[3]) af op scherm ▶
rest#
Het rest-rapportageblok geeft het restant van de deling tussen twee waarden weer.
(rest van [0] / [0])
Parameter |
Beschrijving |
|---|---|
dividend |
Het getal dat gedeeld moet worden. |
deler |
Het getal waarmee je moet delen. |
Voorbeeld
wanneer gestart
[Display the remainder of 10 / 3.]
druk (rest van [10] / [3]) af op scherm ▶
meedoen#
Het join-reporterblok rapporteert één enkele tekenreeks die twee invoertekenreeksen combineert.
(voeg [apple] [banana] samen)
parameter |
beschrijving |
|---|---|
string 1 |
De eerste reeks die gecombineerd moet worden. |
snaar 2 |
De tweede reeks die gecombineerd moet worden. |
wanneer gestart
[Display "VEXcode" on the screen.]
druk (voeg [VEX] [code] samen) af op scherm ▶
brief#
Het letter-rapportageblok rapporteert een tekenreeks van één teken vanaf de opgegeven positie in de gegeven tekenreeks.
(letter [1] van [apple])
parameter |
beschrijving |
|---|---|
positie |
De positie van het teken in de tekenreeks (beginnend bij 1). |
snaar |
De tekenreeks waaruit een letter moet worden geëxtraheerd. |
wanneer gestart
[Display the first letter of "Robot".]
druk (letter (1) van [Robot]) af op scherm ▶
lengte#
Het length-rapportageblok geeft het aantal tekens in de opgegeven tekenreeks weer, inclusief spaties.
(lengte van [apple])
parameter |
beschrijving |
|---|---|
snaar |
Het touwtje waarvan de lengte gemeten moet worden. |
Voorbeeld
wanneer gestart
[Count the number of characters in "VEX Robotics".]
druk (lengte van [VEX Robotics]) af op scherm ▶
bevat#
Het Booleaanse blok bevat geeft aan of de opgegeven tekenreeks het gegeven woord of teken bevat.
Waar – De tekenreeks bevat dat specifieke woord of teken.
Onjuist – De tekenreeks bevat dat specifieke woord of teken niet.
<[apple] bevat [a]?>
parameter |
beschrijving |
|---|---|
snaar |
De hoofdstring waarin gezocht moet worden. |
zoekterm |
Het woord of teken waarnaar in de tekenreeks gezocht moet worden. |
Voorbeeld
wanneer gestart
[Check if "robotics" contains "bot".]
als <[robotics] bevat [bot]?> dan
druk [The word contains "bot".] af op scherm ▶
anders
druk [Not found.] af op scherm ▶
einde
overzetten#
Het convert-rapportageblok geeft de waarde weer van een getal dat is geconverteerd naar het opgegeven type, hetzij als tekst of als getal.
tekst – Converteert het getal naar een tekenreeks. Getallen moeten in tekenreeksformaat zijn om te kunnen werken met tekenreeksoperator-blokken.
getal – Zet het getal om in een decimale waarde.
(converteer [0] naar [tekst v])
parameter |
beschrijving |
|---|---|
waarde |
Het getal dat moet worden omgerekend. |
type |
Het type waarnaar het getal moet worden geconverteerd:
|
Voorbeeld
wanneer gestart
[Display the robot's heading as it turns.]
draai [rechts v]
altijd
wis scherm
stel cursor in op rij [1] kolom [1] op scherm
druk (voeg [Currently facing: ] (converteer ([BrainInertial v] koers in graden) naar [tekst v]) samen) af op scherm ▶
wacht [0.1] seconden
einde