예제 #1
0
        public void KrijoAutomat()
        {
            bool mbaroi = true;
            int  id     = 1;

            Automati = new ArrayList();
            do
            {
                Console.WriteLine("Fusni gjendjen e nisjes");
                string gj1 = Console.ReadLine();

                Console.WriteLine("Fusni shkronjene  alfabetit");
                string alf = Console.ReadLine();

                Console.WriteLine("Fusni gjendjen e mberritjes");
                string gj2 = Console.ReadLine();


                //k.KrijoKalim(id, gj1, alf, gj2);
                Kalimet k = new Kalimet(id, gj1, alf, gj2);
                Automati.Add(k);
                //k.afisho();
                id++;

                Console.WriteLine("Deshironi te fusni kalim tjt?");
                Console.WriteLine("Nqs po shtyp 'Y' perndryshe 'N'");
                string Pergjigje = Console.ReadLine();
                if (Pergjigje.ToUpper() == "N")
                {
                    mbaroi = false;
                }
            } while (mbaroi);
        }
예제 #2
0
        //public ArrayList KontrollEpsilon1prov(string gj, string epsilon)
        //{
        //    ArrayList gjendjeepsilon1prov = new ArrayList();
        //    Kalimet kalimetObject = new Kalimet();
        //    Gjendje gjendje = new Gjendje();


        //        foreach (var i in Automati)
        //        {
        //            kalimetObject = (Kalimet)i;
        //            if (gj == kalimetObject.gjendjanisjes && epsilon == kalimetObject.alfabetkalimi)
        //            {
        //                gjendjeepsilon1prov.Add(kalimetObject.gjendjemberritjes);

        //            }
        //        }


        //    return gjendjeepsilon1prov;

        //}

        public ArrayList KontrollEpsilonperseritje(Gjendje gjendjetepsilon1, string epsilon)
        {
            ArrayList gjendjeepsilonndryshime = new ArrayList();
            Kalimet   kalimetObject           = new Kalimet();
            Gjendje   gjendje = new Gjendje();

            foreach (var gjen in gjendjetepsilon1._gjendje)
            {
                foreach (var i in Automati)
                {
                    kalimetObject = (Kalimet)i;
                    if (gjen == kalimetObject.gjendjanisjes)
                    {
                        if (epsilon == kalimetObject.alfabetkalimi)
                        {
                            string gjendjare = kalimetObject.gjendjemberritjes;
                            if (gjendjetepsilon1._gjendje.Contains(gjendjare))
                            {
                                gjendjeepsilonndryshime.Add(kalimetObject.gjendjemberritjes);
                            }
                        }
                        else
                        {
                            gjendjeepsilonndryshime.Add(gjen);
                        }
                    }
                }
            }

            return(gjendjeepsilonndryshime);
        }
예제 #3
0
        public void AfishoKalime()
        {
            Kalimet kalimetObject = new Kalimet();

            foreach (var i in Automati)
            {
                kalimetObject = (Kalimet)i;
                Console.WriteLine(kalimetObject.afisho());
                //Console.WriteLine (kalimetObject.gjendjanisjes);
            }
        }
예제 #4
0
        public ArrayList KontrollEpsilon1(Gjendje GjendjeteAutomatit, string epsilon)
        {
            ArrayList gjendjeepsilon1 = new ArrayList();
            Kalimet   kalimetObject   = new Kalimet();
            Gjendje   gjendje         = new Gjendje();

            foreach (var gjen in GjendjeteAutomatit._gjendje)
            {
                foreach (var i in Automati)
                {
                    kalimetObject = (Kalimet)i;
                    if (gjen == kalimetObject.gjendjanisjes && epsilon == kalimetObject.alfabetkalimi)
                    {
                        gjendjeepsilon1.Add(kalimetObject.gjendjemberritjes.ToString());
                    }
                }
            }

            return(gjendjeepsilon1);
        }
예제 #5
0
        public ArrayList Kontrollalfabet(string alfabet, Gjendje Gjendjeepsilon)
        {
            ArrayList gjendjealfabet = new ArrayList();
            Kalimet   kalimetObject  = new Kalimet();
            Gjendje   gjendje        = new Gjendje();

            foreach (var gje in Gjendjeepsilon._gjendje)
            {
                foreach (var i in Automati)
                {
                    kalimetObject = (Kalimet)i;

                    if (gje == kalimetObject.gjendjanisjes && alfabet == kalimetObject.alfabetkalimi)
                    {
                        gjendjealfabet.Add(kalimetObject.gjendjemberritjes.ToString());
                    }
                }
            }


            return(gjendjealfabet);
        }
