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. A sakk.txt fájl tartalmazza a 2021. februári ranglistát, 363272 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: férfi vagy F: nő), 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, 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 2021. februárjában. 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:

2. feladat

A listában 5855 é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

 

5. feladat

A Polgár család tagjai

Szilvia     2010      1052

Janos       1954      1952

Istvan      1944      2425

Sofia       1974      2450

Susan       1969      2577

Judit       1976      2675

 

6. feladat

Akik elérték Polgár Judit 2021. februári pontszámát:

Almasi Zoltan, Rapport Richard(*).

 

Megoldás

# 1. feladat
fajl = open(‘sakk.txt’)
forras = fajl.read().splitlines()
fajl.close()
# string.strip(): lepucolja a szóközöket a végéről, elejéről
# adatok[név,állampolgárság,nem,pontszám,születési év]
adatok = [[s[15:76].strip(),s[76:79],s[80],int(s[113:117]),int(s[126:131])] for s in forras if s[76:79]==’HUN’]

print(‘2. feladat:’)
# érdemes szétválogatni férfi és nő szerint, mert a köv. feladatok is igénylik
ferfiak = [adat for adat in adatok if adat[2]==’M’]
nok = [adat for adat in adatok if adat[2]==’F’]
print(‘A listában’,len(ferfiak),’és’,len(nok),’női sakkozónk szerepel’)

print(‘\n3. feladat:’)
max_ferfi_pont = max([adat[3] for adat in ferfiak])
max_ferfi = [adat for adat in adatok if adat[3]==max_ferfi_pont][0]
max_noi_pont = max([adat[3] for adat in nok])
max_no = [adat for adat in adatok if adat[3]==max_noi_pont][0]
print(‘A legmagasabb pontszámú férfi versenyzőnk’, max_ferfi[0],’\nPontszáma:’,max_ferfi[3],’\nSzületési éve:’,max_ferfi[4])
print(‘A legmagasabb pontszámú női versenyzőnk’, max_no[0],’\nPontszáma:’,max_no[3],’\nSzületési éve:’,max_no[4])

print(‘\n4. feladat:’)
lista = [1 for adat in nok if adat[4]>=1990 and adat[3]>=2000]
print(len(lista),’olyan női sakkozónk van, aki 1990-ben vagy az után született, és Élő-pontszáma legalább 2000′)

print(‘\n5. feladat:\nA Polgár család tagjai’)
polgarok = [adat for adat in adatok if ‘Polgar’ in adat[0]]
for ember in polgarok:
ember[0] = ember[0].split(‘,’)[1].strip()
polgarok.sort(key=lambda e:e[3])
for adat in polgarok:
print(adat[0],’ ‘*(10-len(adat[0])),adat[4],’\t’,adat[3]) # a táblázati rész miatt kell a szóközökkel való feltöltés

print(‘\n6. feladat: Akik elérték Polgár Judit 2021. februári pontszámát:’)
pjudit = [adat[3] for adat in polgarok if adat[0]==’Judit’][0] # Judit februári pontszáma
#print(pjudit)
jok = [[adat[0].split(‘ ‘),adat[3]] for adat in adatok if adat[3]>pjudit and adat[0]!=’Judit, Polgar’] # kell a név és a pontszám, de a név egy kételemű lista
#print(jok)
# a jok egy eleme így néz ki: [[veznetéknév vesszővel a végén],[keresztnév],pont]
kiir = []
for nev in jok:
ember = nev[0][0][:-1] + ‘ ‘ + nev[0][1]
if nev[1]>=2735:
ember += ‘(*)’
kiir.append(ember)
print(‘, ‘.join(kiir)+’.’)

