Programme en Java

Fermé
arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004 - 12 oct. 2004 à 17:42
 f3urn - 12 oct. 2007 à 21:09
salut à tous,

je suis débutante en programmation et j'ai besoin de faire un prog en java mais je ne sais pas comment m'y prendre... donc si vous pouviez m'aider, ça serait sympa.

merci.

Réaliser une classe "Statistique" ayant pour variables d'instances : 3 nombres réels.
Les méthodes de la classe sont :
• Constructeur
• Somme
• Moyenne
• Écart-Type
• Maximum
• Minimum
• toString

Consignes :
• Ne pas utiliser les structures de contrôle (if, while, for, etc.) : utiliser plutôt la classe Math.
• Écrire un programme qui teste les différentes méthodes de la classe.
A voir également:

8 réponses

choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
15 oct. 2004 à 07:42
private float minTempo;


minTempo = Math.min(n1, n2);
m_mini = Math.min(minTempo,n3);

return m_mini;



Chouba,
Pochard d'assaut .. 
1
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
13 oct. 2004 à 08:24
Salut

ce n'est pas bien compliqué, je te propose d'essayer de commencer ta classe, montre nous le code que tu as déjà écrit et nous nous ferons un plaisir de te guider et/ou te corriger.

Mais là comme ça, tout faire à ta place n'est certainement pas un bon service à te rendre ...

Chouba,
Pochard d'assaut .. 
0
arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004
13 oct. 2004 à 22:18
salut à tous, j'ai fais ça pour l'instant :

import java.lang.Math;

public class Statistique
{
private float n1, n2, n3;
private float m_somme, m_moyenne, m_mini, m_max;
private double m_ecart;

public Statistique(float somme, float moyenne, double ecart, float mini, float max)
{
m_somme = somme;
m_moyenne = moyenne;
m_ecart = ecart;
m_mini = mini;
m_max = max;
}

public float somme()
{
m_somme = n1 + n2 + n3;

return m_somme;

}

public float moyenne()
{
m_moyenne = ((n1+n2+n3)/3);

return m_moyenne;
}

public double ecart()
{
m_ecart = ((n1+n2+n3)/Math.sqrt(n1*n2*n3));

return m_ecart;
}

public String toString()
{
String ch="Voici les résultats :\n";
ch+="Somme :\t" + m_somme + "\n";
ch+="Moyenne :\t" + m_moyenne + "\n";
ch+="Ecart Type :\t" + m_ecart + "\n";

return ch;
}
}

J'ai essayé de faire ça... mais je n'y comprend pas grand chose... merci pour votre aide
0
arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004
14 oct. 2004 à 05:12
En cherchant un peu, j'ai finalement réussi à faire ma classe... Si vous avez des améliorations à apporter, n'hésitez pas...

import java.util.Scanner;
import java.lang.Math;

public class Statistique
{

private float n1, n2, n3;
private float m_somme, m_moyenne, m_ecart, m_mini, m_maxi;


public Statistique (float n1, float n2, float n3)
{
n1 = n1;
n2 = n2;
n3 = n3;
}

public float somme (float n1, float n2, float n3)
{
m_somme = n1 + n2 + n3;
return m_somme;
}

public float moyenne (float n1, float n2, float n3)
{
m_moyenne = ((n1+n2+n3)/3);
return m_moyenne;
}

public float ecart (float n1,float n2, float n3)
{
m_ecart = (float)((n1+n2+n3)/Math.sqrt(n1*n2*n3));
return m_ecart;
}


}


Et j'ai fais une classe pour tester tt ça :

import java.util.Scanner;

public class Test
{

public static void main (String [] args)
{
float n1, n2, n3, m_somme, m_moyenne, m_ecart, m_mini;


Scanner scan = new Scanner(System.in);
System.out.print ("Entrer le premier nombre : ");
n1 = scan.nextFloat();

System.out.print ("Entrer le deuxième nombre : ");
n2 = scan.nextFloat();

System.out.print ("Entrer le troisième nombre : ");
n3 = scan.nextFloat();


Statistique stat = new Statistique (n1, n2, n3);


m_somme = stat.somme(n1, n2, n3);
System.out.println("Somme des trois nombres : \t" + m_somme);

m_moyenne = stat.moyenne(n1, n2, n3);
System.out.println("Moyenne des trois nombres : \t" + m_moyenne);

m_ecart = stat.ecart(n1, n2, n3);
System.out.println("Ecart Type des trois nombres : \t" + m_ecart);


}

}


Le seul problème, c'est que je ne sais pas comment faire pour retourner le minimum et le maximum des trois nombres sans utiliser les structures de contrôles if, while, for...etc... Donc si quelqu'un a une idée...

En vous remerciant...
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104 > arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004
14 oct. 2004 à 07:55
Salut

je remarque un petit problème ....

Tu crées une instance de ta classe statistique avec tes variables n1, n2, n3

public Statistique (float n1, float n2, float n3) 
{ 
n1 = n1; 
n2 = n2; 
n3 = n3; 
} 


Jusque là, pas de problème, mais ces fameuses variables ne sont pas utilisées dans ta classe puisque toutes tes méthodes nécessitent des arguments... Tu dois utiliser les variables que tu possèdes dans les attributs de ta classe.

Ensuite tu déclares dans ta deuxièmes série d'attributs des variables qui ne devraient pas être des variables de classe mais des variables internes à tes méthodes ...

ce qui donne ceci

import java.util.Scanner; 
import java.lang.Math; 

public class Statistique 
{ 

private float n1, n2, n3; 
private float  m_mini, m_maxi; 


public Statistique (float n1, float n2, float n3) 
{ 
n1 = n1; 
n2 = n2; 
n3 = n3; 
} 

public float somme () 
{ 
private float m_somme;

m_somme = n1 + n2 + n3; 
return m_somme; 
} 

public float moyenne () 
{ 
private float  m_moyenne;

m_moyenne = ((n1+n2+n3)/3); 
return m_moyenne; 
} 

public float ecart () 
{ 
private float m_ecart;

m_ecart = (float)((n1+n2+n3)/Math.sqrt(n1*n2*n3)); 
return m_ecart; 
} 


} 



Chouba,
Pochard d'assaut .. 
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
14 oct. 2004 à 08:07
Pour ton problème de min et max, va voir un peu cette classe

http://java.sun.com/j2se/1.3/docs/api/java/math/BigDecimal.html

Chouba,
Pochard d'assaut .. 
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
14 oct. 2004 à 08:13
ça pourrait être utile aussi

http://java.sun.com/j2se/1.3/docs/api/java/lang/Float.html

Chouba,
Pochard d'assaut .. 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
14 oct. 2004 à 08:16
astuce

En utilisant des structures de données triées (sortedSet par exemple) on peut récupérer des données dans un ordre bien précis ...

Chouba,
Pochard d'assaut .. 
0
arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004
14 oct. 2004 à 17:35
merci pour ton aide...

J'arrive bien à utiliser la classe Math pour faire le mini et le maxi entre 2 nombres (n1 et n2) mais pas entre trois nombres (n1, n2, n3)...

Est ce que tu peux me donner la solution stp ??

Merci
0
WeeZ > arwen1985 Messages postés 4 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 14 octobre 2004
15 oct. 2004 à 06:21
Tu stocke le min entre le 1er nombre et le 2e dans une variable. Ensuite tu n'as qu'a trouver le minimum entre cette variable et le 3e nombre !

;)
WeeZ
0
Utilisateur anonyme
21 oct. 2004 à 09:05
public class Statistique {
	private double n1, n2, n3;

	public Statistique(double n1, double n2, double n3) {
		this.n1 = n1;
		this.n2 = n2;
		this.n3 = n3;
	}

	public double somme() {
		return n1 + n2 + n3;
	}

	public double moyenne() {
		return somme() / 3;

	}

	public double ecartType() {
		return somme() / Math.sqrt(n1 * n2 * n3);
	}

	public double max() {
		return Math.max(n1, Math.max(n2, n3));
	}

	public double min() {
		return Math.min(n1, Math.min(n2, n3));
	}

	public String toString() {
		StringBuffer buffer = new StringBuffer();
		buffer.append("Nombre réels entrés: ["+n1+", "+n2+", "+n3+"]").append("\n");
		buffer.append("Somme = " + somme()).append("\n");
		buffer.append("Moyenne = " + moyenne()).append("\n");
		buffer.append("Ecart-type = " + ecartType()).append("\n");
		buffer.append("Max = " + max()).append("\n");
		buffer.append("Min = " + min()).append("\n");
		return buffer.toString();
	}

	public static void main(String[] args) {
		Statistique stat = new Statistique(10.235, 9.652, 42.3);
		System.out.println("Somme = " + stat.somme());
		System.out.println("Moyenne =" + stat.moyenne());
		System.out.println("Ecart-type = " + stat.ecartType());
		System.out.println("Max = " + stat.max());
		System.out.println("Min = " + stat.min());
		System.out.println("toString():");
		System.out.println(stat.toString());
	}
}


;-)
HackTrack
0
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
21 oct. 2004 à 19:26
t'as pas changé toi ! 8)

bonjour à Sandy

Chouba,
Pochard d'assaut .. 
0
Bonjour,


Lol...toi tu es a LQUTR avec Fatallah Nouboud...bravo de faire faire tes devoirs par d'autre ici :P
0
Bonjour,
lolll trop clr bravo ;)
0