Fördelning av mandat: Skillnad mellan sidversioner
Hoppa till navigering
Hoppa till sök
(→Koden) |
Hakan (diskussion | bidrag) |
||
Rad 8: | Rad 8: | ||
}} | }} | ||
== Undersök hur ett Pythonprogram | == Undersök hur ett Pythonprogram fördelar mandat == | ||
Det här kodexemplet passar till ett tematiskt arbete inför skolval och riksdagsval och är lämpligt att ha i kurserna Ma1a, Ma1b och Ma1c. Det kräver inga förkunskaper i programmering. | Det här kodexemplet passar till ett tematiskt arbete inför skolval och riksdagsval och är lämpligt att ha i kurserna Ma1a, Ma1b och Ma1c. Det kräver inga förkunskaper i programmering. |
Versionen från 14 september 2018 kl. 10.58
Undersök hur ett Pythonprogram fördelar mandat
Det här kodexemplet passar till ett tematiskt arbete inför skolval och riksdagsval och är lämpligt att ha i kurserna Ma1a, Ma1b och Ma1c. Det kräver inga förkunskaper i programmering.
Koden
#Val-program, inputs antalet röster för de åtta riksdagspartierna V = input("V:") V = int(V) S = input("S:") S = int(S) M_P = input("MP:") M_P = int(M_P) C = input("C:") C = int(C) L = input("L:") L = int(L) M = input("M:") M = int(M) K_D = input("KD:") K_D = int(K_D) S_D = input("SD:") S_D = int(S_D) R = V + S + M_P + C + L + M + K_D + S_D R = int(R) #Förra valet var k=5/7 k = 5/6 k= float(k) JT_V = k*V JT_V = float(JT_V) JT_S = k*S JT_S = float(JT_S) JT_M_P = k*M_P JT_M_P = float(JT_M_P) JT_C = k*C JT_C = float(JT_C) JT_L = k*L JT_L = float(JT_L) JT_M = k*M JT_M = float(JT_M) JT_K_D = k*K_D JT_K_D = float(JT_K_D) JT_S_D = k*S_D JT_S_D = float(JT_S_D) mandat = 349 mandat = int(mandat) #Korrigeringarna efter ett mandat blivit fördelat kV = 1 kV = float(kV) kS = 1 kS = float(kS) kM_P = 1 kM_P = float(kM_P) kC = 1 kC = float(kC) kL = 1 kL = float(kL) kM = 1 kM = float(kM) kK_D = 1 kK_D = float(kK_D) kS_D = 1 kS_D = float(kS_D) #Varje partis mandat mV = 0 mS = 0 mM_P = 0 mC = 0 mL = 0 mM = 0 mK_D = 0 mS_D = 0 while mandat > 0: if JT_S == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mS += 1 mandat -= 1 kS = kS + 2 JT_S = S/kS elif JT_M == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mM += 1 mandat -= 1 kM = kM + 2 JT_M = M/kM elif JT_S_D == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mS_D += 1 mandat -= 1 kS_D = kS_D + 2 JT_S_D = S_D/kS_D elif JT_V == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mV += 1 mandat -= 1 kV = kV + 2 JT_V = V/kV elif JT_M_P == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mM_P += 1 mandat -= 1 kM_P = kM_P + 2 JT_M_P = M_P/kM_P elif JT_C == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mC += 1 mandat -= 1 kC = kC + 2 JT_C = C/kC elif JT_L == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mL += 1 mandat -= 1 kL = kL + 2 JT_L = L/kL elif JT_K_D == max(JT_V, JT_S, JT_M_P, JT_C, JT_L, JT_M, JT_K_D, JT_S_D): mK_D += 1 mandat -= 1 kK_D = kK_D + 2 JT_K_D = K_D/kK_D print("Totalt antal röster:",R) print("Mandat till V:", mV) print("Mandat till S:", mS) print("Mandat till MP:", mM_P) print("Mandat till C:", mC) print("Mandat till L:", mL) print("Mandat till M:", mM) print("Mandat till KD:", mK_D) print("Mandat till SD:", mS_D)
Credit
Tomaas Westman skapade programmet.
Uppgift
Uppgift |
---|
Hur fungerar programmet
1. Studera koden. Vad gör programmet?
2. Kör programmet och jämför resultatet med den befintliga mandatfördelningen. Stämmer det? Om inte, varför?
|