je veut faire un programme sur devc++ qui permet de convertir un nombre de la base de 10 (décimale) vers 1 nombre DCB,bon j'ai fait l'algorithme nécessaire ,seulement dans la traduction en c++ j'ai trouvé des problèmes
voila l'algorithme et le fichier cpp.
Code Algorithme : 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
 
Ce programme nous permet de convertir un nombre de la base 10 vers un nombre  DCB
 
Programme : convertisseur
Var  
Ch, DCB, A :chaine de caractères
K, Y,V, i : entier
Début
Répéter
        Y :=0
        K :=1   (compteur pour la chaine)
       V :=0(compteur du nombre de virgule)
       Ecrire (‘  donné le nombre à convertir  ’)
       Lire (ch)
       Répéter
             Si (ch[k]<>[0’..’9]) et (ch[k]<>’.’) et  (ch[k]<>’-‘) alors Y :=1
             Fin si
             Si (ch[k]=’-‘) et (k<>1) alors Y :=1
             Fin si
             Si (ch[k]=’.’) Alors V :=V+1
             Fin si
             Si (ch[k]=’.’) et (k=1) alors Y :=1
             Fin si
             K :=K+1
        Jusqu'à (K=long(ch)+1)ou (Y=1) ou (V=2)
Jusqu'à (Y=0) et (V<>2) 
 
K :=K-1 (autrement pour avoir la longueur de notre chaine)
DCB :=’ ‘
A :=’ ‘
Pour  i  de 1 à  K  faire
      Switch ch[k]
       {
           Case ‘0’: A: =’0000’; break;
          Case ‘1’: A: =’0001’; break;
          Case ‘2’: A: =’0010’; break;
          Case ‘3’: A: =’0011’; break;
          Case ‘4’: A: =’0100’; break;
          Case ‘5’: A: =’0101’; break;
          Case ‘6’: A: =’0110’; break;
          Case ‘7’: A: =’0111’; break;
          Case ‘8’: A: =’1000’; break;
          Case ‘9’: A: =’1001’; break;
          Case ‘-’: A: =’-’; break;
          Case ‘.’: A: =’.’; break;
      }
   DCB:=DCB+A
Fin pour
  Ecrire (‘ le nombre convertis est ‘,DCB)
FIN
Code cpp : 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
 
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
   int y,k,v,i;
   char *ch,dcb,a,ch1[1000];
   do
   {
      y=0; 
      k=0;
      v=0;
      printf("donner un nbre à convertir\n");
      gets(ch1);
      ch=ch1;
      do
      {
         if((*(ch+k)>'0' || *(ch+k)<'9')&&(*(ch+k)!='.')&&(*(ch+k)!='-') )
         {
            y=1;
         }    
         if ((*(ch+k)=='-')&&(k!=1))
         {
            y=1;
         }
         if (*(ch+k)=='.')
         {
            v=v+1;
         }
         if((*(ch+k)=='.')&&(k==0))
         {
            y=1;
         }
         k=k+1;
 
      } while(((y==0)||(v!=2))||(*(ch+k)!='\0'));
 
   } while((y==1)||(v==2));
}
merci d'avance pour votre aide.