Série d`exercices (n° 3) Algorithme et Langage C

publicité
TDI 1ère Année
Algorithme et Langage C
26/09/2011
Série d’exercices (n° 3)
Algorithme et Langage C
Exercice 1 : Contraction: Recopier une phrase dans une autre en ôtant toutes les occurrences d’un caractère
Soit une phrase terminée par un point.
Il s'agit de la restituer en supprimant les occurrences d'un caractère donné.
Exemple :
phrase :
abbcccdeeeffg
caractère : c
résultat :
abbdeeeffg
Donnez le jeu d'essai qui permet de tester cette procédure.
Donnez l'algorithme de la procédure en pseudo code.
Exercice 2 : Doublons. Recopier une phrase dans une autre en ôtant tous les doublons de caractères successifs
Soit une phrase terminée par un point.
Il s'agit de la restituer en supprimant tous les doublons de caractères successifs.
Exemple :
abbcccdeeeffg.
donne
abcdefg.
Donnez le jeu d'essai qui permet de tester cette procédure.
Pour tester le programme, c'est à dire voir s'il répond bien à nos attentes, s'il n'a pas de "bug", avant de la faire
"tourner" sur la machine nous imaginons un jeu d'essai avec tous les cas à tester et le résultat attendu pour chaque cas
: c'est le jeu d'essai.
Donnez l'algorithme de la procédure.
Exercice 3 : Equivalence : Déterminer si deux phrases sont équivalentes.
Soit deux phrases terminées par un même terminateur.
Elles sont dites équivalentes si elles ont les mêmes lettres dans le même ordre mais avec un nombre d'occurrences de
ces lettres qui peut différer entre les deux phrases.
On supposera qu'il existe une fonction longueur lg de chaîne qui renvoie un entier
Exemple :
abbcccdeeeffg
aabcdeffffg
sont équivalentes
Donnez le jeu d'essai qui permet de tester cette procédure.
Donnez l'algorithme de la procédure toujours en pseudo code.
Exercice 4 : Eparpillement : Chercher les lettres d’un mot éparpillées dans une phrase, dans le même ordre.
Soient un caractère terminateur et une phrase terminée par ce caractère terminateur.
Soient un mot donné
Il s'agit de vérifier si les lettres du mot sont bien présentes dans la phrase, ce dans le même ordre que celui du mot.
Exemple :
terminateur :
.
phrase :
le chat est gris et boit.
mot :
lattis
longueur : 6
donne
vrai
Donnez l'algorithme de la procédure en pseudo code.
Exercice 5 : Inversion : Effectuer la saisie d'une chaîne de caractères qui contiendra un nom et un prénom.
Les prénoms composés seront obligatoirement séparés par des tirets.
Afficher une chaîne de caractères sous forme prénom nom séparés par un espace, en ayant fait disparaître les tirets
saisis dans le prénom.
Ecrire la procédure en pseudo-code (éventuellement ensuite avec un langage).
Ne pas utiliser les instructions de type concaténation et recherche d'un caractère dans une chaîne.
Exercice 6 : Cryptage : Crypter une phrase en codant les lettres en fonction du mot où elles se trouvent.
Soit une phrase terminée par un point.
Les espaces sont des séparateurs de mot et sont transcrits sans modification.
Il s'agit de la crypter en codant chaque mot suivant son rang dans la phrase.
Au mot de rang 1, on crypte ses lettres avec les lettres qui suivent dans l'alphabet.
Au mot de rang 2, on crypte ses lettres avec les lettres qui suivent de 2 caractères dans l'alphabet. etc ...
Par convention, la lettre suivant le caractère Z est le caractère A.
Les espaces sont des séparateurs de mot et sont transcrits sans modification.
Exemple :
Phrase :
Rang :
Résultat :
Abdellah HARCHI
LE CHAT EST GRIS .
1 2
3
4
MF EJCV HVW KVMW.
Page 1 sur 4
Algorithme et Langage C
TDI 1ère Année
26/09/2011
Exercice 7 : Comptage : Compter le nombre de mots d’une phrase ayant une terminaison donnée.
Soit une phrase terminée par un point.
Les espaces sont des séparateurs de mot.
Il s'agit de donner le nombre de mots de la phrase ayant pour terminaison la chaîne intitulée terminaison.
Exemple :
Caractère final :
.
Phrase :
rien ne sert de courir il faut partir à point il ne faut pas rire.
Terminaison :
rir
Résultat :
1
Note : les terminaisons de longueur nulle indiquent à la procédure qu'il faut renvoyer le nombre de mots de la phrase.
Ecrire la procédure en pseudo code
Exercice 8 : On veut que l'ordinateur affiche à l'écran la question : "Quel est votre prénom", que l'utilisateur saisisse au
clavier son prénom et que l’algorithme se termine par l'affichage à l'écran de : "Bonjour" suivi du prénom.
Exercice 9 : Soit un tableau contenant 30 chaînes de caractères. Remplissez ce tableau en demandant à l'utilisateur de
saisir des prénoms. Une fois la saisie terminée, déterminer :
1. Si le prénom "Ahmed" apparaît dans ce tableau.
2. Combien de fois le prénom "Majd" apparaît dans ce tableau ?
Exercice 10 : Palindromes.
Un palindrome est une chaîne de caractères qui lue de gauche à droite ou de droite à gauche donne le même résultat.
Exemple :
Les mots suivants sont des palindromes :
laval, kayak, radar, …
Si on exclut les espaces, la phrase suivante est un palindrome : leon a raté césar à noel
esope rest ici et se repose
Ecrire une fonction qui reçoit une chaîne de caractères dans un tableau de 80 caractères et indique s’il s’agit ou non d’un
palindrome.
Exercice 11 : centrage d’une chaîne de caractères.
Ecrire un algorithme qui effectue les opérations suivantes :

lire à partir du clavier d’une chaîne de caractères de longueur 80,

ranger la chaîne dans un tableau de 80 caractères,

vérifier que cette chaîne contient un seul mot, c’est à dire une suite interrompue de lettres,

si ce n’est pas le cas, envoyer un message d’erreur,

sinon, centrer le mot dans la tableau afin de réafficher la chaîne avec le mot au milieu de la ligne.
Exercice 12 : Signes zodiaques.
Ecrire un algorithme qui permet de ranger dans un tableau les douze signes du zodiaque, et ce à partir d’un saisie au
clavier.
Pour chaque signe du zodiaque, il est nécessaire de stocker les informations suivantes :

nom du signe,

date début du signe,

date fin du signe.
Exemple :
Vierge
du 24/8 au 23/9
Balance
du 24/9 au 22/1
Vous effectuerez les contrôles qui paraissent nécessaires à la constitution d’un tableau au contenu cohérent, notamment
au niveau des dates.
Il vous est demandé ensuite de créer un dialogue écran simple permettant à partir de la date de naissance de
l’utilisateur de lui fournir son signe zodiacal.
Exercice 13 : Traduction d’une phrase en JAVANAIS.
L’objectif de l’exercice est de traduire une phrase en JAVANAIS. Le principe est le suivant :
Dans une phrase, une fois qu’on rencontre une consonne suivie d’une voyelle, on insère la chaîne de caractères « VA »
entre les deux.
Exemple :
Je suis malade
JVAe sVAuis mVAalVAadVAe
Indication : les voyelles sont : a, e, i, u, y, o
a-
bcd-
Ecrire une procédure « Lecture() » qui permet de :
1. Stocker une phrase dans un tableau de taille maximale de 80 caractères, « $ » indique la fin de la
phrase.
2. Contrôler la saisie, et ce en acceptant que les lettres de A à Z.
Ecrire une fonction « Recherche() » qui retourne l’indice d’une consonne lorsqu’elle est suivie d’une voyelle.
Ecrire une procédure « Insertion() » qui insère la chaîne « VA » après une consonne lorsqu’elle est suivie d’une
voyelle.
Ecrire une procédure « Traduction() » qui à partir d’une phrase dans un tableau, retourne la même phrase dans
celui-ci traduite en JAVANAIS.
Abdellah HARCHI
Page 2 sur 4
TDI 1ère Année
Algorithme et Langage C
26/09/2011
Exercice 14 : Réalisation d’un dictionnaire.
Au cours de cet énoncé, on réalisera un dictionnaire de mots, et ce en déclarant un tableau « Dictionnaire » à deux
dimensions dans lequel on va les ranger.
Principe de fonctionnement :
On utilisera un tableau « mot » dans lequel sera effectuée la saisie du mot avant de le placer dans le tableau
« Dictionnaire ».
Mot
b
a
Dictionnaire
a
u
v
i
r
è
m
t
l
o
l
e
e
Pour insérer le contenu du « mot » dans « dictionnaire », il faudrait chercher le numéro de ligne adéquat afin de
respecter l’ordre syntaxique exigé par « Dictionnaire ».
Dans notre exemple, le mot barème doit être insèré entre auto et ville.
L’algorithme doit translater ville vers le bas, et inserer barème dans la ligne vide
a
u
t
o
v
i
l
l
Ecrire :
1.
2.
3.
4.
a
b
v
e
u
a
i
t
r
l
o
è
l
m
e
e
la procédure Lecture qui permet de saisir un mot dans le tableau « mot » caractère par caractère. La
fin du mot est indiquée par le caractère $.
La fonction Comparaison permettant de connaître n1 le nombre de ligne où l’insertion doit s’effectuer.
(dans notre cas n1=2).
La procédure Décalage pour effectuer un décalage dans le tableau dictionnaire à partir de la ligne n1
vers le bas.
La procédure Transfert à fin de transférer le contenu de « mot » vers la ligne n1 de « Dictionnaire ».
Exercice 15 : Ecrivez un algorithme pour la fonction tasser(s1, s2) qui supprime tous les caractères de s1 qui figure
aussi dans la chaîne s2 (une chaîne de caractères est saisie dans un tableau de caractères de taille maximale 80. la
chaîne se termine par un point).
Exemple:
S1 : xyl.
S2 : abxjklefyxlmnuvxyz.
Après appel à la fonction tasser.
S2 : abjkefmnuvz
Exercice 35 : Soit le texte stocké dans un tableau de caractères de taille max=1000. Le caractère $ indique la fin du
texte.
On définit un mot comme étant une séquence de caractères précédée obligatoirement d'un bloc, qui ne contient pas le
caractère espace ni de caractère de ponctuation. La fin du mot est indiquée soit par le caractère espace soit par l'un des
caractères de ponctuation.
Les caractères de ponctuation sont: . , ;
Chercher le mot "programme" dans le texte déjà saisi dans le tableau (T) et afficher le nombre de fois où il apparaît
dans le texte.
Exercice 16 : Les points cols d'un tableau à deux dimensions sont les éléments du tableau qui sont maximum sur leur
ligne et minimum sur leur colonne; ou minimum sur leur ligne et maximum sur leur colonne.
Ecrire la procédure qui:
1. Reçoit une ligne et retourne la valeur du maximum et la case où elle existe.
2. Reçoit le numéro de colonne du maximum retrouvé, et retourne un booléen "vrai" dans le cas où il est minimum sur
sa colonne et "faux" dans le cas contraire.
3. Reçoit une ligne et retourne la valeur du minimum et la case où elle existe.
4. Reçoit le nombre de colonne du minimum retrouvé, et retourne un booléen "vrai" dans le cas où il est maximum sur
sa colonne et "faux" dans le cas contraire.
5. Ecrire le programme principal qui recherche dans un tableau à deux dimensions les points cols en utilisant les
procédures précédentes.
Exercice 17 : Le jeu du pendu. Écrire le programme du jeu du pendu.
Le principe est le suivant :
Un premier joueur choisit un mot de moins de 10 lettres.
Le programme affiche _ _ _ _ _ _ _ avec un _ par lettre.
Le deuxième joueur propose des lettres jusqu'à ce qu'il ait trouvé le mot ou qu'il soit pendu (11 erreurs commises).
A chaque proposition le programme réaffiche le mot avec les lettres découvertes ainsi que les lettres déjà annoncées et
le nombre d'erreurs.
Abdellah HARCHI
Page 3 sur 4
Algorithme et Langage C
TDI 1ère Année
En deuxième partie:
Réécrire le jeu du pendu en utilisant des fonctions et/ou procédures.
Exercice 18 : Analyse de chaîne de caractères
Ecrire le programme qui saisit une chaîne de caractères et qui effectue l’analyse suivante:
nombre de caractères
nombre de voyelles
nombre de consonnes
nombre de chiffres
nombre de caractères alphabétiques
nombre de caractères spéciaux
nombre de mots (compris entre deux caractères spéciaux)
Un phrase se termine toujours par un "."
Les caractères spéciaux sont les caractères autres que :
- Les chiffres (0 à 9)
- Les minuscules (a à z) et majuscules (A à Z)
- Les caractères accentués (é, è, à, o, ù)
Il s’agit par exemple de : &, ‘, “, (, !, ), -, *, $, %, ?, ., :, /, +, =,.....
Abdellah HARCHI
Page 4 sur 4
26/09/2011
Téléchargement