C# tableau

Fermé
volcom20 - 5 janv. 2009 à 22:49
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 6 janv. 2009 à 08:21
allo,
je doit créer une application console permettant de saisir des statistique sur le hockey
pour chaque équipe l'utilisateur entre le nombre de victoires , de défaites et de nulles.
une fois le tableau saisit je doit réécrire le résultat à l'écran de la facon suivante

équipe PJ victoires défaites nulles PTS

1 3 1 0 2 4


et ce pour 5 équipes avec le total de parties joué de victoire de défaites de nulles et de points

j'ai débuté comme cela :


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace execice_5

{

class Program

{

static void Main(string[] args)

{

// tableau

int[,] tabequipe = new int[5, 5];

int[] tabtotaux = new int[5];

int ligne,colonne;

Console.WriteLine("équipe pj victoires défaites nulle pts");



for (colonne = 0; colonne <= tabequipe.GetUpperBound(1); colonne++)

{

Console.WriteLine(" {0} ",colonne);

for (ligne = 0; ligne <= tabequipe.GetUpperBound(0); ligne++)

{

Console.SetCursorPosition(10, 10);

Console.Write("victoires équipe {0}:",colonne);

Console.ReadLine(tabequipe[ligne,colonne]);


}

}

Console.ReadLine();

}

}

}




je ne suis pas capable de cibler l'erreur dans :


Console.ReadLine(tabequipe[ligne,colonne]);

1 réponse

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
6 janv. 2009 à 08:21
Voici un exemple :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static int Main(string[] args)
        {
            int[,] tableEquipe = new int[5,5];

            Console.Write("Entrez une valeur a mettre dans la table équipe : ");
            try
            {
                tableEquipe[1, 3] = Int32.Parse(Console.ReadLine());
            }
            catch (FormatException e)
            {
                //Console.WriteLine(e);
                Console.WriteLine("\nVous devez entrer un nombre !");
                Console.ReadLine();
                return 1;
            }
            catch (OverflowException e)
            {
                //Console.WriteLine(e);
                Console.WriteLine("Vous avez entrer un nombre trop grand.");
                Console.ReadLine();
                return 2;
            }
            
            Console.WriteLine("Valeur enregistrée.\n");

            Console.WriteLine("Récupération de la valeur : " + tableEquipe[1, 3]);
            Console.WriteLine("\n\nAppuyez sur ENTER pour quitter.");
            Console.ReadLine();
            return 0;
        }
    }
}


Si tu fait des return comme moi pour quitter le programme en cas d'erreur (pas l'idéal), n'oublie pas de changer ton void main en int main.

Le try ... catch n'est pas obligatoire, juste pour gérer les mauvaises entrées par l'utilisateur.

Sinon Console.ReadLine() ne prend pas de paramètre, hors toi tu lui passe comme paramètre une valeur de ton tableau. Pour affecter le résultat de Console.ReadLine() dans ton tableau tu dois mettre tableau[i,j] = Console.ReadLine();
Aussi comme ton tableau est un tableau d'entiers, et que le ReadLine retourne une chaîne de caractères, tu dois parser celle ci : tableau[i,j] = Int32.Parse(Console.ReadLine());
Cette méthode peut retourner des erreurs en fonction de ce que l'on y entre (impossible de parser salut en nombre par exemple), celles-ci sont gérées (de façon lamentable ici ^^) dans le try catch.

Bonne continuation.
2