Facebook ile ilgili
İyi günler, aklıma bir şey takıldı bu aralar böyle dikkatimi çeken bir şey oldu. Mesela ardakaşım olmayan birinin profilne girince: Örnek olarak vermem gerekirse Ahmet'i, Hasan'ı Tayfun'u
gibi farklı isimlerin sonunda biten harfler var bunu hangi mantıkla yapıyorlar
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
Yazdım geldim hocam. TMWWDW/case-suffixes.
JavaScript ve TypeScript versiyonu var, src klasöründen alıp istediğin gibi
kullanabilirsin.
https://github.com/cengizhancaliskan/iyelik-eki projenin javascript versiyonu da yapılabilirmiş. Sağol Tayfun hocam aklıma bir fikir geldi...
PHP iyelik eki ile ilgili bir sınıf vardı, inceleyebilirsin;
https://github.com/cengizhancaliskan/iyelik-eki
// Ünlünün hangi tip ünlü olduğunu belirle
$tip = "";
if(in_array($harf, $duz_unluler)) {
$tip = "düz";
}elseif (in_array($harf, $yuvarlak_unluler)) {
$tip = "yuvarlak";
}
// İSMİN BELİRTME HALİNDE;
// Yuvarlak ünlülerde eğer harf arka yuvarlaksa (o, u) kelimeyi u takip eder
// Yuvarlak ünlülerde eğer harf ön yuvarlaksa (ö, ü) kelimeyi ü takip eder
// Düz ünlülerde eğer harf arka düzse (a, ı) kelimeyi ı takip eder
// Düz ünlülerde eğer harf ön düzse (e, i) kelimeyi i takip eder
// Tabi kelimenin sesli harfle bitip bitmediğini de kontrol etmen gerekir
// Eğer ünlü ile bitiyorsa hâl ekinden önce gereken kaynaştırma ünsüzünü (y, ş, s, n) ekleyebilirsin
// Kelimeyi takip edecek hâl ekine kuyruk diyelim
$kuyruk = "";
if($tip == "yuvarlak") {
// Arka yuvarlak mı?
if($harf == "o" || $harf == "u"){
$kuyruk = "u";
// Ön yuvarlak mı?
}elseif ($harf == "ö" || $harf == "ü") {
$kuyruk = "ü";
}
}elseif($tip == "düz") {
// Arka düz mü?
if($harf == "a" || $harf == "ı"){
$kuyruk = "ı";
// Ön düz mü?
}elseif ($harf == "e" || $harf == "i") {
$kuyruk = "i";
}
}
Şöyle bir algoritma işini görür muhtemelen;
/* Kelimenin son ünlüsü düz ünlü mü yoksa yuvarlak ünlü mü kontrol et */
// Tüm ünlüleri tanımla;
$unluler = ["a", "e", "ı", "i", "o", "ö", "u", "ü"];
// Düz ünlüleri tanımla;
$duz_unluler = ["a", "e", "ı", "i"];
// Yuvarlak ünlüleri tanımla;
$yuvarlak_unluler = ["o", "ö", "u", "ü"];
// Girilen metni ters çevir örn: "Tayfun" => "nufyaT"
/* PHP'de strrev( $string ); fonksiyonu işini görür. */
// Herhangi bir ünlü harfe denk gelene kadar bütün harfleri tek tek kontrol et
$input = "Tayfun";
$kelime = strrev($input);
$index = 0;
$harf = $kelime[$index];
while(!in_array($harf, $unluler)) {
$index++;
$harf = $kelime[$index];
}
// Bu şekilde son seslinin "u" olduğunu anlayabilirsin, bu örnekte $harf değişkeni "u" değerini taşıyor.