26 Kasım 2014 Çarşamba

Appinventor ile Tanışma

Merhaba arkadaşlar, google tarafından çıkartılmış olan appinventor hakkındaki bilgilerimi sizlerle paylaşıyor olacağım. Appinventor uygulaması aracılığıyla android cihazlarınız için mobil uygulamalar geliştirmenize yardımcı olacaktır.
Appinventor ile uygulama yazmak için ihtiyacınız olan bir gmail hesabıdır.

İlgili siteye gitmek için tıklayınız.

Siteye giriş yapıp kendi projelerinizi sistem üzerinde oluşturabilirsiniz. Böylelikle projelerinize online olarak ulaşma şansınız da olacaktır.

Mail adresinizle giriş yaptığınız zaman aşağıdaki gibi bir ekran sizi karşılıyor olacaktır.










Daha önceden yapmış olduğunuz projeleriniz varsa ekranda bu projeler listelenecektir. Projects menüsünün altından yeni bir proje oluşturabilir, eski projelerinizi açabilirsiniz. Daha önceden başkalarının yapmış olduğu projeleri kendi projenize dahil edip başkalarının kodlarını inceleyebilirsiniz. Projelerinizi kaydetme işlemini de yine aynı başlık altından gerçekleştirebilirsiniz.



Yeni bir proje oluşturalım ve  projemizin adını HelloWorld olarak düzenleyelim. Tasarımını yapalım ve sonrasında kodlama blockları üzerine konuşalım.

Projenin iki tane sekmesi bulunmaktadır ve biz bu sekmeleri sağ üst köşeden görebiliriz. Bunlar Designer ve Blocks sekmeleridir.



Projenin Designer kısmında ekran görüntüsü kısmının tasarımı gerçekleştirilebilir. Sol tarafta bulunan Palette bölümünden istediğimiz nesneleri sürükleyip bırakarak projelerimize dahil  edebiliriz.



Screen kısmına bir tane button,bir tane label sürükleyip bırakalım ve buttona tıklandığında ekranda Hello World yazıyor olalım.




Sayfanın tasarım kısmını bitirdikten sonra kodlamaları yapmak için şimdi de block kısmına geçelim.
Blocks tarafında adeta yapboz oynar gibi kodlama işlemini gerçekleştiriyor olacağız.
Buttona tıklandığında label textinin değişmesini istiyoruz. O zaman buttonun clicklenmesini denetlemek için sol taraftan button clicks parçasını sayfaya getirelim.


Buttonun üstüne bir kere tıklarsak when button1.click kısmını sürükleyip sayfamıza bırakalım. Tıklandığında ne olmasını istiyorsak onu belirtmemiz gerekecektir.
Bunun için label nesnesinin text özelliğini seçelim. Bu özelliği sürükleyip buttonun tıklanması olayına bağlayalım.







Tıklanma esnasında text kısmında ne göreceksem bunu text olarak yazdırayım. label nesnesi üzerinden text kısmına tıklarsak string ifadeyi yazarız.


Text içerisine HelloWorld yazalım ve projemiz artık hazırdır. En son aşamada programı varsa bir android cihazla eğer yoksa emulator kullanarak kodumuzu test edebiliriz.





Bütün işlemlerin sonunda aşağıdaki gibi bir ekran görüntüsünü blocks sekmesi tarafında oluşturmamız gerekmektedir.


Artık test edebiliriz. Bir sonraki makalede görüşmek üzere hoşçakalınız :)
Emülator kurulumu için tıklayınız .




















9 Kasım 2014 Pazar

Quick Sort Algoritma Karmaşıklığı

Merhaba Arkadaşlar, hızlı sıralama algoritması olarak adlandırılan Quick Sort Algoritmalarının karmaşıklığı hakkında bilgi veriyor olacağım.
Öncelikle elimizde bir dizi olsun.






Dizi elemanlarının içinden öncelikle bir pivot eleman seçeriz. Bu seçtiğimiz pivot diğerleriyle karşılaştıracağımız bir eleman olacaktır. Pivot elemanını istediğimiz yerden seçebiliriz. Ben pivot eleman olarak en sağda bulunan 5 elemanını seçiyorum. Seçilmiş olan pivot elemanı ortaya alalım ve bu pivot elemana göre küçük olanlar sol tarafa yazılır. Büyük olan elemanlar ise pivot elemanın sağ tarafına yazılır. 








Aynı algoritma bölünmüş gruplar için tekrar yapılır. Bölünmüş gruplar için tekrar pivot eleman seçilir ve işlemler tekrar yapılır.








Pivot elemanı ortaya alalım ve pivot elemana göre göre tekrar tekrar sıralama işlemi yapalım.




Her bir grup için sıralama işlemi yaptıktan sonra hepsini birleştiririz. Soldan sağa doğru yazdığımız zaman bütün elemanlar sıralanmış olur.

Algoritmanın Karmaşıklığı
Her satırdaki her elemena bakar eğer n tane sayı varsa n tane sayıya bakıyor olacağız.Algoritmanın adım sayısı  dersek logn tanedir. Buradaki log iki tabanında demektir. Problem her seferinde 2 parçaya bölünür.100 sayı var diye düşünelim log iki tabanında 100 sayısını yukarı yuvarlama işlemi sonucunda 7 elde edilir. Buradan çıkaracağımız sonuç algoritmanın sıralanması 7 adımda gerçekleşmektedir.

Algoritmanın performansı iyi bir durumda nlogn'dir. 
Her zaman nlogn ile karşılaşmayız. Tesadüfen bütün elemanlar pivottan küçük olsun böyle bir durumda biz elemnları iki parçaya bölemeyiz. En sondaki pivotu bırakıp hem bir solundaki elemanı pivot seçeriz. Böyle bir durumda n-1 tane sayı olacaktır. Yeni dizi için yeniden pivot seçeriz ve bu işlemleri tekrar tekrar yapmak zorunda kalırız.
Bu durumda algoritmanın en kötü durum karmaşıklığı n^2 olur. Genel olarak Quick Sort algoritmasında ise ortalama durum nlogn'dir.


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...