RSS Feed
Mar 19

C# Yapar Da Java Yapamaz Mı?

Cuma, Mart 19, 2010 tarihinde yazıldı. Kategoriler : Java

Daha önceki Değişken Adında Türkçe Karakter Kullanımı [C#] yazımda bahsettiğim C#’taki değişken, class, namespace isimlerinde Türkçe karakter kullanabiliyor olmak “C#’ta varsa Java’da neden olmasın?” sorusunu kendime sormama ve neticesinde bu yazının yazılmasına vesile oldu.

Netbeans 6.8 ve Eclipse Galileo ile aynı şeyleri denedim ikisinde de sonuç aynı : C#’ın yaptığını Java da yapıyor; proje, package, class ve değişken isimlerinde Türkçe karakter kullanmak istendiğinde “Abi sen burda Türkçe karakter kullanmaya çalışıyorsun ama bunu yapamazsın, mümkünse onları İngilizce karşılıkları ile değiştir” falan demiyor.

O yazıdaki kodun yaklaşık Java karşılığı aşağıda :

package türkçekarakter;

public class TürkçeKarakterİçerenSınıf {
    public static void main(String[] args) {

        String strTürkçeKarakterİçerenDeğişken = "Değişkenin değeri.";
        System.out.println(strTürkçeKarakterİçerenDeğişken);
    }
}

Şu görseller de Netbeans ve Eclipse’teki proje ve konsol alanları :
Netbeans proje
Netbeans console
Eclipse proje
Eclipse console

Bize programlama derslerinde öğretilen “değişken isminde Türkçe karakter olmaz” artık kural olmaktan çıkıp gelenek haline geliyor sanırım.

Oca 8

Değişken Adında Türkçe Karakter Kullanımı [C#]

Cuma, Ocak 8, 2010 tarihinde yazıldı. Kategoriler : cSharp

Kodaman’da gördüm bugün merak ettim, Windows’u açıp baktım hakkatten de dedikleri gibi değişken isimlerinde Türkçe karakter kullanılabiliyormuş. Ordaki örneği aynen denedim. Ahanda kanıtı :

using System;

namespace TürkçeKarakterİçerenDeğişkenler
{
    class Program
    {
        static void Main(string[] args)
        {
            String strTürkçeKarakterİçerenDeğişken = "Türkçe karakter içeren değişkenin değeri.";
            Console.WriteLine(strTürkçeKarakterİçerenDeğişken);
            Console.Read();
        }
    }
}

Çıktı da şöyle görünüyor :

CSharp Türkçe Karakter

Şimdi bunu yaparak dünyayı mı kurtardık?

Hayır.

Ama olsun, fazla bilgi göz çıkarmaz.

Eki 24

Çomü Yazılım Seminerleri

Cumartesi, Ekim 24, 2009 tarihinde yazıldı. Kategoriler : C, Seminer

Çomü yazılım seminerleri
Başkanlığını yaptığım Çomü Yazılım ve Otomasyon Topluluğu’nun bu yılki ilk etkinliği olan yazılım seminerlerine bugün başladım. Seminerlerin dönem sonuna kadar devam etmesini planlıyoruz. İlk gün başlangıç olarak topluluktan bir arkadaşımla birlikte, Bilgisayar ve Öğretim Teknolojileri Öğretmenliği bölümü 2. sınıf öğrencilerinden oluşan 30 kişilik bir gruba C++ programlama dilini kullanarak algoritma ve programlama anlattım. Derslerinde C++ programlama dilini daha önceden gördükleri için anlamaları hiç de zor olmadı ve konularda tekrara gerek kalmadan kolaylıkla ilerleyebildik.

Programlama dersi alan Fizik ve Matematik bölümlerinden gelen istek üzerine bir sonraki haftadan itibaren bir grup daha eklenmiş olacak ve dönem sonuna kadar Bilgisayar ve Öğretim Teknolojileri Öğretmenliği, Fizik ve Matematik bölümü öğrencilerine C++ ile programlama anlatmaya devam edeceğim.

Dersler sırasında yazdığımız kod örneklerini de seminer sayfasına her ders sonrası düzenli olarak ekleyeceğim. Dersleri kaçıran ya da kodları alamayan arkadaşlar burdan yararlanabilirler.

Eyl 11

Sıralama Algoritmaları [2] : Bubble Sort

Cuma, Eylül 11, 2009 tarihinde yazıldı. Kategoriler : Algoritmalar, Java

Daha önceki yazılarımdan birinde(Selection Sort) sıralama algoritmalarına küçük bir giriş yapmıştım. Bu yazı da onun devamı niteliğinde olacak ama açıklama için yine işi daha iyi birilerine (Wiki) bırakacağım. Bubble sort için C/C++ ve Java’da yazdığım kodları yazmam yeterli olur sanırım.

Bu arada Java’da yazdığım kod sayısı 100 satırı geçti bunlarla birlikte :P “Hello World” un üstüne bayağı şey yapmışım demek ki :)

C/C++ Kodu :

void bubbleSort(int dizi[], int elemanSayisi)
{
     int temp;
     int i, j;

     for (i=1; i<elemanSayisi; i++)
     {
         for (j=0; j<elemanSayisi-i; j++)
         {
             if(dizi[j] > dizi[j+1])
             {
                        temp = dizi [j];
                        dizi [j] = dizi [j+1];
                        dizi [j+1] = temp;
             }
         }
     }
}

Java Kodu :

    public static void BubbleSort(int [] dizi)
    {
        int temp;   // Yer değiştirmede kullanılacak geçici değişken
        for (int i=1; i<dizi.length; i++)
        {
            for(int j=0; j<dizi.length-i; j++)
            {
                if (dizi[j] > dizi [j+1])
                {
                    temp = dizi [j];
                    dizi [j] = dizi [j+1];
                    dizi [j+1] = temp;
                }//Önce gelen elaman bir sonrakinden büyükse ikisi yer değiştiriyor
            }// Dizinin ardışık elamanlarını karşılaştırmak için kullandığımız döngü
        }// Her karşılaştırmadan sonra yeniden kaldığımız yerden devam etmemizi sağlayan döngü
    }
Mar 4

Sıralama Algoritmaları [1] : Selection Sort

Çarşamba, Mart 4, 2009 tarihinde yazıldı. Kategoriler : Algoritmalar, Java

Bilgisayar ortamında verilerin sıralı olması birçok işi kolaylaştırır. Arama, ekleme, bölme vs. durumlarında verilerin sıralı olması ile olmaması arasında çok büyük performans farkı olabilir.
Birçok algoritma (örneğin binary search) sıralı veriler üzerinde çalışır. Kullanıcı için de verilerin sıralı olması büyük kolaylık sağlar.
Verilerin sıralanması için birçok algortima geliştirilmiştir.

* Selection Sort
* Bubble sort
* Insertion sort
* Shell sort
* Merge sort
* Heapsort
* Quicksort
* Bucket sort
* Radix sort
* Distribution sort
* Shuffle sort

Listeyi uzatmak mümkün. Sıralanacak veririn boyutu, yazılacak kod maliyeti, sistem kaynakları, kullanıcı tercihi vb. durumlara göre herhangi biri tercih edilebilir.
Bunlardan Selection Sort’u inceleyelim. Sayı dizisini kullaracak olursak, algoritma ilk adımda tüm diziyi dolaşacak, en küçük elemanı bulup ilk sıraya yazacak.
Sonra dizinin kalan kısmında aynı işi yeniden yapacak. Kalan kısmı tarayıp en küçük elamanı bulup, ikinci sıraya yazacak. Bu şekilde son elemana kadar gidip en küçükten büyüğe doğru dizimiz sıralanmış olacak.

Viki’de aşağıdaki animasyonu buldum, Selection Sort için hazırlanmış basit bi şey.

Selection Sort

Fonksiyon için de C ve Java’da aşağıdaki kodları yazdım. Aynı işi yapan benzer şeyler de yazılabilir.

C/C++ kodu :

void selectionSort (int dizi[], int elemanSayisi)
{
     int i, j, enKucuk, temp;
     for (i=0; i<elemanSayisi-1; i++)
     {
         enKucuk = i;
         for (j=i+1; j<elemanSayisi; j++)
         {
             if (dizi[j] < dizi [enKucuk])
             enKucuk = j;
         }
         temp = dizi[i];
         dizi[i] = dizi[enKucuk];
         dizi[enKucuk] = temp;
     }
}

Java kodu :

    private static void selectionSort(int [] dizi,int n)
    {
        int temp;
        int enKucuk;
        for(int i=0; i<n-1; i++)
        {
            enKucuk=i;
            for(int j=i; j<n; j++)
            {
                if (dizi[j] < dizi[enKucuk]) enKucuk=j;
            }
            temp=dizi[i];
            dizi[i]=dizi[enKucuk];
            dizi[enKucuk]=temp;
        }
    }

Fonksiyon argüman olarak aldığı diziyi Selection Sort algoritması ile sıralıyor.

İç içe iki tane döngü kullanıldığı için algoritmanın karmaşıklığı O(n²) olur. Küçük boyutlu dizilerde fazla kod yazmaya gerek kalmadan kullanılabilecek bir algoritmadır.

Şub 14

Sevgilinize Evlenme Teklif Edin [Hayır Diyemesin]

Cumartesi, Şubat 14, 2009 tarihinde yazıldı. Kategoriler : cSharp

14 Şubat sevgililer günü anısına C# ile basit bir uygulama yazdım. Uygulama çalışmaya başladığında ekrana aşağıdaki gibi küçük bir pencere geliyor, kullanıcı hayır dediği sürece yeniden başlatıyor kendini.

Benimle evlenir misin?

Evet butonuna tıklandığında ise camdan bir gül resmi ekranı kaplıyor.

Evlenme teklifi tabi ki çok özel olmalı, benim bunu yapma amacım sadece can sıkıntısı..

Dil olarak C#,  IDE olarak Visual Studio 2008 kullandım. Çalıştırılabilir dosyaya burdan, yazdığım class’a burdan ulaşabilirsiniz. Çalışması için bilgisayarda .net framework kurulu olmalıdır.