SHOW:
|
|
- or go back to the newest paste.
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 | ||
4 | - | # KD0 KD1 KD2 |
4 | + | |
5 | - | [ 9, 8, 5], # 0 |
5 | + | # KD0 KD1 KD2 mok_vid |
6 | - | [10, 4, 10], # 1 |
6 | + | [ 9, 5, 8], # 0 7.33 |
7 | - | [ 3, 10, 5], # 2 |
7 | + | [10, 10, 4], # 1 8.0 |
8 | - | [ 8, 9, 7], # 3 |
8 | + | [ 3, 6, 10], # 2 6.33 |
9 | - | [10, 10, 10], # 4 |
9 | + | [ 8, 7, 9], # 3 8.0 |
10 | [10, 10, 10], # 4 10.0 | |
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 = len(P) | |
27 | KD_sk = len( P[0] ) | |
28 | ||
29 | ||
30 | # 1a) Atspausdint kiekvieno mokinio vidurkį, # 1 tšk | |
31 | #~ ... sąrašo sumavimui galima naudoti funkciją sum( sar ) | |
32 | for eil in P: | |
33 | vid = sum( eil ) / len(eil) | |
34 | print( vid ) | |
35 | ||
36 | # 1b) sudaryti mokinių vidurkių sąrašą # 0.5 tšk | |
37 | def mok_vidurkiai(M): | |
38 | rez = [] | |
39 | for eil in M: | |
40 | vid = sum( eil ) / len(eil) | |
41 | rez.append( vid ) | |
42 | print( "mokiniu vidurkiai: ", rez ) | |
43 | return rez | |
44 | ||
45 | V = mok_vidurkiai(P) | |
46 | ||
47 | # 2a) sukurti funkciją, kuri suranda (grąžina) n-to KD vidurkį: # 1 tšk | |
48 | def KD_vidurkis(M, nr): | |
49 | suma = 0 | |
50 | for eil in M: | |
51 | suma += eil[nr] | |
52 | return suma / len(M) | |
53 | ||
54 | print( "KD2 vid:", KD_vidurkis(P, 2) ) | |
55 | ||
56 | # 2b) sudaryti KD vidurkių sarašą # 1 tšk | |
57 | def KD_vidurkiai(M): | |
58 | rez = [] | |
59 | for kd_nr in range(KD_sk): # 0 1 2 | |
60 | kdvid = KD_vidurkis(M, kd_nr) | |
61 | rez.append( kdvid ) | |
62 | print( "KD_vidurkiai:", rez ) | |
63 | return rez | |
64 | ||
65 | - | KD_vidurkiai(P) |
65 | + | KD_vidurkiai(P) |
66 | ||
67 | ||
68 | # 3 Kontrolinį, kurio klasės vidurkis mažiausias, leidžiama perrašyti. | |
69 | # 3a) rasti tą KD (jo numerį) # 1 tšk | |
70 | def blogiausias_KD(M): | |
71 | minv_nr = None | |
72 | minv = 11 | |
73 | KDV = KD_vidurkiai(M) | |
74 | for nr in range(KD_sk): | |
75 | if KDV[nr] < minv: | |
76 | minv = KDV[nr] | |
77 | minv_nr = nr | |
78 | print( "blogiausio KD nr:", minv_nr , minv) | |
79 | return minv_nr | |
80 | ||
81 | blogiausio_nr = blogiausias_KD(P) | |
82 | ||
83 | # 3b) sumodeliuoti jo perrašymą: # 2 tšk | |
84 | # prognozuojama, kad perrašydamas už jį moksleivis gali gauti tiek, kokį dabar turi vidurkį (suapvalinant į mažesnę pusę, pvz int(7.8)-->7 ) . | |
85 | # Jeigu turi geresnį pažymį nei gautum - perrašyt, aišku, neapsimoka. | |
86 | # Atspausdinti: kiekvieno mokinio numerį ir ar perrašinės (True/False) | |
87 | def perrasymas(M): | |
88 | kuri_perrasom_nr = blogiausias_KD(M) | |
89 | MV = mok_vidurkiai(M) | |
90 | for mok_nr in range(mok_sk): | |
91 | paz = M[mok_nr][kuri_perrasom_nr] | |
92 | vid = MV[mok_nr] | |
93 | if int(vid) > paz: | |
94 | ar_perrasines = True | |
95 | M[mok_nr][kuri_perrasom_nr] = int(vid) | |
96 | else: | |
97 | ar_perrasines = False | |
98 | print( mok_nr, paz, vid, ar_perrasines ) # spausdinam info, kad lengviau patikrint būtų | |
99 | ||
100 | # 3c) Kaip atrodys pažymių matrica po perrašymo (pasikeitus pažymiams)? # 1 tšk | |
101 | # papildyt ciklą matricos keitimui... | |
102 | ||
103 | perrasymas(P) | |
104 | show(P) | |
105 | ||
106 | # 4) Surasti prasčiausią pažymį iš visų (nurodyti mokinio ir KD numerius) # 2 tšk | |
107 | def didziausias_feilas(M): | |
108 | min_eil, min_st = 0, 0 | |
109 | min_paz = 10 | |
110 | #~ ... | |
111 | print( "prasciausias pazymys", min_paz, "yra is (eil, st) =", (min_eil, min_st) ) | |
112 | ||
113 | # 5) į matricą pridėti dar vieno KD (KD3) duomenis: # 2 tšk | |
114 | def papildomas_KD(M, KD): | |
115 | #~ ... | |
116 | show(M) # po pakeitimų pažiūrim matricą | |
117 | ||
118 | #~ KD3 = [10, 5, 8, 10, 2] # išvardinti KD3 pažymiai (ta pačia mokinių eilės tvarka, kaip ir P) | |
119 | #~ papildomas_KD(P, KD3) |