dz0

Pažymių matricos

dz0
Apr 18th, 2013
154
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # pagal http://galvosukykla.lt/failai/mokymas/programavimas/2013-pavasaris/ktug/KD3-pasiruosimas-matricos-pazymiai.pdf
  2. # pažymių matrica: eilutėse - mokiniai; stulpeliuose - KD
  3. P = [
  4. #  KD0  KD1  KD2            
  5.   [ 9,   5,   8],  # 0      
  6.   [10,  10,   4],  # 1      
  7.   [ 3,   7,  10],  # 2      
  8.   [ 8,   7,   9],  # 3      
  9.   [10,  10,  10],  # 4      
  10. ]
  11.  
  12.  
  13.  
  14. def show(M):   # matricos spausdinimui
  15.     for eil in M:
  16.         print( eil )
  17.  
  18. show(P)
  19.  
  20. ##########################################
  21. ## Tavo vardas/pavardė:  .................
  22. ##########################################
  23.  
  24.  
  25. # 0) surasti matricos eilučių/mokinių skaičių (mok_sk) ir stulpelių/KD (KD_sk).  # 0.5 tšk
  26. mok_sk = None
  27. KD_sk =  None
  28.  
  29. assert mok_sk == 5, mok_sk
  30. assert KD_sk == 3, KD_sk
  31.  
  32. # 1a) Atspausdint kiekvieno mokinio vidurkį, # 1 tšk
  33. #~ ... sąrašo sumavimui galima naudoti funkciją sum( sar )
  34.  
  35.  
  36. # 1b) sudaryti mokinių vidurkių sąrašą   # 0.5 tšk
  37. def mok_vidurkiai(M):
  38.     rez = []    
  39.     print( "mokiniu vidurkiai: ", rez )
  40.     return rez
  41.  
  42. assert mok_vidurkiai(P) == [7.333333333333333, 8.0, 6.666666666666667, 8.0, 10.0], mok_vidurkiai(P)
  43.  
  44. # 2a) sukurti funkciją, kuri suranda (grąžina)  n-to KD vidurkį:  # 1 tšk
  45. def KD_vidurkis(M, nr):
  46.     return
  47.  
  48. assert KD_vidurkis(P, 0) == 8, KD_vidurkis(P, 0)
  49. assert KD_vidurkis(P, 2) == 8.2, KD_vidurkis(P, 2)
  50.  
  51.  
  52. # 2b) sudaryti KD vidurkių sarašą  # 1 tšk
  53. def KD_vidurkiai(M):
  54.     rez = []
  55.    
  56.     #~ ...
  57.     print( "KD_vidurkiai:", rez )
  58.     return rez
  59.  
  60. assert  KD_vidurkiai(P) == [8.0, 7.8, 8.2], KD_vidurkiai(P)
  61.  
  62. # 3 Kontrolinį, kurio klasės vidurkis mažiausias, leidžiama perrašyti.
  63. # 3a) rasti tą KD (jo numerį)  # 1 tšk
  64. def blogiausias_KD(M):
  65.     rez = 0
  66.     print( "blogiausio KD nr:", rez )
  67.     return
  68.  
  69. assert blogiausias_KD(P) == 1, blogiausias_KD(P)
  70.  
  71.  
  72. # 3b) sumodeliuoti jo perrašymą:   # 2 tšk
  73. # prognozuojama, kad perrašydamas už jį moksleivis gali gauti tiek, kokį dabar turi vidurkį (suapvalinant į mažesnę pusę, pvz int(7.8)-->7 ) .
  74. # Jeigu turi geresnį pažymį nei gautum - perrašyt, aišku, neapsimoka.
  75. # Atspausdinti: kiekvieno mokinio numerį ir ar perrašinės (True/False)
  76. def perrasymas(M):
  77.     kuri_perrasom = blogiausias_KD(M)
  78.     #~ for ...
  79.         #~ print( mok_nr, paz, vid, ar_perrasines ) # spausdinam info, kad lengviau patikrint būtų
  80.  
  81.         # 3c) Kaip atrodys pažymių matrica po perrašymo (pasikeitus pažymiams)? # 1 tšk
  82.         # papildyt ciklą matricos keitimui...
  83.  
  84. perrasymas(P)
  85. assert P == [ [9, 7, 8],
  86.             [10, 10, 4],
  87.             [3, 7, 10],
  88.             [8, 8, 9],
  89.             [10, 10, 10] ], P
  90.  
  91. # 4) Surasti prasčiausią pažymį iš visų (nurodyti mokinio ir KD numerius)  # 2 tšk
  92. def didziausias_feilas(M):
  93.     min_eil, min_st = 0, 0
  94.     min_paz = 10
  95.     #~ ...
  96.     print( "prasciausias pazymys", min_paz, "yra is (eil, st) =", (min_eil, min_st) )
  97.     return min_eil, min_st
  98.  
  99. assert didziausias_feilas(P) == (2, 0), didziausias_feilas(P)
  100.  
  101. # 5) į matricą pridėti dar vieno KD (KD3) duomenis: # 2 tšk
  102. def papildomas_KD(M, KD):
  103.     #~ ...
  104.     show(M)  # po pakeitimų pažiūrim matricą
  105.  
  106. #~ KD3 = [10, 5, 8, 10, 2] # išvardinti KD3 pažymiai (ta pačia mokinių eilės tvarka, kaip ir P)
  107. papildomas_KD(P, KD3)
  108.  
  109. assert P == [ [9, 7, 8, 10],
  110.               [10, 10, 4, 5],
  111.               [3, 7, 10, 8],
  112.               [8, 8, 9, 10],
  113.               [10, 10, 10, 2] ], P
RAW Paste Data