phildragon
Messages postés6Date d'inscriptiondimanche 12 avril 2009StatutMembreDernière intervention 6 septembre 2009
-
8 août 2009 à 06:56
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
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
anibro
Messages postés7Date d'inscriptionlundi 7 décembre 2009StatutMembreDernière intervention14 décembre 20093 11 déc. 2009 à 11:03
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.
Minotthor
Messages postés72Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention12 août 20092 8 août 2009 à 20:29
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 ();
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 11 déc. 2009 à 12:04
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é ! -
Minotthor
Messages postés72Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention12 août 20092 8 août 2009 à 10:22
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
phildragon
Messages postés6Date d'inscriptiondimanche 12 avril 2009StatutMembreDernière intervention 6 septembre 2009 8 août 2009 à 19:48
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.