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++; } } }
//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); //} }
public Automat(ArrayList automat, Alfabet alfabetautomati, Gjendje gjendjeautomati) { Automati = automat; alfabetiAutomatit = alfabetautomati; gjendjeAutomatit = gjendjeautomati; }
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(); }