INF2171-20    Organisation des ordinateurs et assembleur    Eté 2020
			 Travail pratique #3 (20%)              

Titre: Programme utilitaire CHAINE qui classe des codes d'items.

Le programme désiré devra fonctionner sous Windows avec la version PEP 813.
Suite à une demande à l'utilisateur (lui expliquant le mode de fonctionnement),
vous devrez afficher en ordre croissant les codes d'items entrés.

Règles:
1) A l'entrée, vous ne devez poser qu'une seule question à l'utilisateur,
   lui demandant d'entrer
zéro, un ou plusieurs codes d'items.
2) Un code d'item est composé d'un préfixe de 2 lettres majuscules suivi d'un
   tiret suivi d'un suffixe composé de 1 à 4 caractères alphanumériques
   (lettres "A à Z", "a à z" et/ou chiffres "0 à 9"). (ex: AB-12Az)
3) Les lettres minuscules sont équivalentes aux lettres majuscules.
   (AB-ab2 équivaut à AB-AB2)
4) Un ou plusieurs espaces séparent les codes d'item.
5) Le message d'erreur est "Entrée invalide".
6) En cas d'erreur, les autres codes d'item ne sont pas conservés.

Vous devez reproduire les 5 essais obligatoires et identiques suivants:
-----------------------------------------------------------------------
AB-1234 CD-1234 AZ-12 AB-12a AB-1A
 AB-a12 AB-b AB-1111 AB-111 AB-1110
AB-1 AB-1 AB-11 BA-1111 BA-11 BA-111
ZZ-z   ZZ-1234 ZZ-1256 ZZ-b1 ZZ-aa ZZ-Ba
 AA-8 AA-7 AA-6 AA-5 AA-4 AA-3 AA-2 AA-1

Ce programme se doit d'être convivial en utilisant les caractères accentués.
L'utilisateur devra être en mesure de l'exécuter sans manuel d'instructions.
A l'affichage, outre le paragraphe de bienvenue et le mode d'emploi,
apparaîtront: une question, les données de l'utilisateur et le résultat.
La présentation des résultats est laissé au choix du programmeur.
Le processus (question et réponse) recommencera tant et aussi longtemps que
l'utilisateur n'entrera pas uniquement le caractère "Entrée" (une seule position).
A ce moment, le programme s'arrêtera avec un message de terminaison.
Lors du résultat, les codes d'items devront être présentés en ordre croissant de
préfixe (2 lettres majuscules) puis de longueur puis de valeur ASCII.
EX: AB-1A AB-12a AB-1234 AZ-12 CD-1234
Attention aux fautes de français.

Vous DEVEZ OBLIGATOIREMENT conserver les codes d'items dans une liste chaînée.
Ex: --> AB-1234 --> CD-1234 --> AZ-12 --> AB-12a --> AB-1A

A chaque lecture d'un code d'item, un nouveau maillon est alloué dynamiquement sur le tas.

(sous-programme NEW, chap 9.9). (exemple: voir le programme LISTE)

Résultat après classement: --> AB-1A --> AB-12a --> AB-1234 --> AZ-12 --> CD-1234

Dans le dossier à remettre, on retrouvera:
-Le fichier source: chaine.txt
-Le fichier des affichages: resultats.txt contenant seulement les 5 essais ci-haut
dans le même ordre.
La correction de ce travail est dépendante du dossier remis:
En plus des 5 essais obligatoires et identiques à ceux fournis, le programme CHAINE
doit fonctionner avec n'importe quelles données. Il faut expliquer le bon
fonctionnement du programme à l'aide de commentaires adéquats.

Les 2 fichiers requis doivent être déposés dans MOODLE au plus tard le
vendredi 14 août 23h59
dimanche 16 août 23h59. Le travail peut être remis jusqu'à 2 jours en
retard à raison d'une pénalité de 10 points par jour. Pour un travail d'équipe
(max 2 personnes), remettre une seule copie.

Données:
AB-1234 CD-1234 AZ-12 AB-12a AB-1A
 AB-a12 AB-b AB-1111 AB-111 AB-1110
AB-1 AB-1 AB-11 BA-1111 BA-11 BA-111
ZZ-z   ZZ-1234 ZZ-1256 ZZ-b1 ZZ-aa ZZ-Ba
 AA-8 AA-7 AA-6 AA-5 AA-4 AA-3 AA-2 AA-1