Bu makalemde milletvekili sayısının (D'hondt yöntemiyle) nasıl hesaplanacağını anlatacağım.
Gayet basit, yazının sonuna kadar anlatım, sonunda ise online hesaplama aracını veya isteyen arkadaşlara Fortran halini vereceğim.
Her ilin milletvekili sayısı bellidir. Örneğin; Kocaeli 13 Milletvekili çıkarıyor, Antalya 14 Milletvekili çıkarıyor, Erzurum ise 6 Milletvekili. Peki bu toplam milletvekili sayısı partilerin oylarına göre partilere nasıl dağıtılıyor? İşte cevap..
Her il kendi içinde hesaplanır. Partilerin aldığı oyları yan yana yazıyoruz. Örneğimizde; 7 milletvekili çıkaracak bir seçim bölgesinde A Partisi 60 000, B Partisi 25 000, C Partisi 14 000 oy alsın.
|
A Partisi
|
B Partisi
|
C Partisi
|
1. milletvekili
|
60 000
|
25 000
|
14 000
|
2. milletvekili
|
30 000
|
25 000
|
14 000
|
3. milletvekili
|
20 000
|
25 000
|
14 000
|
4. milletvekili
|
20 000
|
12 500
|
14 000
|
5. milletvekili
|
15 000
|
12 500
|
14 000
|
6. milletvekili
|
12 000
|
12 500
|
14 000
|
7. milletvekili
|
12 000
|
12 500
|
7 000
|
|
|
|
|
Partinin çıkardığı milletvekili sayısı
|
4
|
2
|
1
|
Milletvekili başına düşen oy
|
15 000
|
12 500
|
14 000
|
1. Milletvekilinin oy sayısı en yüksek olan parti çıkarır.
2. Milletvekili satırına geldiğimizde ise en yüksek oyu olan partinin oyları 2'ye bölünür. Çünkü ikinci bu partinin oyunu (milletvekili sayısı + 1)'e böleriz.. 2. Satırda da yine en yüksek oy A partisinde olduğu için 2. milletvekilini de A partisi çıkardı.
3. Milletvekili satırında ise 2. satırda en yüksek oyu alan A partisinin ilk oyunu yani 60.000'i 3'e yani (milletvekili sayısı + 1)'e bölerek yazıyoruz. Neden 3'e böldük, çünkü 3. (2 + 1). En yüksek oy B partisinin olduğu için 3. Milletvekili B partisindendir.
4. Milletvekiline geldik, 3. Milletvekili satırındaki en yüksek oy B partisinde olduğu için 4. milletvekili satırına B partisinin oyunu 2'ye (milletvekili sayısı + 1)'ye bölerek yazıyoruz.
5. 6. ve 7. Milletvekili de aynı şekilde hesaplanır. Bu yönteme D'hondt yöntemi denir.
Kolay yoldan yani D'hondt yöntemi ile milletvekili sayısını hesaplamak istiyorsanız http://dhontmilletvekili.hesaplamasistemi.com/ linkine tıklayarak millet vekili simülasyonuna ulaşabilirsiniz. Millet vekili hesaplamak bu kadar basit aslında.
Bu online aracı internetsiz ortamda kullanamayacağınız için size bizzat kendi ellerimde Fortran (Force) ile D'hont yöntemi ile milletvekili nasıl hesaplanır, kodladım. Aşağıdaki kodları alıp Force veya Fortranda çalıştırabilirsiniz.
Fortran Milletvekili Sayısı Hesaplama
Fortran'ı indirmek için buraya tıklayın.
Fortran'da yazılmış milletvekili hesaplama (D'Hondt yöntemiyle) kodlarını indirmek içinse buraya tıklayın. İndirdiğiniz derlenmiş dosyaya çift tıklamanız çalıştırmak için yeterlidir.
Derlenmiş dosyaya ait kodlama ise aşağıdaki şekilde, kopyala yapıştır yaparak kullanabilirsiniz.
D'Hondt Millet Vekili Hesaplama (Fortran, Force) Kodları
dimension oylar(50), oylar_sbt(50), vekil(50)
integer say, parti_sayisi, vekil_sayisi, oylar, oylar_sbt, vekil
say=1
write (*,*) 'DHONDT MİLLETVEKİLİ HESAPLAMA SİSTEMİ'
write (*,*) '-----------------------------------------------'
write (*,*) 'Seçime katılan parti sayısını girin:'
read (*,*) parti_sayisi
write (*,*) '-----------------------------------------------'
do
write (*,*) say, '. ŞEHİR İÇİN HESAPLAMA'
write (*,*) 'şehre ait toplam milletvekili sayısını girin:'
read (*,*) vekil_sayisi
write (*,*) 'Partilerin aldçßç oylarç girin:'
read (*,*) (oylar(i),i=1,parti_sayisi)
do sbt = 1, parti_sayisi
oylar_sbt(sbt)=oylar(sbt)
end do
do atama = 1, vekil_sayisi
vekil(atama)=0
end do
write (*,*) 'Hesaplama tablosu -----------------------------'
write (*,*) (oylar_sbt(i),i=1,parti_sayisi)
do 20 satirlar = 1, (vekil_sayisi)
islemdeki_oy=0
do 10 en_buyuk_oy = 1, parti_sayisi
if ((oylar(en_buyuk_oy)) .gt. islemdeki_oy) then
islemdeki_oy=oylar(en_buyuk_oy)
end if
10 continue
do 30 hesaba_basla = 1, parti_sayisi
oy_guncelle=0
if (islemdeki_oy .eq. (oylar(hesaba_basla))) then
vekil(hesaba_basla)=vekil(hesaba_basla)+1
oy_guncelle=((oylar_sbt(hesaba_basla))/(vekil(hesaba_basla)+1))
oylar(hesaba_basla)=oy_guncelle
end if
30 continue
if (satirlar .lt. vekil_sayisi) then
write (*,*) (oylar(i),i=1,parti_sayisi)
end if
20 continue
write (*,*) 'Milletvekili dağılımları ----------------------'
write (*,*) (vekil(j),j=1,parti_sayisi)
write (*,*) '-----------------------------------------------'
say=say+1
end do
end
Toplam 1 Yorum
Ramazan
09.05.2018 20:41:57
Teşekkürler peki araya barajı geçemeyen partiler girersen eolur