Language c
Note : Ce TP utilise uniquement le notions vues en cours, en particulier ni structures ni fonctions. On donne les définitions suivantes:
#define NMAX 35 /* ou le nombre d’élèves de la classe de CSII1A */ #define LMAX 255
#define Round(X) (int) ((X) + 0.5) #define Arrondi(X,N) (double) Round((N) * (X)) / (N)
typedef double Reel ; typedef enum { FAUX, VRAI } Booleen; typedef char Chaine[LMAX];
char *Noms[] = { (Nom1( , (Nom2( , (Nom3(, … } ; Reel Notes[] = { 15.0, 9.5, 13.75, …};
1) Remplacez NMAX par le nombre d’élèves de votre classe, (Nom1( … par les noms des élèves et compléter le tableau Notes avec NMAX notes. Ecrire un programme (TP1.C( comportant un menu permettant de : • Afficher les noms et les notes. • Saisir un nom et modifier la note et la précision de l’arrondi. • Saisir un nom et corriger son orthographe. • Calculer et afficher la moyenne et l’écart-type de la classe. 2) L’utilisateur fait maintenant des fautes d’orthographe et le programme détermine celui des élèves dont le nom ressemble le plus à la saisie, si cette ressemblance est suffisante. On définit pour cela une distance entre les mots [pic] et [pic]en appliquant l’algorithme suivant (Wagner et Fisher) : • [pic] • Pour [pic] à [pic] faire [pic] • Pour [pic] à [pic] faire [pic] • Pour [pic] à [pic] Pour [pic] à [pic] [pic] [pic] [pic] [pic] • [pic] Où [pic] est égal à 0 si [pic] et à 1 sinon. Rajouter la mise en œuvre cet algorithme au programme (TP1.C(.
• Le résultat de votre travail doit arriver dans