Besoin d'aide concernant le C# (svp urgent)

Fermé
angelique1 Messages postés 81 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 18 septembre 2014 - 1 nov. 2010 à 12:04
mickeyjuve Messages postés 130 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 3 août 2011 - 23 nov. 2010 à 08:54
Bonjour, tout le monde
voila je suis entrain d'apprendre c# et j'essaye d'écrire un programme qui résout une équation du 2eme degrés et sa ne veut pas marché et il me dit pas qu'il y a des erreur:le voila mon code source la classe qui fait le calcul la voila



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


namespace ConsoleApplication4
{
class Class1
{
int num1, num2, num3;

public Class1(int num1,int num2, int num3)
{
this.num1=num1;
this.num2=num2;
this.num3=num3;

}


public int getNum1()
{ return this.num1; }

public void setNum1(int num1)
{
this.num1 = num1;
}






public int getNum2()
{ return this.num2; }

public void setNum2(int num2)
{
this.num2 = num2;
}






public int getNum3()
{ return this.num3; }

public void setNum3(int num3)
{
this.num3 = num3;
}



public void Calcul()
{
int delta;
double sol1,sol2;
double racine;



if (this.num1 ==0)
{
if (this.num2 == 0)
{
if (this.num3 == 0)
{


Console.WriteLine("le système admet une infinité de solution");
}

else
{

Console.WriteLine("pas de solution");
}

}
else
{
delta = -this.num3 / this.num2;


Console.WriteLine("la solution et :" + delta);
}

}
else
{
delta = (this.num2 * this.num2) - 4 * this.num1 * this.num3;
racine = Math.Sqrt(delta);

if (delta > 0)
{
sol1 = (-this.num2 + racine / 2 * this.num1);
sol2 = (-this.num2 - racine / 2 * this.num1);



Console.WriteLine("les deux solution sont" + sol1 + "\n" + sol2);
}
if (delta == 0)
{
int sol = -this.num2 / 2 * this.num1;


Console.WriteLine("l'unique solution est" + sol);
}


}


}

}

}


et le programme principal est:

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

namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Class1 polynome = new Class1(4,5,6);
polynome.Calcul();
Console.ReadKey();

}
}
}



MERCI D'AVANCE SVP J'AI BESOIN DE VOTRE AIDE


5 réponses

mickeyjuve Messages postés 130 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 3 août 2011 17
2 nov. 2010 à 08:59
Bonjour,

Essaie de m'expliquer un peu quel est le but du programme exactement! Ca fait un bail que je n'ai plus fait de maths ;-)

Et un conseil, si je puis me permettre, evite de donner les memes noms au variables. il ne faut pas avoir 2 variables avec le meme nom (num1, num2...). Ca complique les choses. Mets plutot, num et n1, num2 et n2...

Je pense pouvoir t'aider,donc rappelle moi vite fait le calcul qu'il faut faire.

Bonne journee
0
angelique1 Messages postés 81 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 18 septembre 2014 10
2 nov. 2010 à 16:48
bonsoir

voila le principe c'est de résoudre une equation du 2eme degré(A*x^2+b*x+C)
qui veut dir calculer le delta qui est (b^2- 4*A*C)


ensuite on calcule la racine du delta après on trouvera les solution selon delta

si delta<0 l'équation admet une infinité de solution
delta>0 il admet de solution qui seront calculé comme c'est montrer un peut plus dans le programme



Moi mon problème n'est pas dans les math c comme ça mai dans la programmation


et l'erreur qui m'affiche les chemin des cette méthode ne retourne pas forcément une valeur ou un résultat

MERCI D'AVANCE
0
mickeyjuve Messages postés 130 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 3 août 2011 17
2 nov. 2010 à 22:44
Bonsoir,

J'ai essaye d'ecrire de moi meme ton programme pour voir comment faire exactement, le voici d'ailleurs (la class1):

namespace ConsoleApplication1
{
class Class1
{
private int num1, num2, num3;

public Class1(int n1, int n2, int n3)
{
num1 = n1;
num2 = n2;
num3 = n3;
}

public void Calcul()
{
int delta;
double sol1, sol2, racine;

//Si a, b et c sont de valeur nulle, il y a une infinité de solutions.
//Si tel est le cas, nous en informons l'utilisateur et terminons le programme.
if (num1 == 0 && num2 == 0 && num3 == 0)
{
Console.WriteLine("le système admet une infinité de solution");
return;
}

//Dans une équation de second degré, a ne peut être de valeur nulle!
//Si tel est le cas, nous en informons l'utilisateur et terminons le programme.
if (num1 == 0)
{
Console.WriteLine("a ne peut être égal à 0!");
return; ;
}


//A partir d'ici,nous calculons le delta, et les solutions éventuelles.
delta = (num2 * num2) - (4 * num1 * num3);
Console.WriteLine("Valeur de delta: " + delta.ToString());
Console.WriteLine("--------------------");

if (delta < 0)
{
Console.WriteLine("L'équation n'admet pas de solution réelle!");
}

if (delta == 0)
{
sol1 = -1 * (num2 / (2 * num1));
Console.WriteLine("Une seule solution: x = " + sol1.ToString());
}

if (delta > 0)
{
racine = Math.Sqrt(delta);
sol1 = ((-1 * num2) + racine) / (2 * num1);
sol2 = ((-1 * num2) - racine) / (2 * num1);
Console.WriteLine("2 solutions: x1 = {0}, x2 = {1}.", sol1, sol2);
}
}
}
}



Programme principal: le tien exactement.

Dis moi si cela te convient!

Bonne soiree :-)
0
mickeyjuve Messages postés 130 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 3 août 2011 17
3 nov. 2010 à 09:03
Bonjour,

J'ai regardé a nouveau ton programme. Il est correct.

La seule raison pour laquelle il ne te retourne pas de solutions, est, parce que avec
num1 = 4 , num2 = 5 , num3 = 6

le delta est negatif (-71), et tu n'as rien programmé pour un delta negatif!! Tu as écrit uniquement pour un delta positif ou nul!!

J'ai réessayé ton programme avec
num1 = 1 , num2 = 6 , num3 = 2

et cela fonctionne parfaitement! (x1 = -3.35 ; x2 = -8.6 )

Parfois, la soluition est tellement simple, on l'a juste sous les yeux, mais on ne la voit pas. ;-)

Bonne chance pour la suite.

Mais, comme je t'ai dit, pour te faciliter la tache, ne donne jamais le meme nom a des variables différentes dans la meme classe.

Bonne journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
angelique1 Messages postés 81 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 18 septembre 2014 10
22 nov. 2010 à 21:34
bonsoir
je voudrais vous remercié pour l'aide que vous m'avez apporté

et je voudrais savoir si vous avez de la documentation concernant le c#

et si je peut vous montrer mon programme qui est connexion d'un serveur a une base de donné oracl mon problème c'est la connexion ne se fait pas merci de votre
0
mickeyjuve Messages postés 130 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 3 août 2011 17
23 nov. 2010 à 08:54
Bonjour,

Premierement, je n'ai que 25 ans, donc ne me vouvoies pas. Je suis pas si vieux que ca :)

Ensuite, je peux eventuellement jeter un coup d'oeil a ton programme, bien que je n'ai encore jamais travaille avec Oracle, je ne pense pas que cela doit changer grand chose.

Tu veux me l'envoyer par mail?

Enfin, concernant la documentation, j'ai fait mes etudes a l'etranger donc tous mes bouquins sont en anglais. Si tu comprends l'anglais, il y en a un tres bon, c'est
"Pro C# 2008 and the .NET 3.5 Platform" de Andrew Troelsen, chez Apress (1350 pages!)


Bonne journee :)
0