JAVA
programmer
-
sandul Messages postés 4013 Statut Membre -
sandul Messages postés 4013 Statut Membre -
Je suis débutant en java:
Merci de m'aider a apprendre java
j'ai besoin de d'écire un programme java selon l'énoncé de cet exercice :
Objectif : Traitements statistiques
Une série de données entières positives est saisie au clavier et mémorisée sous forme de tableau. Il s’agit de donner ses valeurs extrêmes, sa moyenne et son écart-type, ainsi que son histogramme.
Programme demandé :
Chacune des fonctionnalités suivantes s’écrira dans une méthode de classe, avec comme argument la (les) variable(s) de type tableau (et d’autres arguments si nécessaire, dont la taille effective du (des) tableau(x)). On utilisera un menu pour permettre le choix des actions.
1. Saisie
L’utilisateur entre les données une à une et termine sa saisie par un élément négatif. L’utilisateur ne peut en aucun cas taper plus d’éléments que n’en peut contenir le tableau, dimensionné par une constante entière SIZE_MAX.
2. Affichage d’un tableau de données
3. Calculs des valeurs minimales et maximales, moyenne et écart-type.
L’affichage de ses résultats se fera au niveau du menu uniquement et non à l’intérieur des méthodes.
Merci de m'aider a apprendre java
j'ai besoin de d'écire un programme java selon l'énoncé de cet exercice :
Objectif : Traitements statistiques
Une série de données entières positives est saisie au clavier et mémorisée sous forme de tableau. Il s’agit de donner ses valeurs extrêmes, sa moyenne et son écart-type, ainsi que son histogramme.
Programme demandé :
Chacune des fonctionnalités suivantes s’écrira dans une méthode de classe, avec comme argument la (les) variable(s) de type tableau (et d’autres arguments si nécessaire, dont la taille effective du (des) tableau(x)). On utilisera un menu pour permettre le choix des actions.
1. Saisie
L’utilisateur entre les données une à une et termine sa saisie par un élément négatif. L’utilisateur ne peut en aucun cas taper plus d’éléments que n’en peut contenir le tableau, dimensionné par une constante entière SIZE_MAX.
2. Affichage d’un tableau de données
3. Calculs des valeurs minimales et maximales, moyenne et écart-type.
L’affichage de ses résultats se fera au niveau du menu uniquement et non à l’intérieur des méthodes.
A voir également:
- JAVA
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
19 réponses
ok.
j'ai pa di de me faire l'exo mais pluto de me donné des pistes sinon que la je suis entrain d'écri un code qui
ne marche pas bien.Raison pour laquelle je demand d'aide.
Aussi si ta une autre métode pour m'aider je l'accèpte.
Merci d'avance
j'ai pa di de me faire l'exo mais pluto de me donné des pistes sinon que la je suis entrain d'écri un code qui
ne marche pas bien.Raison pour laquelle je demand d'aide.
Aussi si ta une autre métode pour m'aider je l'accèpte.
Merci d'avance
Hum, okay. Commence par décrire ce qui te pose problème dans tout ça. La programmation Java (c'est vraiment du basique, si c'est ceci, décris avce précision le point bloquant)? La formule pour la moyenne, l'écart type ? Autre chose ?
merci bien.
moi je ne suis pas très bien en programmation mais jai bien la volonté d'avoir un bon niveau surtout en java.
d'ailleurs je suis en train de l'apprendre de manière autodicdacte et avec laide des forums.
les formules mathématiks ne posent aucun problm,je suis mathématiciens de formation.
Bref je t'envoie le programm que je suis en train d'écri et tu pourras maider.
Merci d'avance
moi je ne suis pas très bien en programmation mais jai bien la volonté d'avoir un bon niveau surtout en java.
d'ailleurs je suis en train de l'apprendre de manière autodicdacte et avec laide des forums.
les formules mathématiks ne posent aucun problm,je suis mathématiciens de formation.
Bref je t'envoie le programm que je suis en train d'écri et tu pourras maider.
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je suis vraiment nul.je t'en pris un peu de patience pour m'aider:
voici là où j'en suis dans le code:
package javaapplication1;
/**
*
* @author arn
*/
public class NewClass {
int min;
int max;
int tab[];
public NewClass(int min,int max, int tab[]){
this.min=min;
this.max=max;
}
public void Saisie(int val){
for(int i=min;i<tab.length;i++){
System.in.read(val);
tab [i]=val;
}
}
public void affiche(){
for(int i=min;i<tab.length;i++){
System.out.println(min);
System.out.println(max);
System.out.println(tab[i]+ " ");
}
}
}
voici là où j'en suis dans le code:
package javaapplication1;
/**
*
* @author arn
*/
public class NewClass {
int min;
int max;
int tab[];
public NewClass(int min,int max, int tab[]){
this.min=min;
this.max=max;
}
public void Saisie(int val){
for(int i=min;i<tab.length;i++){
System.in.read(val);
tab [i]=val;
}
}
public void affiche(){
for(int i=min;i<tab.length;i++){
System.out.println(min);
System.out.println(max);
System.out.println(tab[i]+ " ");
}
}
}
OK... Commence par présenter un texte indenté et avec les balises < code> à leur place. C'est beaucoup plus lisible et ça permettra l'échange. Genre
Maintenant, analysons un peu.
1. Il te faut des noms bien choisis. Même si ceci peut te paraître sans importance, c'est quelque chose très important. Tu le constateras plus tard, avec l'expérience. Ton nom "NewClass" doit donc disparaître
2. Toute classe éxecutable doit avoir une méthode main. Ta classe n'en as pas ==> faut en créer une.
3. Il n'est pas clair de ta description. L'histoire du menu: tu le veux en mode graphique (fenêtres) ou en mode console (avec un texte genre tapez 0 pour faire ceci, tapez 1 pour cela... etc, comme avec un robot au téléphone)?
Tu réponds à 3, corriges et postes ton code cf 1. et 2. ci-dessus et nous allons continuer
++
package javaapplication1;
/**
*
* @author arn
*/
public class NewClass {
int min;
int max;
int tab[];
public NewClass(int min, int max, int tab[]) {
this.min = min;
this.max = max;
}
public void Saisie(int val) {
for (int i = min; i < tab.length; i++) {
System.in.read(val);
tab[i] = val;
}
}
public void affiche() {
for (int i = min; i < tab.length; i++) {
System.out.println(min);
System.out.println(max);
System.out.println(tab[i] + " ");
}
}
}
Maintenant, analysons un peu.
1. Il te faut des noms bien choisis. Même si ceci peut te paraître sans importance, c'est quelque chose très important. Tu le constateras plus tard, avec l'expérience. Ton nom "NewClass" doit donc disparaître
2. Toute classe éxecutable doit avoir une méthode main. Ta classe n'en as pas ==> faut en créer une.
3. Il n'est pas clair de ta description. L'histoire du menu: tu le veux en mode graphique (fenêtres) ou en mode console (avec un texte genre tapez 0 pour faire ceci, tapez 1 pour cela... etc, comme avec un robot au téléphone)?
Tu réponds à 3, corriges et postes ton code cf 1. et 2. ci-dessus et nous allons continuer
++
[Edit] Oups, mea culpa. La description que tu fais pour indique clairement qu'il s'agit d'une application console. Donc plus besoin de répondre au point 3.
Il te faut une méthode de lecture en mode console. Regarde par ici: http://www.java-tips.org/java-se-tips/java.util/how-to-read-input-from-console.html Ne marchera pas si ton JDK < 1.5 (dans ce cas, précise-le).
Corrige donc en tenant compte de ceci (et des points 1. et 2. dans mon post précédent) et reviens avec un code.
Il te faut une méthode de lecture en mode console. Regarde par ici: http://www.java-tips.org/java-se-tips/java.util/how-to-read-input-from-console.html Ne marchera pas si ton JDK < 1.5 (dans ce cas, précise-le).
Corrige donc en tenant compte de ceci (et des points 1. et 2. dans mon post précédent) et reviens avec un code.
je suis entrain de corriger.
Merci pour ton aide.je pense que dici 30mn jetenverrai un code beaucoup plus parfait.
merci bcp.
Merci pour ton aide.je pense que dici 30mn jetenverrai un code beaucoup plus parfait.
merci bcp.
je viens de voire ton derneir msg il fo ke je coriige en mêm tempsle remarque que tu as fais avant de te lenvoyer.
Merci
Merci
import java.util.Scanner;
public class TraitSat {
int min ;
int max ;
int tab[];
public void TraitSat(int min, int max, int tab[]) {
this.min = min;
this.max = max;
this.tab=tab;
}
public void Saisie(int val) {
for (int i=min; i < tab.length; i++) {
Scanner in = new Scanner(System.in);
val=in.nextInt();
in.close();
val=val+i;
}
}
public void affichetab(){
System.out.println();
}
public void calcul(){
// calculé les différents paramètres écart types moyennes et autres
}
public static void main(String[] args) {
System.out.println("les éléments du tableaux sont :" );
}
}
public class TraitSat {
int min ;
int max ;
int tab[];
public void TraitSat(int min, int max, int tab[]) {
this.min = min;
this.max = max;
this.tab=tab;
}
public void Saisie(int val) {
for (int i=min; i < tab.length; i++) {
Scanner in = new Scanner(System.in);
val=in.nextInt();
in.close();
val=val+i;
}
}
public void affichetab(){
System.out.println();
}
public void calcul(){
// calculé les différents paramètres écart types moyennes et autres
}
public static void main(String[] args) {
System.out.println("les éléments du tableaux sont :" );
}
}
Re,
1. Tu n'as pas envoyé un code joliment formaté ni n'as utilisé les balises < code>. Prière de le faire la prochaine fois.
2. Conventions de nommage: lis-moi ceci, s'il te plaît: https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html . Avec attention. Prends ton temps, digère chaque truc, relis les exemples, comprends bien avant de retenir.
Nous allons donc changer un peu par-ci par là pour avoir des noms "propres". D'abord ton nom de classe: TraitSat. Ce nom a (peut-être) une signification pour toi, mais pas pour moi. Il faut que tes noms soit transparents pour tout le monde. Tu as probablement voulu dire TraitStat (de traitement statistique). Je propose "Statistics", tout simplement. On va utiliser des noms en anglais pour uniformiser (les instructions Java étant elles-mêmes en anglais). Les commentaires peuvent rester en fr.
3. Tu définis les membres suivants: min, max et un tableau. Quel besoin de min et max ? Ton problème parle clairement d'un tableau et de sa dimension, mais pas de min. On peut donc avoir ceci:
4. Ta classe va faire quelques calculs basiques et le besoin de la programmation objet ne se fait pas clairement sentir. On pourrait très bien avoir notre tableau défini en tant que membre statique, une méthode main() et tout le code à l'intérieur de cette méthode. Pas vraiment besoin d'instancier notre objet "Statistics". Pour des besoins pédagogiques, nous allons nonobstant passer par l'instanciation de cette classe, d'où la définition non statique du tableau.
5. Pas besoin d'un constructeur avec des arguments dans notre cas. Et le constructeur sans arguments est implicite (si tu ne le fais pas, la machine virtuelle le fait pour toi). Donc pas de constructeur du tout.
6. OK pour une méthode de saisie. Il nout faut un verbe (cf. conventions de nommage). Je propose fillArray (remplirTableau). Si jamais plus tard tu voudras faire évoluer ta classe et la faire lire depuis un fichier (à la place de saisir les données), ce nom sera toujours OK. Fais attention au contenu de la méthode fillAray: pas besoin d'instancier dans la boucle l'objet Scanner comme tu l'as fait. Tu l'instancie une fois, t'en sers dans la boucle et tu le ferme après. Pas besoin non plus d'un argument pour cette méthode.
7. La méthode displayArray() affiche le contenu du tableau. Rien de plus simple.
8. computeValues() est une méthode à compléter par toi-même
9. La méthode main() actuelle est un début, mais elle ne respecte pas ce que l'on te demande (à savoir, un menu pour les actions). Tu vas la modifier, aussi. On va imaginer ce menu:
0 - (re)sasir valeurs
1 - calculer et afficher le min
2 - calculer et afficher le max
3 - calculer et afficher la moyenne
4 - idem pour l'écart-type
5 - fin
Voilà... Dans l'attente de ton code complet,
++
1. Tu n'as pas envoyé un code joliment formaté ni n'as utilisé les balises < code>. Prière de le faire la prochaine fois.
2. Conventions de nommage: lis-moi ceci, s'il te plaît: https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html . Avec attention. Prends ton temps, digère chaque truc, relis les exemples, comprends bien avant de retenir.
Nous allons donc changer un peu par-ci par là pour avoir des noms "propres". D'abord ton nom de classe: TraitSat. Ce nom a (peut-être) une signification pour toi, mais pas pour moi. Il faut que tes noms soit transparents pour tout le monde. Tu as probablement voulu dire TraitStat (de traitement statistique). Je propose "Statistics", tout simplement. On va utiliser des noms en anglais pour uniformiser (les instructions Java étant elles-mêmes en anglais). Les commentaires peuvent rester en fr.
3. Tu définis les membres suivants: min, max et un tableau. Quel besoin de min et max ? Ton problème parle clairement d'un tableau et de sa dimension, mais pas de min. On peut donc avoir ceci:
...
public class Statistics {
final int ARRAY_LEN = 10; // nombre max d'éléments du tableau
int[] numbers = new int[ARRAY_LEN];
...
4. Ta classe va faire quelques calculs basiques et le besoin de la programmation objet ne se fait pas clairement sentir. On pourrait très bien avoir notre tableau défini en tant que membre statique, une méthode main() et tout le code à l'intérieur de cette méthode. Pas vraiment besoin d'instancier notre objet "Statistics". Pour des besoins pédagogiques, nous allons nonobstant passer par l'instanciation de cette classe, d'où la définition non statique du tableau.
5. Pas besoin d'un constructeur avec des arguments dans notre cas. Et le constructeur sans arguments est implicite (si tu ne le fais pas, la machine virtuelle le fait pour toi). Donc pas de constructeur du tout.
6. OK pour une méthode de saisie. Il nout faut un verbe (cf. conventions de nommage). Je propose fillArray (remplirTableau). Si jamais plus tard tu voudras faire évoluer ta classe et la faire lire depuis un fichier (à la place de saisir les données), ce nom sera toujours OK. Fais attention au contenu de la méthode fillAray: pas besoin d'instancier dans la boucle l'objet Scanner comme tu l'as fait. Tu l'instancie une fois, t'en sers dans la boucle et tu le ferme après. Pas besoin non plus d'un argument pour cette méthode.
7. La méthode displayArray() affiche le contenu du tableau. Rien de plus simple.
8. computeValues() est une méthode à compléter par toi-même
9. La méthode main() actuelle est un début, mais elle ne respecte pas ce que l'on te demande (à savoir, un menu pour les actions). Tu vas la modifier, aussi. On va imaginer ce menu:
0 - (re)sasir valeurs
1 - calculer et afficher le min
2 - calculer et afficher le max
3 - calculer et afficher la moyenne
4 - idem pour l'écart-type
5 - fin
package javaapplication1;
import java.util.Scanner;
public class Statistics {
final int ARRAY_LEN = 5; // nombre max d'éléments du tableau
int[] numbers = new int[ARRAY_LEN];
// remplit le tableau avec des valeurs saisies à la console
private void fillArray() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LEN; i++) {
numbers[i] = scanner.nextInt();
}
scanner.close();
}
// affiche le contenu du tableau à la console
public void displayArray() {
for (int i = 0; i < ARRAY_LEN; i++) {
System.out.print(numbers[i] + ", ");
}
System.out.println();
}
public void computeValues() {
// à toi de compléter le code
}
public static void main(String[] args) {
Statistics stats = new Statistics();
System.out.print("Tableau avant la saisie: ");
stats.displayArray();
stats.fillArray();
System.out.print("Tableau après la saisie: ");
stats.displayArray();
stats.computeValues();
System.out.print("Tableau après le calcul: ");
stats.displayArray();
}
}
Voilà... Dans l'attente de ton code complet,
++
Merci pour ton aide.
je suis en train de corriger le code.je tenverrai dici là ce que jorais finalisé.
je suis en train de corriger le code.je tenverrai dici là ce que jorais finalisé.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
/**
*
* @author arn
*/
import java.util.Scanner;
public class Statistics {
final int ARRAY_LEN = 5; // nombre max d'éléments du tableau
int [] numbers = new int[ARRAY_LEN];
// remplit le tableau avec des valeurs saisies à la console
private void fillArray() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LEN; i++) {
numbers[i] = scanner.nextInt();
}
scanner.close();
}
// affiche le contenu du tableau à la console
public void displayArray() {
for (int i = 0; i < ARRAY_LEN; i++) {
System.out.print(numbers[i] + ", ");
}
System.out.println();
}
public void MaxValues() {
int i; // position pour placer le minimum
int j; // index pour trouver le minimum
int jmin; // position trouvee du minimum
int y; // variable utlisé pour l'échange du minmun
for( i=0 ; i<ARRAY_LEN-1 ; i++) {
jmin=i; // choisi le plus petit élément du tableau [i..N-1]
for( j=i+1 ; j<ARRAY_LEN ; j++) {
if( numbers[j] < numbers[jmin] ) jmin = j;
}
// numbers[jmin] est le minimum, on échange avec numbers[i]
if( jmin != i ) {
y=numbers[jmin]; numbers[jmin]=numbers[i]; numbers[i]=y;}
}
}
public void MinValues() {
//pour trouver trouvons le maximun
int i; // position pour placer le maximum
int j; // index pour trouver le maximum
int jmax; // position trouvee du maximum
int z; // variable utlisé pour l'échange du minmun
for( i=0 ; i<ARRAY_LEN-1 ; i++) {
jmax=i; // choisi le plus grand élément du tableau [i..N-1]
for( j=i+1 ; j<ARRAY_LEN ; j++) {
if( numbers[j] < numbers[jmax] ) jmax = j;
}
// numbers[jmax] est le minimum, on échange avec numbers[i]
if( jmax != i ) {
z=numbers[jmax]; numbers[jmax]=numbers[i]; numbers[i]=z; }
}
}
public void MoyValues() {
int moy=0;
for (int i = 0; i < ARRAY_LEN; i++) {
moy=(moy +numbers[i])/ARRAY_LEN;
}
}
public void ExmValues() {
int exm=0;
for (int i = 0; i < ARRAY_LEN; i++) {
exm=(exm + i*numbers[i])/ARRAY_LEN;
}
}
public static void main(String[] args) {
Statistics stats = new Statistics();
System.out.print("Tableau avant la saisie: ");
stats.displayArray();
stats.fillArray();
System.out.print("Tableau après la saisie: ");
stats.displayArray();
System.out.print("Tableau après le calcul: ");
stats.MinValues();
System.out.print("la minimum est: ");
stats.MaxValues();
System.out.print("la maximum est: ");
stats.MoyValues();
System.out.print("la moyenne est: ");
stats.ExmValues();
System.out.print("l'ecart-type est: ");
}
}
Pour l'instant c'est là j'en suis dans le code je souhaiterais.je continu à l'amélioré mais je souhaite que jette un coup d'oeil pour pour des remarques.
1-pour la format du code en fait je suis entrain directement le code dans l'environnement NetBeans(JDK >1.5).
donc automatiquement j'écri le code il l'organise directement et enfin pour tenvoyé le code j'ai utilisé la balise code qui est tout a fait haut sur cette page.je pense que l'organisation doit être bien faite maintenant.
2-Ensuite les méthodes : MaxVAlues; MinValues Moyvalues et ExmValues doivent me permettre de trouver la valeur maxi; le mini ; la moyenne et enfin l'ecart type , mais je narrive pas à l'affiché malgré leur appel et mes sytem.out.println.
3- Pour le menu je cherche toujours les idées mais cava allé dici là.
merci et à tout suite
utilisé dansla main
Re,
C'est un départ, mais tu n'as pas fait de gros efforts... D'abord, conventions de nommage non digérées. Fais les choses sans précipitation mais bien !
public void MaxValues() {
veut dire quoi? Il est où, le verbe ? Et le nom d'une méthode doit commencer par une minuscule. Got it? Dans un autre ordre d'idées, tu as besoin d'une méthode te calculant la valeur maxi à appeler depuis ton main() ==> il te faut une valeur de retour. Je propose de modifier donc la signature de ta méthode de cette manière:
private int getMaxValue () {
Pas besoin de public si ce n'est pas nécessaire.
Je ne comprends rien à ton code (le corps de la méthode). Regarde, il est très simple:
et tu vas l'appeler depuis main() de cette manière:
OK ? Maintenant, pour le menu ce n'est pas difficile non plus: tu fais une boucle infinie qui affiche le menu avec des println() et qui lit la valeur rentrée par l'utilisateur (avec un Scanner); comparaison de la valeur saisie avec les valeurs du menu et exécution de l'action. Je te laisse commencer. Corrige également toutes les autres méthodes (sur le modèle de getMaxValue()) et poste le nouveau code.
++
C'est un départ, mais tu n'as pas fait de gros efforts... D'abord, conventions de nommage non digérées. Fais les choses sans précipitation mais bien !
public void MaxValues() {
veut dire quoi? Il est où, le verbe ? Et le nom d'une méthode doit commencer par une minuscule. Got it? Dans un autre ordre d'idées, tu as besoin d'une méthode te calculant la valeur maxi à appeler depuis ton main() ==> il te faut une valeur de retour. Je propose de modifier donc la signature de ta méthode de cette manière:
private int getMaxValue () {
Pas besoin de public si ce n'est pas nécessaire.
Je ne comprends rien à ton code (le corps de la méthode). Regarde, il est très simple:
private int getMaxValue() {
int temporary = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temporary < numbers[i]) {
temporary = numbers[i];
}
}
return temporary;
}
et tu vas l'appeler depuis main() de cette manière:
System.out.print("Tableau après la saisie: ");
stats.displayArray();
System.out.print("Valeur maximale: " + stats.getMaxValue());
OK ? Maintenant, pour le menu ce n'est pas difficile non plus: tu fais une boucle infinie qui affiche le menu avec des println() et qui lit la valeur rentrée par l'utilisateur (avec un Scanner); comparaison de la valeur saisie avec les valeurs du menu et exécution de l'action. Je te laisse commencer. Corrige également toutes les autres méthodes (sur le modèle de getMaxValue()) et poste le nouveau code.
++
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
/**
*
* @author arn
*/
import java.util.Scanner;
public class Statistics {
final int ARRAY_LEN = 5; // nombre max d'éléments du tableau
int [] numbers = new int[ARRAY_LEN];
// remplit le tableau avec des valeurs saisies à la console
private void fillArray() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LEN; i++) {
numbers[i] = scanner.nextInt();
}
scanner.close();
}
// affiche le contenu du tableau à la console
public void displayArray() {
for (int i = 0; i < ARRAY_LEN; i++) {
System.out.print(numbers[i] + ", ");
}
System.out.println();
}
private int getMaxValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp < numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public int getMinValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp > numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public float getMoy() {
float sum=0;
for(int i=0;i<ARRAY_LEN;i++){
sum+=numbers[i];
}
return sum/ARRAY_LEN;
}
public float getecartype(){
float exm=0.0f;
float moyenne=getMoy();
for(int i=1;i<ARRAY_LEN;i++){
exm+=(numbers[i]-moyenne)*(numbers[i]-moyenne);
}
return (float)Math.sqrt((double)(exm/ARRAY_LEN));
}
public static void main(String[] args) {
Statistics stats = new Statistics();
System.out.print("Tableau avant la saisie: ");
stats.displayArray();
stats.fillArray();
System.out.print("Tableau après la saisie: ");
stats.displayArray();
System.out.print("Tableau après le calcul: ");
stats.displayArray();
System.out.println("Valeur maximale est: " + stats.getMaxValue());
System.out.println("Valeur minimale est: " + stats.getMinValue());
System.out.println("Valeur moyenne est: " + stats.getMoy());
System.out.println("l'écart-type est: " + stats.getecartype());
}
}
Juste pour que tu jette un coup d'oeil.
voilà mon code.je l'ai testé jusqu'à ce niveau et ca marche(super,très ravis de votre aide).Mais je n'en ai pas fini.
Dans un premier temps je suis entrain d'écrire le menu dans le main().
Ensuite il me reste la méthode pour histogramme?je me demande s'il n'y a pas une fonction dans java défini dans la bibliothèque qui le fait.mais bon avec la description qui est faite dans lexo je pense qu'avec une méthode que je vai écris moi mêm je pourrai le faire(affichage de l'histogramme avec des *).
Merci bien
A tt suite pour le reste je le reposte dès que fini.
Merci
C'est OK, à quelques détails près (vais t'en faire part à la fin). Continue...
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
/**
*
* @author arn
*/
import java.util.Scanner;
public class Statistics {
final int ARRAY_LEN = 5; // nombre max d'éléments du tableau
int [] numbers = new int[ARRAY_LEN];
// remplit le tableau avec des valeurs saisies à la console
private void fillArray() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LEN; i++) {
numbers[i] = scanner.nextInt();
}
scanner.close();
}
// affiche le contenu du tableau à la console
public void displayArray() {
for (int i = 0; i < ARRAY_LEN; i++) {
System.out.print(numbers[i] + ", ");
}
System.out.println();
}
private int getMaxValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp < numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public int getMinValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp > numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public float getMoy() {
float sum=0;
for(int i=0;i<ARRAY_LEN;i++){
sum+=numbers[i];
}
return sum/ARRAY_LEN;
}
public float getecartype(){
float exm=0.0f;
float moyenne=getMoy();
for(int i=1;i<ARRAY_LEN;i++){
exm+=(numbers[i]-moyenne)*(numbers[i]-moyenne);
}
return (float)Math.sqrt((double)(exm/ARRAY_LEN));
}
public static void main(String[] args) {
Statistics stats = new Statistics();
System.out.print("Tableau avant la saisie: ");
stats.displayArray();
stats.fillArray();
System.out.print("Tableau après la saisie: ");
stats.displayArray();
System.out.print("Tableau après le calcul: ");
stats.displayArray();
System.out.println("Valeur maximale est: " + stats.getMaxValue());
System.out.println("Valeur minimale est: " + stats.getMinValue());
System.out.println("Valeur moyenne est: " + stats.getMoy());
System.out.println("l'écart-type est: " + stats.getecartype());
//création de la boucle avec utilisation for(1:N) et avec des if imbriqué pour tester
// les diddérentes valeurs du choix(1 à 5)
//maintenant comment répéré tous la valeur du choix et comparé
//celle qui sera conditionné dans structure if imbriqué
//voici les pritln
System.out.println("0 - (re)sasir valeurs");
System.out.println("1 - calculer et afficher le min" );
System.out.println("2 - calculer et afficher le max");
System.out.println("3 - calculer et afficher la moyenne" );
System.out.println("4 - idem pour l'écart-type");
System.out.println("5 - fin");
}
}
je nai pas encore la bonne solution.la boucle que jai écri et tese ne marche j'ai expliqué dans le code en commenté comment j'ai proccédé et cana marche peux-tu me donné d'autres directives pour que je le fasse.
Ensuite pour l'histogramme si je peux avoir des pistes ce serait bien.
merci bien
<code>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
/**
*
* @author arn
*/
import java.util.Scanner;
public class Statistics {
final int ARRAY_LEN = 5; // nombre max d'éléments du tableau
int [] numbers = new int[ARRAY_LEN];
// remplit le tableau avec des valeurs saisies à la console
private void fillArray() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LEN; i++) {
numbers[i] = scanner.nextInt();
}
scanner.close();
}
// affiche le contenu du tableau à la console
public void displayArray() {
for (int i = 0; i < ARRAY_LEN; i++) {
System.out.print(numbers[i] + ", ");
}
System.out.println();
}
private int getMaxValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp < numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public int getMinValue() {
int temp = numbers[0];
for (int i = 1; i < ARRAY_LEN; i++) {
if (temp > numbers[i]) {
temp = numbers[i];
}
}
return temp;
}
public float getMoy() {
float sum=0;
for(int i=0;i<ARRAY_LEN;i++){
sum+=numbers[i];
}
return sum/ARRAY_LEN;
}
public float getecartype(){
float exm=0.0f;
float moyenne=getMoy();
for(int i=1;i<ARRAY_LEN;i++){
exm+=(numbers[i]-moyenne)*(numbers[i]-moyenne);
}
return (float)Math.sqrt((double)(exm/ARRAY_LEN));
}
public static void main(String[] args) {
Statistics stats = new Statistics();
System.out.print("Tableau avant la saisie: ");
stats.displayArray();
stats.fillArray();
System.out.print("Tableau après la saisie: ");
stats.displayArray();
System.out.print("Tableau après le calcul: ");
stats.displayArray();
System.out.println("Valeur maximale est: " + stats.getMaxValue());
System.out.println("Valeur minimale est: " + stats.getMinValue());
System.out.println("Valeur moyenne est: " + stats.getMoy());
System.out.println("l'écart-type est: " + stats.getecartype());
//création de la boucle avec utilisation for(1:N) et avec des if imbriqué pour tester
// les diddérentes valeurs du choix(1 à 5)
//maintenant comment répéré tous la valeur du choix et comparé
//celle qui sera conditionné dans structure if imbriqué
//voici les pritln
System.out.println("0 - (re)sasir valeurs");
System.out.println("1 - calculer et afficher le min" );
System.out.println("2 - calculer et afficher le max");
System.out.println("3 - calculer et afficher la moyenne" );
System.out.println("4 - idem pour l'écart-type");
System.out.println("5 - fin");
}
}
je nai pas encore la bonne solution.la boucle que jai écri et tese ne marche j'ai expliqué dans le code en commenté comment j'ai proccédé et cana marche peux-tu me donné d'autres directives pour que je le fasse.
Ensuite pour l'histogramme si je peux avoir des pistes ce serait bien.
merci bien
</code>
Re,
Ben ça n'avance pas des masses =)
Je t'avais pourtant dit de faire une boucle infinie (tu peux le faire soit avec un
Malheureusement je n'ai plus le temps pour assurer la tite aide. Si tu ne t'en sors toujours pas, reposte sur "Programmation" une nouvelle discussion avec un lien vers ce thread (ceci pour une prise en charge plus rapide). Tu auras sûrement d'autres aides.
Bonne continuation
Ben ça n'avance pas des masses =)
Je t'avais pourtant dit de faire une boucle infinie (tu peux le faire soit avec un
while(true)soit avec un
for (;;)et à l'intérieur tu mets tes lignes println pour le menu suivies d'une lecteure de la valeur rentrée par l'utilisateur (tu utiliseras Scanner). Tu feras ensuite un switch..case sur la valeur rentrée pour pouvoir exécuter l'action demandée. Tu quitteras la boucle infinie via un break si l'utilisateur rentre la valeur 5 (=fin).
Malheureusement je n'ai plus le temps pour assurer la tite aide. Si tu ne t'en sors toujours pas, reposte sur "Programmation" une nouvelle discussion avec un lien vers ce thread (ceci pour une prise en charge plus rapide). Tu auras sûrement d'autres aides.
Bonne continuation