Un programme en langage C
Bonjour,
comment je fais l'appel du fonction cftp dans le main() ??
comment je fais l'appel du fonction cftp dans le main() ??
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> # define N 3 # define M 100 int tab[N]; double p[N][N]; double matrice_repa[N][N]; etats[N]; ///////////////////////////////////////matrice de la transition////////////////////////////// void fct_repa(void) { int i,j; double s; for(i=0;i<N;i++) { s=0; for(j=0;j<N;j++) { s+= p[ i][j]; matrice_repa[ i][j] = s; } } } ///////////////////////genere une variable aleatoire//////////////////// double genere(void) { return(rand()/(double)RAND_MAX); } ////////////foction de transition/////////////////////////////////// int fct_trans(int i,double u) { int j=0; while (u>=matrice_repa[ i][j]) j++; return (j) ; } ////////////////// test_arret ///////////////////////////////////////// int test_arret() { int i; i = 1; while ((etats[i-1]== etats[ i]) && (i< N)) i++; if (i >= N ) return(1); else return(0); } //////////////////////////////// cftp ///////////////// int cftp() { int T; int i; int etats[N]; double v_alea[M]; int k; int j; T=1; v_alea[1]=genere(); for(i=0;i<N;i++) etats[ i]=i; for(i=0;i<N;i++) etats[ i]=fct_trans(etats[ i],v_alea[0]); while(test_arret==0) { i=2*T ; } k=test_arret(); while (k==0) { i=2*T; for (j=i;j<T;j--) v_alea[j]=genere(); while (i<0) { for(j=0;j<N;j++) etats[j]=fct_trans(etats[j],v_alea[ i]); i-- ; } T=2*T; } } double main ( ) { int i,j; p[0][0]=0.5; p[0][1]=0.25; p[0][2]=0.25; p[1][0]=0.25; p[1][1]=0.5; p[1][2]=0.25; p[2][0]=0.25; p[2][1]=0.25; p[2][2]=0.5; fct_repa(); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("mat[%d][%d]=%f ",i,j,matrice_repa[ i][j]); printf("\n"); } printf("\n variable_aleatoire =%f",genere() ); printf("\n fonction_transition =%d",fct_trans(0,0.75) ); etats[0]=1; etats[1]=1; etats[2]=1; printf("\n tests=%d",test_arret()); }
Réponses
-
Bonjour,
Ça, c'est du programme, qu'est ce qu'il est commenté !!
On ne sait pas ce qu'il fait, mais de toutes façons, tu peux appeler la fonction cftp par $cftp()$ ou $toto=cftp()$, ça ne servira pas à grand-chose, vu qu'elle n'affiche rien et ne renvoie rien.
Cordialement,
Rescassol -
La fonction cftp() ne semble modifier que des variables locales. Quand la fonction se termine toutes les variables locales (modifiées) sont détruites.
Par ailleurs, dans le corps de cette fonction il y a l'utilisation d'une variable test_arret qui n'est pas déclarée ni modifiée si je lis bien et ce nom de variable est aussi le nom d'une fonction.
Je ne sais pas si tout ceci est un vrai programme (qui ne sert à rien dans l'état où il est à mon humble avis) où un exercice de compréhension du langage (le corriger etc) -
Bonjour,
En plus, les variables globales, ce n'est pas bien :-D
Cordialement,
Rescassol
Edit: Je sais, Jacquot, c'était exprès.
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres