trds

12decembrie2020

Dec 12th, 2020 (edited)
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.06 KB | None | 0 0
  1. capacitateVagonCalatori = 80
  2. greutatePersoana = 0.08
  3. incasarePerCalator = 100
  4. capacitateVagonMarfaTonaj = 50
  5. capacitateVagonMarfaVolum = 300
  6. incasareTona = 40
  7. putereLocomotiva = 1000
  8. costLocomotiva = 1000
  9. densitateCereale = 0.6
  10. densitateCombustibil = 0.84
  11. densitateCiment = 2.4
  12. densitateLichide = 1
  13. densitateLemn = 9.2
  14. densitateCarbune = 1.6
  15. densitateSpuma = 0.32
  16. nrPersMinim = 30
  17. tonajminim = 100
  18. masavagcalatori = 85
  19. masavagmarfa = 55
  20. distanta = 480
  21.  
  22.  
  23. def citire():
  24.     p = int(input("Introduceti nr calatori="))
  25.     tc = float(input("Introduceti tonaj cereale="))
  26.     tcbl = float(input("Introduceti tonaj combustibili="))
  27.     tcm = float(input("Introduceti tonaj ciment="))
  28.     tlc = float(input("Introduceti tonaj lichide="))
  29.     tlm = float(input("Introduceti tonaj lemn="))
  30.     tcb = float(input("Introduceti tonaj carbune="))
  31.     ts = float(input("Introduceti tonaj spuma poliuretanica="))
  32.     t = (p, tc, tcbl, tcm, tlc, tlm, tcb, ts)
  33.     return t
  34.  
  35.  
  36. def validare(t):
  37.     s = t[1] + t[2] + t[3] + t[4] + t[5] + t[6] + t[7]
  38.     if t[0] >= nrPersMinim and s >= tonajminim:
  39.         return True
  40.     else:
  41.         return False
  42.  
  43.  
  44. def afisare(t):
  45.     print(
  46.         "Trenul are {} calatori si marfa(in tone): {} cereale, {} combustibili, {} ciment, {} lichide, {} lemn, {} carbune, {} spuma poliuretanica".format(
  47.             t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7]))
  48.  
  49.  
  50. def determinareNrVagoanePers(t):
  51.     nrvc = None
  52.     if t[0] % capacitateVagonCalatori == 0:
  53.         nrvc = t[0] // capacitateVagonCalatori
  54.     else:
  55.         nrvc = t[0] // capacitateVagonCalatori + 1
  56.     return nrvc
  57.  
  58.  
  59. def determinareNrVagoaneMarfa(t):
  60.     k = 0
  61.     volumCereale = t[1] / densitateCereale
  62.     cereale1 = volumCereale / capacitateVagonMarfaVolum
  63.     cereale2 = volumCereale // capacitateVagonMarfaVolum
  64.     if cereale1 == cereale2 and cereale1 != 0:
  65.         k = k + cereale2
  66.     elif cereale1 != cereale2:
  67.         k = k + 1 + cereale2
  68.  
  69.     volumCombustibil = t[2] / densitateCombustibil
  70.     combustibil1 = volumCombustibil / capacitateVagonMarfaVolum
  71.     combustibil2 = volumCombustibil // capacitateVagonMarfaVolum
  72.     if combustibil1 == combustibil2 and combustibil1 != 0:
  73.         k = k + combustibil2
  74.     elif combustibil1 != combustibil2:
  75.         k = k + 1 + combustibil2
  76.  
  77.     volumCiment = t[3] / densitateCiment
  78.     ciment1 = volumCiment / capacitateVagonMarfaVolum
  79.     ciment2 = volumCiment // capacitateVagonMarfaVolum
  80.     if ciment1 == ciment2 and ciment1 != 0:
  81.         k = k + ciment2
  82.     elif ciment1 != ciment2:
  83.         k = k + 1 + ciment2
  84.  
  85.     volumLichide = t[4] / densitateLichide
  86.     lichide1 = volumLichide / capacitateVagonMarfaVolum
  87.     lichide2 = volumLichide // capacitateVagonMarfaVolum
  88.     if lichide1 == lichide2 and lichide1 != 0:
  89.         k = k + lichide2
  90.     elif lichide1 != lichide2:
  91.         k = k + 1 + lichide2
  92.  
  93.     volumLemn = t[5] / densitateLemn
  94.     lemn1 = volumLemn / capacitateVagonMarfaVolum
  95.     lemn2 = volumLemn // capacitateVagonMarfaVolum
  96.     if lemn1 == lemn2 and lemn1 != 0:
  97.         k = k + lemn2
  98.     elif lemn1 != lemn2:
  99.         k = k + 1 + lemn2
  100.  
  101.     volumCarbune = t[6] / densitateCarbune
  102.     carbune1 = volumCarbune / capacitateVagonMarfaVolum
  103.     carbune2 = volumCarbune // capacitateVagonMarfaVolum
  104.     if carbune1 == carbune2 and carbune1 != 0:
  105.         k = k + carbune2
  106.     elif carbune1 != carbune2:
  107.         k = k + 1 + carbune2
  108.  
  109.     volumSpuma = t[7] / densitateSpuma
  110.     spuma1 = volumSpuma / capacitateVagonMarfaVolum
  111.     spuma2 = volumSpuma // capacitateVagonMarfaVolum
  112.     if spuma1 == spuma2 and spuma1 != 0:
  113.         k = k + spuma2
  114.     elif spuma1 != spuma2:
  115.         k = k + 1 + spuma2
  116.  
  117.     return k
  118.  
  119. def determinareNrLocomotive (tupla):
  120.     greutatePersoane = tupla[0] * greutatePersoana
  121.     greutateMarfa = 0
  122.     for i in range (1, len (tupla)):
  123.         greutateMarfa = greutateMarfa + tupla [i]
  124.  
  125.     greutateVagoanePersoane = determinareNrVagoanePers (tupla) * masavagcalatori
  126.  
  127.     greutateVagoaneMarfa = determinareNrVagoaneMarfa (tupla) * masavagmarfa
  128.  
  129.     total=greutatePersoane + greutateMarfa + greutateVagoanePersoane + greutateVagoaneMarfa
  130.  
  131.     if total % putereLocomotiva == 0:
  132.          return total // putereLocomotiva
  133.     else:
  134.          return (total//putereLocomotiva + 1)
  135.  
  136. def incasariCalatori (tupla):
  137.     return tupla [0] * incasarePerCalator * (distanta / 100)
  138.  
  139. def incasariMarfa (tupla):
  140.     total = 0
  141.     for i in range (1, len (tupla)):
  142.         total = total + tupla [i]
  143.     return total * incasareTona * (distanta / 100)
  144.  
  145. def costuri (nrLocomotive):
  146.     return nrLocomotive * costLocomotiva * (distanta/100)
  147.  
  148. def profit (incasariCalatori, incasariMarfa, costuri):
  149.     p=incasariCalatori + incasariMarfa - costuri
  150.     return p
  151.  
  152. tren=citire()
  153. if validare (tren) == True:
  154.     afisare (tren)
  155.     sCalatori = incasariCalatori (tren)
  156.     sMarfa = incasariMarfa (tren)
  157.     nrLocomotive = determinareNrLocomotive (tren)
  158.     costuri = costuri (nrLocomotive)
  159.     margin = profit (sCalatori, sMarfa, costuri)
  160.     print ("Profitul calatoriei ={}". format (margin))
Add Comment
Please, Sign In to add comment