Kemudraj

matna_zad4

Aug 22nd, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.81 KB | None | 0 0
  1. Таблица на температури Problem 4 (1 / 1)
  2. Да се прикаже работатa на греjачот за константна влажност h, за период од 24 часа, ако во 6 часот температурата е 15 степени, расте секој час за 1.5 степени до 18 часот секој час, а потоа опаѓа до 15 степени во 6 часот следното утро за 1.5 степени на час. Влажноста се прочитува еднаш од стандарден влез и потоа треба да се креира речник чиј клуч е торка од часот и влажноста, а вредност е торка од температурата во соодветниот час и потребната моќност на грејачот (пресметана со формулата за центар на гравитација). Со функцијата rang(x,4) заокружете ги реалните броеви x кои имаат повеќе децимали на 4. Ако веќе се поминати тест примерите без заокружување не мора да правите промена. За прочитана влажност од стандарден влез да се генерира бараниот речник и да се испечати истиот.
  3.  
  4. Текстот е достапен на следниот линк: http://code.finki.ukim.mk/course/60/starterfile/223/
  5.  
  6. import math
  7.  
  8. def A1(t):
  9.     if(t>=60):
  10.         return 1.0;
  11.     elif (t<60):
  12.         return 1.0/((math.e**(60-math.fabs(t))))
  13.  
  14.  
  15. def A2(t)
  16.     if(t<=10):
  17.         return 1.0
  18.     elif(t>10):
  19.         return 1.0/((1+(math.e**(math.fabs(10-t)))))
  20.  
  21.  
  22. def B1(s):
  23.     if(s>=0.8):
  24.         return 1.0;
  25.     elif(s>0 and s < 0.8):
  26.         return 1 / (1+((0.2+s)**3))
  27.     #return 0
  28.  
  29. def B2(s):
  30.     if(s>= 0 and s<= 0.1):
  31.         return 1.0
  32.     elif(s>0.1):
  33.         return 1 / (1+((0.9+s)**2))
  34.     #return 0
  35.  
  36. def Rule1_min(s,e):
  37.     return min(A2(s),B2(e))
  38.  
  39. def Rule2_min(s,e):
  40.     return min(A1(s),B2(e))
  41.  
  42. def Rule3_min(s,e):
  43.     return min(A1(s),B1(e))
  44.  
  45.  
  46. def COG(w1,w2,w3,c1,c2,c3):
  47.     return (w1*c1 + w2*c2 + w3*c3) / (w1+w2+w3)
  48.  
  49.  
  50. def Presmetaj(h,c1,c2,c3):
  51.     temperatura = 15
  52.     resenie={}
  53.     resenie[(6,h)] = (temperatura, COG(Rule1_min(temperatura,h),Rule2_min(temperatura,h),Rule3_min(temperatura,h),c1,c2,c3))
  54.    
  55.     for i in range(7,19):
  56.         temperatura+=1.5
  57.         resenie[(i,h)] = (temperatura, COG(Rule1_min(temperatura,h),Rule2_min(temperatura,h),Rule3_min(temperatura,h),c1,c2,c3))
  58.    
  59.     for i in range(19,25):
  60.         temperatura-=1.5
  61.         resenie[(i,h)] = (temperatura, COG(Rule1_min(temperatura,h),Rule2_min(temperatura,h),Rule3_min(temperatura,h),c1,c2,c3))
  62.    
  63.     for i in range(1,6):
  64.         temperatura-=1.5
  65.         resenie[(i,h)] = (temperatura, COG(Rule1_min(temperatura,h),Rule2_min(temperatura,h),Rule3_min(temperatura,h),c1,c2,c3))
  66.     return resenie
  67.  
  68.  
  69. if __name__ == "__main__":
  70.     h=input()
  71.     c1 = 2000
  72.     c2 = 500
  73.     c3 = 100
  74.     resenie=Presmetaj(h,c1,c2,c3)
  75.    
  76.     for x in resenie:
  77.         resenie[x] = (resenie[x][0], round(resenie[x][1], 4))
  78.     print resenie
  79.  
  80. Sample input
  81. 0.3
  82.  
  83. Sample output
  84. {(6, 0.3): (15, 2000.0), (11, 0.3): (22.5, 2000.0), (16, 0.3): (30.0, 1999.8457), (3, 0.3): (19.5, 2000.0), (1, 0.3): (22.5, 2000.0), (8, 0.3): (18.0, 2000.0), (22, 0.3): (27.0, 1999.9996), (14, 0.3): (27.0, 1999.9996), (19, 0.3): (31.5, 1996.9052), (17, 0.3): (31.5, 1996.9052), (24, 0.3): (24.0, 2000.0), (9, 0.3): (19.5, 2000.0), (7, 0.3): (16.5, 2000.0), (12, 0.3): (24.0, 2000.0), (4, 0.3): (18.0, 2000.0), (2, 0.3): (21.0, 2000.0), (23, 0.3): (25.5, 2000.0), (15, 0.3): (28.5, 1999.9923), (13, 0.3): (25.5, 2000.0), (20, 0.3): (30.0, 1999.8457), (18, 0.3): (33.0, 1939.9274), (5, 0.3): (16.5, 2000.0), (10, 0.3): (21.0, 2000.0), (21, 0.3): (28.5, 1999.9923)}
Advertisement
Add Comment
Please, Sign In to add comment