ÖSYM Yerleştirme Algoritması

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar merhaba,
ÖSYM yerleştirmesi ile bir çalışma yapıyoruz. Ama maalesef işin içinden çıkamadık. Sayısal, EA, Sözel olmak üzere 3 puan türüne göre öğrencileri başarı sırasına göre tercihlerine yerleştirmemiz gerekiyor.

243378
AD6 ilk tercihi olan A bölümüne yerleşir. Kontenjanları 1 kabul ettiğimiz için diğer öğrenciler A bölümüne yerleşemez. AD1 2. Tercihi olan E bölümüne yerleşir. AD1 EA bölümünde 2. sırada. 1. sırada olan AD4 EA'dan tercih etmediği için AD1 E bölümüne yerleşir. Eğer AD4 E bölümünü tercih etseydi bu durumumda AD4 E bölümüne AD 1 ise B bölümüne yerleşecekti.
Çok karmaşık gibi görünüyor. Biz işin içinden çıkamadık doğrusu. Desteklerinizi bekliyoruz.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,823
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba bir yol göstermesi bakımından.
öncelikli tercihleri bilmek gerekiyor yani,
örnek
L4 Hücresine =MİNA(A4:C4)
M4 Hücresine =ORTANCA(A4:C4)
N4 Hücresine ==MAKA(A4:C4)
Bu formülleri uygula
ve sıralamayıda L4 - M4 - N4 hücrelerinde öncelik tercihine göre sırala sonra bunları dağıtımına gidebilirsiniz.
Sizce A4 - B4 - C4 Hücrelerindeki öncelik tercihleri hangileri olmalı buna karar vermelisiniz.

Yeni Bit Eşlem Resmi.jpg

Benim eklediğim resimde L-M-N sütünların sıralaması ile yapılmış öncelik tercih listesi
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Modüle ekleyip, LİSTE sayfasında iken çalıştırın. Kod çalışma mantığı kontenjan için öğrenci seçmektir. Yani öğrencinin bir üst tercihini kazanma şansı varken öğrenciyi alt tercihe yerleştirebilir. Kontenjanı tercih eden öğrenciler arasından kontenjana layık en iyi öğrenciyi seçecektir. Öğrencinin tercih sıralaması gözetilememektedir. Gerçekte nasıl bir mantık izleniyor öğrenmek lazım. Yani kodun sonucunda ÖSY değil ÖS oluyor.

Kod:
Sub baslat()
    Range("M:R").ClearContents
    Range("A4:J13").Interior.Color = xlNone
    sat = 4
    son = Cells(Rows.Count, "E").End(3).Row
    basliklar = Array("PuanS", "Ter", "A.No", "TerSira", "Sat")
    Range("M3").Resize(, UBound(basliklar) + 1).Value = basliklar
    For i = 8 To 10
        For ii = 4 To son
            tercih = Cells(ii, i).Value
            adayNo = Cells(ii, 5).Value
            Select Case tercih
                Case "A", "B", "C"
                    sira = 1
                Case "D", "E", "F"
                    sira = 2
                Case "G", "H"
                    sira = 3
            End Select
            puan = Cells(ii, sira).Value
            Cells(sat, "M").Value = puan
            Cells(sat, "N").Value = tercih
            Cells(sat, "O").Value = adayNo
            Cells(sat, "P").Value = i
            Cells(sat, "Q").Value = ii
            sat = sat + 1
        Next ii
    Next i
    sirala
    tercihAl
End Sub
Sub sirala()
    son = Cells(Rows.Count, "M").End(3).Row
    Range("M3:Q" & son).Sort [N3], , [M3], , , [P3], , xlYes
End Sub
Sub tercihAl()
    son = Cells(Rows.Count, "M").End(3).Row
    tercih = Cells(4, "N").Value
    aday = Cells(4, "O").Value
    sat = Cells(4, "Q").Value
    sut = Cells(4, "P").Value
    Cells(sat, 8).Resize(, 3).Interior.Color = vbRed
    Cells(sat, sut).Interior.Color = vbGreen
    Cells(sat, 1).Resize(, 6).Interior.Color = vbGreen
    For i = 4 To 13
        If i <> sat Then
            For ii = 8 To 10
                If Cells(i, ii).Value = tercih Then
                    Cells(i, ii).Interior.Color = vbRed
                End If
            Next ii
        End If
    Next i
    For i = 4 To son
        If Cells(i, "N").Value = tercih Or Cells(i, "O").Value = aday Then
            Cells(i, "M").Resize(, 5).Value = ""
        End If
    Next i
    sirala
    If [m4].Value <> "" Then tercihAl
    Range("M:R").ClearContents
End Sub
 
Son düzenleme:

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Örneğin ODTÜ Fizik sayısal puanı ile alan bir bölüm olsun ve kontenjanı 40 diyelim. Benim sayısal sıralamam 150. Benim bu bölüme yerleşebilmem için benden önceki 149 kişiden toplam 40 öğrenci burayı istememiş olmalı.
Öncelik ilgili bölümün puan türü sıralaması. Benim EA'da ve SÖZ'de 1. olmam sayısal bölüm için önem teşkil etmiyor.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
243381
AD1 E bölümüne yerleşmeli. 2. Tercihe yerleşebiliyor.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Amaç çoğu kişinin yerleşmesi değil. Amaç puan üstünlüğü ve tercih önceliğine göre yerleşmeli.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Karar verme diye bir durum olmamalı. Puan üstünlüğü ve tercih önceliğine göre yerleşmeli. İç içe geçmiş döngüler ile bulunabilir gibi.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
243385
Başarı sıralamasında küçük değer daha başarılı oluyor.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
243387
Kod:
Sub baslat()
    Range("M:R").ClearContents
    Range("A4:J13").Interior.Color = xlNone
    sat = 4
    son = Cells(Rows.Count, "E").End(3).Row
    basliklar = Array("PuanS", "Ter", "A.No", "TerSira", "Sat")
    Range("M3").Resize(, UBound(basliklar) + 1).Value = basliklar
    For i = 8 To 10
        For ii = 4 To son
            tercih = Cells(ii, i).Value
            adayNo = Cells(ii, 5).Value
            Select Case tercih
                Case "A", "B", "C"
                    sira = 1
                Case "D", "E", "F"
                    sira = 2
                Case "G", "H"
                    sira = 3
            End Select
            puan = Cells(ii, sira).Value
            Cells(sat, "M").Value = puan
            Cells(sat, "N").Value = tercih
            Cells(sat, "O").Value = adayNo
            Cells(sat, "P").Value = i
            Cells(sat, "Q").Value = ii
            sat = sat + 1
        Next ii
    Next i
    sirala
    tercihAl
End Sub
Sub sirala()
    son = Cells(Rows.Count, "M").End(3).Row
    Range("M3:Q" & son).Sort [P3], , [N3], , , [M3], , xlYes
End Sub
Sub tercihAl()
    son = Cells(Rows.Count, "M").End(3).Row
    tercih = Cells(4, "N").Value
    aday = Cells(4, "O").Value
    sat = Cells(4, "Q").Value
    sut = Cells(4, "P").Value

    Select Case tercih
        Case "A", "B", "C"
            sira = 1
        Case "D", "E", "F"
            sira = 2
        Case "G", "H"
            sira = 3
    End Select

    Cells(sat, 8).Resize(, 3).Interior.Color = vbRed
    Cells(sat, sut).Interior.Color = vbGreen
    Cells(sat, sira).Interior.Color = vbGreen
    Cells(sat, 5).Resize(, 3).Interior.Color = vbGreen
    For i = 4 To 13
        If i <> sat Then
            For ii = 8 To 10
                If Cells(i, ii).Value = tercih Then
                    Cells(i, ii).Interior.Color = vbRed
                End If
            Next ii
        End If
    Next i
    For i = 4 To son
        If Cells(i, "N").Value = tercih Or Cells(i, "O").Value = aday Then
            Cells(i, "M").Resize(, 5).Value = ""
        End If
    Next i
    sirala
    If [m4].Value <> "" Then tercihAl
    Range("M:R").ClearContents
End Sub
 
Son düzenleme:

hgenc545

Altın Üye
Katılım
17 Aralık 2012
Mesajlar
133
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
21-08-2025
Değerli hocalar merhaba,

