17 Aralık 2015 Perşembe

Algoritma Örneği

Merhaba arkadaşlar, bu makalemizde yeni bir örnek üzerinde algoritmamızı kurguyalım. Ardından Visual Studio ortamında bir Console projesi üzerinde örneğimizin kodlarını yazalım. Bu makalenin daha faydalı olabilmesi için öncelikle  Algoritma Nedir ve Algoritma Örneği makalesini okumanızı tavsiye ederim.
Yeni örneğimizde kullanıcı tarafından klavyeden girilen iki sayıdan büyük olanı küçük olana bölelim ve bölümü ekrana yazdıralım. Visual studio ortamına geçmeden önce problemin algoritmasını yazmamız gerekecektir. 

Dilerseniz şimdi algoritmasını yazmaya başlayalım.
1.Başla
2.Girilen sayıları bellekte tutabilmek ve gerektiğinde ulaşabilmek için sayısal değerleri tutabilecek 3 tane değişken tanımlayalım. değişkenler sayı1,sayı2 ve sonuç bilgileri içindir.
3.Kullanıcıdan ilk sayıyı iste
4.Kullanıcının girdiği sayıyı değişkenlerden ilkine atama işlemi.
5.Kullanıcıdan ikinci sayıyı iste
6.Kullanıcının girdiği ikinci sayıyı diğer değişkene ata
7.İki sayıdan büyük olanı tespit etme
8.Büyük olan sayıyı bulduğumuz için diğer sayının küçük olandır. Artık büyük sayıyı küçük sayıya bölme işlemi
9.Bölüm sonucunu ekrana yazdıralım.
10.Dur

Evet gördüğünüz gibi problemin çözümü için 10 tane adımdan oluşan bir algoritma yazmış olduk. Şimdi bunun kodlarını yazalım. Visual studio ortamına geçip bir console projesi oluşturalım. Projenin adı BolmeIslemi olsun.
















Proje şablonu olarak Console seçelim.





















Kodlarımızı main içerisine yazmamız gerekecektir. Klavyeden kullanıcı tarafından girilen değerlerden büyük olan küçük olana bölünür. Burada bulunan bölüm değeri sonuç değişkeninin içerisine atanır.




















Eğer ondalıklı değerlerin ekranda görülmesi sırasında veri kaybı yaşanmasını istemiyorsak böyle bir durumda sonuç değişkeninin ondalıklı değerleri tutabilmesi için o tipten bir değişken tanımlamamız gerekecektir. Değişkeni tanımlarken değişken tipini double ya da float olarak belirtmemiz durumunda sonuç ondalıklı ise herhangi bir veri kaybı gerçekleşmeyecektir. Double ile float tiplerinin arasındaki fark bellekte kapladıkları alanlardır. Double bellekte 64 bit yer kaplarken float 32 bit yer kaplıyor. 

Bu makalemizde yeni bir algoritma örneği yazmış olduk. Bir sonraki makalemizde görüşürüz. İyi Çalışmalar. :)

16 Aralık 2015 Çarşamba

Algoritma Nedir ve Algoritma Örneği


Merhaba arkadaşlar,  bu makalemizde algoritma nedir, algoritmayı neden yazarız ve algoritmayı yazarken dikkat etmemiz gereken kurallardan bahsedeceğim. Sonrasında algoritma nasıl olmalıdır sorusuna da cevap bulabileceğiniz minik bir örnek uygulama yapacağız.
Programlama ortamına yeni adım atmışsanız ve bu konular hakkında hiç bilginiz yokken kendinizi algoritma dersi içerisinde bulduysanız size göre iş biraz zor gözüküyor gibi olabilir. Bu tür karmaşıklıklardan uzak durmanızı ve acilen dersi anlamaya odaklanmanızı öneririm. :)
Hadi ısınma turumuzu tamamladığımıza göre algoritma nedir diyerek başlayalım. Birçoğunuz özellikle bu yıl üniversiteyi seçenler ilk kez bu derste adını duymuş olabilirler. Yazılım ile uğraşacaksanız bundan sonra sıkça duyacağınız bu kavram nedir?
Algoritma dediğimiz kavram, bir problemi çözmek veya belirli bir amaca ulaşmak için çizdiğimiz yoldur. Mevcut bir problemin çözümü sırasında izlenecek olan adımlardır bir diğer tanımlamayla algoritma. Problemin adımlarını belirlerken başlangıç ve son arasındaki diğer olaylar sırayla yazılır. Adımları yazarken dikkat etmemiz gereken ise mantıksal olarak sıradır. Düşündüklerimizi adımlar halinde yazmaktır.  
 Çok sık göreceğiniz algoritma bir programlama dili değildir. Sadece problemin çözümlenmesi için gerekli olan adımların sırayla belirtilmesidir. 
Hadi bir algoritma örneğinden bahsedelim. Arkadaşlarınızla buluşmak için dışarı çıkacaksınız hava durumuna göre ne giyeceğinize karar vermeniz gerekecek. Böyle bir senaryonun algoritmasını yazalım.
     1. Başla
     2. Akıllı telefonundan hava durumu uygulamasına bak.
     3. Hava sıcaklığını öğren.
     4 .Eğer hava sıcaklığı 20 derece üzerindeyse tshirt giy.
     5. Eğer hava sıcaklığı 20 dereceden düşükse kazak giy.
     6. Son
Dilerseniz şimdi bir örnek uygulama yapalım. 
Problem: Bir bakteri her 10 dakikada bir mitoz bölünüyor. Kullanıcının belirleyeceği kadar zaman geçtikten sonra, kaç adet yeni bakteri oluştuğunu hesaplayan programı yazınız. 
Bu tarz bir problemle karşılaştığımız zaman yapmamız gereken bizden istenen problemi çözüm aşamasında hangi işlemleri tek tek yaparsak bunları belirtmemiz gerekecektir.

  1. Başla
  2. Kullanıcının girdiği dakika bilgisini her 10 dakikada bir bölünme gerçekleşiyorsa kaç kez bölündüğünü bulmak için girilen değeri 10’a bölerek bölünme adedini bulma.(Bakteri bölünme hızı 10 dakika)
  3. Bakteri mitoz bölünme ile her seferinde iki farklı bakteri oluşturduğu için toplam kaç farklı bakteri oluştuğu hesaplanırken 2 üssü şeklinde 2.adımda bulunan bölünme adedi şeklinde hesaplanıyor olması gerekecektir. (2 üssü bölünme adedi)
  4. Dur
Algoritmayı da yazdığımıza göre şimdi bunun programını yazalım. Programı yazarken programlama dili olarak C# uygulama geliştirme ortamı olarak da Visual Studio kullanacağım.
File menüsü altından bir New Project diyelim. 














Şablon olarak kendimize bir Console projesi oluşturalım. Projenin isimlendirilmesi kısmında Name ve Solution Name isimlerini verelim. Bilgisayarda bu projenin nereye kaydedildiği bilgisini de görüyor olacağız.
















Projemizin türünü belirlediğimize göre artık kodlamayı yapabiliriz.
Kullanıcı etkileşimli bir örneğimiz olduğu için yapmamız gereken kullanıcıdan “Kaç Dakika” bilgisini alıyor olmamız gerekecektir. Kullanıcının girmiş olduğu değere göre kaç tane yeni bakteri oluştuğunu bulabiliriz. Kullanıcı tarafından girilen değeri, bakterinin 10 dakikada bir bölündüğünü göz önüne alarak, kaç kez bölünme işleminin gerçekleştiğini bulmak için kullanacağız. Bu işlemi yapan bir metod hazırlayalım.
         1. Metoda, bölünme işleminin yapılacağı toplam süreyi saniye cinsinden alan bir parametre tanımlayalım. (int sure)
         2. Girilen bu değer metod içerisinde kullanılacaktır. Her 10 dakikada bölünme işlemi gerçekleştiği göz önüne alınarak bu girilen değerin kaç kez bölünme gerçekleştirdiği hesaplanır. (sure/10)
         3. Her bir bakterinin mitoz bölünme sonucu 2 tane yeni bakteri oluşturduğu bilgisini daha önceden bildiğimizi varsayarak bölünme adedi kadar yeni bakteriler oluştuğu düşünülür ve bunu hesaplamak adına 2 üssü bolünme adedi bilgisi kullanılır.
Tanımlamış olduğumuz metodu main dışarısına class içerisine yazıyor olmamız gerekecektir.











Bir Console projesinde yazmış olduğumuz kodları Visual Studio ortamında çalıştırmak için kullanmamız gereken bazı yapılar mevcuttur.
         1. CTRL+F5 ile çalıştırabiliriz.
         2. F5 ile çalıştırırsak kod hemen derlenip çalışacak ve birden kapanacaktır. Bu konsol ekranı görebilmemiz için Console.Read() komutunu kullanabiliriz.
         3. Visual Studio File menüsü altındaki sırada bulunan Start’a basarak çalıştırabiliriz. Yine ekranın hemen kapanmaması için Console.Read() komutunu kullanabiliriz.
Console projelerde uygulamayı çalıştırdığımız anda kodlar main içerisinde sırasıyla satır satır çalışır ve main’den çıktığı anda uygulama kapanır. Dolayısıyla kodları main içerisine yazmamız gerekecektir. Main dışarısına yazdığımız metoda çağrıda bulunmak istersek yine main tarafından çağırmamız gerekecektir.








Kullanıcı uygulamayı çalıştırdığı anda uygulama hakkında bilgi alması ve ondan “Kaç Dakika” bilgisini girebilmesi için ekrana Console.WriteLine() komutunu kullanarak bilgi yazdıralım.




Metoda BolunmeHesapla ismini verelim bu isim bizim için metodu kullanmak istediğimiz zaman ulaşabilmemiz için gerekli olan o metodu çağırmaya yarayan ifadedir.
     Programını da tamamlamış olduk. İyi Çalışmalar bir sonraki makalemizde görüşmek üzere :) 

SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...