aide en c # sur une erreur CS01117

aide en c # sur une erreur CS01117 - C#/.NET managed - Programmation

Marsh Posté le 07-11-2006 à 20:38:19    

Bonsoir a tous  
 
voila je dois faire un programme en C# et il me met un message d'erreur ca serait sympa de m'éclairer  
d'abord le code et le souci se situe au niveau des variables et de la case 4 le message d'erreur error CS0118: 'System.Math' désigne 'classe' où 'variable' était attendu + error CS0117: 'System.Math' ne contient pas de définition pour 'round'
 

Code :
  1. using System;
  2. using System.Collections;
  3. using System.Text;
  4. namespace ConsoleApplication13
  5. {
  6. /// <summary>
  7. /// Description résumée de Class1.
  8. /// </summary>
  9. class Class1
  10. {
  11.  public System.Random rnd;
  12.   [STAThread]
  13.   static void Main(string[] args)
  14.   {
  15.    string str;
  16.    int choix=0,haut,larg,moy=0,nbq,nb1,nb2;
  17.    str = Console.ReadLine();
  18.    choix = int.Parse(str);
  19.    System.Random rnd;
  20.    int rezalea;
  21.    int rep;
  22.    long lng = Math;
  23.                        
  24.    while (choix != 5)
  25.    {
  26.     Console.Write("APPRENDS LES TABLES DE MULTIPLICATION" );
  27.     Console.WriteLine();
  28.     Console.Write("\n            1 - Veux tu voir la totalite des tables de multiplication ?" );
  29.     Console.Write("\n            2 - Veux tu voir une table particuliere ?" );
  30.     Console.Write("\n            3 - Veux tu reciter une table particuliere ?" );
  31.     Console.Write("\n            4 - Veux tu realiser un test de tes connaissances" );
  32.     Console.Write("\n            5 - Veux tu quitter le programme ?" );
  33.     Console.WriteLine();
  34.     Console.Write("Quel est ton choix ? : " );
  35.     str = Console.ReadLine();
  36.     choix = int.Parse(str);
  37.     switch (choix)
  38.     {
  39.       case 1:
  40.       for (haut = 1; haut < 11; haut++)
  41.       {
  42.        for (larg = 1; larg < 11; larg++)
  43.        {
  44.         Console.Write(haut + "*" + larg + "=" + haut * larg+"  " );
  45.         if (larg == 10)
  46.          Console.WriteLine();
  47.        }
  48.       }
  49.       break;
  50.      case 2:
  51.       Console.WriteLine();
  52.       Console.WriteLine();
  53.       Console.Write("Quelle Table ? " );
  54.       Console.WriteLine();
  55.       Console.WriteLine();
  56.       str = Console.ReadLine();
  57.       int table = int.Parse(str);
  58.       for (larg = 1; larg < 9; larg++)
  59.       {
  60.        Console.Write(table + "*" + larg + "=" + table * larg + "  " );
  61.       }
  62.       break;
  63.      case 4: //a peu pres pareil que le case 3 donc on reprend en partie
  64.       Console.WriteLine();
  65.       Console.WriteLine();
  66.       moy=0;
  67.       Console.Write("Combien De Questions Veux-Tu Dans Le Test ? " );
  68.                        
  69.       str = Console.ReadLine();
  70.       nbq = int.Parse(str); //nombre de question, servira a renvoyer une reponse sur 10
  71.       Console.WriteLine();
  72.       for (int k = 0; k < nbq; k++) //on fait une boucle du nombre de fois que l'eleve a demandé de question
  73.       {
  74.        nb1 = Math.round(rnd.NextDouble()*10); //chiffres aleatoires
  75.        nb2 = Math.round(rnd.NextDouble()*10);
  76.        rezalea = nb1*nb2;
  77.        Console.Write(nb1 + " * " + nb2 + " ? " );
  78.        str = Console.ReadLine();
  79.        rep = int.Parse(str);
  80.        if(rep == rezalea) //condition juste
  81.        {
  82.         Console.Write("                        Juste\n" );
  83.         moy++;
  84.        }
  85.        else //fausse
  86.        {
  87.         Console.Write("                        Faux     "+nb1 + " * " + nb2 +" = " +rezalea+"\n" );
  88.        }
  89.       }
  90.       moy = moy * 10 / nbq; //permet de renvoyer un score sur 10
  91.       Console.WriteLine();
  92.       Console.Write("Tu as eu "+moy+" sur 10." );
  93.       Console.WriteLine();
  94.       if(moy == 10)
  95.        Console.Write("Tres bien" );
  96.       else
  97.        if (moy == 9)
  98.        Console.Write("Bien" );
  99.       else
  100.        if (moy > 7 && moy < 8)
  101.        Console.Write("Assez Bien" );
  102.       else
  103.        if (moy > 5 && moy < 6)
  104.        Console.Write("Moyen" );
  105.       else
  106.        if (moy < 5)
  107.        Console.Write("A Revoir" );
  108.       Console.ReadLine();
  109.       break;
  110.     }
  111.    }
  112.   }
  113.  }
  114. }


 
merci a vous;)


Message édité par totom53 le 07-11-2006 à 20:42:20
Reply

Marsh Posté le 07-11-2006 à 20:38:19   

Reply

Marsh Posté le 07-11-2006 à 20:59:20    

on écrit "Round" et pas "round"


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-11-2006 à 21:04:38    

merci beaucoup ;) par contre il me met une erreur error CS0029: Impossible de convertir implicitement le type 'double' en 'int' pareil sur math.Round :s

Reply

Marsh Posté le 07-11-2006 à 21:17:14    

oui, normal... Math.Round() renvoit un double, et toi tu stockes ce qu'il te renvoie dans un int (nb1 et nb2)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-11-2006 à 21:26:10    

donc il faudrait que je la convertisse en quoi?

Reply

Marsh Posté le 07-11-2006 à 21:34:07    

il n'y a aucune conversion à faire... soit tu changes le type de nb1 et nb2 en double, soit tu utilises Random.Next() au lieu de Random.NextDouble() sur les lignes 86 et 87.
si le but est d'obtenir un nombre entier compris entre 1 et 10, alors ce code fait très bien l'affaire :

Code :
  1. nb1 = rnd.Next(10);
  2. nb2 = rnd.Next(10);


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed