Tableau à 2 dimensions en C# [Résolu]

phildragon 6 Messages postés dimanche 12 avril 2009Date d'inscription 6 septembre 2009 Dernière intervention - 8 août 2009 à 06:56 - Dernière réponse : krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention
- 11 déc. 2009 à 12:04
Bonjour à tous,
Je voudrais créer, définir et afficher un tableau de caractère( soit the type "char") à 2 dimension, en C#. Je le fais sans problème en Java, mais C# qui est "soit disant" le jumeau de Java, la syntaxe semble différente pour le faire.
VOici mon exemple:
C#:
char[,] matrice = new char[3,3];
...
// soit i pour les rangées et j pour les //colonnes
for(int i=0; i < 3; i++ ){
for(int j=0; j < 3; j++)
matrice[i,j] = ' ';
}
...
// plutard quand je veux l'afficher

for(int i=0; i < 3; i++ ){
for(int j=0; j < 3; j++)
Console.Write(matrice[i,j] + "\t");
}
--> Le programme plante.

Merci infiniment de votre attention.
Salutations.

Phil Dragon
Afficher la suite 

6 réponses

Répondre au sujet
Minotthor 72 Messages postés vendredi 16 mai 2003Date d'inscription 12 août 2009 Dernière intervention - 8 août 2009 à 20:29
+3
Utile
C# distingue tableaux à plusieurs dimensions et tableaux déchiquetés.

Pour le tableau à deux dimensions c'est :
char [,] CharArray;

Pour le tableau déchiqueté à deux niveaux c'est :
char [][] CharArray;


Pour les tableaux à plusieurs dimensions, tu as une propriété int Rank pour le nombre de dimensions et GetLength (int) pour obtenir la longueur dans la dimension considérée.

Par exemple, pour énumérer la longueur de CharArray par dimensions croissantes :
char[,,,,] CharArray = new char[5, 8, 5, 7, 8];
for (int i = 0; i < CharArray.Rank; i++)
Console.WriteLine (CharArray.GetLength (i));
Console.ReadLine ();


Pour les tableaux déchiquetés, tu dois parcourir les éléments du tableaux. Si tu ne connais pas le rang, tu n'échapperas pas à une fonction récursive. Sinon tu peux faire :
char[][] JaggedCharArray = new char[][]
{
new char[] {'a'},
new char[] {'a', 'b'},
new char[] {'a', 'b', 'c'}
};
foreach (char[] ACharArray in JaggedCharArray)
Console.WriteLine (ACharArray.Length);
Console.ReadLine ();


Mathieu.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Minotthor
anibro 7 Messages postés lundi 7 décembre 2009Date d'inscription 14 décembre 2009 Dernière intervention - 11 déc. 2009 à 11:03
+1
Utile
bonjour les amis pouvez-vous indiquer à un débutant comment déclrarer, afficher un tableau et récupérer ses données afin de les utiliser après
je vous remercie d'avance.
Commenter la réponse de anibro
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 11 déc. 2009 à 12:04
+1
Utile
Tu te rends bien compte qu'il y a des tonnes d'exemples sur Internet ? Tu te rends compte également qu'il y en a dans mon exemple que j'ai fait pour toi dans ce post ? Tu te rends compte enfin qu'il y a même des exemples sur CE post-ci ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Commenter la réponse de krimog
phildragon 6 Messages postés dimanche 12 avril 2009Date d'inscription 6 septembre 2009 Dernière intervention - 8 août 2009 à 19:48
0
Utile
Merci, j'ai réussi à le faire fonctionner dans une program plus imple, mais pas dans mon projet. En passant, je ne sais pas si vous savez programmer en Java, mais en Java, pour savoir la longueure d'une rangée c'est matrice.length et d'une colonne c'est matrice[0].length (la valeur de l'indice peut etre 0, 1, 2, ... ou n-1).

En C#, je ne sais pas si Matrice.Lentgh veux dire la même chose et je ne sais pas la syntaxe pour trouver le nombre des colonnes.

J'ai du mettre une valeur pour faire tourner la boucle.
Merci infiniment de votre attention.

Salutations.

Phil Dragon
Commenter la réponse de phildragon
phildragon 6 Messages postés dimanche 12 avril 2009Date d'inscription 6 septembre 2009 Dernière intervention - 8 août 2009 à 22:56
0
Utile
Merci infiniment Mathieu!
Je vous dois une fière chandelle.

Philippe

Phil Dragon
Commenter la réponse de phildragon
Minotthor 72 Messages postés vendredi 16 mai 2003Date d'inscription 12 août 2009 Dernière intervention - 8 août 2009 à 10:22
-2
Utile
Et bien je sais pas comment tu fais ton compte, parce que chez moi ça marche.

char TestChar = (char)65;
char[,] Matrice = new char[3, 3];
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 3; j++)
        Matrice[i, j] = TestChar++;
}
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 3; j++)
    Console.Write (Matrice[i, j] + "\t");
} 
Console.ReadLine ();


Ceci affiche les 9 premiers caractères de l'alphabet entre des tabulations, sans problème apparent. Que veux-tu dire par "le programme plante" ? Levée d'exception ou plantage ?

Mathieu.
Commenter la réponse de Minotthor

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.