Informatika2-2016/Gyakorlat11
A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2016. április 28., 04:01-kor történt szerkesztése után volt.
Feladatok
Állapotgép
Töltsük le az alábbi adatfile-t: raw_data.txt
A file tartalma egy rövid szöveg begépelése alatt történt billentyû lenyomásokat kódolja. Az érdekes rész az 5. sortól kezdõdik:
- Az elsõ szó az esemény, a számunkra érdekesek a keydown és keyup események, ezek rendre a billentyû lenyomás és felengedés.
- A következõ három szám a karakter kódja, innen a 2. (azaz a sorban 3. elem) a megbízható, használjuk ezt.
- Az igaz-hamis érték a kis / nagy betûre vonatkozik, de mi ezzel most ne foglalkozzunk.
- Az utolsó elem az érdekes még számunkra, ez az esemény idõpontja (pontosan az 1970 január 1. óta eltelt milliszekundumok).
A feladat az, hogy úgy dolgozzuk fel ezt az adathalmazt, hogy a billentyû lenyomások és felengedések közti idõt megkapjuk. Csak egy ilyen idõsor érdekel minket, a sorrend legyen a lenyomás pillanata szerint. Például az eleje így nézne ki:
145 80 74 ...
A 145-öt az alábbi két sorból kapjuk:
keydown 16 16 0 true 1444121075394 keyup 16 16 0 false 1444121075539
majd a 80-at:
keydown 84 84 0 true 1444121075462 keyup 84 84 0 false 1444121075542
a 74-et:
keydown 72 72 0 false 1444121075693 keyup 72 72 0 false 1444121075767
Az így kapott számsort írjuk egy kimenet.txt file-ba!
Segítség:
Rengeteg módon megoldható a feladat, ez csak egy ötlet:
- Tároljuk a már lenyomott és felengedésre váró gombokat egy szótárban.
- Ha megérkezett egy várt gomb felengedése akkor mentsük a lenyomás idõtartalmát, majd töröljük a szótárból.
Bónusz: rekonstruáljuk a beírt szöveget.