Previous Next Up Index Contents

8.8. Exercices d'application


Sauf indication contraire, les exercices suivants sont à résoudre sans utiliser les fonctions spéciales des bibliothèques <string>, <stdlib> ou <ctype>. Ils servent à comprendre et à suivre le raisonnement de ces fonctions.


Exercice 8.15

Ecrire un programme qui lit deux chaînes de caractères, et qui indique leur précédence lexicographique dans le code de caractères de la machine (ici: code ASCII). Testez votre programme à l'aide des exemples du chapitre 8.5.


Exercice 8.16

Ecrire un programme qui lit une chaîne de caractères CH et qui convertit toutes les majuscules dans des minuscules et vice-versa.

Le résultat sera mémorisé dans la même variable CH et affiché après la conversion.


Exercice 8.17

Ecrire une procédure qui lit une chaîne de caractères et l'interprète comme un entier positif dans la base décimale. Pour la conversion, utiliser les fonctions de <ctype> et la précédence alphabétique des caractères de '0' à '9'. Mémoriser le résultat dans une variable du type long. La conversion s'arrête à la rencontre du premier caractère qui ne représente pas de chiffre décimal. Utiliser un indicateur logique OK qui précise si la chaîne représente correctement une valeur entière et positive.


Exercice 8.18

Ecrire une procédure qui lit une chaîne de caractères et l'interprète comme un entier positif dans la base hexadécimale. Pour la conversion, utiliser les fonctions de <ctype> et la précédence alphabétique des caractères. La conversion ignore les caractères qui ne représentent pas de chiffre hexadécimal et s'arrête à la fin de la chaîne de caractères. Le résultat sera mémorisé dans une variable du type long et affiché dans les bases hexadécimale et décimale.


Exercice 8.19

En se basant sur l'exercice 8.17, écrire un programme qui lit une chaîne de caractères et l'interprète comme un nombre rationnel positif ou négatif introduit en notation décimale. Mémoriser le résultat dans une variable du type double. Si le nombre a été introduit correctement, la valeur du résultat sera affichée, sinon le programme affichera un message d'erreur.

Méthode:

Utiliser une variable SIG pour mémoriser le signe de la valeur. Convertir tous les caractères numériques (avant et derrière le point décimal) en une valeur entière N. Compter les décimales (c.-à-d.: les positions derrière le point décimal) à l'aide d'une variable DEC et calculer la valeur rationnelle comme suit:

N = N * SIG / pow(10, DEC)

Exemples:

-1234.234
-1234.23400

-123 45
Erreur!

123.23.
Erreur!

+00123.0123
123.012300


Exercice 8.20

En se basant sur l'exercice 8.19, écrire un programme qui lit une chaîne de caractères et l'interprète comme un nombre rationnel positif ou négatif introduit en notation exponentielle. Mémoriser le résultat dans une variable du type double. Si le nombre a été introduit correctement, la valeur du résultat sera affichée, sinon le programme affichera un message d'erreur.

Méthode:

Utiliser une variable SIGE pour mémoriser le signe de l'exposant. Utiliser une variable EXP pour la valeur de l'exposant. Calculer la valeur de l'exposant à l'aide de SIGE, DEC et EXP. Calculer ensuite la valeur exacte de N à l'aide d'une formule analogue à celle de l'exercice ci-dessus.

Exemples:

-1234.234
-1234.234000

-1234. 234
Erreur!

123E+02
123400.000000

123E-02
1.230000

123.4e
123.400000

-12.1234e02
-1212.340000

123.4e3.4
Erreur!

12.12E1
121.200000

12.12 E1
Erreur!


Exercice 8.21

Ecrire un programme qui supprime la première occurrence d'une chaîne de caractères OBJ dans une chaîne de caractères SUJ.

Exemples:

PHON
ALPHONSE

ALSE

EI
PIERRE

PIERRE

T
TOTALEMENT

OTALEMENT


HELLO

HELLO


Exercice 8.22

Ecrire un programme qui remplace la première occurrence d'une chaîne de caractères CH1 par la chaîne CH2 dans une chaîne de caractères SUJ. Utiliser une chaîne de sauvegarde FIN pendant le remplacement.

Exemples:

PHON
OY
ALPHONSE

ALOYSE

IE
EI
PIERRE

PEIRRE

IE
ARTE
PIERRE

PARTERRE

EI
IE
PIERRE

PIERRE

TOT
FIN
TOTALEMENT

FINALEMENT


TTT
HELLO

HELLO


Exercice 8.23

Ecrire un programme qui remplace toutes les occurrences d'une chaîne de caractères CH1 par la chaîne CH2 dans une chaîne de caractères SUJ. Utiliser une chaîne de sauvegarde FIN pendant le remplacement.

Exemples:

PHON
OY
ALPHONSE

ALOYSE

AN
ONT
BANANE

BONTONTE

T
Y
TOTALEMENT

YOYALEMENY


TTT
HELLO

HELLO

L

HELLO

HEO


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber