String İçindeki Harf Sayısını Bulma

By Burak TUNGUT - 21.11.2012 - Kategori Java

Bugün ki ilk makalem de bir string in içinde hangi harfin kaç tane bulunduğunu döngü ile bularak diziye aktarıp bulacağız.

Sınava hazırlanırken oluşturduğum bir kaç küçük örneği incelerken bu güzel bahar akşamında ilk yazımı bu konu üzerine yazmaya karar verdim :)

Algoritmamızı Düşünelim

Saygı değer hocam Yrd.Doç.Dr. Ecir Uğur Küçüksille derste böyle bir soru sorunca ilk başta durup haylice düşünsemde ufak bir ip ucu aldıktan sonra çokta kolay bir şekilde yazılacağına karar vermiştim. Umarım sizlere de bunu aktarabilirim.

Öncelikle bana verilen ip ucuyla başlamak istiyorum, bu işi yaparken bir dizi yardımıyla yapacağız.
Öncelikle bir adet 26 uzunluğa sahip integer dizi (array) tanımlıyoruz. 26 sayısının önemi ise alfabemizdeki harf sayımız :)
Daha sonra verilen stringin uzunluğu kadar for döngüsü yardımıyla her gelen harfin (char) a yı 0 referans almak üzere kaçıncı indise sahip olduğunu bularak o değeri bir arttırmak olacak.
Ben bu algoritmaya char count adını veriyorum :)

Devamı

Java Sayısal Loto Algoritması

By Burak TUNGUT - 21.11.2012 - Kategori Java

Bu yazım da java ile 6 adet tekrar etmeyen sayılar üreterek sayısal loto yapıp algoritmayı inceleyeceğiz.
Uykusuzluktan olsa gerek bir üst paragrafda ki yazım bir hayli değişik oldu bende kabul ediyorum :)

Tekrarsız sayı üretme

Evet, önemli olan başlıkta belirttiğim gibi üreteceğimiz sayıların tekrarsız olması. Bunu nasıl sağlayacağımız ise gayet basit.
Öncelikle bir döngümüz sayı oluşturup bunları işleyecek fakat söz konusu bu döngü içinde bir de sayıları tutan dizimizde üretilen sayıyı arayarak sayının var olması durumunda döngüde artış operatörü yapılmadan başa dönülmesini sağlayacaktır.

Aşağıda da görüldüzü üzere while döngümüzün için de bulunan for döngüsü 0 dan 6 ya dönerek üretlien sayıyı dizinin içinde arıyor, var olması durumunda bulundu değerine 1 (true) olarak değiştiriyor.
Ardından ilk döngünün devamın da eğer bulundunun false olma durumunda gelen sayının kullanılmadığını anlıyor ve diziye aktarıyoruz, eğer true geliyorsa artış operatörü kullanılmadığı için aynı indisten üretilmeye devam ediyor sayılarımız.

Devamı

Java ile Asal Sayı ve İşlemci Testi

By Burak TUNGUT - 21.11.2012 - Kategori Java

Bu örnek ile bir sayının asal sayı olup olmadığını kontrol edip, 1 den 10,000 e kadar olan asal sayıları işlemcinin kaç saniyede bulacağını test edeceğiz.

Öncelikli işimiz basit bir algoritma ile bir sayının asal olup olmadığını anlamak olacak, bunu geri dönüşü boolean olan bir methoda aktarmak ile başlayacağız.

Asal Sayı Kontrol Algoritması

Öncelikle kontrol edeceğimiz bu terimin ne olduğunu bir kez daha tekrarlayalım. Herkesin bildiği üzere herhangi bir asal sayı sadece kendisine ve bir e bölünebilir. Bu kuraldan yola çıkarak küçük bir döngü ile bir sayının asallığını kontrol edebiliriz, hatta aralarında asal olabilecek 2 sayıyıda kontrol edebiliriz.

7 sayısını ele alalım, bir döngü ile 1 den 7 ye kadar olan sayıları döndürerek her gelen sayının 7 ye bölümünden kalana (mod) % oparetörü ile bakabiliriz. Ve bölünmesi halinde oluşacak olan koşul bloğunda daha önce deklare ettiğimiz bir toplam sayısını bir arttırabiliriz. Bu sayede döngü bittiğin de toplam sayısı eğer 2 ise asal, 2 den büyük ise asal değildir sonucuna varacağız.

Az önceki satırın anlaşılması için 7 sayısının işlem basamaklarından bir kaçını yazalım,
1. (7 mod 1) = 0 --> toplam++;
2. (7 mod 2) > 0 --> işlem yapma!
3. (7 mod 3) > 0 --> işlem yapma!
...
...
...
7. (7 mod 7) = 0 --> toplam++;

0 a eşit olan toplam değişkenimiz bu işlemin sonucunda 2 oldu, bu sayede 7 sayısının asal olduğu sonucuna varabiliriz.
 

Devamı

Java Adam Asmaca Oyunu

By Burak TUNGUT - 21.11.2012 - Kategori Java

Bu makalem ile en minimal şekil de java da konsol uygulaması olarak adam asmaca oyununu yazacağız.

Vizeye hazırlanırken gece 03:00 sularında örnek olması amacıyla kendi kendime yaptığımı bu basit oyuna bir kaç özellik daha ekleyerek sizlere sunuyorum.

Adam Asmaca'yı tanıyalım :)

Öncelikle şunu söylemeleyim ki herhangi bir grafiksel çalışma söz konusu değil :) Oyun tamamiyle düz yazı üzerinden sahip olduğumuz 10 hak ile bize düşen kelimeyi bilmemizden ibaret.
İlk olarak bir adet kelimeler adında String array tanımlayarak bunun içine kelime hazinemizi döküyoruz. Arından program rasgele bu dizi içinden bir index seçerek döngüye giriyor ve her yanlış girişimiz de 10 hakkımızdan bir tane alıp götürüyor.
Değişkenleri olabildiğince Türkçe deklare ettim umarım anlaşılabilir.
 

Aynı harfi içeren kelimeler

Bu küçük örnekte ki en büyük sorun bir kelime içinde geçen aynı birden fazla harf idi mesela "televizyon" kelimesinde 2 adet e geçiyor, bunu indexOf ile aramamızda bize ilk indexi verecektir. Bunu çözmenin iki yolundan biri döngüye kalan indexten devam ederek indexOf ile aramak ve buna göre işlem yapmak.
Ben de bu yolu düşündüm ve gelen her aynı kelimeyi bir int diziye koordinatlarını (indislerini) aktararak sonraki bir döngüde bunları işledim.

Adam asmaca oyunumuz hayırlı olsun :)
 

Devamı

Mükemmel Sayı Algoritması

By Burak TUNGUT - 21.11.2012 - 4 Yorum - Kategori Java

Bu yazımda mükemmel sayı tanımını yaparak bir sayının mükemmel sayı olup olmadığını kontrol eden algoritmayı yazacağız.

Vize haftası boyunca ara verdiğim blog yazılarıma artık geri dönme vakti gelmişti :) Neyse lafı uzatmadan hemen başlayalım.

Mükemmel sayı nedir ?

Tüm pozitif tam sayı bölenleri toplamı kendine eşit olan sayıya mükemmel sayı deniyormuş. Bu kavramı ilk defa geçen hafta girdiğimiz Programlama Dilleri dersinin vizesinde gördüm. Hemen bir düşüneyim derken 6 sayısını buldum baktığımızda,
6 = 1 * 2 * 3 olarak ayırabilir ve 1+2+3=6 eşitliğinden de mükemmel sayı olduğunu görüyoruz.
 

Mükemmel sayı algoritması

Bir döngü ile 1 den başlayarak parametre ile gelen sayımıza kadar döndürerek, gelen her sayının parametre ile gelen sayının bölümünden kalanına bakarak tam bölünüyorsa daha önce deklare ettiğimiz bir sayıya bu değeri aktarıyoruz.
Döngü bittiğinde deklare edilmiş olan sayı parametre ile gelen sayıya eşit ise mükemmel sayı bulunmuş demektir :)
Umarım yeterince açık olmuştur.
 

Devamı
1 2 3 4
Facebook
Son Yorumlar