calculer une moyenne en enlevant avant deux données...

calculer une moyenne en enlevant avant deux données... - Delphi/Pascal - Programmation

Marsh Posté le 13-08-2005 à 15:21:08    

Bonjour
 
Je suis débutante en programmation Pascal. Dans un devoir, je dois:
 
En passant par les étapes de rédaction usuelles (algorithme, diagramme hiérarchique, etc.), élaborez un programme qui pourra traiter les données d’une compétition de patinage artistique et afficher les résultats des patineurs sur 10 points.
Pour calculer le résultat final du patineur ou de la patineuse, on enlève la note du juge qui a accordé la note la plus haute et celle du juge qui a accordé la note la plus basse, pour ensuite faire la moyenne des notes de tous les autres juges. Tenez pour acquis qu’il y a 7 juges et 5 patineurs.  
 
En plus de saisir les notes et de calculer les résultats, le programme devra produire un rapport (pouvant être affiché à l’écran ou imprimé, selon le choix de l’utilisateur) contenant les noms des 5 patineurs, toutes leurs notes et leur résultat final en ordre décroissant de leur résultat. Pour trier les informations, vous pouvez utiliser la méthode d’insertion ou celle de la sélection, en précisant clairement laquelle vous avez choisie. Le rapport doit contenir tous les éléments nécessaires à sa bonne compréhension.  
 
Votre programme devra utiliser des enregistrements et/ou des vecteurs (à une et/ou plusieurs dimensions) pour emmagasiner les noms, les données et les résultats des patineurs. Il devra être construit de façon structurée
 
 
Bon, voilà mon problème. J'ai créer un enregistrement contenant nom,prénom et notes. En réalité, j'en suis à calculer la moyenne. Mais voilà, je n'arrive pas à enlever la note la plus basse et la note la plus haute. Voici mes déclarations:  
 

Code :
  1. CONST
  2. (* Le nombre de patineurs *)
  3. NombreP = 5;
  4. (* Le nombre de juge (ou de note) *)
  5. Juge=7;
  6. type
  7. Patineur=RECORD
  8.     Nom, Prenom : STRING[15];
  9.     note:INTEGER;
  10.     moyenne:REAL;
  11.     END;
  12. var
  13. Liste : ARRAY[1..5] OF Patineur;
  14. x, y: INTEGER;
  15. Operation:INTEGER;


 
Après avoir entrer toutes les données (nom, prénom et 7 notes) pour chacun des 5 patineurs, j'ai tenter de faire un tri par sélection afin de trier les notes, mais ça ne fonctionne pas.....Si je ne me trompe pas, je dois lire, pour chaque patineur, la Liste[x].note, et ensuite faire le tri. Seulement, je n'y comprend rien....  
 
Quelqu'un pourrait m'aider à y voir plus clair SVP???
 
Merci

Reply

Marsh Posté le 13-08-2005 à 15:21:08   

Reply

Marsh Posté le 18-08-2005 à 11:37:30    

bon g lu tres tres en diagonale, mais tu n aurais pas un petit  "soucy" dans ton record ? ca ne serait pas note: array[1..7] of integer ?

Reply

Marsh Posté le 19-08-2005 à 23:37:34    

Pour le calcul de la moyenne, c'est vrai que c'est pas forcément évident (s'il y a 2 juges à mettre la note minimale ou maximale). Je pense qu'on peut faire ca :
- 1 parcours de l'ensemble des notes pour calculer la somme de ces notes (en les prenant toutes), et regarder la note la plus haute ainsi que la plus basse.
- la moyenne se calcule en faisant (somme - note_plus_haute - note_plus_basse)/nombre_de_notes
 :)

Reply

Marsh Posté le 23-08-2005 à 15:09:23    

Merci à tous les deux, je regarde ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed