#!/usr/bin/env ruby
#=================================================
# HOOKUS-POOKUS-FUNKTSIOONI SISU ON
# SOOVITATAV MITTE, M_I_T_T_E, LUGEDA
# SEST SEE ON TEHNILINE FORMAALSUS, MILLEGA
# LAETAKSE VAID INTERNETIST ANDMEID ALLA.
# Siinset koodi on võimalik alla laadida aadressilt:
# http://longterm.softf1.com/2015/comments/2015_01_24_refirli_tegelik_mandaat.rb

def hookus_pookus_funktsioon_mis_tagastab_kõigi_vähemalt_18_aastaste_inimeste_arvu
   # See funktsioon siin on totaalne häkk
   # ja mingist efektiivsusest ei ole siin üldse juttugi.

   require 'open-uri' # laeb programmeerimiskeel Ruby mooduli

   # Aadressilt
   # http://pub.stat.ee/px-web.2001/Dialog/varval.asp?ma=RL0401&lang=2
   # alla laetud semikoolon-eraldatud formaadis
   # tekstifaili asub
   salvestatud_andmestiku_asukoht=""+
   "http://longterm.softf1.com/2015/comments/2015_01_24_stat_ee_lehelt_salvestatud_2011_aasta_rahvaloenduse_tulemused_RL0401sm.txt"

   s_andmestik_tekstina=open(salvestatud_andmestiku_asukoht){|f|f.read}
   i_sum=0
   s_andmestik_tekstina.each_line do |s_line|
      next if s_line.length<4
      #"Kogu Eesti";"Mehed ja naised";"18";13882
      s_0=s_line.reverse
      ix=s_0.index(";") # "abc".index("b")==1
      i_0=(s_0[0..(ix-1)]).reverse.to_i
      i_sum=i_sum+i_0
   end # loop
   return i_sum
end # hookus-pookuse lõpp
#=========================================
# ARVUTUSKÄIKU TASUB LUGEMA HAKATA ALLES SIIT REALT


valimistel_osalejad=575133.to_r  # to_r teisendab täisarvu murdarvuks

koalitsiooni_protsent=(28.6+20.5).to_r # Reform + IRL = 49,1


kõik_eesti_inimesed_kes_on_vähemalt_18_aastat_vanad=0+
hookus_pookus_funktsioon_mis_tagastab_kõigi_vähemalt_18_aastaste_inimeste_arvu().to_r
# annab kokku 1056831

koalitsiooni_häälteatearv=valimistel_osalejad*
(koalitsiooni_protsent/100)
# ligikaudu 282390


koalitsiooni_tegelik_mandaat=100*koalitsiooni_häälteatearv/
kõik_eesti_inimesed_kes_on_vähemalt_18_aastat_vanad
# ligikaudu 26,7%

# "puts" ei ole siin ropendamine, vaid
# Ruby keele standardfunktsioon, mille nimi
# on inspireeritud väljendist "put string".
# to_f teisendab murdarvu ujukoma-arvuks.
puts("Koalitsiooni tegelik mandaat on: "+
koalitsiooni_tegelik_mandaat.to_f.round(1).to_s+"% .\n\n")


