C Sharp - Ödev konusu lütfen gelin.

OlymmC

Ağaç Yumruklayıcı
Mesajlar
15
En iyi cevaplar
0
Beğeniler
10
Puanları
180
Arkadaşlar acil program kodları gerekiyor, sporum var malesef bugüne yetiştiremeyeceğim.

Girilen cümle içinde sesli harfler, sessiz harfler ve kelime sayısını bulan program. (ConsoleApplication)
(for döngüsü ve Length komutu ile olsun. Galiba İf-Else ile olacak)

Yapan arkadaşlar için çok teşekkür ediyorum. İsterlerse özelden de atabilirler.
 


Batuhannxdm

Taş Madencisi
Mesajlar
89
En iyi cevaplar
0
Beğeniler
80
Puanları
20
Tam olarak anlayamadım kodu düzgün bir şekilde atabilir misin ?
 

Bernard

Бернард
Site Danışmanı
Geliştirici
Mesajlar
1,286
En iyi cevaplar
61
Beğeniler
2,129
Puanları
5,790
@Bernard yardımcı olabilir bence.
Etiket için teşekkürler kodladım :D
Kodda hatalar olabilir. Hatasız yapmaya çalıştım. Kelimeleri cümlede ki boşluklara göre alıyor. Cümle sonunda boşluk var ise göz ardı ediyor. Ama cümle sonunda 2. boşluk varsa 1 fazla kelime cevabı verecektir. Orasını sen ayarlarsın.
Kod:
static void Main(string[] args)
        {
            Console.Write("Programa hoş geldiniz. \nCümlenizi giriniz: ");
            string txt = Convert.ToString(Console.ReadLine());
            
            if (txt.Substring(txt.Length - 1, 1) == " ") {
                string sonharf = txt.Substring(0, txt.Length - 1);
                txt = sonharf;
            }
            int uzunluk = txt.Length;
            string harf;
            int sesliharf = 0;
            int sessizharf = 0;
            int kelime = 0;
            for (int i = 0; i < uzunluk; i++) {
                harf = txt.Substring(i, 1);
                if (harf == "a" || harf == "e" || harf == "i" || harf == "ı" || harf == "ö" || harf == "o" || harf == "u" || harf == "ü")
                {
                    sesliharf++;
                }
                else if (harf == "b" || harf == "c" || harf == "ç" || harf == "d" || harf == "f" || harf == "g" || harf == "ğ" || harf == "h" || harf == "j" || harf == "k" || harf == "l" || harf == "m" || harf == "n" || harf == "p" || harf == "r" || harf == "s" || harf == "ş" || harf == "t" || harf == "v" || harf == "y" || harf == "z") {
                    sessizharf++;
                }
                else if (harf == " "){
                    kelime++;
                
                }
            }
            kelime++;
            Console.Write("Cümlede bulunan sesli harf sayısı: " + sesliharf + "\nCümlede bulunan sessiz harf sayısı: " + sessizharf + "\nCümlede bulunan kelime sayısı: " + kelime);
            Console.ReadKey();
        }

Bu arada verdiğin kısımda bulunan kodlar C veya C++ diline ait. C# ile alakası yok. Kullanılamaz. Ancak örnek alınabilir.
 

NeveseRC

Elmas Madencisi
Mesajlar
864
En iyi cevaplar
0
Beğeniler
736
Puanları
2,340
Kod:
static void Main(string[] args)
 
{
 
string a;
 
int i = 0, j = 1, sessiz = 0;
 
Console.Write("Cümleyi Girin:");
 
a = Console.ReadLine();
 
int c = a.Length;
 
foreach (char b in a)
 
{
 
if (b == 'a' || b == 'e' || b == 'ı' || b == 'i' || b == 'o' || b == 'ö' || b == 'u' || b == 'ü')
 
i++;
 
else if (b != ' ')
 
sessiz++;
 
if (b == ' ')
 
j++;
 
}
 
Console.WriteLine("Girdiğiniz Cümlede/kelimede {0} Adet Sesli Harf Vardır.", i);
 
Console.WriteLine("Girdiğiniz Cümlede/kelimede {0} Adet Sessiz Harf Vardır.", sessiz);
 
Console.WriteLine("Girdiğiniz Cümle {0} Kelimeden Oluşmaktadır", j);
 
Console.ReadKey();
 
}
 

CheartMan

Marangoz
Mesajlar
42
En iyi cevaplar
0
Beğeniler
46
Puanları
180
baya geçti ama kusura bakma İndexOf ve for döngüsü ile güzel bir algoritma kurabilirsin bu kadar uzun olmasına gerek yok :)
 

Reol

Sudan Çıkmış
Mesajlar
9
En iyi cevaplar
0
Beğeniler
24
Puanları
60
Üstte atılan kodlara baktım ama gereksiz yere çok fazla koşul kullanılmış. Bu tarz bir iş için döngüler doğrudan kullanılmadan daha pratik bir çözüm olarak şunu bırakayım.
C#:
using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var vowels = new HashSet<char> { 'a', 'e', 'ı', 'i', 'o', 'ö', 'u', 'ü' };
        var consonants = new HashSet<char> { 'b', 'c', 'ç', 'd', 'f', 'g', 'ğ', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'y', 'z' };
  
        Console.Write("Analiz edilecek cümleyi yazın: ");
        string sentence = Console.ReadLine().ToLower();
      
        int consonantAmount = sentence.Count(c => consonants.Contains(c));
        int vowelAmount = sentence.Count(c => vowels.Contains(c));
        int wordAmount = sentence.Count(c => c == ' ') + 1;
        int specialCharAmount = sentence.Length - (consonantAmount + vowelAmount + wordAmount - 1);
      
        Console.WriteLine("Toplam Kelime Sayısı: {0}\nSesli Harf Sayısı: {1}\nSessiz Harf Sayısı: {2}\nDiğer Karakter Miktarı: {3}", wordAmount, vowelAmount, consonantAmount, specialCharAmount);
        Console.ReadKey();
    }
}
 

FuryRS

Elmas Madencisi
Mesajlar
846
En iyi cevaplar
0
Beğeniler
272
Puanları
650
Ruh hali
Üstte atılan kodlara baktım ama gereksiz yere çok fazla koşul kullanılmış. Bu tarz bir iş için döngüler doğrudan kullanılmadan daha pratik bir çözüm olarak şunu bırakayım.
C#:
using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var vowels = new HashSet<char> { 'a', 'e', 'ı', 'i', 'o', 'ö', 'u', 'ü' };
        var consonants = new HashSet<char> { 'b', 'c', 'ç', 'd', 'f', 'g', 'ğ', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'y', 'z' };
 
        Console.Write("Analiz edilecek cümleyi yazın: ");
        string sentence = Console.ReadLine().ToLower();
     
        int consonantAmount = sentence.Count(c => consonants.Contains(c));
        int vowelAmount = sentence.Count(c => vowels.Contains(c));
        int wordAmount = sentence.Count(c => c == ' ') + 1;
        int specialCharAmount = sentence.Length - (consonantAmount + vowelAmount + wordAmount - 1);
     
        Console.WriteLine("Toplam Kelime Sayısı: {0}\nSesli Harf Sayısı: {1}\nSessiz Harf Sayısı: {2}\nDiğer Karakter Miktarı: {3}", wordAmount, vowelAmount, consonantAmount, specialCharAmount);
        Console.ReadKey();
    }
}
Adam ödevinden not bille almıştır :D
 

Üst