Anagram

4 Eylül Perşembe, 2008 | C# /*Yorumlar (2)*/

Bir kelimenin yada sözcüğün harflerinin yerlerini değiştirerek yeni bir kelime yada sözcük elde etme durumuna Anagram denir. Yunanca bir kelime olan anagramma' dan gelir.

Örneğin, Vin Diesel -> 'I End Lives' yada Bahri -> 'İhbar' gibi.

Bu mantık ile bir uygulama yapmak istersek iki adet string dizisiarray tanımlamak gerekir;

anagram array

Şimdi mantığı biraz değiştirerek ve basit bir de algoritma ile uygulamayı daha dinamik bir hale nasıl getirebiliriz ona bakalım.

Öncelikle orjinal kelimeleri ';' noktali virgül ile ayırarak text dosyasına kaydedelim. Bu sayede kelimelerimizde uygulama içinde statik olarak kalmayacak.

text

Dosyadaki kelimeleri bir diziye atayalım.

Daha sonra basit bir metot yazarak sırası ile dizideki kelimelerin harflerini karıştırarak yeni kelimeler elde edelim. Buradaki durum anagram da olduğu gibi mantıklı değil fakat harf kaybı olmaksızın yeni kelimeler elde etmek olacak. Metot, kelimedeki harfleri değil de harflerin indexlerini karıştıracaktır. Bu sayede kelime içinde bir harfin birden fazla olması durumunda ekstra kod yazmamız gerekmeyecek.

anagram array code

indeksler

anagram metot

Burada her nekadar dizi içinde tutulacak değerler tam sayı olsada ben string tipini tercih ettim. Sebebi ise, int veri türünün başlangıç değeri 0 olduğundan 0 nolu indeks değerinin kontrolünün yapılmasının kolay olmasıdır.

form

Kodun tamamı;
anagramgame.rar

Kaynak : Wikipedia

Yorumlar

Murat Türkyılmaz

Hocam çok teşekkürler..

3 Şubat Çarşamba, 2010

Saruhan

Tesekkürler 

25 Şubat Perşembe, 2010

Yorum Yaz

Ad

Email (sahte adresli yorumlar silinir.)

Yorum