Segítség program hibában?
Helo!
Elkezdtem önerőből C#-ot tanulni (egyetemen volt C++ de az már elég rég volt), viszont a kicsiny programom nem akar lefutni és nem tudom miért.
Jelenleg másodfokú függvényt akarok kiszámoltatni vele, de az istenért nem tudom rávenni hogy kiírja az eredményt, mindig NaN-t ír ki.
kép:
A kód maga így néz ki:
Console.WriteLine("3. Feladat:");
Console.WriteLine("Adja meg a kívánt adatokat az a*x^2 + b*x + c = 0 másodfokú egyenlet kiszámításához");
double a;
double b;
double c;
string A;
string B;
string C;
Console.WriteLine();
Console.WriteLine("Adja meg az 'a' értékét");
A = Console.ReadLine();
if (!double.TryParse(A, out a))
{
Console.WriteLine("Hibás paraméter!");
Console.WriteLine("A kilépéshez nyomjon meg egy gombot");
Console.ReadKey();
Environment.Exit(2);
}
Console.WriteLine();
Console.WriteLine("Adja meg a 'b' értékét");
B = Console.ReadLine();
if (!double.TryParse(B, out b))
{
Console.WriteLine("Hibás paraméter!");
Console.WriteLine("A kilépéshez nyomjon meg egy gombot");
Console.ReadKey();
Environment.Exit(3);
}
Console.WriteLine();
Console.WriteLine("Adja meg a 'c' értékét");
C = Console.ReadLine();
if (!double.TryParse(C, out c))
{
Console.WriteLine("Hibás paraméter!");
Console.WriteLine("A kilépéshez nyomjon meg egy gombot");
Console.ReadKey();
Environment.Exit(4);
}
double elso_resz;
elso_resz = Math.Sqrt(Math.Pow(b,2)-4*a*c)/(2*a);
double elso_x;
elso_x = -b / (2 * a) + elso_resz;
double masodik_x;
masodik_x = -b / (2 * a) + elso_resz;
Console.WriteLine("Az x1 értéke: "+ elso_x);
Console.WriteLine("Az x2 értéke: "+ masodik_x);
Console.WriteLine("A kilépéshez nyomjon meg egy gombot");
Console.ReadKey();
Tudom sok mindent lehetne rövidíteni static double-ökkel, de az jelenleg csak megzavarna :)
Előre is köszönöm a segítséget.
a=1, b=4, c=3-mal csináltam, azzal -1, -3 a végeredmény, ami végül ki is jön,
var szamolas_egy = Math.Pow(b, 2)-(4*a*c);
var szamolas_ketto = Math.Sqrt(szamolas_egy);
var x_egy = (-b - szamolas_ketto)/(2*a);
var x_ketto = (-b + szamolas_ketto) /(2*a);
var x_elso = Math.Round(x_egy , 2);
var x_masodik = Math.Round(x_ketto, 2);
Console.WriteLine("Az X1 értéke: {0}",x_elso);
Console.WriteLine("Az X2 értéke: {0}",x_masodik);
de most a mínuszt is beveszi, pl 1 4 -5 értékekkel kidobja a -5, 1 eredményt.
Köszi. Majd még alakítok rajta.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!