Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1746 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Classement d'une course

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classement d'une course

n°2214455
ticettac5
Posté le 26-12-2013 à 12:12:01  profilanswer
 

Bonjour à tous et Joyeux Noel !! :)
Excusez moi de vous déranger mais j'ai besoin d'aide.
Je suis en terminale en spécialisation Informatique et Science du Numérique. J'ai un exercice à faire sur Javascool, voici le sujet :
Ecrire une procédure qui affiche le classement d'une course. Cette procédure aura comme argument un entier qui donne le nombre de candidats, un tableau String donnant le nom des candidats, et un tableau de double donnant le temps en heures des candidats.
 
J'ai commencé par faire ça:  
 
void affiche_classement_course(String nombre_candidats, String nom_candidats, double temps_h){
 println("Il y a " +nombre_candidats+ " candidats."+" Leurs noms sont" +nom_candidats);
         println("Le classement est:" );
}
void main() {
 println ("Combien de candidats participent à la course ?" );
 String nombre = readString();
 println("Quels sont les noms des candidats?" );
 String nom= readString();
 println("Quel temps les candidats ont mis ?" );
 double temps=readInteger();
 affiche_classement_course(nombre, nom, temps);
}
 
Cependant il manque beaucoup de choses.  :(  
J'aimerai savoir comment faire pour rentrer plusieurs noms ? Par exemple, je rentre nombre=2, donc j'aimerai pouvoir rentrer 2 noms et non qu'un seul.
 
Merci d'avance ! :)

mood
Publicité
Posté le 26-12-2013 à 12:12:01  profilanswer
 

n°2214473
lasnoufle
La seule et unique!
Posté le 26-12-2013 à 20:28:07  profilanswer
 

Effectivement, il y a beaucoup a faire. J'vais pas te donner du tout cuit mais il faut bien commencer quelque part, donc deja commencons par ca:

void affiche_classement_course(String nombre_candidats, String nom_candidats, double temps_h){
 println("Il y a " +nombre_candidats+ " candidats."+" Leurs noms sont" +nom_candidats);
         println("Le classement est:" );
}

Tu ne respectes pas l'enonce, vu qu'il parle de passer un nombre et deux tableaux a la fonction. Pour respecter l'enonce, la declaration des parametres devrait etre:

void affiche_classement_course(int nombre_candidats, String[] nom_candidats, double[] temps_h){

On va supposer que les parametres passes sont coherents: la taille des deux tableaux correspond au nombre de candidats (ca sera a toi de t'en assurer dans ta fonction main).
Evidemment, ton probleme immediat devient que tu ne peux plus utiliser ton println tel quel vu que nom_candidats est maintenant un tableau. Tu vas donc devoir passer par une boucle, ce qui n'est pas un probleme puisque tu connais le nombre de candidats. L'algo va donc etre du genre:


println("Il y a "+nombre_candidats+" candidats." );
for (int i=0; i<nombre_candidats; i++) {
  println("Nom: "+nom_candidats[i]+" Temps: "+temps_h[i]);
}

Cet algo se contente d'afficher - a toi d'y ajouter le triage des temps (et des noms en meme temps pour etre sur que les infos des deux tableaux continuent de correspondre) avant d'afficher. Et aussi de "transformer" les doubles de temps_h[] pour en faire quelque chose de visuellement parlant quand ils sont affiches (ex: "1:20:00" plutot que "1.333333333" - a toi de definir ton format d'affichage).
 
Maintenant, quelques pistes pour ton main():

void main() {
 println ("Combien de candidats participent à la course ?" );
 String nombre = readString();
 // Il faut verifier que l'utilisateur a bien rentre un entier positif et superieur a 1, et lui faire re-rentrer si ce n'est le cas, jusqu'a avoir un entier positif.
 // C'est pas seulement pour faire joli: sans un entier positif, le reste de ton algo va planter.
 // Pour rentrer les noms et temps des candidats, tu peux te baser sur le nombre de candidats, et faire une boucle pour la saisie des candidats.
 // Du coup il te faut avoir tes tableaux de declares avant la boucle
 String[] nom = new String[nombre];
 double[] temps = new double[nombre];
 // maintenant la boucle: for(int i=0; i<nombre; i++) {
   println("Quels sont les noms des candidats?" );
   String nom[i]= readString();
   println("Quel temps les candidats ont mis ?" );
   // vas-tu vraiment demander de rentrer un double (non "parlant" ) ou plutot une String ayant un certain format (ex: "1:10:57" ) que tu vas ensuite transformer en double?
   double temps[i]=readInteger();
 // } (fin de la boucle d'entree des candidats)
 affiche_classement_course(nombre, nom, temps);
}

Ca devrait deja t'aider a avancer pas mal.


---------------
C'était vraiment très intéressant.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Classement d'une course

 

Sujets relatifs
intergrer un classementAjout de points dans un classement
macro excel / classement de valeursRequête SQL - Position dans un classement
[PHP, MYSQL] Réaliser un classement avec données de plusieurs tablesAlgorithmes classement / rating / rank
PHP gestion Classement[Résolu][javascript][classement array]
Création d'un classement (ladder) pour joueurs en ligne ?Etablir un classement selon résultats sportifs ?
Plus de sujets relatifs à : Classement d'une course


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR