Advertisement
MrBlaise

Emelt informatika érettségi 2011 október - Pitypang

Sep 30th, 2013
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.09 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. # Rostás Balázs - 2011. október - Pitypang
  4.  
  5. def arKiszamitas(lista):
  6.    
  7.     if lista[2] < 121:
  8.         szezon = 9000
  9.     elif lista[2] < 244:
  10.         szezon = 10000
  11.     else:
  12.         szezon = 8000
  13.  
  14.     szobaAr = (lista[3] - lista[2])*szezon
  15.     potagy = 0
  16.     reggeli = 0
  17.  
  18.     if lista[4] == 3:
  19.         potagy = (lista[3] - lista[2])*2000
  20.  
  21.     if lista[5] == 1:
  22.         reggeli = (lista[3] - lista[2])*lista[4]*1100
  23.  
  24.     bevetel = [lista[0], szobaAr+potagy+reggeli]
  25.  
  26.     return bevetel
  27.  
  28. def melyikHonap(napSzam):
  29.  
  30.     honapLista = {1:1, 32:2, 60:3, 91:4, 121:5, 152:6, 182:7, 213:8, 244:9, 274:10, 305:11, 335:12}
  31.  
  32.     for kulcs in sorted(honapLista.keys()):
  33.         if napSzam >= kulcs:
  34.             honap = honapLista[kulcs]
  35.  
  36.     return honap
  37.  
  38. def szabadSzobak(szobaSzam, napSorSzam, foglalasokAdat):
  39.  
  40.     for sor in foglalasokAdat:
  41.         if (sor[1] == szobaSzam and ( sor[2] <= napSorSzam <= sor[3] )):
  42.             return False
  43.            
  44.     return True
  45.        
  46.            
  47.    
  48.  
  49. # 1. feladat - pitypang.txt beolvasása
  50.  
  51. foglalasokFajl = open("pitypangmeg.txt", "r")
  52.  
  53. foglalasokSzama = int(foglalasokFajl.readline())
  54.  
  55. foglalasokAdat = [ line.strip().split() for line in foglalasokFajl ]
  56. foglalasokAdat = [ [ int(sor[0]), int(sor[1]), int(sor[2]), int(sor[3]), int(sor[4]), int(sor[5]), sor[6] ] for sor in foglalasokAdat ]
  57.  
  58. foglalasokFajl.close()
  59.  
  60. print("1. feladat - pitypang.txt beolvasása - KÉSZ\n")
  61.  
  62. # 2. feladat:
  63.  
  64. print("2. feladat:")
  65.  
  66. legHosz = []
  67. maxEddig = 0
  68.  
  69. for sor in foglalasokAdat:
  70.     if maxEddig < sor[3] - sor[2]:
  71.         maxEddig = sor[3] - sor[2]
  72.         legHosz = sor
  73.  
  74. print(legHosz[-1], " (", legHosz[2], ") - ", maxEddig, sep="")
  75.  
  76. # 3. feladat:
  77.  
  78. print("\n3. feladat:")
  79.  
  80. bevetelFajl = open("bevetel.txt", "w")
  81. evesBevetel = 0
  82.  
  83. for sor in foglalasokAdat:
  84.     bevetel = arKiszamitas(sor)
  85.     print(bevetel[0],":",bevetel[1], sep="", file=bevetelFajl)
  86.     evesBevetel += bevetel[1]
  87.  
  88. print("Az éves bevétel:", evesBevetel, "Ft")
  89.  
  90. bevetelFajl.close()
  91.  
  92. # 4. feladat:
  93.  
  94. print("\n4. feladat: ")
  95.  
  96. vendegEj = {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0}
  97.  
  98. for sor in foglalasokAdat:
  99.     for ej in range(sor[2], sor[3]):
  100.         vendegEj[melyikHonap(ej)] += sor[4]
  101.  
  102. for kulcs in sorted(vendegEj.keys()):
  103.     print(kulcs, ": ", vendegEj[kulcs], " vendégéj", sep="")
  104.  
  105. # 5. feladat:
  106.  
  107. print("\n5. feladat:")
  108.  
  109. elsoNap = int(input("Kérem adja meg a foglalás 1. napjának sorszámát: "))
  110. ejSzam = int(input("Kérem adja meg az eltöltendő éjszakák számát:  "))
  111. utolsoNap = elsoNap+ejSzam
  112. szabadSzoba = [str(szam) for szam in range(1,28)]
  113.  
  114. for szoba in range(1,28):
  115.     for nap in range(elsoNap, utolsoNap):
  116.         if not szabadSzobak(szoba, nap, foglalasokAdat):
  117.             szabadSzoba.remove(str(szoba))
  118.             break
  119.  
  120. if len(szabadSzoba)>0:
  121.     print("A szabad szobák sorszáma: ", end="")
  122.     print(", ".join(szabadSzoba))
  123.     print("Összesen:", len(szabadSzoba), "szoba szabad")
  124. else:
  125.     print("A megadott időben nincs szabad szoba.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement