All pastes #2118104 Raw Edit

Something

public text v1 · immutable
#2118104 ·published 2012-02-11 19:14 UTC
rendered paste body
//TÜRKÇE METNİ HECELEME PROGRAMI
//Bu program Hüseyin ÇAKANLI tarfından
//11.02.2012 tarihinde yazıldı.
//Visual C# ile test edilmiştir.

using System;

namespace ConsoleApplication1
{

    class Program1
    {
        static char[] sesli = { 'A', 'a', 'E', 'e', 'İ', 'i', 'I', 'ı', 'Ü', 'ü', 'U', 'u', 'Ö', 'ö', 'O', 'o' };
        static char[] sessiz = { 'B', 'b', 'C', 'c', 'Ç', 'ç', 'D', 'd', 'F', 'f', 'G', 'g', 'Ğ', 'ğ', 'H', 'h', 'J', 'j', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'P', 'p', 'R', 'r', 'S', 's', 'Ş', 'ş', 'T', 't', 'V', 'v', 'Y', 'y', 'Z', 'z' };
        static char[] sembol = { ',', '"', '!', '^', '.', ':', ';', '?', '-', '_', '(', ')', '[', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

        static bool sembolmu(char harf)
        {
            foreach (char hrf in sembol)
            {
                if (hrf == harf) { return true; break; }
            }
            return false;
        }

        static bool seslimi(char harf)
        {
            foreach (char hrf in sesli)
            {
                if (hrf == harf) { return true; break; }
            }
            return false;
        }
        static bool sessizmi(char harf)
        {
            foreach (char hrf in sessiz)
            {
                if (hrf == harf) { return true; break; }
            }
            return false;
        }


        static void Main(string[] args)
        {
            string ifade, sonuc;
            int i ;
           
            //HECELEME ALGORİTMASI
 
            while(true)
            {
                Console.Clear();
                Console.WriteLine("Hecelenecek Cümleyi Giriniz :");
                Console.WriteLine();
                ifade = Console.ReadLine();
                sonuc = "";
            do
            {
                i = 0;  ifade = ifade.Trim();

                //İlk harf sembol
                if (sembolmu(ifade[i])) { ifade = ifade.Substring(i + 1); continue; }
                //kalan 2 harfli son hecemi
                if (ifade.Length==2) { sonuc = sonuc + ifade[i] + ifade[i + 1]; break; }
                //kalan 2 harfli son hecemi, sonda nokta olan.
                if (ifade.Length == 3 && sembolmu(ifade[i + 2])) {sonuc = sonuc + ifade[i] + ifade[i + 1]; break;}
                //kalan 3 harfli son hecemi
                if (ifade.Length == 3) { sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2]; break; }
                //kalan 3 harfli son hecemi, sonda nokta olan.
                if (ifade.Length == 4 && sembolmu(ifade[i+3])) { sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2];break;}

                //ilk harf sesli ise
                if (seslimi(ifade[i]))
                {
                    //ikinci sessiz üçüncü sesli ise sadece ilk harf hecedir
                    if (sessizmi(ifade[i + 1]) && seslimi(ifade[i + 2])) { sonuc = sonuc + ifade[i] + "-"; ifade = ifade.Substring(i + 1); continue; }
                    //ikinci boşluk ise sadece ilk harf hecedir
                    if ((ifade[i + 1] == ' ') || (sembolmu(ifade[i + 1]))) { sonuc = sonuc + ifade[i] + "-"; ifade = ifade.Substring(i + 1); continue; }
                    //ikinci sessiz üçüncü sessiz dördüncü sesli ise 2 harf hecedir
                    if (sessizmi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && seslimi(ifade[i + 3]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 2); continue;
                    }
                    //ikinci sessiz üçüncü boşluk ise 2 harf hecedir
                    if ((sessizmi(ifade[i + 1]) && ifade[i + 2] == ' ') || sembolmu(ifade[i + 2]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 2); continue;
                    }
                    //ikinci sessiz üçüncü sessiz dördüncü sessiz ise 3 harf hecedir
                    if (sessizmi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && sessizmi(ifade[i + 3]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + "-";
                        ifade = ifade.Substring(i + 3); continue;
                    }
                    //ikinci sessiz üçüncü sessiz dördüncü boşluk ise 3 harf hecedir
                    if ((sessizmi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && ifade[i + 3] == ' ') || (sembolmu(ifade[i + 3])))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + "-";
                        ifade = ifade.Substring(i + 3); continue;
                    }
                }
                //ilk harf sessiz ise
                if (sessizmi(ifade[i]))
                {

                    //ikinci sessiz üçüncü sembol
                    if ((sessizmi(ifade[i + 1])) && ((sembolmu(ifade[i + 2]) || ifade[i+2]==' ')))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 3); continue;
                    }

                    //ikinci sesli üçüncü sesli ise 2 harf hecedir
                    if (seslimi(ifade[i + 1]) && seslimi(ifade[i + 2]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 3); continue;
                    }
                    //ikinci sesli üçüncü sessiz dördüncü sesli ise 2 harf hecedir
                    if (seslimi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && seslimi(ifade[i + 3]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 2); continue;
                    }
                    //ikinci sesli üçüncü boşluk ise 2 harf hecedir
                    if ((seslimi(ifade[i + 1]) && ifade[i + 2] == ' ') || sembolmu(ifade[i + 2]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + "-"; ifade = ifade.Substring(i + 2); continue;
                    }
                    if (i + 3 < ifade.Length)
                    {
                        //ikinci sesli üçüncü sessiz dördüncü sessiz beşinci sessiz ise 4 harf hecedir
                        if (seslimi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && sessizmi(ifade[i + 3]) && sessizmi(ifade[i + 4]))
                        {
                            sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + ifade[i + 3] + "-";
                            ifade = ifade.Substring(i + 4); continue;
                        }
                    }
                    //ikinci sesli üçüncü sessiz dördüncü boşluk ise 3 harf hecedir
                    if ((seslimi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && ifade[i + 3] == ' ') || (sembolmu(ifade[i + 3])))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + "-";
                        ifade = ifade.Substring(i + 3); continue;
                    }
                    if (i + 4 < ifade.Length)
                    {
                        //ikinci sesli üçüncü sessiz dördüncü sessiz beşinci boşluk ise 4 harf hecedir
                        if ((seslimi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && sessizmi(ifade[i + 3]) && ifade[i + 4] == ' ') || (sembolmu(ifade[i + 4])))
                        {
                            sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + ifade[i + 3] + "-";
                            ifade = ifade.Substring(i + 3); continue;
                        }
                    }
                    //ikinci sesli üçüncü sessiz dördüncü sessiz beşinci sesli ise 3 harf hecedir
                    if (seslimi(ifade[i + 1]) && sessizmi(ifade[i + 2]) && sessizmi(ifade[i + 3]))
                    {
                        sonuc = sonuc + ifade[i] + ifade[i + 1] + ifade[i + 2] + "-";
                        ifade = ifade.Substring(i + 3); continue;
                    }
                }
                i = i + 1;
            } while (ifade.Length>0);

            Console.WriteLine(sonuc);           
            Console.WriteLine();
            Console.WriteLine("Devam etmek için bir entere basınız");
            Console.ReadLine();
   } 
  }
 }
}