C# : erreur System.Int32[,] ?
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

C# : erreur System.Int32[,] ?



  1. #1
    invitedd654e81

    C# : erreur System.Int32[,] ?


    ------

    Bonsoir (ou bonjour),

    Je tente de faire un programme permettant d'afficher un rectangle fait de lettres entrées par un utilisateur(de manière aléatoire bien entendu). Les proportions du rectangle sont également décidées par celui-ci.
    Voici le code que j'ai écrit :
    Code:
     public static Random alea = new Random(); 
    
            public static void Main()
            {
    
                Console.Write("Donnez le nombre de lignes   1..19 : ");
                int nbLignes = int.Parse(Console.ReadLine());
    
                Console.Write("Donnez le nombre de colonnes 1..39 : ");
                int nbColonnes = int.Parse(Console.ReadLine());
    
                Console.Write("Donnez le string de caractères: ");
                string caracteres = Console.ReadLine();
    
                int[,] matRectangle = new int[nbLignes, nbColonnes];
                for (int i = 0; i < matRectangle.GetLength(0); i++) {
                    for (int j = 0; j < matRectangle.GetLength(1); j++) {
                        char lettre = caracteres[alea.Next(0, caracteres.Length-1)];
                        matRectangle[ i, j ] = lettre;
                    }
                }
                Console.WriteLine(matRectangle);
    J'ai espacé un petit peu pour facilité la lecture. Bref, mon problème est que lorsque j'exécute ce code sur C# j'obtiens cette fenêtre :
    #########################
    Image hébergée sur serveur externe supprimée
    Merci de suivre ces consignes



    Qu'en pensez-vous ? Pour plus de précision : le char lettre correspond à une lettre aléatoire dans le mot entré par l'utilisateur, donc entre la position 0 et la position maximale (j'ai mis un -1 parceque la longueur du mot est toujours supérieure au chiffre de la dernière position, puisque l'on a 0 comment première position).

    Merci d'avance pour votre aide

    -----
    Dernière modification par Jack ; 29/10/2011 à 09h09.

  2. #2
    invite4492c379

    Re : C# : erreur System.Int32[,] ?

    Hello,

    il faudrait que tu repostes le scrrenshot ... mais je pense que le problème vient de Console.WriteLine(matRectangle ).
    Pour afficher le contenu d'un int[,] il va falloir le faire par une boucle similaire à celle que tu as écrite pour remplir matRectangle.
    Attention, l'affichage va te donner des nombres (int) pas des caractères ...

    Rappel : si Console.WriteLine a pour argument un objet qui n'est pas un type primitif ou char[] ou String, elle affichera simplement le résultat de la méthode ToString de l'objet considéré. Tout est expliqué sur http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx

  3. #3
    invitedd654e81

    Re : C# : erreur System.Int32[,] ?

    Merci ! suis-je bête, je pensais avoir créé une matrice de caractères. Bon, j'ai d'abord remplacé int[] par char[], et j'ai mis le console.write dans une boucle comme tu m'as dis et mon tableau s'affiche, mais toutefois il ne respecte les proportions indiquées par l'utilisateur :S
    Voici le code :

    Code:
               
                Console.Write("Donnez le nombre de lignes   1..19 : ");
                int nbLignes = int.Parse(Console.ReadLine());
    
                Console.Write("Donnez le nombre de colonnes 1..39 : ");
                int nbColonnes = int.Parse(Console.ReadLine());
    
                Console.Write("Donnez le string de caractères: ");
                string caracteres = Console.ReadLine();
    
                char[,] matRectangle = new char[nbLignes, nbColonnes];
                FabriqueMatriceRectangle(caracteres, matRectangle);
                
                for (int i = 0; i < matRectangle.GetLength(0); i++) {
                    for (int j = 0; j < matRectangle.GetLength(1); j++) {
                        char lettre = caracteres[alea.Next(0, caracteres.Length - 1)];
                        Console.Write("{0,4}",matRectangle[i, j]);
                    }
                    
                }
            } // fin méthode Main()
    
            private static void FabriqueMatriceRectangle(string caracteres, char[,] matRectangle) {
                
               for (int i = 0; i < matRectangle.GetLength(0); i++) {
                    for (int j = 0; j < matRectangle.GetLength(1); j++) {
                        char lettre = caracteres[alea.Next(0, caracteres.Length - 1)];
                        matRectangle[i, j] = lettre;
                    }
                }
            }
    et voici la fenêtre qui s'affiche si je choisis par exemple 10 lignes x 10 colonnes :
    Nom : Rectangle.png
Affichages : 389
Taille : 36,8 Ko

  4. #4
    invitedd654e81

    Re : C# : erreur System.Int32[,] ?

    C'est bon j'ai trouvé le problème : il fallait faire passer l'espacement de 4 à 2 dans les accolades à cause de la taille de la console.
    Merci encore pour ton aide, mon programme fonctionne bien !

  5. A voir en vidéo sur Futura
  6. #5
    invite4492c379

    Re : C# : erreur System.Int32[,] ?

    Bon ... la pj est toujours en attente de validation mais à vue de nez je dirais :

    * tu dois avoir un warning lors de la compilation dans ta fonction main
    * une fois que tu as affiché une ligne de ton tableau, il faut que tu envoies un retour chariot à la console ... sinon tu obtiens tout sur une ligne

  7. #6
    JPL
    Responsable des forums

    Re : C# : erreur System.Int32[,] ?

    Citation Envoyé par photon57 Voir le message
    Bon ... la pj est toujours en attente de validation
    Non, elle est validée.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    invite4492c379

    Re : C# : erreur System.Int32[,] ?

    je suis lent à la réflexion et à l'écriture ...

Discussions similaires

  1. Erreur de raisonnement, erreur logique ou erreur tout court?
    Par invite7f97ca01 dans le forum Epistémologie et Logique (archives)
    Réponses: 7
    Dernier message: 03/02/2010, 13h32
  2. system NAS
    Par invitedb346ccb dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 04/07/2009, 17h06
  3. process system a 50%
    Par invite2927189f dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 11
    Dernier message: 29/04/2009, 10h52
  4. system sec.4.51
    Par invite7fcc3b22 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 1
    Dernier message: 07/04/2009, 19h38
  5. system.ini
    Par invite3c59dc04 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 14/01/2003, 13h25