Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # pagal http://galvosukykla.lt/failai/mokymas/programavimas/2013-pavasaris/ktug/KD3-pasiruosimas-matricos-pazymiai.pdf
- # pažymių matrica: eilutėse - mokiniai; stulpeliuose - KD
- P = [
- # KD0 KD1 KD2 mok_vid
- [ 9, 5, 8], # 0 7.33
- [10, 10, 4], # 1 8.0
- [ 3, 6, 10], # 2 6.33
- [ 8, 7, 9], # 3 8.0
- [10, 10, 10], # 4 10.0
- ]
- def show(M): # matricos spausdinimui
- for eil in M:
- print( eil )
- show(P)
- ##########################################
- ## Tavo vardas/pavardė: .................
- ##########################################
- # 0) surasti matricos eilučių/mokinių skaičių (mok_sk) ir stulpelių/KD (KD_sk). # 0.5 tšk
- mok_sk = len(P)
- KD_sk = len( P[0] )
- # 1a) Atspausdint kiekvieno mokinio vidurkį, # 1 tšk
- #~ ... sąrašo sumavimui galima naudoti funkciją sum( sar )
- for eil in P:
- vid = sum( eil ) / len(eil)
- print( vid )
- # 1b) sudaryti mokinių vidurkių sąrašą # 0.5 tšk
- def mok_vidurkiai(M):
- rez = []
- for eil in M:
- vid = sum( eil ) / len(eil)
- rez.append( vid )
- print( "mokiniu vidurkiai: ", rez )
- return rez
- V = mok_vidurkiai(P)
- # 2a) sukurti funkciją, kuri suranda (grąžina) n-to KD vidurkį: # 1 tšk
- def KD_vidurkis(M, nr):
- suma = 0
- for eil in M:
- suma += eil[nr]
- return suma / len(M)
- print( "KD2 vid:", KD_vidurkis(P, 2) )
- # 2b) sudaryti KD vidurkių sarašą # 1 tšk
- def KD_vidurkiai(M):
- rez = []
- for kd_nr in range(KD_sk): # 0 1 2
- kdvid = KD_vidurkis(M, kd_nr)
- rez.append( kdvid )
- print( "KD_vidurkiai:", rez )
- return rez
- KD_vidurkiai(P)
- # 3 Kontrolinį, kurio klasės vidurkis mažiausias, leidžiama perrašyti.
- # 3a) rasti tą KD (jo numerį) # 1 tšk
- def blogiausias_KD(M):
- minv_nr = None
- minv = 11
- KDV = KD_vidurkiai(M)
- for nr in range(KD_sk):
- if KDV[nr] < minv:
- minv = KDV[nr]
- minv_nr = nr
- print( "blogiausio KD nr:", minv_nr , minv)
- return minv_nr
- blogiausio_nr = blogiausias_KD(P)
- # 3b) sumodeliuoti jo perrašymą: # 2 tšk
- # prognozuojama, kad perrašydamas už jį moksleivis gali gauti tiek, kokį dabar turi vidurkį (suapvalinant į mažesnę pusę, pvz int(7.8)-->7 ) .
- # Jeigu turi geresnį pažymį nei gautum - perrašyt, aišku, neapsimoka.
- # Atspausdinti: kiekvieno mokinio numerį ir ar perrašinės (True/False)
- def perrasymas(M):
- kuri_perrasom_nr = blogiausias_KD(M)
- MV = mok_vidurkiai(M)
- for mok_nr in range(mok_sk):
- paz = M[mok_nr][kuri_perrasom_nr]
- vid = MV[mok_nr]
- if int(vid) > paz:
- ar_perrasines = True
- M[mok_nr][kuri_perrasom_nr] = int(vid)
- else:
- ar_perrasines = False
- print( mok_nr, paz, vid, ar_perrasines ) # spausdinam info, kad lengviau patikrint būtų
- # 3c) Kaip atrodys pažymių matrica po perrašymo (pasikeitus pažymiams)? # 1 tšk
- # papildyt ciklą matricos keitimui...
- perrasymas(P)
- show(P)
- # 4) Surasti prasčiausią pažymį iš visų (nurodyti mokinio ir KD numerius) # 2 tšk
- def didziausias_feilas(M):
- min_eil, min_st = 0, 0
- min_paz = 10
- #~ ...
- print( "prasciausias pazymys", min_paz, "yra is (eil, st) =", (min_eil, min_st) )
- # 5) į matricą pridėti dar vieno KD (KD3) duomenis: # 2 tšk
- def papildomas_KD(M, KD):
- #~ ...
- show(M) # po pakeitimų pažiūrim matricą
- #~ KD3 = [10, 5, 8, 10, 2] # išvardinti KD3 pažymiai (ta pačia mokinių eilės tvarka, kaip ir P)
- #~ papildomas_KD(P, KD3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement