Algorithmique et Langage - Pages de Michel Deloizy - Free
Algorithmique et Langage - Pages de Michel Deloizy - Free
Algorithmique et Langage - Pages de Michel Deloizy - Free
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TD4 : CONVERSIONS ASCII / NUMÉRIQUES<br />
I. Écrire une fonction r<strong>et</strong>ournant un entier correspondant à la valeur numérique contenue dans une chaîne transmise<br />
en paramètre. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
int AscToInt(const char *<strong>de</strong>cstr);<br />
C<strong>et</strong>te fonction pourra être utilisée par exemple <strong>de</strong> la manière suivante :<br />
...<br />
x = AscToInt("26789");<br />
...<br />
Dans ce cas, x prendra la valeur numérique 26789.<br />
a ⋅10<br />
+ b ⋅10<br />
+<br />
On rappelle qu'un nombre abc peut s'écrire : (( ) ) c<br />
II. Écrire une fonction équivalente à la précé<strong>de</strong>nte perm<strong>et</strong>tant <strong>de</strong> convertir un nombre écrit en binaire, dont le<br />
prototype sera :<br />
int AscBinToInt(const char *binstr);<br />
III. Faire <strong>de</strong> même pour un nombre écrit en hexadécimal.<br />
int AscHexToInt(const char *hexstr);<br />
IV. Que se passe-t-il si un caractère non prévu est contenu dans la chaîne ? Proposer un moyen <strong>de</strong> remédier à ce<br />
problème.<br />
TD5 : TRAITEMENTS SUR LES CHAÎNES<br />
I. Écrire une fonction comptant le nombre <strong>de</strong> caractères contenus dans une chaîne. Le prototype <strong>de</strong> c<strong>et</strong>te fonction<br />
sera :<br />
int strlen(const char *str);<br />
II.a. Écrire une fonction comptant le nombre <strong>de</strong> caractères i<strong>de</strong>ntiques x contenus dans une chaîne. Le prototype <strong>de</strong><br />
c<strong>et</strong>te fonction sera :<br />
int nbcar(char x, const char *str); /* recherche x dans str */<br />
II.b. Modifier la fonction précé<strong>de</strong>nte pour qu'elle ne différencie pas les minuscules <strong>et</strong> majuscules.<br />
III. Écrire une fonction perm<strong>et</strong>tant <strong>de</strong> comparer <strong>de</strong>ux chaînes <strong>de</strong> caractères. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
int cmpstr(const char *str1, const char *str2);<br />
L'entier r<strong>et</strong>ourné sera positif si str2 est situé après str1 dans un classement alphabétique <strong>et</strong> 0 si les chaînes sont<br />
i<strong>de</strong>ntiques.<br />
IV. Écrire une fonction comptant le nombre <strong>de</strong> mots dans une phrase. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
int nbmots(const char *str);<br />
Par exemple, si str contient " le p<strong>et</strong>it train passe dans l'alpage…\n " la fonction doit r<strong>et</strong>ourner la valeur 7.