bonjour
j'ai une fonction IntroduitErreur qui Introduit des erreurs dans une chaine donne mais elle ne fonctionne pas
aide moi svp
les fonction sont :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
void Erreur1(char *chaine, int taille)
{
  int i, exposant;
  unsigned char mask;
 
  for(i=0; i<taille; i+=2)
    {
      exposant = (int)floor(drand48() * 16);
 
      if(exposant < 8)
	{
	  mask = 1 << exposant;
	  chaine[i] = (chaine[i]^mask);
	}
      else
	{
	  mask = 1 << (exposant-8);
	  chaine[i+1] = (chaine[i+1]^mask);
	}
    }
 
  return;
}
 
/**
 * Pour TAUX_ERREUR=1 change un bit au hasard dans
 * tous les caracteres de la chaine.
 * Pour TAUX_ERREUR=0 ne change rien du tout.
 * Entre les deux valeurs, toutes les situations
 * intermediaires sont possibles.
 */
void Erreur2(char *chaine, int taille)
{
  int i, exposant;
  unsigned char mask;
 
  for(i=0; i<taille; i++)
    {
      if(drand48() < TAUX_ERREUR)
	{
	  exposant = (int)floor(drand48() * 16);
 
	  if(exposant < 8)
	    {
	      mask = 1 << exposant;
	      chaine[i] = (chaine[i]^mask);
	    }
	  else
	    {
	      mask = 1 << (exposant-8);
	      chaine[i+1] = (chaine[i+1]^mask);
	    }
	}
    }
 
  return;
}
 
/**
 * Change un caractere au hasard dans chaque chaine.
 */
void Erreur3(char *chaine, int taille)
{
  int indice, offset;
 
  indice = (int)floor(drand48() * taille);
  offset = (int)floor(drand48() * 256);
  chaine[indice] = (chaine[indice] + offset ) % 256;
 
  return;
}
 
/**
 * Pour TAUX_ERREUR=1 change tous les caracteres
 * dans chaine.
 * Pour TAUX_ERREUR=0 ne change rien du tout.
 * Entre les deux valeurs, toutes les situations
 * intermediaires sont possibles.
 */
void Erreur4(char *chaine, int taille)
{
  int i, offset;
 
  for(i=0; i<taille; i++)
    {
      if(drand48() < TAUX_ERREUR)
	{
	  offset = (int)floor(drand48() * 256);
	  chaine[i] = (chaine[i] + offset) % 256;
	}
    }
 
  return;
}