ilgimi çekti konu bayağı bir araştırdım, aslında kişinin yazılım ve algoritmik seviyesine müthiş katkı sağlayacak bir proje.

Bir kaç kere döngü yapıyor sistem. Verilere göre yerleştirme iç içe tekrar eden 3 adım da yapılıyor.

İlk adımda adaylar her bir bölümün altına puan sıralamalarına göre büyükten küçüğe diziliyor.
Bu dizilim birden fazla bölüme yerleşmiş olabileceği kontrolü yapılmadan gerçekleştiriliyor.
Bu dizilimde adayın birden fazla bölüme yerleşme ihtmalinden dolayı ilgili adayın yerleşen tercihlerinden en öncelikli tercihi dışındaki diğer yerleşen tercihlerinin hepsi pasif yapılıyor.
Adayın yerleşen tercihleri arasında ilk tercihi bulunuyor ise bu aday kesin olarak yerleşmiş demektir.

Bu arada ÖSYM esas olarak 1. tercihi öncelikliyor.. Yani bir adayın A bölümünde puan90 sırası4.üncü ama o bölümü tercih sırası 2 ise; ve bir başkasının aynı bölümde puanı70 sırası12.inci ve o bölümü tercih sırası 1 ise bu adayı yerleştiriyor sistem önce..

Sistemin orijinal yazlımı ve kurallarını ekte iletiyorum. sayfa 10-16 arası yeterli bilgi mevcut. Detaylıca tablo örnekleriyle anlatılmış.

Çözüme ışık tutacağını düşündüğüm için paylaşmak istedim.

Kolay gelsin
 

Ekli dosyalar

Son düzenleme:

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Puan öncelik olmalı. Diyelim ki ben sayısalda 1.yim ve sadece 2 tercih yaptım. İlk tercihim EA bölümünden. Ama bu bölüme yerleşemedim. 2. Tercihim ise diğer öğrencilerin ilk tercihi. Ben bu durumda açıkta mı kalıyorum?
 

hgenc545

Altın Üye
Katılım
17 Aralık 2012
Mesajlar
133
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
21-08-2025
Puan öncelik olmalı. Diyelim ki ben sayısalda 1.yim ve sadece 2 tercih yaptım. İlk tercihim EA bölümünden. Ama bu bölüme yerleşemedim. 2. Tercihim ise diğer öğrencilerin ilk tercihi. Ben bu durumda açıkta mı kalıyorum?

Eğer ilk tercihiniz olan EA bölümüne yerleşemediyseniz, ancak ikinci tercihiniz olan diğer öğrencilerin ilk tercihi olan bir bölüme yerleştirildiyseniz, o zaman açıkta kalmazsınız. Çünkü her iki tercihiniz de aynı dönemde değerlendirilir ve ikinci tercihiniz size yerleşme imkanı sağlar.
Ancak, eğer yalnızca iki tercih yapmışsanız ve her iki tercihiniz de doluysa veya sizi kabul etmezlerse, o zaman açıkta kalırsınız. Bu durumda, sonraki tercih dönemlerinde tercih yapabilir veya başka bir seçenek olarak açık öğretim fakültesine kayıt olabilirsiniz.

Kısacası olasılık ihtimali güç olsada sistemin matematiksel gerçeği bu..
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,823
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Karar verme diye bir durum olmamalı. Puan üstünlüğü ve tercih önceliğine göre yerleşmeli. İç içe geçmiş döngüler ile bulunabilir gibi.
Eklemiş olduğunuz 1 nolu mesajdaki dosya da 4. ve 12 satırdaki kişi için ikisininde 1. terciği A kontenjan sayfasında A terciği için 1 kişi gözüküyor.
12. sıradaki SAY başarı puanı 1 yani en yüksek
4. sıradaki EA başarı 1 yani en yüksek


şimdi 12 sıradaki SAY terciği önce yerleşirse 4 sıradaki EA daki ilk terciği dolu olduğundan 2 terciğine geçecektir.
eğer 4 sıradaki EA terciği önce aktarırsanız 12 sıradaki SAY tercih ilk terciğ dolu olduğu için 2 terciğine geçecektir.

