C#

C# Cümledeki Sessiz Harf Sayısını Bulma

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde bir cümle içindeki sessiz harf sayısını bulmayı anlatacağım. Hadi başlayalım !Biz cümledeki sessiz harf sayısını bulacağız ya, bunun en kolay yanı sessiz harfleri bir diziye alıp cümleyide for yada foreach gibi bir döngü ile dönerek kontrol etmek olacaktır. Türkçe için bu dediğimiz yol çok mantıklı olacaktır, sonuçta 21 tane sessiz harf var. Bu 21 harfi bi diziye eklemek kolay olacaktır fakat girilen metin ya Arapça olursa ? İşte o zaman bizim yolumuz bi işe yaramayacaktır.
Peki bunun yok mu bi yolu derseniz, elbette var. İşte burada C#’ın ne kadar güzel birşey olduğunu biraz daha iyi anlayacağız 🙂
Bunun içinde char sınıfı altında bulunan ve static tipteki, yani bulunduğu sınıfın yeni bir nesnesi türetilmeden doğrudan erişilebilen IsLetter() fonksiyonunu kullanacağız. Bu fonksiyon char tipte bir tane parametre alıyor ve aldığı değerin metinsel olup olmadığını bize söylüyor. Metinsel ise true, değilse false döndürüyor ve tüm diller için geçerli oluyor. Yani a harfide girseniz, â harfide girseniz, ا (Arapçad’daki elif) girsenizde sorunsuz bir şekilde çalışacaktır. Fakat şimdi de şöyle bir sorunumuz var, tamam biz metinsel mi değil mi buluyoruz ama sesli harf mi sessiz harf mi onu bilmiyoruz. Ama bizim sesli ve sessiz harfleri ayırt etmemiz gerekiyor.
Burada da iki yolumuz var.
Birincisi sessiz harfleri bir diziye atacak ve kullanıcının girdiği metnin içinde sessiz harflerin olup olmadığını kontrol edecek ve olduğunda daha önce tanımladığımız integer tipindeki bir değişkeni artttıracağız.
İkincisi sesli harfleri bir diziye atacak ve yine kullanıcının girdiği metin içinde olup olmadığını kontrol edecek ve sesli harf olmadığı sürece integer değişkeni arttıracağız.Her iki yolu da yapabiliriz fakat ben ikinci yolu anlatacağım. Yani sesli harfleri bir diziye atacak ve girilen metin içinden kontrol yapacağız.
Tüm bu işlemlerden önce kullanıcıdan bir metin isteyelim ve bunu string bir değişkene atayalım. Girilen metnin harflerini küçük harf yapalım ki işimiz kolaylaşsın 🙂
Ayrıca sesli harfleride bir diziye atayalım;

Console.Write("Metin Giriniz: ");
string metin = Console.ReadLine().ToLower();
char[] sesliHarfler = {'a' ,'e', 'ı', 'i', 'o', 'ö', 'u', 'ü'};

İşte şimdi metin değişkenini döngü ile dönecek ve döngünün o anki değeri sesliHarfler dizisi içinde var mı yok mu bakacağız, bunu yapmanın en kolay yanı da dizi fonksiyonlarından biri olan IndexOf() fonksiyonunu kullanmak olacaktır.
Yani şimdi yapacağımız işlemleri tekrardan bi gözden geçirecek olursak;

  • metin değişkeninde tuttuğumuz kullanıcının girdiği metni döngü ile döneceğiz,
  • Her döngüde ilgili karakterin metinsel olup olmadığını kontrol edeceğiz,
  • Metinsel ise sesliHarfler dizisi içinde olup olmadığını kontrol edeceğiz,
  • sesliHarfler dizisi içinde yoksa dışarıda oluşturduğumuz integer değişkeni 1 arttıracağız

Şimdi bu dediklerimin kodunu yazalım ve tabiki kullanıcıya bildirelim;

int adet = 0;
foreach(char ch in metin)
    if(char.IsLetter(ch))
	    if(Array.IndexOf(sesliHarfler, ch) == -1)
		    adet++;
Console.WriteLine("Girdiğiniz Metinde {0} Tane Sessiz Harf Vardır", adet);

Evet bu dersimizde bu kadardı, tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 1 Ortalama: 5]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu