示例#1
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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
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++;
                }
            }
        }
示例#5
0
        //public ArrayList KontrolliEpsilon1(Alfabet alfabetiAutomatit, string kalim,Gjendje GjendjeteAutomatit)
        //{

        //    ArrayList gjendjetEpsilon = new ArrayList();

        //    Kalimet kalimetObject = new Kalimet();

        //    Alfabet shkronjalfabeti = new Alfabet();



        //    return gjendjetEpsilon;
        //}



        public void Konverto(Gjendje gjendjetautomatit, Alfabet alfabetiautomatit)
        {
            int count = 0;
            //kshu do jet alfabeti per kalimin epsilon
            string epsi     = "e";
            bool   ndryshoi = true;
            //Alfabet alfabetobjekt = new Alfabet();
            //ArrayList kontrollieps1 = KontrollEpsilon1(gjendjetautomatit,epsi);//kontrolli 1
            //ArrayList kontrollpasperseritje;
            //do
            //{
            //    Gjendje gjendje = new Gjendje(kontrollieps1);
            //    kontrollpasperseritje = KontrollEpsilonperseritje(gjendje, epsi);
            //    if(kontrollieps1.Equals(kontrollpasperseritje))
            //    {
            //        ndryshoi = false;
            //    }

            //} while (ndryshoi);

            //Gjendje gjendjeperkontrollalfabeti = new Gjendje(kontrollpasperseritje);//arraylista me gjendjet fillesatre

            //foreach(var i in alfabetiautomatit.alfabeti)
            //{
            //    count++;
            //}


            //foreach(var i in alfabetiautomatit.alfabeti)//per cdo shkornje te alfabettit
            //{

            //    alfabetobjekt = (Alfabet)i;
            //    //string alfabet = alfabetobjekt.

            //   //  ArrayList gjendjepasalfabetiti = Kontrollalfabet(alfabet, gjendjeperkontrollalfabeti);
            //}
        }
示例#6
0
 public Automat(ArrayList automat, Alfabet alfabetautomati, Gjendje gjendjeautomati)
 {
     Automati          = automat;
     alfabetiAutomatit = alfabetautomati;
     gjendjeAutomatit  = gjendjeautomati;
 }
示例#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();
        }