Advertisement
trds

19decembrie2020

Dec 20th, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.43 KB | None | 0 0
  1. class Locomotiva:
  2.     def __init__(self,p):
  3.         #constructorul locmotivei
  4.         # self = numarul sub care a fost inregistrata locomotiva in memoria RAM
  5.         self.putereLocomotiva = p
  6.     def __repr__(self):
  7.         return 'Locomotiva de putere {}'.format(self.putereLocomotiva)
  8.  
  9. locomotivaLuiRadu = Locomotiva(323)
  10. print(locomotivaLuiRadu)
  11.  
  12. class VagonCalatori:
  13.     def __init__(self,nrMaxP,nrEfP):
  14.         self.nrMaximPasageri = nrMaxP
  15.         self.nrEfectivPasageri =  nrEfP
  16.     def __repr__(self):
  17.         return 'Vagon calatori {}/{} pasageri'.format(self.nrMaximPasageri,self.nrEfectivPasageri)
  18.     def greutateVagon(self):
  19.         masaPopulatie = 80 * self.nrEfectivPasageri
  20.         masaTotala = 55 + masaPopulatie / 1000
  21.         return masaTotala
  22.     def venit(self,distanta):
  23.         incasarePersoana = (distanta/100) * 20
  24.         incasareTotal = incasarePersoana * self.nrEfectivPasageri
  25.         return incasareTotal
  26.  
  27. vagonBianca = VagonCalatori(80,23)
  28. vagonAndrei = VagonCalatori(80,45)
  29. print(vagonBianca)
  30. print(vagonAndrei)
  31. print(vagonAndrei.greutateVagon())
  32. print(vagonBianca.venit(480))
  33.  
  34. class VagonMarfa:
  35.     def __init__(self,tonaj,volum,tip):
  36.         self.tonajMarfa = tonaj
  37.         self.volumMarfa = volum
  38.         self.tipMarfa = tip
  39.     def __repr__(self):
  40.         return 'Vagon marfa de tip {} de tonaj {} cu {} volum de marfa'.format(self.tipMarfa,self.tonajMarfa,self.volumMarfa)
  41.     def greutate(self):
  42.         greutateTotala = self.tonajMarfa * 55
  43.         return greutateTotala
  44.  
  45. class Tren:
  46.     def __init__(self,nrc,tc,tcbl,tcm,tlm,tlc,tcb,ts):
  47.         self.nrCalatori = nrc
  48.         self.tonajCereale = tc
  49.         self.tonajCombustibil = tcbl
  50.         self.tonajCiment = tcm
  51.         self.tonajLichide = tlc
  52.         self.tonajLemn = tlm
  53.         self.tonajCarbune = tcb
  54.         self.tonajSpuma = ts
  55.         self.locomotive = []
  56.         self.vagoaneMarfa = []
  57.         self.vagoanePersoane = []
  58.  
  59.     def adaugaLocomotiva(self,l):
  60.         self.locomotive.append(l)
  61.  
  62.     def adaugaVagonMarfa(self,v):
  63.         self.vagoaneMarfa.append(v)
  64.  
  65.     def adaugaVagonPersoane(self,v):
  66.         self.vagoanePersoane.append(v)
  67.  
  68.     def __repr__(self):
  69.         t = self.tonajSpuma + self.tonajCarbune + self.tonajCiment + self.tonajLemn + self.tonajLichide + self.tonajCiment + self.tonajCombustibil + self.tonajCereale
  70.         return 'Trenul transporta {} calatori si {} tone de marfa.'.format(self.nrCalatori, t)
  71.  
  72.     def nrVagoaneCalatori(self):
  73.         n = self.nrCalatori // 80
  74.         if self.nrCalatori % 80 == 0:
  75.             return n
  76.         else:
  77.             return n + 1
  78.  
  79.     def nrVagoaneMarfa(self):
  80.         k = 0
  81.         volumCereale1 = (self.tonajCereale * 1000) / 600
  82.         volumCereale2 = (self.tonajCereale * 1000) // 600
  83.         if volumCereale2 == volumCereale1 and volumCereale1 != 0:
  84.             n = volumCereale1 // 300
  85.             # 300 este volumul maxim admis al unui vagon
  86.             k = k + n
  87.         elif volumCereale1 != volumCereale2:
  88.             # sunt in situatia de impartie cu virgula
  89.             n = volumCereale1 // 300
  90.             k = k + n + 1
  91.  
  92.         volumCombustibil1 = (self.tonajCombustibil * 1000) / 600
  93.         volumCombustibil2 = (self.tonajCombustibil * 1000) // 600
  94.         if volumCombustibil1 == volumCombustibil2 and volumCombustibil1 != 0:
  95.             n = volumCombustibil1 // 300
  96.             k += n
  97.         elif volumCombustibil1 != volumCombustibil2:
  98.             n  = volumCombustibil1 // 300
  99.             k += n + 1
  100.  
  101.         volumCiment1 = (self.tonajCiment * 1000) / 600
  102.         volumCiment2 = (self.tonajCiment * 1000) // 600
  103.         if volumCiment2 == volumCiment1 and volumCiment1 != 0:
  104.             n = volumCiment1 // 300
  105.             k += n
  106.         elif volumCiment1 != volumCiment2:
  107.             n = volumCiment1 // 300
  108.             k += n + 1
  109.  
  110.         volumLichide1 = (self.tonajLichide * 1000) / 600
  111.         volumLichide2 = (self.tonajLichide * 1000) // 600
  112.         if volumLichide2 == volumLichide1 and volumLichide1 != 0:
  113.             n = volumLichide1 // 300
  114.             k += n
  115.         elif volumLichide1 != volumLichide2:
  116.             n = volumLichide1 // 300
  117.             k += n + 1
  118.  
  119.         volumLemn1 = (self.tonajLemn * 1000) / 600
  120.         volumLemn2 = (self.tonajLemn * 1000) // 600
  121.         if volumLemn2 == volumLemn1 and volumLemn1 != 0:
  122.             n = volumLemn1 // 300
  123.             k += n
  124.         elif volumLemn2 != volumLemn1:
  125.             n = volumLemn1 // 300
  126.             k += n + 1
  127.  
  128.         volumCarbune1 = (self.tonajCarbune * 1000) / 600
  129.         volumCarbune2 = (self.tonajCarbune * 1000) // 600
  130.         if volumCarbune2 == volumCarbune1 and volumCarbune1 != 0:
  131.             n = volumCarbune2 // 300
  132.             k += n
  133.         elif volumCarbune2 != volumCarbune1:
  134.             n = volumCarbune1 // 300
  135.             k += n + 1
  136.  
  137.         volumSpuma1 = (self.tonajSpuma * 1000) / 600
  138.         volumSpuma2 = (self.tonajSpuma * 1000) //600
  139.         if volumSpuma2 == volumSpuma1 and volumSpuma1 != 0:
  140.             n = volumSpuma1 // 300
  141.             k += n
  142.         elif volumSpuma1 != volumSpuma2:
  143.             n = volumSpuma1 // 300
  144.             k += n + 1
  145.  
  146.         return k
  147.  
  148.     def nrLocomotive(self):
  149.         p = self.nrVagoaneCalatori()
  150.         greutatePersoane = (p*80)/1000
  151.         greutateVagoanePersoane = 85 * self.nrVagoaneCalatori()
  152.         greutateTotalaPersoane = greutatePersoane + greutateVagoanePersoane
  153.         greutateMarfa = self.tonajCereale + self.tonajCarbune + self.tonajCombustibil + self.tonajCiment + self.tonajLichide + self.tonajLemn + self.tonajSpuma
  154.         greutateVagonMarfa = self.nrVagoaneMarfa() * 55
  155.         greutateTotalaMarfa = greutateMarfa + greutateVagonMarfa
  156.         total = greutateTotalaMarfa + greutateTotalaPersoane
  157.         if total % 1000 == 0:
  158.             return total//1000
  159.         else:
  160.             return total//1000 + 1
  161.  
  162. class Calatorie:
  163.     def __init__(self,l,nrc,costLocomotiva,costPasager,tc,tcbl,tcm,tlc,ts,tlm,tcb):
  164.         self.distanta = l
  165.         self.nrCalatori = nrc
  166.         self.costLocomotiva = costLocomotiva
  167.         self.CostPasager = costPasager
  168.         self.tren = Tren(nrc,tc,tcbl,tcm,tlm,tlc,tcb,ts)
  169.         nrLocomotive=  self.tren.nrLocomotive()
  170.         for i in range(0,int(nrLocomotive)):
  171.             l = Locomotiva(1000)
  172.             self.tren.adaugaLocomotiva(l)
  173.         nrVagonMarfa = self.tren.nrVagoaneMarfa()
  174.         for i in range(0,int(nrVagonMarfa)):
  175.             v = VagonMarfa(30,500,'marfa')
  176.             self.tren.adaugaVagonMarfa(v)
  177.         nrVagonPersoane = self.tren.nrVagoaneCalatori()
  178.         for i in range(0,nrVagonPersoane):
  179.             v = VagonCalatori(80,23)
  180.             self.tren.adaugaVagonPersoane(v)
  181.  
  182.     def incasari(self):
  183.         tt = self.tren.tonajCereale + self.tren.tonajCiment + self.tren.tonajLichide + self.tren.tonajLemn + self.tren.tonajCarbune + self.tren.tonajCombustibil + self.tren.tonajSpuma
  184.         incasariMarfa = tt * 40 * (self.distanta/100)
  185.         incasariPersoane = self.nrCalatori * 100 * (self.distanta/100)
  186.         return incasariMarfa + incasariPersoane
  187.  
  188.     def cheltuieli(self):
  189.         return self.tren.nrLocomotive() * 1000 * (self.distanta/100)
  190.  
  191.     def profit(self):
  192.         return self.incasari() - self.cheltuieli()
  193.  
  194. tren = Tren(80,2,5,1,7,4,6,7)
  195. print(tren)
  196. print(tren.nrVagoaneMarfa())
  197. print(tren.nrLocomotive())
  198. c = Calatorie(480,1000,100,2,5,1,7,4,6,7,5)
  199. print(c.profit())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement