Intrusions dans le programme
simli
Messages postés
121
Statut
Membre
-
simli Messages postés 121 Statut Membre -
simli Messages postés 121 Statut Membre -
bonjour
je viens de commencer a m’exercer dans le C# et là je fais un petit prog de resolution d'équations de second degré dont voici le code
mais dès que je compile il apparait que cette equation n'admet pas de racines
-1
appuyez sur une touche pour continuer....
1- svp dites moi pourqui
2- le -1 là vien d'où?
merci
je viens de commencer a m’exercer dans le C# et là je fais un petit prog de resolution d'équations de second degré dont voici le code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static double racines(double a, double b, double c)
{ double det = b * b - 4 * a * c;
double x1 = (-b + Math.Sqrt(det)) / 2 * a;
double x2 = (-b - Math.Sqrt(det)) / 2 * a;
double x = (-b) / 2 * a;
if (det < 0)
Console.WriteLine("cette equation n'admet pas de racines");
if (det==0)
Console.WriteLine("cette equation admet une solution double qui est X= " + x);
return x;
if (det > 0)
Console.WriteLine("cette equation admet deux solutions distinctes qui sont: X1 = " + x1 + " et X2 = " + x2);
return x1+x2;
}
static void Main(string[] args)
{
double valeur = racines(1,2,4);
Console.WriteLine(valeur);
}
}
}
mais dès que je compile il apparait que cette equation n'admet pas de racines
-1
appuyez sur une touche pour continuer....
1- svp dites moi pourqui
2- le -1 là vien d'où?
merci
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Intrusions dans le programme
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
2 réponses
Bonjour,
Le -1 ? il vient de ta ligne :
qui retourne la valeur de X
Tu devrais plutôt écrire ton code ainsi :
Edit : correction de type sur la valeur de retour.
Cordialement,
Jordane
Le -1 ? il vient de ta ligne :
Console.WriteLine(valeur);
qui retourne la valeur de X
Tu devrais plutôt écrire ton code ainsi :
class Program
{
static double racines(double a, double b, double c)
{
string result="";
double det = b * b - 4 * a * c;
double x1 = (-b + Math.Sqrt(det)) / 2 * a;
double x2 = (-b - Math.Sqrt(det)) / 2 * a;
double x = (-b) / 2 * a;
if (det < 0)
result = "cette equation n'admet pas de racines";
if (det==0)
result = "cette equation admet une solution double qui est X= " + x;
if (det > 0)
result = "cette equation admet deux solutions distinctes qui sont: X1 = " + x1 + " et X2 = " + x2;
return result;
}
static void Main(string[] args)
{
string valeur = racines(1,2,4);
Console.WriteLine(valeur);
}
}
Edit : correction de type sur la valeur de retour.
Cordialement,
Jordane
Bonjour
Tu es sûr de ta formule ? Moi j'aurais mis
En en calculant la racine carrée de det avant d'avoir vérifié son signe, es-tu bien conscient de ce que tu fais ?
double x1 = (-b + Math.Sqrt(det)) / 2 * a;
Tu es sûr de ta formule ? Moi j'aurais mis
/ 2 / aou
/ (2 *a).
En en calculant la racine carrée de det avant d'avoir vérifié son signe, es-tu bien conscient de ce que tu fais ?
sa racine carrée est un nombre complexe
C'est bien ce que je pensais, tu n'es pas conscient de ce que tu fais.
D'après la doc de C#, la racine carrée d'un nombre négatif c'est la valeur spéciale NaN (Not a Number).
https://docs.microsoft.com/fr-fr/dotnet/api/system.math.sqrt?redirectedfrom=MSDN&view=netframework-4.8
C'est bien ce que je pensais, tu n'es pas conscient de ce que tu fais.
D'après la doc de C#, la racine carrée d'un nombre négatif c'est la valeur spéciale NaN (Not a Number).
https://docs.microsoft.com/fr-fr/dotnet/api/system.math.sqrt?redirectedfrom=MSDN&view=netframework-4.8
stp g fais donc comment pour lire les valeurs?
https://www.microsoft.com/en-us/download/details.aspx?id=55979
Sinon tu ne pourras pas lire séparément X1 et X2
Langage C# ....;
https://www.microsoft.com/en-us/download/details.aspx?id=55979
Sachant qu'après... pour "récupérer" ces valeurs ... tu ne peux plus simplement en faire un Console.WriteLine ...
vu que ce n'est plus du "text" mais un ARRAY !