News Reporter
situs bandar togel terbesar terpercaya nama 10 situs togel terpercaya situs totoslot hoki gacor 4d situs bandar togel macau terpercaya toto slot hoki gacor 4d situs totoslot gacor 4d bandar togel resmi terbesar situs toto togel 4d terpercaya situs toto togel macau 4d hadiah 10 juta terbesar situs tototogel totoslot hadiah macau 10 juta toto slot 4d hoki gacor situs toto slot gacor hoki 4d situs togel 4d toto slot 4d toto togel 4d demo akun slot pragmatic gacor 2022 https://hoteles.udg.mx/clubdeportivo/wp-includes/ situs tototogel 4d bandar macau terpercaya slot hoki gacor 4d Daftar Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10RB SITUS TOTO SLOT HOKI GACOR 4D Deposit Pulsa Dana 10rb situs bandar togel hadiah 4d 10 juta terbesar terpercaya 10 situs bandar togel hadiah 4d terbesar resmi http://adn.fcm.uncu.edu.ar/plugins/ TOTO SLOT 4D > Daftar Situs Judi Slot Online Hoki Gacor Terpercaya Deposit Dana situs tototogel 4d rdtoto https://udc.go.ug/toto-togel https://sfmu.edu.bd/wp-includes situs tototogel 4d situs slot toto hoki gacor 4d situs toto slot hoki gacor 4d Daftar Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10rb Tanpa Potongan Situs Toto Togel 4D Terpercaya Bandar Toto Slot Hadiah Terbesar Resmi 2022 TOTOTOGEL > Daftar Situs Toto Togel Toto Slot 4D Gacor Hadiah 10 Juta Bandar Macau Bet 100 Perak TOTOTOGEL > Daftar Situs Toto Togel Toto Slot 4D Gacor Hadiah 10 Juta Bandar Macau Bet 100 Perak Situs Slot Joker123 TOTO SLOT GACOR 4D Terpercaya Gampang Menang Maxwin JOKER123 > Daftar Situs Toto Slot Hoki Gacor 4D Gampang Maxwin 2022 Situs Toto Slot Gacor 4D Judi Slot Joker123 Terpercaya Gampang Menang Maxwin Situs Toto Slot Joker123 Deposit Pulsa 10rb Tanpa Potongan Resmi Terpercaya JOKER123 > Daftar Situs Judi Toto Slot Gacor 4D Deposit Pulsa 10rb JOKER123 Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10rb TOTO SLOT > Daftar Situs Judi Slot Joker123 Terpercaya Gacor Deposit Pulsa 10RB TOTO TOGEL TOTO SLOT Hoki Gacor 4D Situs Resmi Terpercaya TOTOTOGEL Daftar Situs Toto Slot Hoki Gacor 4D Bandar Hadiah Terbesar Resmi Terpercaya TOTO TOGEL 4D > Situs Bandar Togel Resmi Hadiah 10 Juta Resmi Terpercaya https://class.cjps.ntpc.edu.tw/storage/totoslot/index.php TOTO SLOT 4D > Daftar Situs Judi Hoki SLot Gacor 4D Resmi Gampang Maxwin Daftar Situs Toto Togel 4D Bandar Togel Hadiah 10 Juta Resmi Terpercaya Terbesar TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 Daftar SItus Slot Toto Gacor 4D Hoki Deposit Pulsa Dana 10rb TOTO SLOT HOKI GACOR 4D > Daftar Situs Judi Slot Online Gacor 2022 Terpercaya HOKI SLOT GACOR 4D > Situs Toto Slot Gacor Terpercaya Resmi 2022 SITUS TOTO SLOT HOKI GACOR 4D DEPOSIT PULSA 10RB TANPA POTONGAN situs slot deposit pulsa 10rb tanpa potongan
Situs Toto Slot Hoki Gacor 4D 2022 Gampang Menang Maxwin situs nexus slot hoki gacor 4d slot4d gacor deposit pulsa 10rb tanpa potongan nexus slot 4d situs slot deposit dana tanpa potongan resmi 2022 situs slot deposit dana pulsa tanpa potongan 10rb situs slot deposit dana pulsa tanpa potongan 10rb situs bandar togel terbesar terpercaya situs bandar togel terbesar terpercaya situs bandar togel terbesar terpercaya