14 Ağustos 2018 Salı

C# IComparable Interface'ni Kullanarak Nesnelerin Karşılaştırılması

Merhabalar,

IComparable interfacenin nesnelere implemantasyonu hakkında bilgiler vereceğim.

Veri kümelerini saklamak için kullandığımız dizi ya da koleksiyon içerisinde yer alan sayısal değerleri sıralayarak başlayalım.

Öncelikle Visual Studio içerisinde bir console uygulaması oluşturalım.






















Liste içerisindeki elemanları sıralamak için aşağıdaki kodlar kullanılır.

Görmüş olduğunuz gibi eğer sıralamak istediğimiz değer int ise direkt sort( ) metodunu kullanarak sıralama yapabiliriz.

Eğer nesne türünde verilerden oluşan bir yapıyı sıralamamız gerekirse ne yapmalıyız?

Öncelikle projemize bir ogrenci classı tanımlayıp fieldlarını no,ad,soyad olarak ayarlayalım. ToString ( )metodunu ezelim çağırıldığında ekrana "no-ad soyad " yapısına uyacak şekilde bilgileri yazdıracak şekilde set edelim.


Program classı tarafında ogrenci classını kullanarak çalışacak bir list tanımlayaalım ve içerisine 3 tane öğrenci nesnesi ekleyelim. 




















Bu şekilde yazıp çalıştırmamız durumunda ogrenciler.sort() metodunda aşağıdaki gibi bir hata verecektir. 















Görmüş olduğunuz gibi eğer sıralamak istediğimiz nesne ise IComparable interface'ni implement etmemiz gerekir.  Şimdi int türünde böyle birşey yapmadık diye sorduğunuzu duyar gibiyim . int türünde bunu yapmadık çünkü eğer int türünün tanımlandığı yere gidersek IComparable interface'ni default implement ettiğini görebilirsiniz. (int yazısı üzerindeyken F12 yazıp gidebiliriz.)


Ogrenci classına IComparable interfaceni implement edelim. Bu durumda almış olduğumuz hata  CompareTo metodunun da eklenmesi ve özelleştirilmesidir. IComparable CompareTo( ) metoduna bakarak çalışacaktır. Hatayı çözmek için classın üzerindeyken ctrl ile birlikte . basılıp gelen listeden de implement interface seçeneği seçilir.










Ögrenci classının IComparable nesnesinden gelen compareto metodunu override etmesini sağlamalıyız. Sort sıralama işlemini gerçekleştirirken nesnenin içerisinde yer alan CompareTo() metoduna bakarak bu işlemi yapacaktır.


CompareTo( ) metodu her seferinde parametre olarak gelen değeri o anki nesne ile karşılaştıracaktır. Eğer mevcut nesnenin no değeri parametre olarak gelenin no değerinden büyükse return 1,
yani mevcut nesnenin değeri karşılaştırılan nesneden büyükse 1 aksi takdirde -1 dönmesini istiyoruz.

Parametre olarak gelen object değerini ogrenci nesnesine alıp karşılaştırma işlemini aşağıdaki gibi yapalım.

   public int CompareTo(object obj)
   {
          ogrenci ogrencitocompare = (ogrenci)obj;
           if (this.no > ogrencitocompare.no)
               return 1;
           else
               return -1;

    }


Sonrasında çalıştırırsak ogrenci nesnelerini no değerine göre sıralamış oluruz.


Classların son halleri aşağıdaki gibidir. 

Ogrenci Class Kodları
----------------------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CustomComparing
{
    class ogrenci:IComparable
    {
        public int no { get; set; }
        public string ad { get; set; }
        public string soyad { get; set; }

        public override string ToString()
        {
           return string.Format("{0}-{1} {2}",this.no,this.ad,this.soyad);
        }

        public int CompareTo(object obj)
        {
            ogrenci ogrencitocompare = (ogrenci)obj;
            if (this.no > ogrencitocompare.no)
                return 1;
            else
                return -1;
        }

    }

}

Program Class Kodları
---------------------------


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CustomComparing
{
    class Program
    {
        static void Main(string[] args)
        {
            //List<int> sayilar = new List<int> { 23, 45, 12, 67, 80, 19 };
            //foreach (var item in sayilar)
            //{
            //    Console.WriteLine(item);
            //}

            //Console.WriteLine("****");

            //sayilar.Sort();

            //Console.WriteLine("****");

            //foreach (var item in sayilar)
            //{
            //    Console.WriteLine(item);
            //}

          
            List<ogrenci> ogrenciler = new List<ogrenci>() {

                new ogrenci { no=123, ad="Nagihan", soyad="Esendal" },
                new ogrenci { no=235, ad="Rüya", soyad="Hakko" },
                new ogrenci { no=136, ad="Şeyda", soyad="Kamalı" },

                };

           ogrenciler.Sort();

            foreach (ogrenci ogr in ogrenciler)
            {
                Console.WriteLine(ogr.ToString());
            }

        }
    }
}


Proje dosyasını buraya tıklayarak indirebilirsiniz. 









19 Temmuz 2018 Perşembe

Scratch ile Çocuklar için Kodlama Ücretsiz Video Eğitim Seti

                                  Scratch ile Çocuklar için Kodlama
                                       Ücretsiz Video Eğitim Seti








Scratch dünyasına ilk adımınızı atarken kullanabileceğiniz ücretsiz video eğitim setine yukarıdaki linki tıklayarak ulaşabilirsiniz.









9 Haziran 2018 Cumartesi

İKÜ Etkinlik Talep Formları Dijitalleşti

