Örnekler İle C# Geliştirme - Bölüm 6

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,729
a3b2jeo.png


Giriş

Merhaba, C# uygulama geliştirme serimizin altıncı yazısına hoş geldiniz.
Bu yazımızda verilen metni, morse koduna çeviren bir program yapacağız.

Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5

İyi okumalar dilerim!

Yapılış

jehxc0w.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Morse Dönüştürücü" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

t45pwaf.png


Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Morse Dönüştürücü' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.​
2 adet GroupBox
2 adet RichTextBox
1 adet Button​

lmsmg20.png


Tasarımımızdan sonra kod bölümümüze giriyoruz (F7) ve bir metot oluşturuyoruz.
Ben ismini MetniMorseCevir() koyuyorum, siz istediğiniz bir ismi koyabilirsiniz.
İçine de metin adında bir argüman oluşturdum, içine richTextBox1'den aldığımız veriyi koyacağız.

Şimdi de metodumuzun içindeki kodlarımızı inceleyelim.
Sözlük kullanımdan dolayı biraz kafa karıştırıcı gözükse de basit bir kod aslında.

C#:
Dictionary<char, string> morseSozlugu = new Dictionary<char, string>()
{
    {'A', ".-"}, {'B', "-..."}, {'C', "-.-."}, {'D', "-.."},
    {'E', "."}, {'F', "..-."}, {'G', "--."}, {'H', "...."},
    {'I', ".."}, {'J', ".---"}, {'K', "-.-"}, {'L', ".-.."},
    {'M', "--"}, {'N', "-."}, {'O', "---"}, {'P', ".--."},
    {'Q', "--.-"}, {'R', ".-."}, {'S', "..."}, {'T', "-"},
    {'U', "..-"}, {'V', "...-"}, {'W', ".--"}, {'X', "-..-"},
    {'Y', "-.--"}, {'Z', "--.."},

    {'0', "-----"}, {'1', ".----"}, {'2', "..---"}, {'3', "...--"},
    {'4', "....-"}, {'5', "....."}, {'6', "-...."}, {'7', "--..."},
    {'8', "---.."}, {'9', "----."}
};
// Burada bir sözlük oluşturuyoruz ve içine harflerin ne ile değişeceğini karşı değer olarak veriyoruz.

metin = metin.ToUpper();
// Burada richTextBox1 içinden aldığımız değerin tamamını büyütüyoruz.
// Yani "Merhaba" diye girildiyse "MERHABA" haline çeviriyoruz.

string morseKodu = "";
// Burada yeni değerimizi depolayacağımız bir değişken oluşturuyoruz.

foreach (char karakter in metin) // Burada ise bir 'metin' değişkenini uzunluğu kadar dönecek bir foreach döngüsü oluşturyoruz.
{
    if (morseSozlugu.ContainsKey(karakter))
    /*
        Burada ise ContainsKey ile sözlüğümüzün içinde döngümüzdeki o an ki karakter var mı diye kontrol ediyor.
        Örneğin ben metin içine "Pump" yazdım. Döngü de ilk turunda diyelim. O an ki karakter "P" oluyor.
        Sözlükte "P" var ise koşulumuz true olacak.
    */
    {
        morseKodu += morseSozlugu[karakter] + " ";
        // Burada da çıkan karakteri sözlükten buluyor ve karşılığını morseKodu adındaki değişkenimizi atıyor.
        // Yani "P" çıktı diyelim. Değişkenin içine onun karşılığı olan ".--." değerini koyacak.
    }
    else
    // Burası ise girilen değer sözlükte yoksa çalışır.
    {
        morseKodu += karakter;
        // Belirlenemeyen değer direkt girildiği şekilde koyulur.
        // Örnek belirlenmeyen karakterler: &/()[]?_^# tabi bunlar dışında daha pek çok şey olabilir.
    }
}

return morseKodu.Trim();
// Son olarak ise morseKodu içindeki boşlukları Trim() fonksiyonu ile siliyor ve bunu geri döndürüyor.

c0m6g3i.png


Şimdi de tuşa bastığımızda çalışması ayarlayalım.
Bu kod ile MetniMorseCevir()'den dönen değeri richTextBox2 içine yazdırıyoruz.

C#:
richTextBox2.Text = MetniMorseCevir(richTextBox1.Text);

e8oq7t2.png


Son olarak da çıktı için kullanacağımız richTextBox2'yi sadece okunabilir hale getirelim.
Bu ayar sayesinde kullanıcı çıktı üzerinde herhangi bir değişiklik yapamayacak.

Bunun için richTextBox2'in üstüne tıklıyoruz ve Özellikler > ReadOnly kısmını True yapıyoruz.
Tabi bunu illa ara yüz üzerinden yapacaksınız diye bir şey yok.
İsteyenler aşağıdaki kodu kullanarak da bu işlemi gerçekleştirebilir.

C#:
richTextBox2.ReadOnly = true;

Evet, genel olarak projemiz tamamlandı.
Şimdi çalışma şeklini izleyelim.

rm8xhc2.gif


Kapanış

Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekte ki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!​
 
Son düzenleme:

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,729
Ellerinize Sağlık.
Teşekkürler Felez.
Elinize sağlık.
Teşekkür ederim ikinize de.
Teşekkür.
umarım seri devam eder. elinize saglik.
Teşekkürler kmodum, gittiği yere kadar götürmeyi düşünüyorum.
Emeğinize Sağlık.
Teşekkür ederim.
 

Speedy Gonzales

Katılımcı Üye
12 Kas 2021
634
296
in every technology system
a3b2jeo.png


Giriş

Merhaba, C# uygulama geliştirme serimizin altıncı yazısına hoş geldiniz.
Bu yazımızda verilen metni, morse koduna çeviren bir program yapacağız.

Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5

İyi okumalar dilerim!

Yapılış

jehxc0w.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Morse Dönüştürücü" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

t45pwaf.png


Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Morse Dönüştürücü' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.


lmsmg20.png


Tasarımımızdan sonra kod bölümümüze giriyoruz (F7) ve bir metot oluşturuyoruz.
Ben ismini MetniMorseCevir() koyuyorum, siz istediğiniz bir ismi koyabilirsiniz.
İçine de metin adında bir argüman oluşturdum, içine richTextBox1'den aldığımız veriyi koyacağız.

Şimdi de metodumuzun içindeki kodlarımızı inceleyelim.
Sözlük kullanımdan dolayı biraz kafa karıştırıcı gözükse de basit bir kod aslında.

C#:
Dictionary<char, string> morseSozlugu = new Dictionary<char, string>()
{
    {'A', ".-"}, {'B', "-..."}, {'C', "-.-."}, {'D', "-.."},
    {'E', "."}, {'F', "..-."}, {'G', "--."}, {'H', "...."},
    {'I', ".."}, {'J', ".---"}, {'K', "-.-"}, {'L', ".-.."},
    {'M', "--"}, {'N', "-."}, {'O', "---"}, {'P', ".--."},
    {'Q', "--.-"}, {'R', ".-."}, {'S', "..."}, {'T', "-"},
    {'U', "..-"}, {'V', "...-"}, {'W', ".--"}, {'X', "-..-"},
    {'Y', "-.--"}, {'Z', "--.."},

    {'0', "-----"}, {'1', ".----"}, {'2', "..---"}, {'3', "...--"},
    {'4', "....-"}, {'5', "....."}, {'6', "-...."}, {'7', "--..."},
    {'8', "---.."}, {'9', "----."}
};
// Burada bir sözlük oluşturuyoruz ve içine harflerin ne ile değişeceğini karşı değer olarak veriyoruz.

metin = metin.ToUpper();
// Burada richTextBox1 içinden aldığımız değerin tamamını büyütüyoruz.
// Yani "Merhaba" diye girildiyse "MERHABA" haline çeviriyoruz.

string morseKodu = "";
// Burada yeni değerimizi depolayacağımız bir değişken oluşturuyoruz.

foreach (char karakter in metin) // Burada ise bir 'metin' değişkenini uzunluğu kadar dönecek bir foreach döngüsü oluşturyoruz.
{
    if (morseSozlugu.ContainsKey(karakter))
    /*
        Burada ise ContainsKey ile sözlüğümüzün içinde döngümüzdeki o an ki karakter var mı diye kontrol ediyor.
        Örneğin ben metin içine "Pump" yazdım. Döngü de ilk turunda diyelim. O an ki karakter "P" oluyor.
        Sözlükte "P" var ise koşulumuz true olacak.
    */
    {
        morseKodu += morseSozlugu[karakter] + " ";
        // Burada da çıkan karakteri sözlükten buluyor ve karşılığını morseKodu adındaki değişkenimizi atıyor.
        // Yani "P" çıktı diyelim. Değişkenin içine onun karşılığı olan ".--." değerini koyacak.
    }
    else
    // Burası ise girilen değer sözlükte yoksa çalışır.
    {
        morseKodu += karakter;
        // Belirlenemeyen değer direkt girildiği şekilde koyulur.
        // Örnek belirlenmeyen karakterler: &/()[]?_^# tabi bunlar dışında daha pek çok şey olabilir.
    }
}

return morseKodu.Trim();
// Son olarak ise morseKodu içindeki boşlukları Trim() fonksiyonu ile siliyor ve bunu geri döndürüyor.

c0m6g3i.png


Şimdi de tuşa bastığımızda çalışması ayarlayalım.
Bu kod ile MetniMorseCevir()'den dönen değeri richTextBox2 içine yazdırıyoruz.

C#:
richTextBox2.Text = MetniMorseCevir(richTextBox1.Text);

e8oq7t2.png


Son olarak da çıktı için kullanacağımız richTextBox2'yi sadece okunabilir hale getirelim.
Bu ayar sayesinde kullanıcı çıktı üzerinde herhangi bir değişiklik yapamayacak.

Bunun için richTextBox2'in üstüne tıklıyoruz ve Özellikler > ReadOnly kısmını True yapıyoruz.
Tabi bunu illa ara yüz üzerinden yapacaksınız diye bir şey yok.
İsteyenler aşağıdaki kodu kullanarak da bu işlemi gerçekleştirebilir.

C#:
richTextBox2.ReadOnly = true;

Evet, genel olarak projemiz tamamlandı.
Şimdi çalışma şeklini izleyelim.

rm8xhc2.gif


Kapanış

Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekte ki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!​
eline saglık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.