# Vragen en toetsenbordinvoer [Programmeergidsen](LEESMIJ.md) **Invoer** is informatie die iemand je programma geeft. De **vraagtekst**, ook *prompt* genoemd, is de vraag die het toont; het **antwoord** is wat je teruggeeft. De host kan een tekstvraag of een grafisch invoervak tonen. Een **overlay** is een vak dat over het bestaande beeld verschijnt. **Inclusieve grenzen** tellen de eindpunten mee: bij minimum 1 en maximum 5 mogen 1 en 5 dus ook. **Eindig** sluit oneindigheid en ongeldige getalwaarden uit. **Witruimte trimmen** verwijdert spaties en vergelijkbare tekens aan het begin en einde. **Normaliseren** brengt een geaccepteerde schrijfwijze naar één afgesproken vorm, bijvoorbeeld het antwoord `"2,5"` naar `2.5`. **Exponentnotatie** in een getalantwoord, zoals `1e2`, betekent één keer tien tot de tweede macht: 100. Een teken is `+` of `-`. Dit zijn regels voor het beantwoorden van een vraag; daardoor is `1e2` nog geen geldige getalliteral in Pliro-broncode. Een bepaald invoervak kan beperken wat je mag typen. ## Invoerfuncties | Nederlandse aanroep | Canonieke ID | Resultaat | Vereisten | |---|---|---|---| | `vraag(vraagtekst)` | `input.readLine` | `Text` | Vraagtekst is `Text`. | | `vraagGetal(vraagtekst, minimum, maximum)` | `input.readNumber` | `Number` | Tekst en eindige, geordende, inclusieve getalgrenzen. | | `vraagJaNee(vraagtekst)` | `input.readBoolean` | `Boolean` | Vraagtekst is `Text`. | | `kies(vraagtekst, opties)` | `input.choose` | `Text` | Tekst en 1 tot en met 100 unieke, niet-blanke tekstopties. | Invoer wacht coöperatief op de consolevraag of grafische bediening van de host. De runtime controleert en converteert het antwoord. Getalantwoorden worden getrimd; één decimale komma zonder punt wordt een punt. De antwoordparser accepteert ook een teken en exponentnotatie voor eindige getallen, al kan de hostbediening de invoer beperken. Dit verruimt de getalliterals in broncode niet. Een keuze is exact één van de opgegeven teksten; uniekheid is hoofdlettergevoelig. Console-invoer voor ja accepteert `true`, `yes`, `y`, `waar`, `ja`, `j` of `1`; voor nee `false`, `no`, `n`, `onwaar`, `nee` of `0`, ongeacht hoofdletters en omringende witruimte. Grafische hosts bieden begrensde ja/nee- en keuzebediening. Antwoorden zijn maximaal 64 KiB geldige [UTF-8](../begrippen/utf-8.md). Datuminvoer is nog niet beschikbaar. | Nederlandse aanroep | Canonieke ID | Resultaat | |---|---|---| | `toetsIngedrukt(toets)` | `input.keyDown` | `Boolean` | De toetsnaam is niet-lege tekst. De overdraagbare spelnamen zijn `"left"`, `"right"`, `"up"`, `"down"` en `"space"`. Native grafische hosts herkennen ook namen zoals `"enter"`, `"escape"`/`"esc"`, `"backspace"` en afzonderlijke ASCII-letters en cijfers. Een toets die een host niet aanbiedt, geldt als niet ingedrukt. Toetsnamen zijn gegevenswaarden en worden niet vertaald. ```text als toetsIngedrukt("left"): zet x = x - snelheid ``` De host bemiddelt de invoer; broncode leest niet rechtstreeks het toetsenbord. ## Gerelateerde lemma’s [Syntaxis en waarden](../syntaxis/LEESMIJ.md) · [Ingebouwde functies](../ingebouwde-functies/LEESMIJ.md) · [Programmeergidsen](LEESMIJ.md)