Regin{lis frduló 2011. nvember 26. A 9-10. szt{lysk feladata A Kntrll nevű v{rs a parkl{s segítésére, a gyrshajtók felderítésére és a védett utc{k frgalm{nak ellenőrzésére kialakíttt egy figyelőrendszert. A próbaüzem sr{n az autók egyedi aznsítót (chipet) kaptak, a v{rsban pedig érzékelőket (lelvasókat) szereltek fel, melyek un. RFID r{diófrekvenci{s aznsít{ssal felismerik az előttük elhaladó autókat. Az érzékelőket minden esetben p{rs{val helyezték el, így ezek az autók halad{si ir{ny{t és sebességét is képesek regisztr{lni. Az adatkat flyamatsan egy közpnti adatb{zisba küldik. A rendszer rögzíti, hgy az autók mikr mennek be a parklóba és mikr jönnek ki, mikr hajtanak védett területre, és mennyi idő alatt haladnak el a sebességmérő {llm{sp{rk előtt. A szab{lytalanul közlekedő autókat aznsítani tudj{k. A rendszer kétféle szab{lytalans{gt észlelhet, ezek a következők: Gyrshajt{s, ami akkr következik be, ha az autó sebessége meghaladja az adtt mérőhelynél megengedett maxim{lis értéket. Védett területre való jgsulatlan behajt{s. A v{rsban két különböző típusú védett területet jelöltek ki. Az 1-es típusú területre tils behajtani, a 2-es típusúra díjfizetés ellenében mindenki behajthat. Az autósknak biznys tevékenységekért fizetniük kell. A fizetendő összeget a rendszer a lelvasóktól begyűjtött adatkból autmatikusan kisz{mlja és az autós sz{ml{j{hz hzz{adja. Fnts a gépkcsitulajdnsk együttműködése, ezért a próbaüzemben résztvevő autósknak a parkl{s ingyenes, ha az autó maximum egy alkalmmal követett el szab{lytalans{gt. A m{sdik szab{lyszegés ut{n a következő naptól a parkl{sért m{r fizetni kell, minden megkezdett ór{ért 200 Ft-t. (Parklni csak a kijelölt parklóban tudnak az autósk.) A védett (2-es típusú) területre való behajt{s díja egységesen 300 Ft alkalmanként. Amelyik autó 5-nél több szab{lytalans{gt követ el, annak egyszeri 20.000 Ft büntetést írnak a sz{ml{j{hz. (A sz{ml{t az autósk a próbaüzem végén egyenlítik ki.) A lelvasókat 5 sz{mjegyű egyedi aznsítóval l{tt{k el. A p{rnként elhelyezett lelvasók utlsó négy sz{mjegye megegyezik. Az első sz{mjegy arra utal, hgy milyen céllal telepítették az eszközt. Az 1-es és 2-es sz{mjeggyel kezdődő lelvasók sebességmérést végeznek, a 3-sal és 4-sel kezdődők az engedélyhez kötött behajt{st ellenőrzik, az 5-sel és 6- sal kezdődőek a parklók ellenőrzését segítik. A védett területre történő behajt{sn{l és a parkl{sn{l az érkező kcsi először a kisebb srsz{mú lelvasóval tal{lkzik. A sebesség mérésére telepített lelvasóp{rk t{vls{ga 100 méter, így a lelvastt időkből az autók sebessége meg{llapítható. A lelvasó helyén megengedett legnagybb sebességet a lelvasó kódj{nak 2. és 3. sz{mjegye tartalmazza, ez 40, 50 vagy 60 lehet, és km/h egységben értendő. 1
A frgalm elől védett területek típus{t (típuskódj{t) a lelvasóp{r kódj{nak 2. sz{mjegye tartalmazza. (Ez 1 vagy 2 lehet a kr{bban leírtaknak megfelelően.) Pl.: Ha egy autó a 31564 kódú kapun{l {tmegy, szab{lytalans{gt követ el, mert lyan védett területre megy be, ahv{ mindenkinek tils behajtania. A parklók bej{rat{n{l elhelyezett lelvasók elsőtől különböző sz{mjegyeihez nem tartzik külön jelentés. A védett területeken is lehetnek parklók és a sebesség ellenőrzését végző lelvasók. Bemeneti adatk A chip.txt f{jl minden sra egy autó adatait tartalmazza. A srban első helyen az autó 5 karakteres egyedi aznsítója szerepel, ezt követi az elkövetett szab{lytalans{gk sz{ma, és végül a sz{mla aktu{lis összege. A f{jlnak annyi sra van, ah{ny autó részt vesz a próbaüzemben. (Max. 100 db) A srkban az adatkat egy-egy szóköz v{lasztja el. Pl.: abcde 2 800 Ez az autó m{r két szab{lytalans{gt követett el, a sz{ml{j{nak pillanatnyi egyenlege 800 Ft Ez az autó még nem követett el szab{lytalans{gt nem követett el, a sz{ml{j{nak pillanatnyi egyenlege 300 Ft Az lvas.txt f{jl tartalmazza a lelvasó készülékektől az előző nap 24 ór{j{ban begyűjtött adatkat. Ennek minden sra egy készülékp{r egy autóval kapcslats adatait mutatja. A sr elején az autó aznsítója szerepel, ezt követi annak a lelvasónak az aznsítója, amely előtt az autó először elhaladt. Ezut{n következnek a lelvasók előtti elhalad{s időpntjai óra:perc:m{sdperc frm{ban. A m{sdik lelvasó kódja nem szerepel, mert az az első kódj{ból meg{llapítható. Az adatkat a srkban egy-egy szóköz v{lasztja el. Pl.: abcde 15045 05:23:12 05:23:21 Ez azt jelenti, hgy az abcde kódú autó egy sebességmérőp{r előtt haladt el. A 15045 kódú lelvasó előtt 05:23:12 időpntban, a 25045 kódú lelvasó előtt 05:23:21 időpntban. A két lelvasó közti 100 métert 9 m{sdperc alatt tette meg. Egy óra alatt 40 km-t tenne meg. Sebessége teh{t kisebb, mint az itt megengedett 50 km/h. abcde 54511 09:03:02 09:03:07 Ez azt jelenti, hgy az abcde kódú autó 09:03:02-kr behajttt a parklóba. bcdea 31045 07:25:10 07:25:12 Ez azt jelenti, hgy az bcdea kódú autó 07:25:10-kr behajttt a 1-es típusú védett területre. Ide tils behajtania, teh{t szab{lytalans{gt követett el, büntetőpntjainak sz{ma teh{t 1-gyel nőtt. bcdea 41045 07:35:20 07:35:22 Ez azt jelenti, hgy az bcdea kódú autó 07:35:20-kr kijött a védett területről. Semmit nem tesz a rendszer, mert a jgsults{gk ellenőrzése behajt{skr megtörtént. 2
abcde 64511 14:13:02 14:13:07 Ez azt jelenti, hgy az abcde kódú autó 14:13:02-kr kijött a parklóból. A parklóban eltöltött 6 (5-nél több) megkezdett ór{t. Mivel az autónak m{r vlt két szab{lytalans{ga, ezért a parkl{sért m{r 6*200=1200 frintt hzz{ír a rendszer a sz{ml{j{hz, így az egyenlege 2000 Ft lesz. A lelvasóp{rk telepítése minden esetben úgy történt, hgy a gépkcsik vagy mindkettő előtt elhaladnak, vagy egyik előtt sem. Feltételezzük, hgy csak a rendszerhez tartzó lelvasók küldhetnek adatt, és a küldött adatk minden esetben helyesek. A parklóba történő belépés és kilépés időpntja az első érzékelő előtti elhalad{s ideje (az adtt srban szereplő első időpnt). A parklókat éjjel 11:00:00 és 01:00:00 között lez{rj{k. (Ebben az időszakban nem lehet behajtani, és tt tartózkdni sem.) Ugyanebben az időszakban díjfizetés nélkül behajthatnak az autósk mindkét típusú védett területre. Azkat a méréseket, amelyek a nap z{r{sa előtt elkezdődnek, de nem fejeződnek be (az autó 24:00:00-kr egy lelvasóp{r két tagja között van), a rendszer nem rögzíti. (Nem szerepelnek az lvas.txt f{jlban.) A napi adatz{r{s időpntj{t és az egyéb szab{lykat a próbaüzemben résztvevő autósk ismerik. Egy lelvasó egy időpntban több chip lelvas{s{ra és az adatainak a tv{bbít{s{ra képes. A lelvas{s m{sdperc pntss{gú, a sebességtúllépés hat{r{nak a sz{ml{s{n{l a kerekítéseket az autós jav{ra végzik! Kimeneti adatk A próbaidőszak alatt minden nap megtörténik a z{r{s, ezt követi a chip.txt aktualiz{l{sa, az utlsó lvas.txt f{jl adatainak alapj{n az előző napi chip.txt felülír{sa. Az autósk az interneten t{jékzódhatnak a szab{lysértéseik sz{m{ról és a sz{ml{juk egyenlegéről. Ez úgy valósul meg, hgy a képernyőn lévő Megjelenít feliratra kattintva a chipkód beír{sa ut{n megjelennek az aktu{lis (az előző nap lez{r{sa ut{ni) adatk. Feladat Olyan prgramt kell írntk, amelyik az előző napi chip.txt tartalm{t az adtt lez{rt napra vnatkzó lvas.txt adatai alapj{n módsítja. A prgramnak alkalmasnak kell lennie arra is, hgy a próbaüzemben résztvevők lekérdezhessék a saj{t aktu{lis adataikat a kr{bban leírtaknak megfelelően. Példa Bemenet chip.txt (a próbaüzem kezdetén minden autós tiszta lappal indul) abcde 0 0 3
bcdea 0 0 lvas.txt (első nap) abcde 24028 07:13:25 07:13:31 bcdea 32456 08:12:25 08:12:27 abcde 51234 08:34:12 08:34:13 abcde 61234 10:12:23 10:12:25 bcdea 42456 11:24:23 11:24 25 abcde 31023 12:10:24 12:10:29 cdeab 15023 13:12:24 13:12:34 abcde 41023 13:24:12 13:24:13 abcde 51245 14:00:00 14:00:03 abcde 61234 17:22:12 17:22:13 Kimenet chip.txt az első aktualiz{l{s ut{n: abcde 2 0 Bemenet chip.txt az első aktualiz{l{s ut{n: abcde 2 0 lvas.txt (m{sdik nap) abcde 16045 05:23:12 05:23:21 abcde 54511 09:03:02 09:03:07 bcdea 32045 07:25:10 07:25:12 bcdea 42045 07:35:20 07:35:22 abcde 64511 14:13:02 14:13:07 Kimenet chip.txt (a m{sdik nap adatainak feldlgz{sa ut{n) abcde 2 1200 bcdea 0 600 4
Beadandó A prgram frr{skódja (a prgramz{si környezettől függően a frr{skód több f{jl is lehet, esetleg mapp{k is tartzhatnak hzz{ és a lefrdíttt rfid.exe {llm{ny. A bemeneti adatkat tartalmazó f{jlk mindig az aktu{lis (fejlesztői környezetben az alapértelmezett) könyvt{rban tal{lhatóak. A kimeneti f{jlkat is ide kell menteni. (A prgram kódja nem tartalmazhat abszlút elérési útvnalat.) Feltételezzük, hgy a bemeneti f{jlkban szereplő adatk minden esetben helyesek. (A bemeneti adatk helyességét a prgramnak nem kell vizsg{lnia.) A feladat alapötlete Szedl{k M{té (BME II. éves hallgató) az ISZE OKA XVIII (NTP-OKA-XVIII-023) t{mgat{sú területi (rsz{gs) tehetségsegítő h{lózat kialakít{s{ra ir{nyuló prgramj{nak keretében szervezett előad{sa nym{n született. Kódl{si alapelvek A frr{skód minőségét is értékeljük. Ir{nyelvek, szempntk: Egységes kódl{si szab{lyk az aznsítókra: a v{ltzók egységes elnevezése (kis- és nagybetűk vagy m{s speci{lis karakterek haszn{lata), az szt{lyk egységes elnevezése (bjektum-rient{lt prgramnyelv esetén, pl. C++), a függvények és elj{r{sk tartalmra utaló elnevezése, a prgramkód egységes struktur{lts{ga, taglts{ga. A kód minősége (könnyen emberek sz{m{ra érhető illetve karbantartható kód): {ttekinthető, lehetőség szerint rövid elj{r{sk, függvények, f{jlk, beszédes, tömör elnevezésű aznsítók, bjektum-rient{lt nyelveknél glb{lis v{ltzók mellőzése. Kmmentezés: A kmmentezés elsődleges célja, hgy a prgramban a miért? kérdésre adjn v{laszt. (A mit? kérdésre az aznsítók megfelelő elnevezése és a megfelelően struktur{lt kód, a hgyan? kérdésre pedig az {ttekinthető frr{skód ad v{laszt.) A túlz{sba vitt kmmentezés csökkenti az {ttekinthetőséget, a túl kevés kmment nehezíti a megértést. Elv{r{s a v{ltzók, szt{lyk, függvények és elj{r{sk szerepének rövid, értelemszerű kmmentezése. Elérhető pntsz{m: 100 pnt (Ebből a helyes dkument{l{s kmmentezés 15 pnt) Jó munkát kíván a Versenybizttság! 5