besoin d'aide pour un DM en java svp


Précédent   Bladi.net > Loisirs & Entraides > Informatique



Réponse
 
Outils de la discussion Modes d'affichage
  #1  
Vieux 04/01/2008, 00h40
 
Date d'inscription: janvier 2008
Âge: 22
Messages: 1
Par défaut besoin d'aide pour un DM en java svp

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
Réponse avec citation
  #2  
Vieux 04/01/2008, 18h44
Avatar de Malayk
Je pense...donc je pense
 
Date d'inscription: novembre 2007
Âge: 23
Messages: 468
Par défaut Re : besoin d'aide pour un DM en java svp

Salut,

c'est pas pour être méchant, mais ce qu'on te demande là, c'est un peu la base du JAVA...après trois mois, vous êtes censés vous être un peu dérouillés...

Toujours est-il qu'en général, se lancer reste l'etape la plus difficile dans la résolution d'un problème.
Je te propose donc de commencer à tenter de résoudre ce problème par tes propres moyens, puis ensuite pourquoi pas, de poster les problèmes qui surviendraient à la compilation ou à l'éxécution.
Réponse avec citation
  #3  
Vieux 04/01/2008, 18h52
Avatar de mimi22
 
Date d'inscription: décembre 2005
Messages: 384
Par défaut Re : besoin d'aide pour un DM en java svp

Citation:
Envoyé par Malayk Voir le message
Salut,

c'est pas pour être méchant, mais ce qu'on te demande là, c'est un peu la base du JAVA...après trois mois, vous êtes censés vous être un peu dérouillés...

Toujours est-il qu'en général, se lancer reste l'etape la plus difficile dans la résolution d'un problème.
Je te propose donc de commencer à tenter de résoudre ce problème par tes propres moyens, puis ensuite pourquoi pas, de poster les problèmes qui surviendraient à la compilation ou à l'éxécution.
Entièrement d'accord avec toi Malayk!!

Le but d'un DM, c de faire des recherches au cas où on en a besoin; et au même temps ça te permettra de mieux comprendre le JAVA!

et comme a dit Malayek, au cas où sa coince, on essayra de t'aider si possible!

Bon courage mon frère
Réponse avec citation
  #4  
Vieux 06/01/2008, 14h19
 
Date d'inscription: février 2006
Messages: 1 738
Par défaut Re : besoin d'aide pour un DM en java svp

Citation:
Envoyé par chronosis Voir le message
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
pour commencer voici la structure de la premiere classe, met la dans un fichier nommé Tab.java:


import java.lang.*;
import java.util.Random;

private class Tab
{
private int taille;
private int[] tab;

Tab(int taille)
{
this.taille=taille;
tab = new int[this.taille];
}

int getTaille()
{
return taille;
}

int[] getTab()
{
return tab;
}

void genererTab()
{
Random rand = new Random();
for(int i=0; i<taille; i++)
{
tab[i]=rand.nextInt();
}
}

void afficherTab()
{
for(int i=0; i<taille; i++)
{
System.out.println(tab[i]);
}
}

//methode qui implemente le tri par bulles
void trierTabBulles()
{

}

//methode qui implement le tri par dichotomie
void trierTabDichotomie()
{

}
}
Réponse avec citation
Réponse

Outils de la discussion
Modes d'affichage


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
besoin d'aide pour mon projet tutoré!!! tchopicard Aide & Formalités administratives 8 21/09/2007 13h25
Besoin d'aide énorme. Torshu Histoires de coeur 21 18/04/2007 16h33
changez de literie?! besoin d'aide Zohra Jrad 28 10/04/2007 17h12
Besoin d'aide pour comprendre un hadith super112 Forum Islam 9 15/03/2007 16h15



Fuseau horaire GMT +2. Il est actuellement 01h57.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38