+ Cevap Yaz
Toplam 3 sayfadan 2. sayfa
İlkİlk 1 2 3 En SonEn Son
24 sonuçtan 11 ile 20 arası gösteriliyor

Konu: Türkçe İyelik Eki Ekleme Fonksiyonu

  1. #11
    Yönetim Kurulu chesterx Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2007
    Yer
    İstanbul
    Mesaj
    2,437

    evet istisnaları da düşünürsek eğer büyük bir fonksiyon olur
    Bilişim; bilgi ve yetenek meselesi değil ahlak ve karakter meselesidir. . .

    www.sercanvirlan.com

  2. #12
    Üçekmek Turkoman Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    05/2008
    Yer
    in altında
    Mesaj
    1,120

    Sanırım bir if ve ünlüler gösterilerek sorun çok rahat çözülür.
    Çıktığın merdivene tekme atma ki, başkaları da çıkabilsin.

    Sahip olduğu bilgi ve zekânın yükünü taşıyabilen, mütevazı; taşıyamayan, ukala olur.

  3. #13
    Üye
    Üyelik Tarihi
    10/2008
    Mesaj
    7

    Alıntı chesterx, mesajından alıntı: Mesajı Gör
    Fakat "Mart, Mort" gibi olursa 'in ekliyor
    Şimdi sorun aslında Türkçe'nin sondan eklemeli yapısında.
    Dilbilimsel açıdan kural şudur:
    3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır.
    Ben sondan bir önceki karaktere kadar gittmiştim. Else if le geriye doğru devam edilebilir istediğimiz kadar. Sondan 3. karakteri de eklersek Mert'i de kapsar.

    Hatta abartıp sondan dördüncü karakteri de ekledim şöyle oldu:
    (Ad değil Mert Merkt bile olsa çalışır bu haliyle )

    PHP Kodu:
    // ismin nikneymin sonuna iyelik eki ekler
    function iyelik($ad)
    {
    $buyuk = array("A""I""E""İ""U","O""Ü""Ö");
    $kucuk = array("a""ı""e""i""u","o""ü""ö");
    $kucultulmus str_replace($buyuk$kucuk$ad);


    $isim=trim($kucultulmus);
    $sonharf substr($isim, -1);    // son karakter
    $oncekiharf substr($isim, -21); // sondan bir önceki karakter
    $ikioncekiharf substr($isim, -31); // sondan iki önceki karakter
    $ = substr($isim, -41); // sondan uc önceki karakter


    if ($sonharf=="a" or $sonharf=="ı") {$eki="'nın";}
    elseif (
    $sonharf=="e" or $sonharf=="i") {$eki="'nin";}
    elseif (
    $sonharf=="u" or $sonharf=="o") {$eki="'nun";}
    elseif (
    $sonharf=="ü" or $sonharf=="ö") {$eki="'nün";}

    elseif (
    $oncekiharf=="a" or $oncekiharf=="ı") {$eki="'ın";}
    elseif (
    $oncekiharf=="e" or $oncekiharf=="i") {$eki="'in";}
    elseif (
    $oncekiharf=="u" or $oncekiharf=="o") {$eki="'un";}
    elseif (
    $oncekiharf=="ü" or $oncekiharf=="ö") {$eki="'ün";}

    elseif (
    $ikioncekiharf =="a" or $oncekiharf=="ı") {$eki="'ın";}
    elseif (
    $ikioncekiharf =="e" or $oncekiharf=="i") {$eki="'in";}
    elseif (
    $ikioncekiharf =="u" or $oncekiharf=="o") {$eki="'un";}
    elseif (
    $ikioncekiharf =="ü" or $oncekiharf=="ö") {$eki="'ün";}


    elseif (
    $uconcekiharf =="a" or $oncekiharf=="ı") {$eki="'ın";}
    elseif (
    $uconcekiharf =="e" or $oncekiharf=="i") {$eki="'in";}
    elseif (
    $uconcekiharf =="u" or $oncekiharf=="o") {$eki="'un";}
    elseif (
    $uconcekiharf =="ü" or $oncekiharf=="ö") {$eki="'ün";}

    else  {
    $eki=" isimli üyenin";} //Gerek yok belki ama işimizi sağlama alıyoruz

    /// Ahmet'in, Bengü'nün, Lost_Boy'un şeklinde yazılıyor
    $sonuc$ad.$eki;

     return 
    $sonuc;

    (istersen 4. beşinci karaktere kadar gitmek mümkün) Sanırım bu işe yarar.

  4. #14
    Üçekmek Turkoman Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    05/2008
    Yer
    in altında
    Mesaj
    1,120

    Alıntı Etyka, mesajından alıntı: Mesajı Gör
    Şimdi sorun aslında Türkçe'nin sondan eklemeli yapısında.
    Dilbilimsel açıdan kural şudur:
    3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır.
    Ben sondan bir önceki karaktere kadar gittmiştim. Else if le geriye doğru devam edilebilir istediğimiz kadar. Sondan 3. karakteri de eklersek Mert'i de kapsar.

    Hatta abartıp sondan dördüncü karakteri de ekledim şöyle oldu:
    (Ad değil Mert Merkt bile olsa çalışır bu haliyle )
    1 - "3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır." Bu kurala göre isim Kemal olursa Kemal'ın mı yoksa Kemal'in mi olmalı?

    2- Fazla if else ye gerek yok son ünlüyü bulduracak bir işlev(fonksiyon) yardımcı olacaktır.
    Çıktığın merdivene tekme atma ki, başkaları da çıkabilsin.

    Sahip olduğu bilgi ve zekânın yükünü taşıyabilen, mütevazı; taşıyamayan, ukala olur.

  5. #15
    Yönetim Kurulu chesterx Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2007
    Yer
    İstanbul
    Mesaj
    2,437

    Kemal'ın mı yoksa Kemal'in mi olmalı?
    =>Kemâl
    benzer durum
    Gol kelimesinde o harfi inceltme işareti almazken ince okunur (futboldaki gol)
    Bilişim; bilgi ve yetenek meselesi değil ahlak ve karakter meselesidir. . .

    www.sercanvirlan.com

  6. #16
    Üçekmek Turkoman Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    05/2008
    Yer
    in altında
    Mesaj
    1,120

    Bu arada Etyka, yaptığın çalışma gerçekten takdire şayan sakın yermek için yazdığımı sanma. Çok sevdiğim bir konu olduğu için sormadan duramıyorum.
    Çıktığın merdivene tekme atma ki, başkaları da çıkabilsin.

    Sahip olduğu bilgi ve zekânın yükünü taşıyabilen, mütevazı; taşıyamayan, ukala olur.

  7. #17
    Üye
    Üyelik Tarihi
    10/2008
    Mesaj
    7

    Alıntı Turkoman, mesajından alıntı: Mesajı Gör
    Bu arada Etyka, yaptığın çalışma gerçekten takdire şayan sakın yermek için yazdığımı sanma. Çok sevdiğim bir konu olduğu için sormadan duramıyorum.
    Yok ya ne alınıcam rica ederim Kelimenin en son sesli harfini direk bulup if else basmasak daha mantıklı olur tabi . Ama kelimenin en son harfi istisna duruma sahip.

    Çünkü eğer en son harf sesliyse ve misal e harfiyse in değil nin eki alıyor. Sadece son sesli harfi bulursak ve mesela son sesli harf ü ise nün mü yoksa ün mü yazdıracağımız karışıyor.

    O yüzden biraz da mecburen harf harf geriye gittim

    Bu arada yukarıdaki son halinde gözümden kaçmış:
    PHP Kodu:
    $= substr($isim, -41); // sondan uc önceki karakter 
    yerine aşağıdaki olması lazım tabi.
    PHP Kodu:
    $uconcekiharf substr($isim, -41); // sondan uc önceki karakter 

  8. #18
    Üye arikan Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    06/2007
    Yer
    Bursa
    Mesaj
    565

    Elinize Sağlık

  9. #19
    Üçekmek Turkoman Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    05/2008
    Yer
    in altında
    Mesaj
    1,120

    İsim ya da isim işlevindeki kelime ya da kelime grubu ünsüz ile bitiyorsa ek +In* şeklinde gelir. Eğer ünlü ile bitiyorsa +nIn şeklinde eklenir.

    Eğer kelimenin hece yapısı KVKK (Mert) ya da VKK (Alp) (K[konsonant] = ünsüz V[vokal] = ünlü) ise bu durumda en sondaki ünlü aranıp buna göre bu eklerden birisi gelir.

    Saat, Kemal, gol gibi istisnaların -ki bunlar yabancı kökenli Türkçe kelimelerdir - yazılacak uygulamaya ayrıca tanıtılması gerekir.


    * burada +In ekin +In, +İn, +Un, +Ün şekilleri anlamında
    Çıktığın merdivene tekme atma ki, başkaları da çıkabilsin.

    Sahip olduğu bilgi ve zekânın yükünü taşıyabilen, mütevazı; taşıyamayan, ukala olur.

  10. #20
    where id='Linux' zbahadir Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    07/2006
    Yer
    Trabzon
    Mesaj
    817

    Gittikçe gelişiyor, çok kişinin işine yarayacaktır.
    Paylaştığın ve emeğin için tekrar teşekkürler Etyka.

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Tags for this Thread

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz