TP n°7 noté de Programmation 1 — groupe 2 — janvier 2020

Modalité : utilisation libre de vos notes de cours personnelles, communications interdites.

Durée : 1h45

SUJET :

1. Réalisation en C un programme qui affiche un menu puis réalise les actions demandées successivement par l'utilisateur, jusqu'à une demande d'arrêt du programme.
2. Envoi à la fin de la séance du code source sur l'ENT (un fichier .c, à l'exclusion de tout autre type de fichier.

Détail de l'implémentation :

Réaliser soigneusement les fonctionnalités suivantes au mieux du temps imparti et de vos compétences.
En cas de difficulté, vous pouvez faire appel à l'aide de l'enseignant au prix d'une pénalité proportionnelle. Une action programmée sans fonction ni procédure sera acceptée mais noté en conséquence.

– Un tableau d'entiers int W[32]={0} sera défini comme variable globale.

– Une procédure nommée AfficherMenu() affichera le menu suivant.
Menu :
0 - Quitter.
1 - Premiere action.
2 - Deuxieme action.
3 - Troisieme action.
4 - Quatrieme action.


– Une procédure PremiereAction() remplira le tableau W de façon que W[i]=Pol(i), en définissant une fonction de prototype int Pol(int x) qui retourne x4−11x3−154x2+22x+304.

– Une procédure DeuxiemeAction() affichera toutes les valeurs de W, séparées par un espace. L'affichage se terminera par un retour à la ligne.

– Une procédure TroisiemeAction() affichera sur deux lignes consécutives 1°) le nombre de fois où la valeur 0 apparait dans W, et 2°) la valeur moyenne de W.

– Une fonction TracerLigne(int k) affichera une ligne constituée de k fois le caractère '_' (souligné).

– Une procédure QuatriemeAction() réalisera l'algorithme suivant :
Donnée : le tableau W
Résultat : affichage...
Pour i de 0 à 31 faire
  Si W[i]≥0 alors TracerLigne(W[i] mod 42);
  sinon TracerLigne(−W[i] mod 42).

– La fonction main() lancera l'affichage du menu et la réalisation successive de commandes demandées par l'utilisateur, en faisant appel aux procédures correspondantes.
– On testera le programme avec les commandes successives : 1, 2, 3, 4, 0, données par l'utilisateur.
N.B. Si une des actions n'a pas été réalisée, la commande du menu correspondant affichera : _aucune_action_.