Övning 2

Om inmatning
I Java ser man på inmatningskällor som strömmar av tecken. Det fungerar som ett löpande band där tecknen kommer åkande. Problemet är att vi i de flesta fall inte vill ta emot tecknen just när det kommer (datorspel är i princip enda undantaget). Man vill endast bearbeta tecknen som skrivits när vi är redo att te emot dem i lämplig variabel. Lösningen är att man lägger till en buffer som mellanlagrar de tecken som skrivits in tills man behöver dem. Om man använder liknelsen om det löpande bandet hamnar tecknen i en korg från vilken man kan hämta dem när de behövs.

Allt detta följer med Java i Io paketet och sätts upp automatiskt när ett Java program startar. Problemet är att mellanslag, tryckningar på returtangenten etc ska tolkas på lite olika sätt om man vill ha heltal, ord eller rader. I princip är det inget svårt att göra men det är väldigt tråkigt att programmera. I kursen använder vi därför klassen Mio som kapslar in det mesta av dessa detaljer. Själva namnet Mio kommer från det språk som Nada lånade idéer av när de skulle skriva Mio. Med fint datorord säger man att de portade eller exporterade koden till java. Percis som vanligt med datortermer är poängen med ordet att utomstående inte ska förstå vad man menar....

Mio algoritmen är:
1) Kolla om det finns tecken i inmatningsbuffern.
2a) Om det finns tecken fortsätter vi till 3
2b) Saknas det tecken frågar vi användaren. Dvs vi visar en inte så pedagogisk blinkande markör (det är därför man alltid ska ha med ledtexter som förklarar vad man vill ha inskrivet). Tecken kan skrivas in tills användare trycker på enter tangenten. När enter tangenten blir intryck byts rad i utskriftsfönstret och vi hoppar tillbaka till 1 (man kan ju trycka enter utan att ha skrivit in något alls).
3) Mio bearbetar de tecken som finns och försöker konvertera till den efterfrågade typen. Behövs inte alla tecken ligger de som blir över kvar i inmatningsbuffern. Blir det fel skrivs felmedelande och hopp sker till 2b eller programavbrott beroende på vilken typ av fel det var.
Läs mer om Mio.

Har ni några frågor eller kommentarer om texten får ni gärna höra av er till Per-Anders Staav