burada demek istediğim şu SAY,EA,SÖZ başarı sırası öncelik hangisinde?
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,205
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Başarı sıralamasında küçük değer daha başarılı oluyor.
Hangisi mesela?

Ayrıca Halit Bey'in 14. mesajında belirttiği gibi puan eşitliği durumunda SAY ,SÖZ ve EA önceliği belirlenmediği için zaten 1 olan kontenjana liste sırasına göre öncelik verildi.
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
A, SAY bölüm olduğu için SAY sıralamasına göre yerleştirmeli. 4. Satırdaki kişi sayısalda 2. sıra. 12. Satırdaki Sayısal da 1. Sıra. A, B, C SAYbölümü, D, E, F EA bölümü, G,H SÖZ bölümü puanına göre alıyor. 4. Satırdaki kişinin EA'da 1. olması SAY tercihi için önemli değil.
243401
4. Satırdaki EA'dan tercih yapmadığı için yerleşmesi zor. G bölümüne yerleşebilmesi için 7. Sıra olduğundan kendisinden önceki 6 kişinin G tercihi yapıp yapmadığına bakılmalı.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Merhaba;


Hangisi mesela?

Ayrıca Halit Bey'in 14. mesajında belirttiği gibi puan eşitliği durumunda SAY ,SÖZ ve EA önceliği belirlenmediği için zaten 1 olan kontenjana liste sırasına göre öncelik verildi.
Puan eşitliği şimdiki dosyada en azından şu aşamada düşündüğümüz bir kriter değil. Bu yüzden öğrenci sıralamalarında eşitlik yok. Her öğrenci farklı puan almış diyebiliriz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,024
Excel Vers. ve Dili
2013 Türkçe
Eğer ilk tercihiniz olan EA bölümüne yerleşemediyseniz, ancak ikinci tercihiniz olan diğer öğrencilerin ilk tercihi olan bir bölüme yerleştirildiyseniz, o zaman açıkta kalmazsınız. Çünkü her iki tercihiniz de aynı dönemde değerlendirilir ve ikinci tercihiniz size yerleşme imkanı sağlar.
Ancak, eğer yalnızca iki tercih yapmışsanız ve her iki tercihiniz de doluysa veya sizi kabul etmezlerse, o zaman açıkta kalırsınız. Bu durumda, sonraki tercih dönemlerinde tercih yapabilir veya başka bir seçenek olarak açık öğretim fakültesine kayıt olabilirsiniz.

Kısacası olasılık ihtimali güç olsada sistemin matematiksel gerçeği bu..
Hocam diyelim ki Sayısalda ilk 40 öğrenci Hacettepe Tıp seçsin ve kontenjan da 40 kişi. Bu durumda 41 ile 10.000 kişi arasındaki öğrencilerin de ilk tercihi bu bölüm. O zaman bu kişiler açıkta mı kalacak. 41 ile 10.000 sıradakilerin ikinci Tercihi ÇAPA Tıp olsun. Ben de 10.001 sıradayım ve ilk tercihim ÇAPA Tıp. 41. Sıra atanamazken benim o bölüme atanmam ne kadar doğru olur.
Doğrusu puan üstünlüğüne göre atama olmalı. 41. Sıradakinin tüm tercihlerine bakılmadan 10.001 olan kişiyi yerleştirmek adil olmaz.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,823
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
A, SAY bölüm olduğu için SAY sıralamasına göre yerleştirmeli. 4. Satırdaki kişi sayısalda 2. sıra. 12. Satırdaki Sayısal da 1. Sıra. A, B, C SAYbölümü, D, E, F EA bölümü, G,H SÖZ bölümü puanına göre alıyor. 4. Satırdaki kişinin EA'da 1. olması SAY tercihi için önemli değil.
Ekli dosyayı görüntüle 243401
4. Satırdaki EA'dan tercih yapmadığı için yerleşmesi zor. G bölümüne yerleşebilmesi için 7. Sıra olduğundan kendisinden önceki 6 kişinin G tercihi yapıp yapmadığına bakılmalı.
Yeni Bit Eşlem Resmi.jpg1678089430395.png



Kendi dosyanızda 10 kişi var bunu manuel sıralayıp olması gerekeni buraya eklermisiniz.
 
Üst