İKÜ'de kullanılan formların dijital platforma geçirilmesi ve tek bir yerden tüm formlara ulaşılması amacıyla kodlamış olduğum sistem hizmete açıldı. Formlar, portal üzerinde doldurulduktan sonra EBYS üzerinden onay akışı gerçekleştirilecektir. Seçilmiş olan akışa göre ebys üzerinden dağıtım yapılmaktadır.Dijital formların ilk ürünü, Üniversitemizde gerçekleşecek etkinlikler için kullanılmakta olan Etkinlik Talep Formu oldu.  




27 Nisan 2018 Cuma

Mail Nedir?


Mail hesapları haberleşme amacıyla kullanılmaktadır.

İnsanlar eskiden haberleşme aracı olarak neler kullanıyordu?

     Mektup



   Güvercin


Elektronik ortamda haberleşme aracı olarak kullanılmaktadır. Tek amacı haberleşme olmayan mail adresleri kullanılarak çeşitli programlara üye olup o programlara giriş kısmında belirlediğimiz bilgileri girmemiz gerekmektedir.


Mail Oluşturma

Gmail hesabını kullanarak mail hesabınızı oluşturmak için tıklayınız





12 Nisan 2018 Perşembe

Çocuklar İçin Kodlama ve Programlama




Kodlamanın çocuk hali olarak anılan ve günümüzde yaygınca kullanılmaya başlanmış olan algoritma temel yaşam felsefemizdir aslında. Kodlama bilmeyen çocuk olmamalıdır, olamaz. O kadar önemlidir ki kodlama, algoritmanın temellerini barındırmaktadır. Kodlama sayesinde matematikten fiziğe, fizikten geometriye bir çok dersi kolaylıkla öğrenip o dersi öğrenmek için hangi aşamalardan geçmemiz gerektiğini rahatlıkla kurgulayabiliriz.

Problemler çok fazla ve çözümlenmek üzere bizleri bekliyor dolayısıyla yapmamız gereken problemin çözümü için verilenlerden yola çıkarak bilinmeyenlere ulaşmanın bir yolunu bulmaktır. Verilenlerden istenenlere gitmektir hedef. Algoritma bizlere okul başlangıcında gösterilen konularla aynıdır. Algoritmayı erken yaştan öğrenebilen çocuklar hem problem çözme yeteneklerini geliştirirken hem de ilgi duydukları alanları daha erken yaşta farkedebileceklerdir. 
Küçük yaşlarda öğrenmiş oldukları arduino , robotik, kodlama vb. konular onları eğlendirirken öğrenmelerine yardımcı olacaktır.  Eğlenirken öğrenmenin keyfine varacaklardır.



11 Mart 2018 Pazar

Quiver ile Augmented Reality Uygulamaları

Quiver uygulamasını kullanarak kağıt üzerindek karakterleri renklendirebiliriz ve bu karakterleri üç boyutlu olarak canlandırabiliriz. Kendi renklerimizle canlandırdığımız karakterleri oyun içerisine dahil edebiliriz.
Kendi hazırladığımız oyunu oynar ve bundan büyük keyif alabiliriz. Bu uygulamayı kullanan öğrencilerimiz artırılmış gerçekliğin ne olduğu konusunda genel bilgi sahibi olacaktır. Günümüz teknolojisi olan artırılmış gerçeklik ile erken yaşta tanışmış olmaları da ayrı bir kazanımdır.


Quiver uygulamasını mobil cihazlarımıza yükleyebilmek için uygulamaların bulunduğu markete girelim ve arama kısmına Quiver yazıp indirelim.


Uygulamayı indirdikten sonra aşağıdaki görselde yer alan kırmızı kutu ile çerçevelenmiş alana (Quiver logosunun bulunduğu alan) dokunarak renklendirdiğimiz karakteri uygulamaya gösterelim.




Kağıttaki görselin ekrana tam sığması gerekmektedir. Ekranın odaklamasına yardımcı olmanız gerekebilir. Bu işlemlerin sonucunda uygulama karakteri tanıyacak ve üç boyutlu canlandırma işlemi için gerekli olan paketleri otomatik olarak indirecektir.

İndirme işleminden sonra görselin üç boyutlu hale gelmesini ve ekranda karakterin canlandığını göreceğiz.
Öğrencilerimizden Masal'ın renklendirip canlandırdığı karakter

Karakterimizi telefonu sağa sola oynatarak farklı açılardan görebiliriz. Ekranın alt kısmında bulunan oyun kolu simgesine tıklayarak kendi tasarladığımız karakteri bir oyunun içerisinde kullanabiliriz.






28 Şubat 2018 Çarşamba

Çocuklar İçin Web Tasarım Ve Web Programlamaya Giriş Eğitimi Sonrası





Başarılı geçen bir eğitimin ardından öğrencilerim kendi web sitelerini istedikleri resimleri ekleyerek oluşturmaya başladılar.


Öğrencilerin kendilerinin yaptıkları siteler ise aşağıdaki gibidir.


Arda'nın web sitesine ulaşmak için tıklayınız.
Tıklayınız

Zeynep'in web sitesine ulaşmak için tıklayınız.
Tıklayınız

Beril'in web sitesine ulaşmak için tıklayınız.
Tıklayınız

Melis'in web sitesine ulaşmak için tıklayınız.
Tıklayınız

Alp'in web sitesine ulaşmak için tıklayınız.
Tıklayınız

Hakan'ın web sitesine ulaşmak için tıklayınız.
Tıklayınız

Eğitimlerimiz devam etmektedir. Takip ediniz...










Session Nedir? Neden İhtiyacım Var?

HTTP nedir? HTTP, yani Hypertext Transfer Protocol , web tarayıcıları ile web sunucuları arasında veri alışverişini sağlayan internetin t...