Calcolare la percentuale espressa da una frazione...
in politica
Voti Aventi Diritto Votanti Voti validi
100 / 2.359.119 1.018.911 976.319
Coefficienti 0,000042389 0,000098144 0,000102426
Percentuale voto 43,19 % 41,38 %
liste
Partito democratico 267.605  11,34 % 26,26 % 27,41 %
Popolo della libertà (di fare come gli pare) 195.749  8,30 % 19,21 % 20,05 %
Movimento 5 stelle 130.635  5,54 % 12,82 % 13,38 %
Sinistra ecologia libertà 63.728  2,70 % 6,25 % 6,53 %
Lc-Alfonso Marchioni sindaco 76.203  3,23 % 7,49 % 7,80 %
Lc-Marino sindaco 75.494  3,20 % 7,41 % 7,73 %
Sinistra ecologia libertà 63.728  2,70 % 6,25 % 6,53 %
Fratelli d'italia 60.375  2,56 % 5,92 % 6,18 %
Lc-cittadini x roma 50.239  2,13 % 4,93 % 5,14 %
Centro Democratico 14.735  0,62 % 1,45 % 1,51 %
La destra 13.256  0,56 % 1,30 % 1,36 %
Rifondazione comunista 11.629  0,49 % 1,14 % 1,19 %
Lc-repubblica romana 7.940  0,34 % 0,78 % 0,81 %
Lista dei grillini parlanti 6.552  0,28 % 0,64 % 0,67 %
Verdi ecologisti 6.299  0,27 % 0,62 % 0,64 %
Casapound italia 6.295  0,27 % 0,62 % 0,64 %
Partito socialista italiano 5.853  0,25 % 0,57 % 0,60 %
Altri 26.324  1,11 % 2,58 % 2,70 %

Voti Aventi Diritto Votanti Voti validi
100 / 2.359.119 1.203.335 1.160.743
Coefficienti 0,000042389 0,000083102 0,000086152
Percentuale voto 51,01 % 49,20 %
candidato
Ignazio Marino 512.720  21,73 % 42,61 % 44,17 %
Giovanni Alemanno 364.337  15,44 % 30,28 % 31,39 %
Marcello De Vito 149.665  6,34 % 12,43 % 12,89 %
Alfio Marchini 114.169  4,84 % 9,48 % 9,83 %
Sandro Medici 26.825  1,14 % 2,23 % 2,31 %
Luiggi Marra 14.307  0,60 % 1,19 % 1,23 %
Simone Di Stefano 7.166  0,30 % 1,17 % 1,22 %
Altri 14.146  0,60 % 0,59 % 0,62 %
 
bianche nulle e non assegnate 42.592  1,80 % 3,53 %

Come si vede dalle tabelle chi ha vinto a secondo del dato di paragone preso, riesce a passare da un modesto 21,73 % sul totale degli aventi diritto ad un più rispettabile 42,61 % dei votanti, sino ad arrivare al 44,17 % delle schede valide.
Dal conoscere e capire queste discrepanze si potrà arrivare anche a poter sorridere se non sbellicarsi dalle risate, quando ci si troverà davanti a personaggi dai toni trionfalistici che pretendono di aver ottenuto consensi plebiscitari. dopo elezioni da considerarsi catastrofiche per la rappresentanza espressa.
Come affermava un antico saggio, la verità ci renderà liberi (In questo caso forse di farci qualche buona risata! Se si riesce a superare lo sconforto per il tutto.) Chiaramente chi ha preso più voti ha comunque vinto, ma forse ci si dovrebbe interrogare di più sul perchè si è vinto con così pochi voti, in valore assoluto.


Ora vediamo come implementare il tutto in un piccolo programma Perl.
Il programma è molto grezzo, da lanciare in un terminale. Non esegue controlli sui dati immessi e la formattazione lascia alquanto a desiderare. Per queste ed altre cose, rimando a chi volesse cimentarsi in una programmazioni più sofisticata.


#!/usr/bin/perl
#
# programma sviluppato in perl, verificare di avere perl e dove sul proprio sistema
#
# variabili
# $aventi_diritto = totale elettori aventi diritto al voto
# $votanti = elettori che hanno partecipato alle votazioni
# $voti_validi = voti validi assegnati alle varie liste
# $n_politici = numero candidati partecipanti (liste)
# @nomi_politici = array nomi politici (liste)
# @voti_politici = array dei voti assegnati a ciascun politico (lista)
# $per_aventi_diritto = percentuali rapportate ad aventi diritto al voto
# $per_votanti = percentuali rapportate a votanti
# $per_voti_validi = percentuali rapportate a voti validi
# $co_aventi_diritto = coefficiente aventi diritto al voto
# $co_votanti = coefficiente votanti
# $co_voti_validi = coefficiente voti validi
# $fine_liste = fine inserimento dati

$fine_liste = "fine";

# Inserimento dati

print "Numero aventi diritto ";
$aventi_diritto = <STDIN>;
print "Votanti ";
$votanti = <STDIN>;
print "Voti validi ";
$voti_validi = <STDIN>;

print "scrivere \" fine \" come nome di lista e voti per terminare l'inserimento" . "\n";

while ($fine_liste ne $nomi){
print "Nome lista successiva ";
$nomi = <STDIN>;
chop($nomi);
push(@nomi_politici, $nomi);
print "Inserire voti lista successiva ";
$voti = <STDIN>;
chop($voti);
push(@voti_politici, $voti);
}

# Elimina l'ultimo ingresso (fine) dall'array

pop(@nomi_politici);
pop(@voti_politici);
$n_politici = push(@voti_politici);

# Elaborazione e stampa dati

chop($aventi_diritto);
chop($votanti);
chop($voti_validi);

$co_aventi_diritto = 100 / $aventi_diritto;
$co_votanti = 100 / $votanti;
$co_voti_validi = 100 / $voti_validi;

print "aventi_diritto    /    ";
print "votanti    /    ";
print "voti validi\n";

print $aventi_diritto . "  /  ";
print $votanti . "  /   ";
print $voti_validi ."\n";

print "coefficienti    ";
print "aventi_diritto    /    ";
print "votanti    /    ";
print "voti validi\n";

# stampa i coefficienti arrotondando alla nona cifra decimale

print sprintf("%.9f",$co_aventi_diritto) . "  /  ";
print sprintf("%.9f",$co_votanti) . "  /  ";
print sprintf("%.9f",$co_voti_validi) ."\n";

for ($x = 0; $x < $n_politici; $x++) {

$per_aventi_diritto = $voti_politici[$x] * $co_aventi_diritto;
$per_votanti = $voti_politici[$x] * $co_votanti;
$per_voti_validi = $voti_politici[$x] * $co_voti_validi;

# stampa le percentuali arrotondando alla seconda cifra decimale

print $nomi_politici[$x] . "    ";
print sprintf("%.2f",$per_aventi_diritto) . "    /    ";
print sprintf("%.2f",$per_votanti) . "    /    ";
print sprintf("%.2f",$per_voti_validi) . "\n";

}

print $fine_liste . "\n";



palfen 05/07/2013