Jump to page: 1 2
Thread overview
September 19, 2009

Aynı anda ikisi tamamen benim yazdığım biri de phobosdan alıp düzenlediğim 3 toupperInPlace_tr uygulaması var.

Bir tanesi oldu gibi. Büyültüyor ve I ile İ'de düzgün oluyor gibi.

void toupperInPlace_tr(T)(ref T[] s){
   dchar[] dene = to!(dchar[])(s);
   dstring giriş = dene.idup;
   dchar büyükHarf;

   dchar[] çıkış;
   çıkış.length = giriş.length;

   foreach(int i, dchar küçükHarf; giriş) {
       büyükHarf = (küçükHarf == 'i') ? 'İ' : toUniUpper(küçükHarf);
       çıkış[i] = büyükHarf;
   }
   s = to!(T[])(çıkış);
}

Sizce eksik bir şey kaldı mı ?

Ayrıca referans ne demek ? Galiba diğer denemelerimde referans ile ilgili sorunlarım oluşuyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Fazladan değişken ve tür dönüşümleri var sanki. Birazdaha kısası aşağıdaki şekilde olabilir.

void toupperInPlace_tr(T)(ref T[] s){
   dchar[] dene = to!(dchar[])(s);

   foreach(int i, dchar küçükHarf; dene) {
       dene[i] = (küçükHarf == 'i') ? 'İ' : toUniUpper(küçükHarf);
       //i++;
   }
   s = to!(T[])(dene);
}

Benim çözümümde farklı olarak döngüyü for ile kurmuştum. Bİrde "i" değişkeninin değerini foreach kendisi otomatik olarak bir arttırıyormuş :huh:

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Alıntı (canalpay):

>

Ayrıca referans ne demek ? Galiba diğer denemelerimde referans ile ilgili sorunlarım oluşuyor.

Referanslar sayesinde parametre olarak fonksiyona gönderilen değişken üzerinde yapılan değişikler direk olarak değişkenin kendisini etkiler.

Fonksiyona referans olarak gönderilmeyen değişklerin fonksiyona girmeden önce bir kopyası oluşturulur ve o değişken üzerinde fonksiyon içinde yapılan bütün işlemler kopyasını etkiler yani değişkenin orjinal hali hiç bozulmaz.

Söylediklerimi okuyunca ben bile anlamakta zorlandım :-D O yüzden şöyle küçük bir örnek işleri daha kolaylaştırır.

import std.stdio;

void birşeyYap1(int pSayı)
{
	pSayı = 50;
}
void birşeyYap2(ref int pSayı)
{
	pSayı = 150;
}

int main()
{
	int sayı1=5;
	int sayı2 =15;

	//Sayı1 in değeri değişmicek
	birşeyYap1(sayı1);
	//Sayı2 nin değeri değişecek
	birşeyYap2(sayı2);

	writeln(sayı1);
	writeln(sayı2);
	return 0;
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Örnek için teşekkürler.

Evet bazı saçma tür dönüşümleri yapmışım. toUniUpper'ı dchar[] aldığını unutmuştum. Onun için yapmıştım.

Alıntı (esatarslan52):

>

Bİrde "i" değişkeninin değerini foreach kendisi otomatik olarak bir arttırıyormuş :huh:

Galiba c++'a göre foreach çok gelişmiş.

E ozaman birimiz ekleyelim svn'ye.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Alıntı (acehreli):

>

(Biraz sonra yerel fonksiyon olanağını deneyerek onu daha da küçülteceğim.)

Onu derken toupperInPlace_tr kodundan mı bahsediyorsunuz.

Birde tr.string belgesine bakar mısınız ? Nedense orada parametreler boş gözüküyor. Çözümü bulamadım. Sadece stringde böyle oluyor. Uni de sorun yok.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Bence ilki daha okunaklı. İkinci fonksiyon oluşturarak yaptığınız unittest bence çok fazla unittest denemek için ideal. Ama o kadar unittest'e gerek yok. Çünkü ortada o kadar çok ihtimal yok.

Ben svn'ye eklemek için hazırlıklar yapayım mı? upper yazıldığı için lower'ı kolayca yazabiliri(m|z).

Alıntı (acehreli):

>

Geçici çözüm olarak parametrelerde Türkçe harf kullanmayabiliriz ama bence kodumuzu etkilemek yerine adamların hatayı gidermelerini bekleyelim.

Gidercekleri kesin mi ? :-)

Geride iki tane fonksiyon kaldı.

  • int cmp(C1, C2)(in C1[] s1, in C2[] s2); Süprinizi bekliyorum Ali Bey.

  • CaseSensitive yes olabilen bütün fonksiyonlarda yesli hali düzeltilmesi gerekiyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Bu arada svn'ye to(upper|lower)InPlace_tr fonsiyonları eklenmiştir.
Unittest için ilk verdiğiniz kodları kullandım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Alıntı (acehreli):

>

Biraz yanlış anlaşıldım. :) Sürpriz cmp'un ta kendisi. Şöyle bir Türkçesini yapmaya başlayın hele... He he... :)

Alıntı (esatarslan52):

>

Biz bütün bunları görmedik okumadık bunlar yaşanmadı Ali hocam :-D . Sürprizi beklemeye devam ediyoruz.Hatta Ne sürpriz mi biri sürpriz mi yapacak ?. Unuttuk gitti bile :-D

Tek ben yanlış anlamadım sanırım.

Tahminim cmp Türkçe karakteri destekliyor. Ama destekleyemez ki. Ya süpriz başka bir şey yada ben yanıldım.

Alıntı (acehreli):

>

Kesinlikle katılıyorum. Ama onda bir programcılık günahı var: kod tekrarı. :)

Günahsız kul olmaz :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Alıntı (acehreli):

>

cmp, bundan önce Türkçeleştirilen fonksiyonlar yanında çok zor olacak. Ötekilerin kolaylığına aldanıp buna da bir heves başladıktan sonra sürprizle karşılaşacaktık.

Sürpriz o olacaktı... :)

Size kolay da gelebilir ama bence çok zor. Başlayın hele... :)

He öyle ise ben zaten tahmin ettiğim için başlamadım :-D Eğer dikkat ettiyseniz kolaylarından 6 tane filan fonksiyonu ben ekledim. Size zorları bıraktım, yoksa ben o fonksiyonları rastgele mi seçtim sandınız :-D

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

İki dizgiyi karşılaştırır. cmp küçük büyük harf ayrımı yapar.

Tamam iki dizgiyi karşılaştırıyorda neye göre karşılaştırıyor ? Küçük büyük neye göre karar veriyor. Wiki pek açıklayıcı olmamış.
Sanırım ilk boyutu karşılaştırıyor. Sonrada boyut aynı ise yazılar aynı mı diye karşılaştırıyor. char içinde Türkçe harfler 2 baytlık olduğu için sorun oluşabiliyor. ı i de yine başka bir sorun var. Benim anladığım sorun bu.

Eğer 2 baytlar sorun oluyorsa şablon yerine dstring kullanırız ama şuan fonksiyonu hiç kullanmadığım ve wiki'dende bir şey anlamadığım için boş yorum yapıyorum.

Tahminim casesenstive'de zor olacak. Belki şuan fonksiyonun nasıl yazıldığını bilmediğim için çok zor geliyor ama bana ikisi çok zor gözüktü.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2