Pb de fonction
widi70
Messages postés
646
Date d'inscription
Statut
Membre
Dernière intervention
-
lirey83 Messages postés 76 Statut Membre -
lirey83 Messages postés 76 Statut Membre -
bonjour tout monde, je doit faire un programme dont l'énoncé est:
il s'agit d'ecrire deux fonction:
1 - une qui prend en parametre une chaine de caractere et qui renvoi Vrai si celle-ci contient un nombre binaire (dc avec des 0 et des 1..) de longueur quelconque.
2 -une autre qui prend deux chaine de caractere en parametre, une qui est sensé ocntenir un nombre binaire et l'autre qui est le resultat de votre fonction et dans laquelle vous écrivez la version hexadecimal du nombre binaire.
donc j'ai fait mon algo:
1) fonction estBinaire(in tab = chaine)ret bool
i affecté de 0
tant que tab[i]different de '\0'
si tab[i]different '0' ou tab[i]different de '1'
alors retour-de-estBinaire affecté de faux
fsi
i affecté de i+1
ftantque
retour-de-estBinaire affecté de vrai
2) fonction convert-hexa(in tab bin=chaine out, tab hex=chaine)=ret vide
Lbin affecté de longueur (tab bin)
Lhexa affecté de Lbin/4
si (Lbin %4) different de 0 alors
Lhexa affecté de Lhexa + 1
fsi
tab-hexa [Lhexa] affecté de '\0'
x affecté de Lbin-1
i affecté de 0
val affecté de 0
tant que (x>0)
si (i=4) alors
tab-Hex [Lhexa] affecté de tab-hexa-const [val]
Lhexa affecté de Lhexa-1
val=0
i=0
fsi
si tab bin [x]='1'
alors val affecté de val + puissance (2,i)
fsi
i affecté de i+1
x affecté de x-1
ftantque
voila mon algo, je pense qu'il est juste, le probleme vient de mon programme, je ne sait pas comment faire dc si vous pouviez me faire mon programme que je voit comment ecrire mes fonction se serait vraiment gentille. Ne pensez pas que ceci est un devoir a faire, je suis en pleine revision pour mes partiel et je n'arrive pas a comprendre les fonction
Merci d'avance
il s'agit d'ecrire deux fonction:
1 - une qui prend en parametre une chaine de caractere et qui renvoi Vrai si celle-ci contient un nombre binaire (dc avec des 0 et des 1..) de longueur quelconque.
2 -une autre qui prend deux chaine de caractere en parametre, une qui est sensé ocntenir un nombre binaire et l'autre qui est le resultat de votre fonction et dans laquelle vous écrivez la version hexadecimal du nombre binaire.
donc j'ai fait mon algo:
1) fonction estBinaire(in tab = chaine)ret bool
i affecté de 0
tant que tab[i]different de '\0'
si tab[i]different '0' ou tab[i]different de '1'
alors retour-de-estBinaire affecté de faux
fsi
i affecté de i+1
ftantque
retour-de-estBinaire affecté de vrai
2) fonction convert-hexa(in tab bin=chaine out, tab hex=chaine)=ret vide
Lbin affecté de longueur (tab bin)
Lhexa affecté de Lbin/4
si (Lbin %4) different de 0 alors
Lhexa affecté de Lhexa + 1
fsi
tab-hexa [Lhexa] affecté de '\0'
x affecté de Lbin-1
i affecté de 0
val affecté de 0
tant que (x>0)
si (i=4) alors
tab-Hex [Lhexa] affecté de tab-hexa-const [val]
Lhexa affecté de Lhexa-1
val=0
i=0
fsi
si tab bin [x]='1'
alors val affecté de val + puissance (2,i)
fsi
i affecté de i+1
x affecté de x-1
ftantque
voila mon algo, je pense qu'il est juste, le probleme vient de mon programme, je ne sait pas comment faire dc si vous pouviez me faire mon programme que je voit comment ecrire mes fonction se serait vraiment gentille. Ne pensez pas que ceci est un devoir a faire, je suis en pleine revision pour mes partiel et je n'arrive pas a comprendre les fonction
Merci d'avance
Configuration: Windows XP Internet Explorer 6.0
13 réponses
-
Salut,
Pour cela il faut aussi savoir dans quel langage tu dois développer. -
il faut que je le fasse en C++
-
désolé mais la dessus je ne peux pas t'aider alors. Désolé
-
Bon, pour la premiere fonction voici un exemple en C qui doit etre a peu pret pareil qu'en C++ :
01> #define TRUE 1 02> #define FALSE 0 03> 04> int my_function(char *str) 05> { 06> int i; 07> 08> for (i = 0; str[i] != '\0'; i++) 09> if (str[i] == '0' || str[i] == '1') 10> return (TRUE); 11> return (FALSE); 12> }
01 et 02 On definie deux variable, TRUE et FALSE, respectivement valant 1 et 0
04 fonction qui renvoi un entier (int) et qui prend en parametre une chaine de carateres (char *str) s'appelant str
06 on declare une variable i de type entier
08 on va parcourir la chaine "case par case" tant que on tombe pas sur la fin de la chaine ('\0')
09 si un caractere dans la chaine est egal a 0 ou 1 ...
10 ... la fonction renvoi TRUE et se termine
11 par contre si la machine arrive a cette ligne, c que la fonction ne s'est pas terminee avec TRUE,
et se termine donc en renvoyant FALSE -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
oops, desole, mon programme fonctionne que sil trouve au moins un '1' ou un '0'., javais zappe une phrase.
01> #define TRUE 1 02> #define FALSE 0 03> 04> int my_function(char *str) 05> { 06> int i; 07> 08> for (i = 0; str[i] != '\0' || (str[i] = '1' && str[i] = '0'); i++) ; 09> if (i = strlen(str)) 10> return (TRUE); 11> return (FALSE); 12> } -
juste 2 trucs, mets :
#include <string.h>
juste apres #define FALSE 0
et c'est pas => if (i = strlen(str))
mais if (i == strlen(str)) (avec les 2 '=') -
Salut,
Si je comprends bien, tu souhaites avoir le squelette de ton programme. Dans ce cas, il devrait ressembler à un truc comme ça :bool estBinaire(char *chaine); void convert_hexa(char *bin, char *hex); int main() { char *chaine = "1000110011000001"; char *hex; if (estBinaire(chaine)) { convert_hexa(chaine,hex); cout << "Votre chaine : " << chaine << " vaut en hexa : "<< hex << endl; } }
te reste à transcrire tes algos pour les fonctions ... -
merci bcp pour tout vos reponse
il te sert à koi char *chaine = "1000110011000001";
char *hex;
je comprend pas la -
char *chaine = "1000110011000001";
Cette instruction declare une chaine qui est totalement binaire afin de tester ta fonction.
char *hex;
c'est pareil, cette chaine devra contenir la version hexadecimal du nombre binaire.
-
ok
mais ça
tab-hexa [Lhexa] affecté de '\0'
comment je fait pour le retranscrire
a chaque foit ça me dit que tab-hexa n'est pas definit
merci -
Je comprend pas quand tu dis "tab-hexa [Lhexa] affecté de '\0' " ...
-
ben enfaite Lhexa va etre retranscrite ds un tableau qui se finit par \0
-
Salut
Si tu nous montrais le code que tu as écrit pour retranscrire ton algo, on y verrait plus clair et on pourrait mieux t'aider ;)