Advertisement
Guest User

esercizio 7

a guest
Jun 19th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. class Item():
  2.  
  3.  def __init__(self,nome,occ):
  4.  #@param nome:String
  5.  #@param occ:Integer
  6.   self.Nome=nome
  7.   self.occ=occ
  8.   self.single=occ
  9.   self.a=1
  10.  
  11.  def addItem(self):
  12.   self.a=self.a+1
  13.   self.occ=self.single*a
  14.  
  15.  def retOcc(self):
  16.  #@return int:Integer ritorna il volume totale
  17.   return self.occ
  18.  
  19.  def retNome(self):
  20.  #@return Nome:String
  21.   return self.Nome
  22.  
  23.  
  24.  
  25. class Knapsack():
  26.  
  27.  def __init__(self,c):
  28.  #@param c: Integer
  29.  #@param occ: Integer
  30.  #@param name: String
  31.   assert c>0
  32.   self.cap=c
  33.   self.listItem=[]
  34.   self.tot=0
  35.  
  36.  def volumeAdd(self,occ):
  37.  #@param occ:Integer
  38.  #@return tot:Integer
  39.   self.tot=occ+self.tot
  40.   return self.tot
  41.  
  42.  def nElem(self):
  43.  #@return len:Integer
  44.   return len(self.listItem)
  45.  
  46.  def occMax(self):
  47.  #@return max:Integer
  48.   max=0
  49.   for l in self.listItem:
  50.    if l.retOcc()>max:
  51.     max=l.retOcc()
  52.   return max
  53.  
  54.  def occMin(self):
  55.  #@return min:Integer
  56.   if len(self.listItem)>0:
  57.    min=self.cap
  58.    for l in self.listItem:
  59.     if l.retOcc()<min:
  60.      min=l.retOcc()
  61.   else:
  62.    min=0
  63.   return min
  64.  
  65.  def findItem(self,item):
  66.   #@param item:Item
  67.   #@return i:Integer
  68.   for i in range(0,len(self.listItem)):
  69.    if self.listItem[i].Nome==item.Nome:
  70.     return i
  71.   return 0
  72.  
  73.  def add(self,item):
  74.  #@param item:Item
  75.  #se lo strumento ?? gi?? presente nello zaino allora attraverso la funzione addItem() verr?? aggiunto con lo stesso volume dato inizialmente,ignorando i successivi valori.
  76.   i=self.findItem(item)
  77.   if self.findItem(item)!=0:
  78.    self.listItem[i].addItem()
  79.   else:
  80.    assert (self.cap>=self.volumeAdd(item.occ))
  81.    self.listItem.append(item)
  82.  
  83.  
  84.    
  85. zaino=Knapsack(34)
  86. i=Item("uni",10)
  87. zaino.add(i)
  88. print zaino.occMin()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement