IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Copie de matrices


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 25
    Points
    25
    Par défaut Copie de matrices
    Bonjour,
    J'ai un petit souci avec un passage d'une matrice d'entiers en une matrice de caractère. Voila la situation : j'ai une matrice d'entier et je voudrais créer une deuxième matrice de caractère. Donc par exemple j'ai dans ma matrice d'entier le chiffre 8 et je voudrais faire afficher dans la matrice 2 une * par exemple... Après quelques recherches, j'ai trouvé qu'il y avait une solution en passant par : String.valueOf(monInt). J'arrive donc bien à afficher mon caractère mais je voudrais laisser les autres nombres tellesquelles... Auriez vous une idée ?

    Merci pour votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 25
    Points
    25
    Par défaut
    Voici mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    // Remplacement
     
    public class generaleatoirejustee{
        public static final int MAX= 20 ;
     
     
          public static void creation(int[][]mat){
          int i,j;
          int N=mat.length;
          int M=mat[0].length;
     
          for(i=0;i<N;i++){
              for(j=0;j<M;j++){
           System.out.print(mat[i][j]+"\t");
              }
                System.out.println();
            }
          }
          public static void remplissagemat(int[][]mat,int n,int m,int A){
          int i,j,cpt;      
    	cpt=0;
    	while(cpt!=A){
    		i=(int) (Math.random()*((n-1)+1));
    		j=(int) (Math.random()*((m-1)+1));
     
    	if (mat[i][j]==0){
    		mat[i][j]=(int) (Math.random()*(MAX+1));
    		cpt=cpt+1;
     
            }
          }
        }
     
    public static void remplacement(int[][]mat,int n,int m, int val){
     
    	if (mat[n][m]==0){
    		mat[n][m]=val;
           }
    }
     
     public static void afficher(int[][]mat){
          int i,j;
          int N=mat.length;
          int M=mat[0].length;
     
          for(i=0;i<N;i++){
              for(j=0;j<M;j++){
     
           System.out.print(mat[i][j]+"\t");
              }
                System.out.println();
            }
          }
    public static void afficherconversion(int[][]mat1,String[][]mat2,int N,int M,int i, int j){
          for(i=0;i<N;i++){
              for(j=0;j<M;j++){
    	if (mat1[i][j]>0) {
     
          mat2[i][j] = String.valueOf(mat1[i][j]);
    	}
    	else{
      switch (mat1[i][j]){
    	  case -1:
    		  mat2[i][j]= String.valueOf(-15);
    	  case -2 :
    		  mat2[i][j]= String.valueOf(-15);
    	System.out.print(mat2[i][j]+"\t");
              }
                System.out.println();
            }
      }
      }
      }
    //Programme principal.
      public static void main(String [] args){
      System.out.println("Taille du plateau en commencant par le nombre de lignes puis en second le nombre de colonnes");
      int N=Clavier.readInt();
      int M=Clavier.readInt();
    System.out.println(" nombre d'objets ");  
      int A= Clavier.readInt(); // A correspond au nombre d'objets voulu.
      int[][] mat1= new int[N][M];
     String[][] mat2= new String[N][M];
      System.out.println("Le plateau est le suivant :");
      remplissagemat(mat1,N,M,A);
    creation(mat1);
    System.out.println("Nombres de cases à remplacer");
      int nbre= Clavier.readInt();
    int cpt1;
    	cpt1=0;
    	while(cpt1!=nbre){
    System.out.println("Donnez la ligne et la colonne de la valeur que vous voulez remplacer :");
    int n= Clavier.readInt();
    int m= Clavier.readInt();
    System.out.println("Donnez la valeur à mettre :");
    int val = Clavier.readInt();
    remplacement(mat1,n,m,val);
    cpt1=cpt1+1;
    	}
    afficher(mat1);
    afficherconversion(mat2);
      }
    }
    Il y a un souci la seconde matrice qui est sensée afficher des caractères ne s'affiche pas. Je pense qu'il y a une erreur déjà là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (mat1[i][j]>0) {
     
          mat2[i][j] = String.valueOf(mat1[i][j]);
    	}
    	else{
      switch (mat1[i][j]){
    	  case -1:
    		  mat2[i][j]= String.valueOf(-15);
    	  case -2 :
    		  mat2[i][j]= String.valueOf(-15);
    Merci pour votre aide.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2005
    Messages : 102
    Points : 130
    Points
    130
    Par défaut
    Salut,

    C'est un truc comme ça que tu essayes de faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class generaleatoirejustee {
     
        public static void main(String[] args) {
            int[][] matrice = new int[][]{
                    {
                            65, 82, 121, 63}, {
                            92, 45, 109, 61}};
            char[][] matriceTrans = new char[matrice.length][matrice[0].length];
     
            for (int i = 0; i < matrice.length; i++) {
                for (int j = 0; j < matrice[0].length; j++) {
                    matriceTrans[i][j] = (char) matrice[i][j];
                    System.out.print(matriceTrans[i][j] + "  ");
                }
                System.out.print("\n");
            }
     
        }
     
    }
    Evidemment, il reste à paramétrer la matrice avec la saisie utilisateur, gérer les erreurs etc...

    A plus,
    Mathieu

Discussions similaires

  1. faire une copie de matrice
    Par SHILI1 dans le forum C++
    Réponses: 3
    Dernier message: 09/05/2013, 17h38
  2. [Débutant] Copie d'une ligne prédéfinie x fois dans une matrice
    Par franck34matlab dans le forum Images
    Réponses: 7
    Dernier message: 12/01/2013, 10h22
  3. copie de matrice
    Par alaninho dans le forum C++
    Réponses: 5
    Dernier message: 04/10/2012, 14h10
  4. boucle for, copie de matrice et concatenation
    Par Tibtib dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/03/2010, 17h18
  5. matrice et copie
    Par dev0077 dans le forum C++
    Réponses: 6
    Dernier message: 07/10/2007, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo