C# Switch-case ile sesli ve sessiz harfi ekrana yazdırma

  • Konuyu başlatan DarL
  • Başlangıç Tarihi
  • Mesaj 11
  • Görüntüleme 963

DarL

Femtopat
Katılım
28 Haziran 2023
Mesajlar
96
Daha fazla  
Cinsiyet
Erkek
Bilişim okuyorum ve ödev verildi.

1698864960812.png


Çok kolay olmasına rağmen yapamıyorum.
Nereyse 1 saattir kafa patlatıyorum ama ne sitelerde ne de kendim bulamadım. Tabii konuyla alakalı tek bulduğum bu fakat buradaki for/if/else ile yapmış benim Switch-case kullanarak yapmam isteniliyor.

1698865218195.png


Benim de son yaptığım olarak en son böyle bir şey ortaya çıktı.

1698865071101.png


1698865140194.png


İlk olarak gidişat yolunda nerede yanlış yapmışım ve nasıl yapabilirim?
 
Kod:
using System;

class Program
{
    static void Main()
    {
        Console.Write("Harf Giriniz: ");
        char karakter = Console.ReadLine().ToLower()[0];

        switch (karakter)
        {
            case 'a':
            case 'e':
            case 'ı':
            case 'i':
            case 'o':
            case 'ö':
            case 'u':
            case 'ü':
                Console.WriteLine("Sesli harf.");
                break;
            default:
                Console.WriteLine("Sessiz harf.");
                break;
        }
    }
}

Buyrun.
 
Bilişim okuyorum ve ödev verildi.

Eki Görüntüle 1999608

Çok kolay olmasına rağmen yapamıyorum.
Nereyse 1 saattir kafa patlatıyorum ama ne sitelerde ne de kendim bulamadım. Tabii konuyla alakalı tek bulduğum bu fakat buradaki for/if/else ile yapmış benim Switch-case kullanarak yapmam isteniliyor.

Eki Görüntüle 1999617

Benim de son yaptığım olarak en son böyle bir şey ortaya çıktı.

Eki Görüntüle 1999611

Eki Görüntüle 1999612

İlk olarak gidişat yolunda nerede yanlış yapmışım ve nasıl yapabilirim?
Harfi'i int'e ceviremezsiniz. Stringe cevirin oncelikle.

Kod:
using System;

class Program
{
    static void Main()
    {
        Console.Write("Harf Giriniz: ");
        char karakter = Console.ReadLine().ToLower()[0];

        switch (karakter)
        {
            case 'a':
            case 'e':
            case 'ı':
            case 'i':
            case 'o':
            case 'ö':
            case 'u':
            case 'ü':
                Console.WriteLine("Sesli harf.");
                break;
            default:
                Console.WriteLine("Sessiz harf.");
                break;
        }
    }
}

Buyrun.
Hocam hocalarin verdigi odeve gore daha cok yeni bunlarla anlasilmaz bizde ayni uygulamayi yapmistik cunku.
 
C#:
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string secilenHarf = comboBox1.SelectedItem.ToString().ToUpper();

            switch (secilenHarf)
            {
                case "A":
                case "E":
                case "I":
                case "İ":
                case "O":
                case "Ö":
                case "U":
                case "Ü":
                    MessageBox.Show("Seçilen harf sesli bir harftir.");
                    break;
                case "B":
                case "C":
                case "D":
                case "F":
                case "G":
                case "Ğ":
                case "H":
                case "J":
                case "K":
                case "L":
                case "M":
                case "N":
                case "P":
                case "R":
                case "S":
                case "Ş":
                case "T":
                case "V":
                case "Y":
                case "Z":
                    MessageBox.Show("Seçilen harf sessiz bir harftir.");
                    break;
                default:
                    MessageBox.Show("Geçersiz harf seçildi.");
                    break;
            }
        }

ComboBox'ın SelectedIndexChanged eventine verdiğim örnek kodu uygulayın hocam. Ancak ComboBox'ın isminin ComboBox1 değil ise kodu ona göre değiştirin. Ve ComboBox içeriğine de tüm alfabedeki harfleri girin.
 
C#:
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string secilenHarf = comboBox1.SelectedItem.ToString().ToUpper();

            switch (secilenHarf)
            {
                case "A":
                case "E":
                case "I":
                case "İ":
                case "O":
                case "Ö":
                case "U":
                case "Ü":
                    MessageBox.Show("Seçilen harf sesli bir harftir.");
                    break;
                case "B":
                case "C":
                case "D":
                case "F":
                case "G":
                case "Ğ":
                case "H":
                case "J":
                case "K":
                case "L":
                case "M":
                case "N":
                case "P":
                case "R":
                case "S":
                case "Ş":
                case "T":
                case "V":
                case "Y":
                case "Z":
                    MessageBox.Show("Seçilen harf sessiz bir harftir.");
                    break;
                default:
                    MessageBox.Show("Geçersiz harf seçildi.");
                    break;
            }
        }

ComboBox'ın SelectedIndexChanged eventine verdiğim örnek kodu uygulayın hocam. Ancak ComboBox'ın isminin ComboBox1 değil ise kodu ona göre değiştirin. Ve ComboBox içeriğine de tüm alfabedeki harfleri girin.
Çok teşekkür ederim , sağolun.
 
C#:
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string secilenHarf = comboBox1.SelectedItem.ToString().ToUpper();

            switch (secilenHarf)
            {
                case "A":
                case "E":
                case "I":
                case "İ":
                case "O":
                case "Ö":
                case "U":
                case "Ü":
                    MessageBox.Show("Seçilen harf sesli bir harftir.");
                    break;
                case "B":
                case "C":
                case "D":
                case "F":
                case "G":
                case "Ğ":
                case "H":
                case "J":
                case "K":
                case "L":
                case "M":
                case "N":
                case "P":
                case "R":
                case "S":
                case "Ş":
                case "T":
                case "V":
                case "Y":
                case "Z":
                    MessageBox.Show("Seçilen harf sessiz bir harftir.");
                    break;
                default:
                    MessageBox.Show("Geçersiz harf seçildi.");
                    break;
            }
        }

ComboBox'ın SelectedIndexChanged eventine verdiğim örnek kodu uygulayın hocam. Ancak ComboBox'ın isminin ComboBox1 değil ise kodu ona göre değiştirin. Ve ComboBox içeriğine de tüm alfabedeki harfleri girin.
Çok zorlamışsın. Geçersiz karakter seçimi için when kullansan, sessiz harfler içinde default kullansan çok daha kolay olurdu. Karakter yerine string kullanacaksan char'ı string yapsan yetiyor;
C#:
switch(karakter)
{
    case char ch when (ch < 'A' || ch > 'Z'):
        Console.WriteLine("Geçersiz karakter.");
        break;
    case char ch when (ch == 'A' || ch == 'E'
    || ch == 'I' || ch == 'İ'
    || ch == 'O' || ch == 'Ö'
    || ch == 'U' || ch == 'Ü'):
        Console.WriteLine("Sesli harf");
        break;
    default:
        Console.WriteLine("Sessiz harf");
        break;

}

Yada switchten önce bir tane if koyarsın yine aynı şeyi kontrol eden, eğer tetiklenirse fonksiyondan çıkarsın, böylece yine tüm sessiz harfleri yazmak zorunda kalmamış olursun.
 
Son düzenleme:

Geri
Yukarı