Lettres communes à deux mots |
Le but du TD est de réaliser un programme permettant d'afficher les lettres communes à deux mots entrés au clavier. Une lettre apparaissant plusieurs fois dans chacun des mots sera affichée plusieurs fois.
Une même lettre pouvant figurer plusieurs fois dans un même mot, il faut éviter:
qu'une même lettre du
premier mot ne puisse être trouvée en deux endroits
différents du second.
Ex : monsieur et
bonjour dans lesquels le o de monsieur apparaît
en seconde et cinquième position de bonjour.
qu'une même lettre du second mot puisse coïncider
avec deux lettres différentes du premier.
Ex :
bonjour et monsieur (dans cet ordre) où il
convient d'éviter une coïncidence entre les deux o de
bonjour et l'unique o de monsieur.
Les deux mots seront lus dans le programme principal et passés en argument à une procédure ou une fonction qui affichera les lettres communes,
les mots seront stockés sous forme de chaînes de caractères,
vous écrirez successivement :
une procédure compare1 très simple ignorant les problèmes 1 et 2 ci-dessus;
une nouvelle procédure compare2 palliant au problème 1. Dès détection d'une lettre commune, il est nécessaire d'interrompre immédiatement la comparaison avec le second mot;
vous modifierez compare2 pour traiter le problème 2. Dès détection d'une lettre commune, il convient d'éliminer dans le second mot la lettre ayant fait l'objet d'une coïncidence. Pour ce faire vous avez deux possibilités :
remplacer la lettre commune par un caractère bidon (c'est à dire ne pouvant pas se trouver dans le mot au départ), par exemple un blanc ou un '*'
utiliser une nouvelle recherche simple pour obtenir un algorithme du type de celui de calcul d'intersection sans doublon.