Advertisement
MrBlaise

Emelt informatika érettségi 2009 október - Útépités

Oct 13th, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.13 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. # Rostás Balázs - Emelt informatika érettségi 2009 október - Útépités
  4.  
  5. def masodperc(lista):
  6.  
  7.     return (lista[0]*3600) + (lista[1]*60) + (lista[2])
  8.  
  9. def ora(masodperc):
  10.     ora = masodperc // 3600
  11.     perc = (masodperc - ora * 3600) // 60
  12.     masodperc = masodperc - ora * 3600 - perc * 60
  13.     return [ora,perc,masodperc]
  14.  
  15. # 1. feladat
  16.  
  17. fajlBe = open("forgalom.txt", "r")
  18. autoSzam = fajlBe.readline()
  19. forgalomAdat = [sor.strip().split() for sor in fajlBe]
  20. forgalomAdat = [ list(int(elem) for elem in lista[:4]) + list(lista[4]) for lista in forgalomAdat ]
  21. """
  22. forgalomAdat = []
  23.  
  24. for sor in fajlBe:
  25.    lista = sor.strip().split()
  26.    forgalomAdat.append([int(lista[1]),int(lista[2]),int(lista[3]), lista[4]])
  27. """
  28. fajlBe.close()
  29.  
  30. print("1. feladat - forgalom.txt beolvasása - KÉSZ!")
  31.  
  32. # 2. feladat
  33. n = int(input("\n2. feladat - Kérem adja meg a jármű sorszámát: "))
  34. if forgalomAdat[n-1][4] == "F":
  35.     print('Az',n,'.jármű a Alsó város felé haladt.')
  36. else:
  37.     print('Az',n,'.jármű az Felső város felé haladt.')
  38.    
  39. # 3. feladat
  40. print("\n3. feladat:")
  41. utolso = []
  42. for i in range(len(forgalomAdat)-1, -1, -1):
  43.     if len(utolso) == 2:
  44.         break
  45.     if forgalomAdat[i][4] == "A":
  46.         utolso.append(forgalomAdat[i])
  47.        
  48. kul = masodperc(utolso[0])-masodperc(utolso[1])
  49. print("Az utolsó és az előtte lévő autó "+str(kul)+" másodperc különbséggel érte el az útszakasz kezdetét.")
  50.  
  51. # 4. feladat
  52. print("\n4. feladat:")
  53.  
  54. oraJarmu = {}
  55. fJarmu = 0
  56. aJarmu = 0
  57.  
  58. for elem in forgalomAdat:
  59.     oraJarmu[elem[0]] = []
  60.  
  61. for elem in forgalomAdat:
  62.     oraJarmu[elem[0]].append(elem)
  63.  
  64. for kulcs in oraJarmu.keys():
  65.     for lista in oraJarmu[kulcs]:
  66.         if lista[4] == "A":
  67.             aJarmu += 1
  68.         else:
  69.             fJarmu += 1
  70.            
  71.     oraJarmu[kulcs] = [aJarmu, fJarmu]
  72.     fJarmu = 0
  73.     aJarmu = 0
  74.  
  75.  
  76. for kulcs in oraJarmu.keys():
  77.     print("A(z) ", kulcs, ". órában ", oraJarmu[kulcs][0], " jármű érkezett Alsó város felől, míg ", oraJarmu[kulcs][1], " Felső város felől.", sep="")
  78.  
  79. # 5. feladat    
  80. print("\n5. feladat:")        
  81.  
  82. gyorsRendezett = sorted(forgalomAdat, key = lambda x: x[3])[:10]
  83.  
  84. for elem in gyorsRendezett:
  85.     if elem[4] == "F":
  86.         print("Útszakasra belépés: ", elem[0], ":", elem[1], ":", elem[2], " Felső felől érkezett, {0:.1f} m/s sebességgel.".format(1000/elem[3]), sep="")
  87.     else:
  88.         print("Útszakasra belépés: ", elem[0], ":", elem[1], ":", elem[2], " Alsó felől érkezett, {0:.1f} m/s sebességgel.".format(1000/elem[3]), sep="")
  89.  
  90. # 6. feladat    
  91.    
  92. fajlKi = open("also.txt", "w")
  93.  
  94. towardsA = []
  95.  
  96. for elem in forgalomAdat:
  97.     if elem[4] == "F":
  98.         elem.append(masodperc(elem)+elem[3])
  99.         towardsA.append(elem)
  100.        
  101. for i, elem in enumerate(towardsA):
  102.     if i < len(towardsA) - 1:
  103.         if towardsA[i+1][5] < elem[5]:
  104.             towardsA[i+1][5] = elem[5]
  105.  
  106. for elem in towardsA:
  107.     ido = ora(elem[5])
  108.     print(ido[0], ido[1], ido[2], file=fajlKi)
  109.        
  110. fajlKi.close()
  111.  
  112. print("\n6. feladat - also.txt létrehozása - KÉSZ!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement