Suffrage s> s>=u> *SUFFRAGE? by G. Rowland (PUBLIC DOMAIN) di(i)=i+i+(i=2):a(a)=p+a-(3p+a>3):l(a)=a*2+(a=1) nc=12 :pop=nc^2*100d:v(nc,3):c(nc,3,2):s(nc):p(3):t(3):d(3):r(nc):p$(3,6) (Ep$(1)="RED":p$(2)="BLUE":p$(3)="YELLOW":c$="A" 2%p=13:p(p)=33!:p "0"k$<"7".2~L,14 xk$="1"1200 k$="2"13302 k$="3"1550 k$="4"2030:90Z k$="5"1740 k$="6""SUFFRAGE"80P 1030:100d Randomize voting distribution Z0:i=0:p=13:i=i+p(p)/100d:t(p)=(p(p)/100d*pop):p Țc=1nc-1:p=(*3+1):d(1)=p:d(2)=a(1):d(3)=a(2):r(c)=(pop/nc):s=(r(c)*i):d=(s*.6) >p=13:n=(t(d(p))/(nc-c)):n=n+(n/2-*n) !n> t(d(p))n=(t(d(p))/(nc-c)) n>dn=d ,v(c,d(p))=n:t(d(p))=t(d(p))-n:s=s-n:d=s $p:d0s=0:280 6c:r(c)=(pop/nc):p=13:v(c,p)=t(p):p  Adjust distribution =p=13:n=(d*i*p(p)/100d):n> t(p)n=t(p) %v(c,p)=v(c,p)+n:s=s+n:t(p)=t(p)-n "p:d=d-s:d=0 ';p=13:t(p)>dv(c,p)=v(c,p)+d:t(p)=t(p)-d: ,p: 6Single Transferable Vote @s=(nc/2) Jc=1s:n=0 T6p=13:t(p)=v(c,p)+v(c+s,p):n=n+t(p):p ^%q=n/3+1:3= 2 seats +1 h2400` :n=0 r)p=13:t(d(p))q420 |p:n=1370r #n=0q=q-1:370r $c:snc/2s(c+s)=d(1)  Allocate STV seat 0n=n+1:i=p:p=d(p):s(c+(sn=2))=p n=1460 t(p)=t(p)-q:p=i:  Redistribute 2nd choice votes a=12:d=a(a) v=v(c,p)/100d*c(c,p,a) Cn=1v=v+v(c+s,p)/100d*c(c+s,p,a):v=v*((t(p)-q)/t(p))  t(d)=t(d)+v a:t(p)=0: Plurality vote c=1nc #p=13:t(p)=v(c,p):p  2400` &s(c)=d(1):c 0 :Party list (avg.) vote D 810* N/p=13:d(p)=1:p:c=1 X9p=1:t(p)> t(2)t(p)> t(3)630v b(p=2:t(p)> t(3)630v l p=3 vjs(c)=p:t(p)=t(p)- ((t(p)/d(p)+.5)d(p)>1):d(p)=d(p)+1:c=c+1:cnc600X  Party list (rmd.) vote  810* 7q=((t(1)+t(2)+t(3))/nc):n=0 p=13 #s=(t(p)/q):s=0710 ;c=1s:s(n+c)=p:c:t(p)=t(p)-(q*s)+1:n=n+s  p:n=nc s=n+1:2400` +p=13:Award remainder seats )t(d(p))>0s(s)=d(p):s=s+1  sncp snc730  Numeric input  #4;y,x;i$;"_ ";  "0:k$=:k$>"9"781  $k$=13 .01z# =,-1: =k$=12 i$"".01z# =,-1:i$=i$(̱i$-1) 'k$"0".01z# =,-1:i$=i$+k$:  780   Total share *$p=13:t(p)=0:p 4!c=1nc:p=13 >t(p)=t(p)+v(c,p) Hp:c R \Majority Vote fc=1nc pKq=(v(c,1)+v(c,2)+v(c,3))/2:50% of district vote z#p=13:t(p)=v(c,p):p .p=13:t(p)qs(c)=p:950 p Eliminate weakest candidate 02400` :p=d(3):n=0:460  900 c: Cls & title Է#4;"{L9886":0:5:0:1::#4;172,5;3;"| Suffrage? |";0;159,104h;"{L9884}by Garry Rowland (PUBLIC DOMAIN)" U7:0,150:255,0:0,148:255,0 MENU #4;136,60<;6;"1.";80P;"VOTING PREFERENCE"'60<;"2.";80P;"SECOND PREFERENCE"'60<;"3.";80P;"MOVE VOTERS"'60<;"4.";80P;"ELECTION"'60<;"5.";80P;"PRINT DATA"'60<;"6.";80P;"SAVE PROGRAM";84T,60<;5;"Key 1-6 selects menu options"'60<;"Key A-";(64@+nc);" to select constituency" J0,60<:255,0:0,58::255,0 )Display data for selected constituency K1180:4:#4;524,4;"{L9886}Constituency ";c$ c=c$-64@:n=v(c,1)+v(c,2)+v(c,3):#4;502,166;"{L9884}POPULATION: ";r(c);41),173;"TURN-OUT: ";n:n=r(c)/40( p=13:٨i(p):#4;40(-p*9 ,4;p$(p);502;:i=1v(c,p)/n:#4;"I";:i:#4;" ";v(c,p);" ";٨i(a(1));c(c,p,1);"% ";٨i(a(2));c(c,p,2);"%";:p $ 1: .=Take poll from sample of 100 voters from each constituency 8$p=13:t(p)=0:p Bc=1nc:n=0 L1p=13:n=n+v(c,p):p:n=n/100d Vp=13 `t(p)=t(p)+(v(c,p)/n) jp:c tp=13 ~Et(p)=t(p)-(*t(p)/4):Subtract upto a quarter of undecideds p: Clear bottom window <15,0;:i=17:31;" ";:i: Get voting preference M1180:#4;524,4;4;"{L9886}Voting Preference:"  #4;"{L9884":n=100d 6p=13:x=120x:y=41)-p*9 '1290 :n-i$<01230 ,p(p)=i$:n=n-p(p):#4;y,x;i$;" "; p n=100d1200 1510:k$=""1200 p1180:#4;34",36$;1;4;" RANDOMIZING POPULATION DISTRIBUTION ":190:  ?٨i(p):#4;y,4;"% to vote for ";p$(p,̨l(p));"?"; &i$=p(p):780 :i$=""i$=p(p)  (Get second preference 2x1180:#4;524,4;4;"{L9886}Constituency ";c$;" second Preference:{L9884}":c=c$-64@ <5p=13:x=44,:y=41)-p*9 F##4;٨i(p);y,0;p$(p); P#a=12:d=a(a):٨i(d) Z!#4;y,x;"%choose ";p$(d); d'x=x+86V:i$=c(c,p,a):780  n#i$=""Űi$>100di$=c(c,p,a) x&c(c,p,a)=i$:#4;y,x;i$;" "; Qx=144:a:c(c,p,1)+c(c,p,2)>100dx=44,:1350F p h1180:#4;524,4;4;"{L9886}Constituency ";c$;" second Preference:{L9884}" Gp=13:#4;41)-p*9 ,4;٨i(p);p$(p); Za=12:d=a(a):#4;٨i(d);67C*a-20;c(c,p,a);"% ";p$(d);:a p 1510:k$=""13302   Confirm D#4;26,186;6;1;"|CORRECT? (Y/N)|"; 90:k$=:k$="n"k$="N".5,0:k$="": k$"y"k$"Y"1510 .2~L,7: Move voters v1180:#4;524,4;4;"{L9886}Move voters from constituency ";c$;"{L9884}":c=c$-64@ /p=13:t(p)=0:p:n=0 "=p=13:٨i(p):y=47/-p*8:x=200 ,P#4;y,4;"How many of ";v(c,p);" ";p$(p,̨l(p));" voters to move?"; 6i$="0":780  @&i$""ưi$v(c,p)t(p)=i$:n=n+t(p) J#4;y,x;t(p);" "; Tp:n=0 ^S#4;y-9 ,4;"MOVE TO WHICH CONSTITUENCY? (A-";(64@+nc);")"; h+0:k$=:k$"a"k$=(k$-32 ) r$k$<"A"Ưk$>64@+nc1640h |#.2~L,14:d=k$-64@ p1180:#4;524,4;4;"{L9886}Moving voters from ";c$;" to ";(d+64@);"{L9884}" 0p=13:٨i(p):y=41)-p*9 .#4;y,4;p$(p);546;t(p);:p 1510:i$=""1550 ^p=13:v(c,p)=v(c,p)-t(p):r(c)=r(c)-t(p):v(d,p)=v(d,p)+t(p):r(d)=r(d)+t(p):p  Print suffrage data X1180:#4;524,4;4;"{L9886}Printing suffrage data{L9884}"  n=0 =c=1nc:n=n+v(c,1)+v(c,2)+v(c,3):c '"SUFFRAGE EXERCISED BY ";n;" VOTERS"'"First preference votes:"'p(1);"% Red party"'p(2);"% Blue party"'p(3);"% Yellow party"''"DISTRIBUTION OF VOTES & 2ND CHOICE (%)" c=1nc o'" Constituency ";(c+64@);" - Population ";r(c);" (";v(c,1)+v(c,2)+v(c,3);" voting)" p=13 " ";v(c,p);" vote for ";p$(p,̨l(p));" party (";c(c,p,1);"% ";p$(a(1),̨a(1)*2+(a(1)=1));", ";c(c,p,2);"% ";p$(a(2),̨l(a(2)));")" p:c &'"EFFECTIVE SUFFRAGE"' 05'" PLURALITY VOTING SYSTEM":510:1910v :4'" MAJORITY VOTING SYSTEM":870f:1910v D/'" STV VOTING SYSTEM":320@:1910v N@'" PARTY LIST (average) VOTING SYSTEM":580D:1910v XK'" PARTY LIST (greatest remainder) VOTING SYSTEM":660:1910v b lPrint election results v#1990:2400` :n=0 .p=13:i=(t(d(p))*100d/nc) E" ";t(d(p));" seats (";i;"%) held by ";p$(d(p),̨l(d(p)));" party" i< p(d(p))n=n+(p(d(p))-i) p:" ";n;"% of vote wasted" 8" Suffrage effective for ";100d-n;"% of voters."  Count number of seats $p=13:t(p)=0:p *c=1nc:t(s(c))=t(s(c))+1:c  Election results #:p=13:٨i(p),,;:p 8:#4;173,46.;"{L9886}|E L E C T I O N N I G H T|":0,172:255,0:0,165:255,0:0,157:255,0 0:7:#4;150,70F;"{L9884}|THE RAND POLL RESULTS:";119w,85U;"ELECTION RESULTS:|":1  #10808:2400` :n=0 /p=13:n=n+t(p):p:n=n/100d  #4;134,10 ;:p=13:#4;٨i(d(p));p$(d(p),̨l(d(p)));" party ";(t(d(p))/n);"%";(","p3);" "; *p:i$=" " 4ii=111 :21-i,0;4;i$;5;i$;4;i$;5;i$;4;i$;:i >#x=0:y=102f:n=6 H8:2340$ :#4;y+9 ,0;nc;y,8;7;"SEATS";88X;"VOTING SYSTEMS";218;"VOTES%":x=210:2370B RIi=110 :#4;6+8*i,242;i*10 :i \#4;92\,2;0;"Plurality";502;"Majority";96`;"STV";146;"Party List";194;"Party List";85U,146;"(average)";194;"(remainder)" fE510:x=3:y=13 :2240:x=8:2310 p;870f:x=513:2240:x=568:2310 z<320@:x=99c:2240:x=104h:2310 =580D:x=147:2240:x=152:2310 =660:x=195:2240:x=200:2310 O#4;0;3,513;7;"PRESS SPACE TO RETURN TO MENU"; #0:K$=:K$" "2210  Seats graph  1990 Rp=13:p*2-(3p=2):n=t(p)*80P/nc:2340$ Ln=23678~\:n>579#4;n+4,x+7;t(p):2280 #4;n+11 ,x;t(p) x=x+16:p  Votes graph `p=13:p*2-(3p=2):n=p(p)*.8L:2370B :x=x+16:p   Seats bar $:i=0n-(n>1):#4;1;y+i,x;"_":i . 8 Votes bar BBi=0n-(n>2)2:#4;1;y+i,x;"_":i L VSort party in vote order `p=13:d(p)=p:p jp=32-1 tEt(d(p))> t(d(p-1))n=d(p):d(p)=d(p-1):d(p-1)=n ~Tp:t(d(3))> t(d(2))n=d(2):d(2)=d(3):d(3)=n  &HPFN print system &Rkꊕor more information on the PFN print system, write to: G. Rowland, 24 Parsloes Avenue, DAGENHAM RM9 5NX &font 4 A '0#,95>GPYbkBUK^t}gpy!(1:CLW`ipw~@@@@@@ @ @   @@ @@@@@@@` @pp ƪȨp` pPP H00HP  @ @@ PP @@ @ @@@@@@@@@pp``pp`` @@@@pp`@@@@@@Ш``pp` @@@@ p@@PP@@p` @PPP pp( `` pph*, @@8D@pppppp ࠐlDD@@ @@@@ p 0@@@ &font 6 qzq}eYRM@ ,5n)5JVk ]i0$9H4(@IR]uf~ &&C fff|fff >bb< fcccccf b`hxh`b b`hxh`` aaaaaa ``````` ?ac> bdhxlfc ``````b ppxY`]`N`N`D` px\NGCA >cc> fff|```|n ``|ffff\|x <  |t 8h````` ``|ffff `````` ``````` mmmmffffxx t|  |fff|``l```xx `````0fffn7 l??d88 d88 h00X00d 80 00 8ll` `X 0HH0 `````` x $|  ,L  8@x ||    xx\x x| p x 8x@  @@@ @`````@ @@  0hh0rw 00b b48< b48,F cs1;@@ aq2: aaaaaa2 < xp8 fff|lff >cc>  ~x|xx 8 ``cl|ng 0x000000 2\2\UF *Q\ ^(w˞V( W˖~" j~ҟg"}\z2}\| ~w~ ~w{ ˾###u t wwwv({L(l ~> 4^Ÿ#^#Vr+s+-˶###[]\"]\;-͙"]\ ~( n4 DM^#~4 {4qpnf|4~wu t 0 (w( ~Owww:}\0vL!Z_DM~#fo ~ 8 ~ N ~w_#~w#~w#u t :}\0, ~??? F('g:~\g.چ "}\ f K}\ͪ"G>w~??? F('w n f ~ ݦ8!~(5~( 5V# n(^#~O/WF(>wF~ݦ#0w 0, 5('$| %|g} o0 |g /g *}\~o"}\8> ; &PFN-LENGTH3 ! >'x% *O\  N#Fx4qp www* \#~ #ʹ3~,(+yq͙qq6 ~o&) (L!8>Z0:_FN`i~#fo(& n&^T^Vsr~( n&R845 N~NFN  H