Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##1. Olvassa be és tárolja el a valaszok.txt szöveges állomány adatait!
- print('1. feladat: Az adatok beolvasása')
- forras = open('valaszok.txt',encoding='windows-1250')
- lista= []
- for i in forras:
- sor = i.strip().split(' ')
- lista.append(sor)
- forras.close()
- #print(lista)
- print()
- ##2. Jelenítse meg a képernyőn a mintának megfelelően, hogy hány versenyző vett részt
- ## a tesztversenyen!
- print('2. feladat: A vetélkedőn',len(lista)-1,'versenyző indult.')
- print()
- ##3. Kérje be egy versenyző azonosítóját, és jelenítse meg a mintának megfelelően a hozzá
- ## eltárolt válaszokat! Feltételezheti, hogy a fájlban létező azonosítót adnak meg.
- def keres(azonosito,lista):
- for i in range(len(lista)):
- if lista[i][0] == azonosito:
- return lista[i][1]
- adat = input('3. feladat: A versenyző azonosítója = ')
- #print('3. feladat: A versenyző azonosítója =',adat)
- valasz = keres(adat,lista)
- kulcs = str(lista[0][0])
- print(keres(adat,lista),'(a versenyző válasza)')
- print()
- ##4. Írassa ki a képernyőre a helyes megoldást! A helyes megoldás alatti sorba „+” jelet tegyen,
- ## ha az adott feladatot az előző feladatban kiválasztott versenyző eltalálta, egyébként egy
- ## szóközt! A kiírást a mintának megfelelő módon alakítsa ki!
- print('4. feladat:')
- print(lista[0][0],'(a helyes megoldás)')
- #print(kulcs)
- #print(valasz)
- for j in range(len(kulcs)):
- if kulcs[j] == valasz[j]:
- print('+',end='')
- else:
- print(' ',end='')
- print(' (a versenyző helyes válaszai)')
- print()
- ##5. Kérje be egy feladat sorszámát, majd határozza meg, hogy hány versenyző adott a feladatra
- ## helyes megoldást, és ez a versenyzők hány százaléka! A százalékos eredményt a mintának
- ## megfelelően, két tizedesjeggyel írassa ki!
- def megoldas(sorszam,lista):
- szamol = 0
- for i in range(1,len(lista)):
- if lista[i][1][sorszam-1] == lista[0][0][sorszam-1]:
- szamol += 1
- else:
- szamol += 0
- return szamol
- melyik = int(input('5. feladat: A feladat sorszáma = '))
- #print('5. feladat: A feladat sorszáma =',melyik)
- print('A feladatra ',megoldas(melyik,lista),' fő, a versenyzők ',round(megoldas(melyik,lista)/(len(lista)-1)*100,2),\
- '%-a adott helyes \nválaszt.',sep='')
- print()
- ##6. A verseny feladatai nem egyenlő nehézségűek: az 1-5. feladat 3 pontot, a 6-10. feladat
- ## 4 pontot, a 11-13. feladat 5 pontot, míg a 14. feladat 6 pontot ér. Határozza meg az egyes
- ## versenyzők pontszámát, és a listát írassa ki a pontok.txt nevű állományba! Az állomány
- ## minden sora egy versenyző kódját, majd szóközzel elválasztva az általa elért pontszámot
- ## tartalmazza!
- def pontszam(azonosito,lista):
- szamol = 0
- for i in range(1,len(lista)):
- if lista[i][0] == azonosito:
- for j in range(len(lista[i][1])):
- if j in [0,1,2,3,4] and lista[i][1][j] == lista[0][0][j]:
- szamol +=3
- elif j in [5,6,7,8,9] and lista[i][1][j] == lista[0][0][j]:
- szamol +=4
- elif j in [10,11,12] and lista[i][1][j] == lista[0][0][j]:
- szamol +=5
- elif j in [13] and lista[i][1][j] == lista[0][0][j]:
- szamol +=6
- else:
- szamol += 0
- return szamol
- #print(pontszam('EM426',lista))
- print('6. feladat: A versenyzők pontszámának meghatározása')
- celfajl = open('pontok.txt','w',encoding='windows-1250')
- for i in range(1,len(lista)):
- eredmeny = pontszam(lista[i][0],lista)
- print(lista[i][0],eredmeny,file=celfajl)
- celfajl.close()
- print()
- ##7. A versenyen a három legmagasabb pontszámot elérő összes versenyzőt díjazzák. Például 5
- ## indulónál előfordulhat, hogy 3 első és 2 második díjat adnak ki. Így megtörténhet az is,
- ## hogy nem kerül sor mindegyik díj kiadására. Írassa ki a mintának megfelelően a képernyőre
- ## a díjazottak kódját és pontszámát pontszám szerint csökkenő sorrendben!
- print('7. feladat: A verseny legjobbjai:')
- pontszamok = []
- forrasfajl = open('pontok.txt',encoding='windows-1250')
- for i in forrasfajl:
- sor = i.strip().split()
- sor[1] = int(sor[1])
- pontszamok.append(sor)
- forrasfajl.close()
- #print(pontszamok)
- halmaz = set()
- for x in range(len(pontszamok)):
- halmaz.add(pontszamok[x][1])
- halmaz = sorted(list(halmaz),reverse = True)
- #print(halmaz)
- for y in halmaz:
- for z in range(len(pontszamok)):
- if pontszamok[z][1] == y and halmaz.index(y)+1 <= 3:
- print(halmaz.index(y)+1,'. díj (',y,' pont): ',pontszamok[z][0],sep='')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement