Probléme d'affichage
Résolu
zy choupinette
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
zy choupinette Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
zy choupinette Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai bien que qlq'un m'explique pk mon pgm ne s'affiche pas correctement en gros au lieu d'avoir des "TF,TD et TM" c'est des lignes "[Ljava.lang.String;@1242719c" qui se répète
merci
j'aimerai bien que qlq'un m'explique pk mon pgm ne s'affiche pas correctement en gros au lieu d'avoir des "TF,TD et TM" c'est des lignes "[Ljava.lang.String;@1242719c" qui se répète
merci
public class cocomo { static String[] module1 = new String[80]; static String[] module2 = new String[80]; static String[] module3 = new String[80]; static String[] module4 = new String[80]; static String TF ; static String TM; static String TD; public String[] affichage(){ for(int i = 0; i<=module1.length ; i++){ module1[i] = TF; module1[i+1] = TM; module1[i+2] = TD; i= i+3; } return module1; } public String[] affichage2(){ for(int i = 0; i<=module2.length ; i++){ module2[i] = TF; module2[i+1] = TF; module2[i+2] = TM; module2[i+3] = TM; module2[i+4] = TD; module2[i+5] = TD; i=i+6; } return module2;} public String[] affichage3(){ for(int i = 0; i<=module3.length ; i++){ module3[i] = TF; module3[i+1] = TF; module3[i+2] = TF; module3[i+3] = TM; module3[i+4] = TM; module3[i+5] = TM; module3[i+6] = TD; module3[i+7] = TD; module3[i+8] = TD; i=i+9; } return module3;} public String[] affichage4(){ for(int i = 0; i<=module4.length ; i++){ module4[i] = TF; module4[i+1] = TF; module4[i+2] = TF; module4[i+3] = TF; module4[i+4] = TM; module4[i+5] = TM; module4[i+6] = TM; module4[i+7] = TM; module4[i+8] = TD; module4[i+9] = TD; module4[i+10] = TD; module4[i+11] = TD; i=i+12; }return module4; } public static void main(String args[]){ for (int i = 0; i<=module1.length ; i++){ System.out.println(module4 + " "+ module3 + " " + module2 +" " + module1); } }}
A voir également:
- Probléme d'affichage
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Problème affichage page internet google chrome - Forum Téléphones & tablettes Android
- Pinterest problème affichage ✓ - Forum Réseaux sociaux
3 réponses
Quand tu fais System.out.println(module4); tu affiches le tableau, pas son contenu !
En fait "[Ljava.lang.String;@1242719c" correspond au résultat de la méthode toString par défaut des Object, composé d'une part du nom de la classe "[Ljava.lang.String;" (qui est la classe des tableaux de String), et d'autre part du hashCode de l'objet...
Bref, ce que tu veux toi c'est afficher les cases du tableau, tu devrais donc utiliser une méthode qui lit les cases une à une pour les afficher, par exemple en utilisant la méthode Arrays.toString(module4).
Remarque : sur le reste de ton code je te déconseille fortement d'utiliser des variables static globales comme tu le fais, ce n'est pas propre ! De plus tes boucles sont fausses...La confiance n'exclut pas le contrôle
En fait "[Ljava.lang.String;@1242719c" correspond au résultat de la méthode toString par défaut des Object, composé d'une part du nom de la classe "[Ljava.lang.String;" (qui est la classe des tableaux de String), et d'autre part du hashCode de l'objet...
Bref, ce que tu veux toi c'est afficher les cases du tableau, tu devrais donc utiliser une méthode qui lit les cases une à une pour les afficher, par exemple en utilisant la méthode Arrays.toString(module4).
System.out.printf(Arrays.toString(module4)+" "+Arrays.toString(module3)+" "+Arrays.toString(module2)+" "+Arrays.toString(module1));
Remarque : sur le reste de ton code je te déconseille fortement d'utiliser des variables static globales comme tu le fais, ce n'est pas propre ! De plus tes boucles sont fausses...La confiance n'exclut pas le contrôle
import java.util.Arrays; import java.math.*; public class Test { public static String[][] affichage(int module, int sz, String TF, String TM, String TD) { String[][] tab = new String[module][sz]; int k=0; for(int j=0; j<module;j++){ k=j+1; for (int i=0; i<sz; i++) { switch((i/k)%3) { case 0: tab[j][i] = TF; break; case 1: tab[j][i] = TM; break; case 2: tab[j][i] = TD; break; } } } int s=0; return tab; } public static double[] duréT() { String[][] t=affichage(4,80,"TF","TM","TD"); double[] tab = new double[80]; int mo=0; int p=0; while(mo<4){ while(p<80){ if(t[mo][p]==t[mo+1][p]&& t[mo][p]==t[mo+2][p]&& t[mo][p]==t[mo+3][p]){ tab[p]=dur(1)*4; }else{ if(t[mo][p]==t[mo+1][p]|| t[mo][p]==t[mo+2][p]|| t[mo][p]==t[mo+3][p]){ tab[p]=dur(1)*2; } else{ tab[p]=dur(1)*3; } } p++; } } return tab; } public static double dur(int ta){ double f= 0.70*1.30*Math.pow(ta, 1.05); double d=2.5*Math.pow(f, 0.38); return d; } public static void main(String args[]){ double[] tab1 = new double[80]; for(int h=0; h<tab1.length; h++){ tab1=duréT(); System.out.println(tab1);} System.out.println(0.70*1.30*Math.pow(2, 1.05)); // affichage(4,80,"TF","TM","TD"); } }
voyez vs qlq chose qui cloche ds ce pgm ?
Oui. Entre autre la boucle infinie while (mo<4) alors que mo vaut toujours 0.
Puis tu auras un problème avec System.out.println(tab1); pour les même raisons que celles que j'avais expliqué dans mon premier message : afficher un tableau ce n'est pas pareil qu'afficher son contenu. Tu dois donc utiliser System.out.println(Arrays.toString(tab1));
Enfin, ta boucle for(int h=0; h<tab1.length; h++) me paraît inutile, tu répètes 80 fois la même chose.
Puis tu auras un problème avec System.out.println(tab1); pour les même raisons que celles que j'avais expliqué dans mon premier message : afficher un tableau ce n'est pas pareil qu'afficher son contenu. Tu dois donc utiliser System.out.println(Arrays.toString(tab1));
Enfin, ta boucle for(int h=0; h<tab1.length; h++) me paraît inutile, tu répètes 80 fois la même chose.
k est le nombre de fois que la valeur doit être répétée.
Exemple pour k=3 : 0/3=0, 1/3=0, 2/3=0, 3/3=1, 4/3=1, 5/3=1, 6/3=2, 7/3=2, 8/3=2.
On rajoute également %3 pour les valeurs suivantes : 9/3=3 → (9/3)%3=0, ce qui fait qu'on recommence un nouveau cycle 000111222000111222...
Après le switch permet juste de filtrer le résultat de la valeur calculée (0, 1 ou 2) pour mettre TF, TM, ou TD dans le tableau.