Il y a un bug dans le code que je n'arrive pas à trouver, certaines variables ne fonctionnent pas d'une manière ou d'une autre.
L'avertissement que je reçois :
CS0649 Le champ "Calculs.A" n'est jamais attribué et aura toujours sa valeur par défaut 0 ABC-Formule [path]. \Calculations.cs
CS0649 Le champ "Calculs.B" n'est jamais attribué et aura toujours sa valeur par défaut 0 ABC-Formule [path]. \Calculations.cs
CS0649 Le champ "Calculs.C" n'est jamais attribué et aura toujours sa valeur par défaut 0 ABC-Formule [path]. \Calculations.cs
Code : Programme.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ABC_Formule
{
class Program
{
static void Main(string[] args)
{
bool keepGoing = true;
while (keepGoing)
{
//Definieren strings gebruikt in Main
string a;
string b;
string c;
string keepGoingString;
string discriminantString;
double aDouble;
double bDouble;
double cDouble;
double discriminantValue;
double singleX;
double doubleX1;
double doubleX2;
//Vraag de user om input
Console.WriteLine("Welkom bij de ABC-Calculator. Gemaakt door Luciano Nooijen.");
Console.WriteLine("Zorg voor een correcte invoer. De opbouw van een formule is ax^2 + bx + c.");
Console.WriteLine("");
Console.WriteLine("Vul de juiste variabelen in: (komma = ,)");
Console.Write("a: "); a = Console.ReadLine();
Console.Write("b: "); b = Console.ReadLine();
Console.Write("b: "); c = Console.ReadLine();
//Omzetten van string naar double
aDouble = Convert.ToDouble(a);
bDouble = Convert.ToDouble(b);
cDouble = Convert.ToDouble(c);
Console.WriteLine("a, b en c zijn: " + aDouble + ", " + bDouble + " en " + cDouble);
Console.WriteLine("");
//Invoeren getallen in berekenfunctie
Calculations berekeningen = new Calculations(aDouble, bDouble, cDouble);
//Discriminant berekenen
discriminantValue = berekeningen.Discriminant();
//Validatie discriminant en output
discriminantString = berekeningen.ValidDiscriminant();
if (discriminantString == "Gelijk") //Enkele output
{
singleX = berekeningen.OutputOnlyX();
Console.WriteLine("De discriminant is: " + discriminantValue);
Console.WriteLine("Het x-coördinaat is: " + singleX);
}
else if (discriminantString == "Groter") //Dubbele output
{
doubleX1 = berekeningen.OutputX1();
doubleX2= berekeningen.OutputX2();
Console.WriteLine("De discriminant is: " + discriminantValue);
Console.WriteLine("Het x1-coördinaat is: " + doubleX1);
Console.WriteLine("Het x2-coördinaat is: " + doubleX2);
}
else if (discriminantString == "Kleiner") //Geen snijpunt
{
Console.WriteLine("De discriminant is: " + discriminantValue + " en er is dus geen snijpunt met de x-as.");
}
else //Ongeldige invoer
{
Console.WriteLine("Ongeldige invoer");
}
//Vragen of gebruiker door wil gaan
Console.Write("Druk op enter om door te gaan, of druk op typ q om af te sluiten: "); keepGoingString = Console.ReadLine();
if (keepGoingString.Equals("q"))
{
keepGoing = false;
}
else
{
Console.WriteLine("");
Console.WriteLine("-----------------------------------------------------------");
Console.WriteLine("");
Console.Clear();
}
}
}
}
}
Calculs.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ABC_Formule
{
class Calculations
{
protected double A;
protected double B;
protected double C;
protected double DiscriminantValue;
public Calculations (double a, double b, double c)
{
double A = a;
double B = b;
double C = c;
}
public double Discriminant ()
{
DiscriminantValue = B*B-4*A*C;
return DiscriminantValue;
}
public string ValidDiscriminant()
{
if (DiscriminantValue < 0) //Geen uitkomst
{
return "Kleiner";
}
else if (DiscriminantValue == 0) //1 uitkomst
{
return "Gelijk";
}
else if (DiscriminantValue > 0) //Twee uitkomsten
{
return "Groter";
}
else //Bij fout
{
return "Error";
}
}
public double OutputOnlyX ()
{
return (-B + Math.Sqrt(DiscriminantValue) ) / (2 * A);
}
public double OutputX1 ()
{
return (-B - Math.Sqrt(DiscriminantValue)) / (2 * A);
}
public double OutputX2 ()
{
return (-B + Math.Sqrt(DiscriminantValue)) / (2 * A);
}
}
}