Regin{lis frduló 2011. nvember 26. A 11-13. szt{lysk feladata A 8-13. 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 h{rm különböző típusú védett területet jelöltek ki. Van, ahv{ mindenkinek tils behajtania (1-es típusú terület), van, ahv{ mindenki behajthat díjfizetés ellenében (2-es típusú terület). A harmadik (3-as típusú terület) engedélyköteles, ide az autók egy része nem mehet be, m{sik részük díjfizetés ellenében behajthat, és vannak lyan autók, amelyek ingyen bemehetnek. 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 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 és 3-as 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. 1
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ő. 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, 2 vagy 3 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 a behajt{si jgsults{g kódja, az elkövetett szab{lytalans{gk sz{ma, és végül a sz{mla aktu{lis összege. A behajt{si jgsults{g kódja a 3-as típusú védett területre való behajt{st szab{lyzza. Ha ez A, akkr az autó az adtt területre ingyen behajthat, ha B, akkr díjfizetés ellenében hajthat be, ha pedig C, akkr nem hajthat be. 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 A 2 800 Ez az autó az engedélyköteles területre ingyen behajthat. M{r két szab{lytalans{gt követett el, a sz{ml{j{nak pillanatnyi egyenlege 800 Ft bcdea C 0 300 Ez az autó az engedélyköteles területre nem hajthat be. 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. 2
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 33045 07:25:10 07:25:12 Ez azt jelenti, hgy az bcdea kódú autó 07:25:10-kr behajttt a 3-as típusú védett területre. Erre neki nem vlt jgsults{ga, teh{t szab{lytalans{gt követett el, büntetőpntjainak sz{ma teh{t 1-gyel nőtt. bcdea 43045 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. 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. 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 mérőp{r típusa szerint különböző módn dlgzz{k fel: A sebességméréskr nem rögzítik az adatkat az lvas.txt f{jlban. A védett területre történő ki- és behajt{skr m{sdik időpntként 24:00:00-t rögzítenek az lvas.txt-ben. Parklóba történő ki- és behajt{skr (hasnlóan az előzőhöz) m{sdik időpntként 24:00:00 szerepel az lvas.txt f{jlban. A parklóban tartózkdó gépkcsit a napi z{r{skr (24:00:00-kr) úgy kezelik, mintha a z{r{s pillanat{ban kihajttt vlna a parklóból, és a következő napn a nyit{s pillanat{ban (00:00:00-kr) belépett vlna. Ebben az esetben 00:00:00-kr nem halad el ténylegesen az autó a lelvasóp{r előtt, ezért a parklóba való behajt{sra vnatkzó adat nem jelenik meg a következő napi lvas.txt-ben. (Feltételezzük, hgy egyik autó sem tartózkdik flyamatsan 24 ór{n{l hsszabb ideig a parklóban.) 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 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! 3
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. A szab{lyszegések következményeit aznnal érvényesíteni kív{nja a v{rs önkrm{nyzata. A szab{lytalans{g elkövetése ut{n késlekedés nélkül értesítik az autóst. (Sms-t küldenek.) Az értesítéssel kapcslatban nektek nincs feladattk. Ha egy napn egy gépkcsival elkövették a próbaüzem kezdetétől sz{míttt m{sdik szab{lytalans{gt, ezt követően m{r az aznapi parkl{sért is felsz{mítj{k a díjat. 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 A 0 0 bcdea B 0 0 lvas.txt (első nap) abcde 24028 07:13:25 07:13:31 bcdea 33456 08:12:25 08:12:27 abcde 51234 08:34:12 08:34:13 abcde 61234 10:12:23 10:12:25 bcdea 43456 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 4
Kimenet chip.txt az első aktualiz{l{s ut{n: abcde A 2 800 bcdea B 0 300 Bemenet chip.txt az első aktualiz{l{s ut{n: abcde A 2 800 bcdea B 0 300 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 A 2 2000 bcdea B 0 600 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. 5
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: 120 pnt (Ebből a helyes dkument{l{s kmmentezés 15 pnt) Jó munkát kíván a Versenybizttság! 6