#define maxtaille 100 double P[maxtaille][maxtaille]; int M[maxtaille][maxtaille]; int Classes[maxtaille+1][maxtaille+1];/* les etats de chaque classe numérotés de 1*/ int nombreetats[maxtaille+1], /* et leur nombre*/ passage[maxtaille+1], /*et sont elles de passage? */ nombreclassesfinales=0; int taille, sortie=0, nombreclasses; void lire()/*lire la matrice P de probabilités de transition et construire M la matrice booléenne de l'existence de chemins de longueur 1 ou 0 */ { int i,j; double x; scanf("%i",&taille); if (taille>maxtaille) printf("Taille %i trop grande; maximum est %i\n",taille,maxtaille); else for (i=0;i0 || i==j; } } } void printentier(A) int A[maxtaille][maxtaille]; { int i,j; for (i=0;iabspiv ||M[n][j]<-abspiv) {piv=M[n][j];pivposn=j;abspiv=piv>0?piv:-piv;} if (abspiv<0.0000000001 ) {printf("Erreur; systeme singulier ne peut pas etre resolu\n");sortie=1;} else {/*printf("pivot %f en position [%i,%i]\n",piv,n,pivposn);*/ var[pivposn]=n; for (j=0;j1?"s":""); if (!passage[nombreclasses]) nombreclassesfinales++; } } void exercice3() { double coefficients[maxtaille][maxtaille], droite[maxtaille], solution[maxtaille]; int i, j; /* construire la matrice de coefficients et le vecteur de parties droites */ for (i=0;i