// LA FONCTION TRANSITION QUI PERMET DE CHANGER L'ETAT DE L'AUTOMATE SELON UNE TRANSTION UNE ETAT INITIAL ET UN SYMBOLE LU public static int transition(int etat, char c, AFD AUTOM) { // BOUCLE QUI SE REPETERA AUTANT QUE LE NOMBRE DE TRANSITIONS for (int i = 0; i < AUTOM.getTransitions().Count; i++) { // ON TESTE SI IL' Y A UNE TRANSITION AVEC COMME ETAT INITIAL LE PREMIER PARAMETRE ET LE DEUXIEME COMME SYMBOLE if (AUTOM.getTransitions()[i].getEtatI() == etat && AUTOM.getTransitions()[i].getSymbole() == c) { return(AUTOM.getTransitions()[i].getEtatF()); // SI OUI ON RETOURNE L'ETAT FINAL DE LA TRANSITION } } // SI ON NE SORT PAS DE LA BOUCLE AVEC UN ETAT ON RETOURNE L'ETAT INITIAL return(etat); }
//LA FONCTION PRINT QUI PERMET D'AFFICHER L'AUTOMATE AINSI QUE CES COMPOSANTS public static void print(AFD AUTOM) { // BOUCLE QUI PERMET D'AFFICHER LES DIFFERENTS ETATS (INITIAUX ET FINAUX) for (int i = 0; i < AUTOM.getNbrEtat(); i++) { if (i == 0) { Console.Write("E=({0}", i); // LE PREMIER ETAT } else if (i == AUTOM.getNbrEtat() - 1) { Console.WriteLine(",{0})", i); // LA DERNIERE ETAT } else { Console.Write(",{0}", i); // LES AUTRES ETATS DU MILIEU } } // BOUCLE QUI PERMET D'AFFICHER L'ALPHABET DE L'AUTOMATE for (int i = 0; i < AUTOM.getAlphabet().Count; i++) { if (i == 0) { Console.Write("A=({0}", AUTOM.getAlphabet()[i]); // LE PREMIER CARACTERE } else if (i == AUTOM.getAlphabet().Count - 1) { Console.WriteLine(",{0})", AUTOM.getAlphabet()[i]); // LE DERNIER CARACTERE } else { Console.Write(",{0}", AUTOM.getAlphabet()[i]); // LES AUTRES CARACTERES DE L'ALPHABET } } Console.WriteLine("Transactions:"); // BOUCLE QUI PERMET D'AFFICHER LES TRANSACTIONS for (int i = 0; i < AUTOM.getTransitions().Count; i++) { Console.WriteLine("t({0},{1})={2} ", AUTOM.getTransitions()[i].getEtatI(), AUTOM.getTransitions()[i].getSymbole(), AUTOM.getTransitions()[i].getEtatF()); } // L'AFFICHAGE DE L'ETAT INITIAL Console.WriteLine("I= {0}", AUTOM.getEtatInitial()); // L'AFFICHAGE DES ETATS FINAUX if (AUTOM.getNbrEtatFinal() == 1) { Console.WriteLine("F=({0})", AUTOM.getEtatFinaux()[0]); // SI IL S'AGIT D'UN SEUL ETAT FINAL } else { for (int i = 0; i < AUTOM.getNbrEtatFinal(); i++) { if (i == 0) { Console.Write("F=( {0}", AUTOM.getEtatFinaux()[i]); // LE PREMIER ETAT FINAL } else if (i == AUTOM.getNbrEtatFinal() - 1) { Console.WriteLine(", {0} )", AUTOM.getEtatFinaux()[i]); // LE DERNIER ETAT FINAL } else { Console.Write(", {0}", AUTOM.getEtatFinaux()[i]); // LES AUTRES ETATS FINAUX } } } // L'AFFICHAGE DE NOMBRE DES TRANSACTIONS Console.WriteLine("Nombre de transactions : {0}", AUTOM.getTransitions().Count); }