예제 #6
0
        public void Konvertohappashapi(Gjendje gjendjetautomatit, Alfabet alfabetiautomatit)
        {
            string    eps                = "e";
            Kalimet   kalimetObject      = new Kalimet();
            ArrayList gjendjeepsilon1prv = new ArrayList();
            Gjendje   gjendje;
            int       count           = 0;
            string    gje             = "";
            int       gjendjapozicion = 1;

            foreach (var i in gjendjetautomatit._gjendje)
            {
                count++;
            }

            //for(int i=0;i<count;i++)
            //{
            //    // foreach (gje in gjendjetautomatit.getgjendja(i));
            //    gje = gjendjetautomatit.getgjendja(i);//per cdo gjendje te automatit bejme
            //    {
            //        foreach (var j in Automati)
            //        {
            //            kalimetObject = (Kalimet)j;
            //            kontrollpernjegjendje(gje, eps);


            //        }
            //    }
            //}
            while (gjendjapozicion < count)
            {
                gje = gjendjetautomatit.getgjendja(gjendjapozicion);//per cdo gjendje te automatit bejme
                {
                    kontrollpernjegjendje(gje, eps);
                    gjendjapozicion++;
                }
            }
        }
예제 #7
0
        static void Main(string[] args)
        {
            string _gjendjeNisje = string.Empty, _characterAlfabet = string.Empty, _gjendjeFundore = string.Empty;

            List <string> _kalimetAfterConverting        = new List <string>();
            List <string> _kalimetForRemovingAfterUpdate = new List <string>();

            List <string> _alfabetiCharacters            = new Alfabet().MbushMeShkronja();

            List <string> _gjendjeList                   = new Gjendje().FutGJendjet();

            List <string> _kalimetList = new Kalimet().MbushmeKalime();

            for (int i = 0; i < _kalimetList.Count(); i++)
            {
                string _kalim = _kalimetList[i];
                _gjendjeNisje     = _kalim.Substring(0, 2);
                _characterAlfabet = _kalim.Substring(2, 1);
                _gjendjeFundore   = _kalim.Substring(3, 2);

                if (_gjendjeNisje.Equals(_gjendjeFundore))
                {
                    _kalimetMeGjendjeNisjeEdheGjendjeFundoreTeNJejte.Add(_kalim);
                    _kalimetList.Remove(_kalim); // heq ato qe jane te njejta
                    i--;
                    continue;
                }
            }


            for (int i = 0; i < _kalimetList.Count(); i++)
            {
                string _kalim = _kalimetList[i];
                _gjendjeNisje     = _kalim.Substring(0, 2);
                _characterAlfabet = _kalim.Substring(2, 1);
                _gjendjeFundore   = _kalim.Substring(3, 2);

                List <string> _listWithoutFirstKalim = _kalimetList.Where(x => x.ToString() != _kalim).ToList();
                for (int j = 0; j < _listWithoutFirstKalim.Count(); j++)
                {
                    string _kalimSecond = _listWithoutFirstKalim[j];
                    if (_gjendjeFundore.Equals(_kalimSecond.Substring(0, 2)) && _characterAlfabet.Equals(_kalimSecond.Substring(2, 1)))
                    {
                        _kalimetList.Add($"{_gjendjeNisje}{_characterAlfabet}{_kalimSecond.Substring(3, 2)}");
                        continue;
                    }
                    if (_gjendjeFundore.Equals(_kalimSecond.Substring(0, 2)) && _characterAlfabet.Equals("e"))
                    {
                        _kalimetList.Add($"{_gjendjeNisje}{_kalimSecond.Substring(2, 1)}{_kalimSecond.Substring(3, 2)}");
                        _kalimetList.Add($"{_gjendjeNisje}{_kalimSecond.Substring(2, 1)}{_gjendjeFundore}");
                        _kalimetForRemovingAfterUpdate.Add(_kalim);
                    }
                }
            }
            _kalimetList = _kalimetList.Except(_kalimetForRemovingAfterUpdate).OrderBy(x => x.ToString()).ToList();
            _kalimetList.AddRange(_kalimetMeGjendjeNisjeEdheGjendjeFundoreTeNJejte);
            List <string> _listWithoutRepetition = _kalimetList.Distinct().ToList();
            List <string> _listKalimeConverted   = ChangeEpsilonToAlphabetCharacters(_listWithoutRepetition);

            _listWithoutRepetition.AddRange(_listKalimeConverted);

            _listWithoutRepetition.RemoveAll(x => x.Contains("e"));


            foreach (string _kalimNew in _listWithoutRepetition.Distinct().OrderBy(x => x.ToString()))
            {
                Console.WriteLine($"{_kalimNew.Substring(0, 2)} --- {_kalimNew.Substring(2, 1)} ---  { _kalimNew.Substring(3, 2)}");
            }

            Console.ReadLine();
        }