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

  FORUM HardWare.fr
  Programmation
  Java

  Besoin d'aide pour un DM svp...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour un DM svp...

n°1665547
chronosis1
Posté le 03-01-2008 à 23:30:47  profilanswer
 

Voila j'ai un dm à faire pour l'informatique , je suis en ecole d'ingenieure en premiere année, et cela fais que 3 mois que je fais du java avec en moyenne 2h de java par semaine et là ,pour mon dm, je suis paumé je NE comprend pas grand chose. Donc si quelqu'un pourrait m'aider cela serait trés sympa merci d'avance.
voici mon DM je sais que cela ne se fait pas de mettre le dm comme cela mais je sais vraiment pas comment faire (je suis desesperé);
 
 
 
L’objectif de ce DM est d’analyser le coût en temps d’au moins deux méthodes de tri.
 
Les étapes suivantes doivent être suivies :
 
définir une première classe comportant la représentation d’un tableau de n entiers ;
y intégrer des méthodes, notamment :
pour le remplissage d’un tableau par des valeurs tirées aléatoirement ;
pour le tri des valeurs d’un tableau (suivant au moins deux méthodes de tri de votre choix) ;
pour l’affichage d’un tableau ;
définir une autre classe pour expérimenter cette première classe :
construire des objets de la première classe avec différents nombres n de valeurs ;
appliquer sur ces objets vos deux méthodes de tri, en mesurant pour chacune d’elles et à chaque fois le temps d’exécution ;
enregistrer ces temps dans un tableau ;
rédiger un dossier comportant notamment :
une introduction (le problème posé) ;
vos algorithmes ;
les codes sources commentés ;
les résultats d’exécution ;
la synthèse graphique (récupérer vos temps d’exécution de tri sous Excel suivant différentes valeurs de n (nombre de valeurs à trier) et suivant vos méthodes de tri) ;
la conclusion : forme des deux courbes (log n, n, n2, …), une méthode de tri paraît-elle plus rapide que la (ou les) autre (s) ?
 
Evaluation d’un temps de calcul en Java :
Pour évaluer le temps de calcul d’une méthode, on va mémoriser les heures d’entrée et de sortie de la méthode et les soustraire pour obtenir la durée d’exécution.
Il existe en java une classe Date permettant de manipuler des instants et des durées.
Classe Date - Utilisation de la documentation Java :
Une documentation " officielle " de Java est disponible sur le site de Sun à l’adresse
http://java.sun.com/j2se/1.4.2/docs/
Parmi cette documentation, on trouve l’ensemble des classes disponibles à l’adresse
http://java.sun.com/j2se/1.4.2/docs/api/
Parcourez cette liste à la recherche de la classe Date et regardez l’ensemble des fonctionnalités de cette classe.
Notez que la classe Date se trouve dans le packetage java.util que vous devrez importer avec l’instruction
import java.util.Date;
au début de votre programme pour pouvoir l’utiliser.
Dans la classe Essai, déclarez et instanciez des objets de la classe Date de manière à évaluer le temps de calcul de vos deux méthodes de tri.
Exemple de mise en œuvre : ajouter aux deux classes vues ci-dessus la classe Chronometre :
import java.util.*;
 
public class Chronometre {
 Calendar m_start = new GregorianCalendar();
 Calendar m_stop = new GregorianCalendar();
 
 Chronometre() {  
 }
 
 //Lance le chronomètre
 public void start() {
  m_start.setTime(new Date());
 }
 
 //Arrète le chronomètre
 public void stop() {
  m_stop.setTime(new Date());
 }
 
 //Retourne le nombre de millisecondes séparant l'appel des méthode start() et stop()
 public long getMilliSec() {
  return (m_stop.getTimeInMillis() - m_start.getTimeInMillis());
 }
 
 //Affiche le nombre de millisecondes séparant l'appel des méthode start() et stop()
 public void printMilliSec() {
  if(getMilliSec() <= 0) {
   System.out.println("Vous n'avez pas arrété le chronomètre" );
  } else {
   System.out.println("Temps d'exécution : " + getMilliSec() + " ms" );
  }
 }
}
 
Exemple d’utilisation de cette classe Chronometre :
public class Essai{
    public static int fact(int n) {
 int res=1;
 for (int i=1;i<=n;i++){
     res*=i;
 }
 return res;
    }
 
    public static void traitement(int nbfois) {
 int res2=1;
 for (int i=2;i<=nbfois;i++) {
     res2+=fact(i)-fact(i-1);
 }
    }
 
    public static void main(String[] args){
 Chronometre c1=new Chronometre();
 c1.start();  // déclencher le chronomètre
 traitement(1000); // exécuter les traitements définis ci-dessus
 c1.stop(); // arrêter le chronomètre
 c1.printMilliSec(); // afficher le temps d’exécution des traitements (*)
    }
}
 
(*) : 24 ms pour cet exemple

mood
Publicité
Posté le 03-01-2008 à 23:30:47  profilanswer
 

n°1665549
Elmoricq
Modérateur
Posté le 03-01-2008 à 23:32:27  profilanswer
 

chronosis1 a écrit :

voici mon DM je sais que cela ne se fait pas de mettre le dm comme cela mais je sais vraiment pas comment faire  


 
Je vais t'aider : commence à réfléchir au problème, et à l'implémenter. Puis reviens lorsque tu auras des questions précises à poser, parce qu'ici on ne fait pas le travail à ta place.
 
edit : je note tout de même que tu es désespéré, mais que tu as pris le temps de t'inscrire ici, ce qui habituellement prend entre 1 et 3 jours.  [:delarue2]


Message édité par Elmoricq le 03-01-2008 à 23:34:18

Aller à :
  FORUM HardWare.fr
  Programmation
  Java

  Besoin d'aide pour un DM svp...

 

Sujets relatifs
aide creation script batch rennomage de fichiers[AS3] Positionner des pieces a l'aide d'un Array
besoin d'aide pour page avec playerAide pour problème sur site php
Aide tri Eclatement/fusion Besoin d'aide pour programmation page d'Inscription
[C++] [résolu] Besoin d'un coup de main pour déboguer mon algo de triPlanning assisté excel; besoin de formules VB pour deux problématiques
Plus de sujets relatifs à : Besoin d'aide pour un DM svp...


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