Tom's Guide > Forum > Programmation > Besoin d'aide: Matrice de caractères en Java

Besoin d'aide: Matrice de caractères en Java

Forum Programmation : Besoin d'aide: Matrice de caractères en Java

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

J'aimerais créer un programme en java qui affiche ceci:

+-----------------+
+ +
+ +
+-----------------+

J'ai le code suivant (qui biensûr ne fonctionne pas dutout comme je le souhaiterais):

char[][] tableau;
tableau=new char[hauteur][largeur];

for(i=0; i<hauteur; i++)
{

for(j=0; j<largeur; j++)
{
tableau[0][j]= '-';
tableau[i][0]= '+';

System.out.print(tableau[i][j]);
}
}

Pouvez-vous me dire svp ce qui cloche là dedans? J'ai beau le modifier, je n'obtiens pas le bon affichage.

Merci d'avance!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Oups: 2 "+" sont décalés, en réalité les caractères forment un rectangle...

Répondre à ourii

Tu obtiens quoi comme affichage ?

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Bonjour,

Ton code me semble "un peu confus".
1/ Tu veux seulement l'afficher le dessin (si oui, pourquoi stocker les caractères ceci dans une matrice ?)
2/ Tu oublies les retour à la ligne pour chaque ligne.
3/ Tu ne mets pas le symbole '+' pour les cases du type tableau[0][1]
4/ Fais attention, au départ, tu fais tableau[0][0]='-', et juste après ='+' !

Indice:
-Pour afficher la 1ere et la dernière, tu peux utiliser un code identique.
-Pour le "centre" de ton dessin, tu peux faire 2 boucles imbriquées pour afficher les 2 '+'

Bon courage, A+

------------------------------ Pour me remercier, allez faire un tour sur >>>Download Society<<<

La vie ne vaut rien mais rien ne vaut la vie...
Répondre à akred3

Bonjour, tout d'abord merci pour vos reponses... Depuis, voilà où j'en suis:

public class Laby
{
public static void main(String[] args)
{


/*Declaration des variables*/
int hauteur;
int largeur;


/*Recuperation des donnees*/
hauteur=Integer.parseInt(args[0]);
largeur=Integer.parseInt(args[1]);


char[][]tableauVide=new char[hauteur][largeur];

tableauVide= creerTableauVide(hauteur,largeur);
}

public static char[][] creerTableauVide(int h, int l)
{
int i,j;

for(i=0; i<h; i++)
{
for(j=0; j<l; j++)
{
if((j==0 && i==0) || (i==h-1 && j==l-1) ||(i==h-1 && j==0) || (i==0 && j==l-1)) System.out.print("+" );
else if ((i==0 && j!=0 && j!=l-1) || (i==h-1 && j!=0 && j!=l-1)) System.out.print("-" );
else if((j==0 && i!=0 && i!=h-1) || (j==l-1 && i!=0 && i!=h-1)) System.out.print("|" );
else System.out.print(" " );
}

System.out.println(" " );

}


}

}


Ma fonction creerTableauVide fonctionne très bien, j'obtiens le rectangle que je voulais. Sauf que je ne sais pas comment faire pour l'utiliser dans mon main, et quel devrait être mon "return"... Normalement je devrais mettre tous les caractères de mon rectangle dans "tableauVide[][]" mais là aussi je bloque...

Merci d'avance les programmeurs...

Répondre à ourii

Tu aurais du faire colonne puis ligne et non ligne puis colonne ca aurait été plus simple. Les colonnes sont plus "basique". Puisque tu as 2 colonnes juste de +

Répondre à SiM07

D'accord mais stp peux tu répondre à mes autres questions (celles de mon précédent post), juste en bas du code... merci d'avance!

Répondre à ourii

Voilà mon code:

public class Jeux
{
public static void main(String[] args)
{

int i,j;

int hauteur;
int largeur;


/*Recuperation des données*/
hauteur=Integer.parseInt(args[0]);
largeur=Integer.parseInt(args[1]);



char[][] tableauVide= new char[hauteur][largeur];

tableauVide= creerTableau(hauteur,largeur);
System.out.print("Voici le tableau: "+tableauVide);
}



public static char[][] creerTableau(int h, int l)
{

char[][] tab= new char[h][l];
int i,j;

for(i=0; i<h; i++)
{
for(j=0; j<l; j++)
tab[i][j]='*';

}

return tab;

}

}


Je voudrais biensûr qu'il m'affiche un rectangle plein d'étoiles. ça compile mais affiche ceci: Voici le tableau: [[C@12b6651

Que faire svp?

Répondre à ourii

Normal, tu affiches l'adresse mémoire là :) Si tu veux faire ce genre de chose, il faut que tu rajoute la méthode toString() à ta classe.

Répondre à SiM07
Tom's Guide > Forum > Programmation > Besoin d'aide: Matrice de caractères en Java
Aller à :

Il y a 219 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens