Archive for csharp

Başlıktan da anlaşıldığı üzere, uygulama recursive fonksiyon kullanarak 10’luk tabanda girilen bir sayıyı 8’lik tabana çevirme işlemini gerçekleştiriyor. Sayı Main metodunda kullanıcıdan alınıyor ve aynı zamanda sayının, çevrildiğinde kaç basamaklı bir 8 tabanlı sayı olacağı hesaplanıyor. Basamak sayısı mod işlemlerinde kullanılacak olan diziye eleman sayısı olarak atanıyor. Sayı sürekli 8’e bölünerek küçültülüyor. Sayı 8’e bölünemeyecek bir duruma geldiğinde sayının son hali dizinin son elemanı olarak atanıyor. Daha sonra dizi sondan başa doğru yazdırılıyor.

Gerekli açıklamaları kod üzerinde de yaptım. Bu yüzden kod bloğu biraz uzadı ama korkacak bir şey yok, çoğu yorum satırı zaten:) Buyurun uygulamaya göz atabilirsiniz…

ÖNEMLİ! Hesapla fonksiyonunun static olmasının bu uygulamadaki tek nedeni read more »

Merak edenleriniz olmuştur, c sharpta yön tuşlarının kontrolünü nasıl yapabiliriz? Merak etmediyseniz bile eminim bu başlığı gördükten sonra ilginizi çekecektir. Bu merakınızı gidermek için küçük bir uygulama ile yön tuşlarının kontrolünü en basit haliyle açıklayacağım.

Uygulamayı kısaca açıkladıktan sonra kodları satır satır inceleyelim. Uygulama, bir form uygulaması. Forma eklenen buton, yön tuşlarıyla hareket ettiriliyor. Basit bir uygulama olduğunu söylemiştim zaten. Daha fazla ayrıntıya girmeden kod incelemesine geçmekte yarar var. read more »

Bu yazımda da veritabanı işlemlerine devam ediyorum. Bir önceki yazımda veritabanına veri kaydetme işlemini anlatmıştım. Bu günün konusu ise veritabanından veri çekme işlemi olacak.

Ben aşağıda vereceğim örnekte verileri, eklediğim textbox’ lara çektim. Bu veriler tablo halinde bir datagrid’ e de çekilebilirdi. İlk yapılacak işlem yine bağlantı oluşturup bu bağlantıyı açmak olacak. Ardından veritabanındaki verileri bir kritere göre çekmemiz gerekecek. Bu kriteri de sorgu stringinde belirleyeceğiz. Ben örnekte, TC kimlik numarasını yazdığım kayıtın verilerini çektim. Ama istersek yaşı 25′ ten küçük olanlar, ya da read more »

Programlamaya yeni başlayanlar için gereksiz diye nitelendirilen ama büyük programlarda programı bir nebze olsun karmaşıklıktan kurtaran, daha basite indirgeyen bir anahtar sözcükten bahsedeceğim bu gün. Bahsettiğim sözcük this. Genelde çoğu kişi kullanımını bilir, ama neden kullandığı hakkında pek fikirleri yoktur.

Örnek vererek anlatmak galiba sizin açınızdan daha faydalı olacaktır. Aşağıdaki örnek üzerinden gerekli açıklamaları read more »

Sıralama algoritmalarından daha önce Insertion Sort‘ u paylaşmıştım. Bu gün de vize çalışmalarıma paralel olarak paylaştığım sıralama algoritmalarından Merge Sort’ u paylaşıyorum. Yazının devamında önce Merge Sort’ un açıklamasını, ardından da Csharpta yazılmış örnek uygulamasını bulablirsiniz.

Merge Sort algoritması, divide and conquer(parçala ve yönet) metodunu kullanarak verileri sıralar. Şöyle ki algoritma, verileri tek eleman kalıncaya kadar recursive fonksiyonlar yardımıyla sürekli ikiye böler. Tek kalan elemanları ise kendi aralarında sıralı bir şekilde birleştirmeye başlar. Tek kalan elemanlar birleştiğinde de dizi sıralanmış olur. Şekil üzerinde incelediğiniz zaman daha iyi anlayacağınızı umuyorum.
Merge Sort sıralama algoritmasına da göz atacak olursak, read more »

Bu gün de yine basit bir matematik işlemi olan ebob-ekok bulma işleminin Csharp kodunu sizlerle paylaşacağım. Ebob ve ekok kavramlarının matematiksel boyutunu anlatmaya gerek olmadığını düşünerek, programdan biraz bahsetmek istiyorum. Program, klavyeden girilen iki sayının ebob ve ekok değerlerini buluyor. Programın açıklaması program üzerinde yorum satırları olarak zaten var. Programı incelerken anlayacağınızı umuyorum. iyi çalışmalar…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;

namespace ebobEkok
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("1. Sayıyı giriniz: ");
            int sayi1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("2. Sayıyı giriniz: ");
            int sayi2 = Convert.ToInt32(Console.ReadLine());
            int ekok = 1;//ebob a başlangıç değeri 1 olarak atanır
            int limit;//döngünün kaça kadar gideceğini bulmak için limit değişkeni tanımladık
            int ebob = 1;
            if (sayi1 > sayi2)//limitin değerini girilen iki sayıdan büyük olana atadık
                limit = sayi1;
            else
                limit = sayi2;
            for (int i = 1; i <= limit; i++)
            {
                if ((sayi1 % i == 0) && (sayi2 % i == 0))//sayı1 ve sayı2 nin ortak bölenleri bulunur, en sonunda en büyük olan değer ebob olarak kalır
                {
                    ebob = i;
                }
                ekok = (sayi1 * sayi2) / ebob;//iki sayının ekok u, çarpımlarının eboblarına bölümüdür

            }
            Console.WriteLine("Ekok:{0}\nEbob={1}", ekok, ebob);
        }
    }
}

 

Hayatımızdaki işlemleri kolaylaştırmak için bazı nesneleri, sayıları belli özelliklerine göre sıralarız. Her alanda olduğu gibi, bilgisayar alanında da sık sık verileri sıralama ihtiyacı duyarız. Bu yüzdendir ki bilgisayarın icat edildiği ve aktif olarak kullanıldığı günden bugüne kadar, birçok sıralama algoritması türetilmiştir. Bu yazımda bu sıralama algoritmalarından Insertion Sortu sizlere anlatmaya çalışacağım. Öncelikle algoritmasını, ardından da Csharp kodunu yazının devamında görebilirsiniz.

Şekil üzerinde bu algoritmanın nasıl çalıştığı açık bir şekilde ortada ama ben sözlü olarak da anlatmak istiyorum. Eğer küçükten büyüğe sıralama yapıldığını düşünürsek. Algoritma, sayı dizisinin ikinci elemanını kendisine anahtar eleman olarak seçiyor. Bu anahtar eleman bir önceki elemandan başlayıp, read more »

Programlama dillerini kolaylaştıran en önemli unsurlardan bir tanesi de döngülerdir. For döngüsü ve while döngüsü en çok kullanılan döngülerdendir. Peki bu döngülerle her türlü problem çözülebilir mi? Cevap belki “evet”. Çünkü ben henüz “hayır” diyebileceğim bir sonuçla karşılaşmadım. Ama bazı durumlar vardır ki başka bir yolla daha kısa kod kullanarak, daha yüksek performans alarak problemler çözülebilir. Bu yazımda ben de bu diğer yollardan biri olan recursive(özyinelemeli) fonksiyonları anlatacağım.

Recursive fonksiyonlar, kendi kendini çağıran fonksiyondur. Bir kontrol ile sınırlandırılmazsa read more »

Uzun zamandır c# hakkında yazı yazmamam, java vizesinden bir gün önce bu yazıyı yazmama sebep oldu diyebilirim. Belki zamansız bir yazı oldu benim için ama bir matris çarpımı programının sitede bulunması da gerekiyordu.

Aslında matris çarpımı klasik bir çok boyutlu dizi örneğidir. Bildiğiniz üzere matrisler iki boyutlu dizilerde tutulur. Ben de doğal olarak programda iki boyutlu dizi kullandım. Matris çarpım programının çarpım aşamasındaki indislerini, işlemin matematiksel boyutunu göz önüne alarak kolaylıkla oluşturabilirsiniz. Üç boyutlu iki kare matrisin çarpımını düşünün, a ve b matrisi olsun bunlar. Rastgele bir satırın sonucu şu şekilde olur:

sonuc32=a31*b12+a32*b22+a33*b32

gördüğünüz gibi üstteki ifade 3. satır, 2. sütundaki sonucun hesaplanma aşamasını read more »

C#, C/C++ ve Java dillerinden türeyen, güçlü, basit, esnek, tip güvenli, modern ve Microsoft. NET platformu için sıfırdan geliştirilmiş tek programlama dilidir. Bilgisayarlar çıktıkları günden beri değişik düzeyde birçok programlama dilleri kullanılarak programlanıp insanlara faydalı hale getirilmiştir. C# orta düzeyli bir dildir. Hem alt hem de üst düzey programlar yazılabilir. Büyük çaplı projeler geliştirirken kullandığımız dilin çok zor olmaması ve verimli olması her zaman tercih sebebidir. Bu durumda C++ kullanmak etkili olmayabilir.
Eğer C/C++ veya Java biliyorsanız Csharp size tanıdık gelecektir. C#’ın C’den farkı nesne yönelimli olmasıdır yani read more »