Az I. 249. feladat (2010. október) |
I. 249. A reguláris kifejezés egy minta, amelyre akár több szöveg is ráillik, ezáltal jól használható olyan programokban, ahol bizonyos szövegek (e-mail cím, URL) szerkezetét kell ellenőrizni.
A reguláris kifejezésekről itt is tájékozódhatunk.
Az alábbi megbetűzött feladatokhoz keressük a megfelelő reguláris kifejezést. Ha több helyes válasz is lehetséges, a legkisebb karakterszámú kifejezés megadására kell törekedni.
A feladatok megoldása során az alábbi fájlokat használjuk, amelyeknek minden sora helyes:
-- kartya.txt: a fájl egyes sorai a francia kártya egy-egy lapját tartalmazzák szín, szóköz, érték formában (ékezet nélküli karaktereket használunk).\ Például: kor asz, karo kiraly, pikk 10, treff also.
-- email.txt: a fájl egyes sorai egy-egy e-mail címet tartalmaznak.\ Például: igazgato@iskola.hu.
-- telefon.txt: a fájl egyes sorai egy-egy telefonszámot tartalmaznak.\ Például: (30)555-55-55, illetve (46)555-555 formában.
-- rendszam.txt: a fájl egyes sorai rendszámokat tartalmaznak.\ Például: KUTYA-1, PAPA-05, ABC-123 (a betűk mind ékezet nélküliek).
Jelenítsük meg a megfelelő fájl azon sorait, amelyek eleget tesznek a következő feltételeknek:
a) a rendszámban szerepel az ,,A'' és a ,,3'' is;
b) három betű karakter, kötőjel, három számjegy karakter formájú rendszámokat tartalmaznak;
c) piros színű (kőr vagy káró) lapot tartalmaznak;
d) számozott lapokat tartalmaznak;
e) mobil telefonszámokat tartalmaznak (20, 30, 70 a körzetszám);
f) nem mobil telefonszámokat tartalmaznak;
g) a ,,@'' (kukac) és ,,.'' (pont) karakteren kívül csak az angol ábécé kisbetűit tartalmazzák és ,,.hu''-ra végződnek;
h) a vezetéknév.keresztnév@... szerkezetű e-mail címek közül azokat, ahol a vezetéknév kovacs.
A feladatok nem nehezedő sorrendben szerepelnek. A beküldött megoldásokat az egrep programmal ellenőrizzük, mely Windows és Linux operációs rendszerek alá egyaránt szabadon letölthető.
Egyszerű példa az egrep program használatára: Keressük meg a kodok.txt állomány azon sorait, amelyek legalább egy számjegyet tartalmaznak:
egrep "[0-9]" kodok.txt
Beküldendő az i247.txt dokumentum, amely betűjelzéssel azonosítva tartalmazza a fenti feladatok megoldását és a használt operációs rendszert nevét, illetve a kipróbáláshoz használt egrep program verziószámát.
(10 pont)
A beküldési határidő 2010. november 10-én LEJÁRT.
A megoldók kihasználhatták, hogy az adott állományok a megadott szerkezetű adatokat tartalmazzák, így erre építve sokszor nagyon tömör megoldásokat adtak.
Minden feladat esetén 1 pontot ért a helyes megoldás. A feladat szövege szerint a minél tömörebb megoldásra kellett törekedni. Ezt a szempontot a következőképpen vettük figyelembe az értékelésnél. A jó megoldásoknál az kifejezés karakterhosszát, a hibásaknál az adott részfeladatnál előforduló legnagyobb karakterhosszt vettük alapul és ezeket az értékeket összeadtuk. A legrövidebb megoldást adó és a nála összességében 20 karakternél nem hosszabb megoldások 2, a hosszabb, de 50 karakteren belüli megoldások 1 pontot értek.
Mintamegoldás:
Statisztika:
8 dolgozat érkezett. 10 pontot kapott: Szabó 928 Attila. 9 pontot kapott: Kalló Kristóf. 8 pontot kapott: 2 versenyző. 7 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 0 pontot kapott: 1 versenyző.
A KöMaL 2010. októberi informatika feladatai