Az I. 534. feladat (2021. március) |
I. 534. A Nemzetközi Sakkszövetség (Fédération Internationale des Échecs, FIDE) honlapján elérhető a világ jelenleg és korábban versenyszerűen sakkozó játékosainak eredményességét mutató Élő-pontszám és a versenyzők néhány más adata. Töltsük le a 2021. februári ranglistát, melynek elérhetősége a következő: http://ratings.fide.com/download/standard_feb21frl.zip. Tömörítsük ki az állományt, majd mentsük a benne lévő szöveges állományt sakk.txt néven. Töröljük az állomány első sorát, így a megmaradt szöveg 363\(\displaystyle \,\)272 sakkozó adatait tárolja azonos formátumban.
A fájl táblázatos kinézetét szóközök segítségével alakították ki. Minden sor pontosan 135 karaktert tartalmaz (csak az angol ABC karakterei, valamint számok és írásjelek fordulnak benne elő). A 16–76. karakterhelyen található balra igazítva a versenyző neve, a 77–79. karakterhelyen a versenyző országának hárombetűs rövidítése (a magyaroknál a szokásos HUN), a 81. karakterhelyen a versenyző nemét jelző betű (angol rövidítéssel M vagy F), a 114–117. karakterhelyen a versenyző aktuális Élő-pontszáma, és a 127–130. karakterhelyen a versenyző születési éve. A többi adatra nem lesz szükségünk a feladatok megoldása során.
Készítsünk programot sakk néven, amely megoldja a következő feladatokat. A feladatok megoldása során mindig írjuk ki a feladat sorszámát. Törekedjünk a mintának megfelelő kommunikációra a felhasználóval. Az ékezetek nélküli kiírás is megfelelő.
1. Olvassuk végig a szöveges állományt, és tároljuk el a fájl azon sorainak adatait, amelyek magyar versenyzőkről szólnak, tehát a magyar versenyzők nevét, nemét, Élő-pontszámát és születési évét. A név ne tartalmazza a fájlban a név után írt szóközöket, az Élő-pontszám és a születési év legyen egész érték.
2. Adjuk meg, hogy hány női, és hány férfi sakkozónk szerepel a listában.
3. Adjuk meg a legmagasabb Élő-pontszámmal rendelkező férfi és női sakkozónk nevét, pontszámát és születési évét.
4. Állapítsuk meg és írjuk ki, hogy hány olyan női versenyzőink van, aki 1990-ben vagy az után született, és Élő-pontszáma legalább 2000.
5. A Polgár családból többen is szerepelnek a listán. Adjuk meg a családtagok keresztnevét, születési dátumát és Élő-pontszámát táblázatos elrendezésben. A lista legyen a családtagok Élő-pontszáma szerint növekvő sorrendben.
6. Polgár Judit minden idők legkiválóbb női sakkozója, 1989-től 2005-ig vezette a női ranglistát, legmagasabb Élő-pontszáma 2735 volt. Adjuk meg, hogy kik azok a sakkozóink, akik legalább akkora pontszámmal rendelkeznek, mint Polgár Judit jelenleg. A listában a nevek a magyar írásmód szerint szerepeljenek. Tegyünk zárójelek között egy csillagot (*) azoknak a versenyzőknek a neve után, akiknek pontszáma eléri Polgár Judit egykor legmagasabb, 2735-ös pontszámát. A lista elemeit vesszővel és szóközzel válasszuk el egymástól, és zárjuk őket ponttal.
Minta program kimenet:
1. feladat: az adatok beolvasása
2. feladat:
A listában 5855 férfi és 603 női sakkozónk szerepel 3. feladat:
A legmagasabb pontszámú férfi versenyzőnk Rapport, Richard
Pontszáma: 2763
Születési éve: 1996
A legmagasabb pontszámú női versenyzőnk Polgar, Judit
Pontszáma: 2675
Születési éve: 1976
4. feladat:
33 olyan női sakkozónk van, aki 1990-ben vagy az után született, és Élő-pontszáma legalább 2000
6. feladat: Akik elérték Polgár Judit mai pontszámát:
Almasi Zoltan, Rapport Richard(*).
Beküldendő egy i534.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.
(10 pont)
A beküldési határidő 2021. április 15-én LEJÁRT.
Mintamegoldásként Ürmössy Dorottya 12. évfolyamos, budapesti versenyző Python nyelvű megoldását (sakk.py), Horcsin Bálint 12. osztályos, budapesti diák Java nyelvű programját (sakk.java), Tóth Bálint 11. osztályos, kaposvári tanuló C++ programját (I.534.cpp) és Vadász Levente Márton 10. évfolyamos, budapesti versenyző C# nyelven készült megoldását (i534.cs) adjuk közre.
Statisztika:
10 dolgozat érkezett. 10 pontot kapott: Bagladi Milán Zsolt, Gyönki Dominik, Horcsin Bálint, Mályusz Etre Magnusz, Nagy 292 Korina, Orosz Réka Ildikó, Szabó Máté, Tóth 057 Bálint, Ürmössy Dorottya, Vadász Levente Márton.
A KöMaL 2021. márciusi informatika feladatai