Exercice 8.2
Exemple
voici une petite phrase !
! phrase petite une voici
Exercice 8.3
a) la longueur L de la chaîne.
b) le nombre de 'e' contenus dans le texte.
c) toute la phrase à rebours, sans changer le contenu de la
variable TXT.
d) toute la phrase à rebours, après avoir inversé l'ordre des
caractères dans TXT:
voici une petite phrase !
! esarhp etitep enu iciov
Exercice 8.4
Exemple:
Cette ligne contient quelques lettres e.
Ctt lign contint qulqus lttrs .
Exercice 8.5
Exemple:
Introduisez votre nom et votre prénom:
Mickey Mouse
Bonjour Mickey Mouse !
Votre nom est composé de 11 lettres.
Exercice 8.6
Exemple:
Introduisez la première chaîne: ABC
Introduisez la deuxième chaîne: abc
"ABC" précède "abc"
Exercice 8.7
a) Utiliser les fonctions spéciales de <string>.
b) Utiliser uniquement les fonctions gets et puts.
Exercice 8.8
Exemple:
Verbe : fêter
je fête
tu fêtes
il fête
nous fêtons
vous fêtez
ils fêtent
Ecrire un programme qui lit 10 mots
et les mémorise dans un tableau de chaînes de caractères. Trier les 10 mots
lexicographiquement en utilisant les fonctions strcmp et strcpy.
Afficher le tableau trié. Utilisez la méthode de tri par sélection directe
(voir Exercice 7.14).
Ecrire un programme qui lit un
nombre entre 1 et 7 et qui affiche le nom du jour de la semaine correspondant:
"lundi"
|
pour 1
|
|
"mardi"
|
pour 2
|
|
. . .
|
. . .
|
|
"dimanche"
|
pour 7
|
Utiliser le premier élément du
tableau pour mémoriser un petit message d'erreur.
Ecrire un programme qui lit 5 mots,
séparés par des espaces et qui les affiche ensuite dans une ligne, mais dans
l'ordre inverse. Les mots sont mémorisés dans un tableau de chaînes de
caractères.
Exemple
voici une petite phrase !
! phrase petite une voici
Refaire l'exercice 8.8 (Conjugaison
des verbes réguliers en "er") en utilisant deux tableaux de chaînes
de caractères:
SUJ
|
pour les sujets
|
|
TERM
|
pour les terminaisons
|
Employez
les fonctions printf, scanf, strlen.
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.
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.
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.
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.
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
|
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!
|
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
|
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
|
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
|
0 Comments