1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
   |  
char* automate[Dimension][Dimension];
char * expr;
 
	automate[0][1]="a\0";
	automate[0][2]="b\0";
	automate[1][1]="b\0";
	automate[1][2]="a\0";
	automate[2][0]="b\0";
 
// appel de la premiere fonction
//char * afer(char * automate[Dimension][Dimension]){
 
 expr = afer(automate);
 
// Dans cette meme fonction j'appel x fois la fonction pour chaque noeud 
//char * supprNoeud(int noeud, char * automate[Dimension][Dimension]){
 
tmp = supprNoeud(0, automate);
 
...
// dans suppr noeud il y a le code en haut 
...
 for(n=0;n<nbPred;n++)
         for(p=0;p<nbSucc;p++){
 
             char tmp[4096]="";
              strcat(tmp ,accoD);
 
             // Creation de la grammaire pour le chemin pred[n] -> succ[n]
             strcat(tmp ,automate[pred[n]][noeud]);
 
             if(automate[noeud][noeud]!=" "){
                strcat(tmp ,automate[noeud][noeud]);
                strcat(tmp ,"*\0");
            }
 
            strcat(tmp ,automate[noeud][succ[p]]);
            strcat(tmp ,accoF);
 
            // Si chemin directe entre pred[n] -> succ[n] on l'ajoute avec un |
            if(automate[pred[n]][succ[p]]!=" "){
                strcat(tmp ,"|\0");
                strcat(tmp ,accoD);
                strcat(tmp ,automate[pred[n]][succ[p]]);
                strcat(tmp ,accoF);
 
                            }
           automate[pred[n]][succ[p]]=tmp;
 
         strcat(expr ,tmp);
 
 
         }
 
    // On supprime les anciens cehmins
    for(n=0;n<nbPred;n++){
         for(p=0;p<nbSucc;p++){
            automate[pred[n]][noeud]=" ";
            automate[noeud][succ[p]]=" ";
         }
    }
 
     for(n=0;n<Dimension;n++)
      for(p=0;p<Dimension;p++)
        if(automate[n][p]!=" ")
            printf("%d ---- %s ---- %d\n",n,automate[n][p],p);
 
    chaine = NULL;
    chaine = (char*) malloc(strlen(expr)*sizeof(char));
    chaine = expr;
    return chaine; | 
Partager