slemiba

Prog - tesztverseny - Python

Apr 2nd, 2020
96
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. print("1. feladat")
  2. file=open("valaszok.txt")
  3. #első sor -> jó válaszok
  4. jo_valaszok=""
  5.  
  6. jo_valaszok=file.readline()
  7.  
  8.  
  9.  
  10. #összes többi sort beolvasni
  11. # listába úgy, ahogy van " "-el együtt
  12. # majd később dolgozunk vele, akkor majd
  13. # szétsplitteljük
  14. adatok=[]
  15.  
  16. for lines in open("valaszok.txt"):
  17.     adatok.append(lines)
  18.  
  19. adatok.pop(0)
  20.  
  21. #endof 1. feladat vége
  22. # jo_valaszok
  23. # adatok -> lista -> soronként beolvasott
  24.      
  25. print("2. feladat")
  26. print("A vetélkedőn " + str(len(adatok))+" versenyző indult.")
  27.  
  28.  
  29. # bekérjük az azonosítót
  30. # végig a listán
  31. # - lista elemeket egyesével feldaraboljuk " "
  32. # - az első részét megnézzük, hogy megegyezik-e a
  33. # bekért azonosítóval
  34. # ----> mert ha megegyezik akkor kiíratjuk a második
  35.  
  36. azon=input("3. feladat: A versenyző azonosítója =")
  37. v_valasz="" # versenyző válasza, 4. feladathoz kell
  38. for i in adatok:
  39.    
  40.     db=i.split(' ')
  41.     if (db[0]==azon):
  42.         print(db[1][0:14]+"   (a versenyző válasza)")
  43.         v_valasz=db[1][0:14]
  44.        
  45. print("4. feladat")
  46. print(jo_valaszok[0:14] + "   (a helyes megoldás)")
  47.  
  48. # ciklus 0:14-ig végig megyünk és összehasonlítjuk
  49. # a jo_valaszok és a v_valasz értékét
  50. # ---> ha megegyezik akkor +  jel
  51. # ---> ha nem egyezik meg, akkor " " jel
  52. sor=""
  53. for i in range(0,14):
  54.     if jo_valaszok[i]==v_valasz[i]:
  55.         sor=sor+"+"
  56.     if jo_valaszok[i]!=v_valasz[i]:
  57.         sor=sor+" "
  58.  
  59. print(sor+ "   (a versenyző helyes válaszai)")
  60.  
  61. feladat=int(input("5. feladat: A feladat sorszáma = "))
  62. # be feladat számát
  63. # jo_valaszok[feladat] =-> karakter változóba
  64.  
  65. # újra végig kell nézni a listát,
  66. # ismét felkell darabolni a " "
  67. # db[1]-el ebben a tippek
  68. # a db[1][feladat] kell megmézni, h megegyezik-e a jóval
  69. # jovalaszok számát növeljük, ha megegyezik
  70.  
  71. jov = jo_valaszok[feladat-1] # jó válasz
  72.  
  73. joszam=0 # jó válaszok száma
  74.  
  75. for i in adatok:
  76.     db=i.split(" ")
  77.     if db[1][feladat-1]==jov:
  78.         joszam=joszam+1
  79.  
  80. szazalek=joszam/len(adatok)*100
  81.  
  82. print("A feladatra "+str(joszam)+" fő, a versenyzők "+str(round(szazalek,2))+"%-a adott helyes választ.")
  83.  
  84.  
  85. print("6. feladat: A versenyzők pontszámának meghatározása")
  86. # listán végig, darabolunk
  87. # ellenőrizzük karakterenként, hogy jók-e a válaszok
  88. # pontszámot számolunk
  89. # kiprinteljük ---> fájlba
  90. pontszam=[]
  91. kod=[]
  92. filex=open("pontok.txt","w")
  93. for i in adatok:
  94.     db=i.split(" ")
  95.     pont=0
  96.     #jo_valaszok
  97.     for j in range(0,14):
  98.         if db[1][j]==jo_valaszok[j]:
  99.             if (j<5):
  100.                 pont+=3
  101.             if (j>=5 and j<10):
  102.                 pont+=4
  103.             if (j>=10 and j<13):
  104.                 pont+=5
  105.             if (j==13):
  106.                 pont+=6
  107.     filex.write(db[0]+" "+str(pont)+"\n")
  108.     pontszam.append(pont)
  109.     kod.append(db[0])
  110.    
  111. filex.close()
  112.  
  113. print("7. feladat")
  114. # 6. feladatban
  115. # pontszám lista
  116. # kódlistát
  117.  
  118.  
  119. # 7. feladat
  120. # megkeresem pontszám max -> hanyadik indexen
  121. # kiprintelem kódlistából-> ezt az indexen elemet
  122. # pop kitölöm mind a pontszám, mind a kódlistából
  123.  
  124. dbpsz=1 # hány db pontszám
  125. elozopsz=max(pontszam) #előző psz
  126. while (dbpsz<3):
  127.  
  128.     maxpsz=max(pontszam) #max pontszám érték
  129.     if elozopsz!=maxpsz:
  130.         dbpsz=dbpsz+1
  131.     ipsz=pontszam.index(maxpsz) #index
  132.     print(str(dbpsz)+". dij ("+str(maxpsz)+" pont): "+kod[ipsz])
  133.     elozopsz=maxpsz
  134.    
  135.     kod.pop(ipsz)
  136.     pontszam.pop(ipsz)
RAW Paste Data