Másodfokú megoldóprogram, miért írja ki az x-ekre, hogy 'nem szám'? (C#)
using System;
class Program
{
static void Main()
{
double a = 0, b = 0, c = 0, disc = 0, x1 = 0, x2 = 0;
Console.WriteLine("Add meg az a, b és c értékét!");
Console.Write("a = ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("b = ");
b = Convert.ToDouble(Console.ReadLine());
Console.Write("c = ");
c = Convert.ToDouble(Console.ReadLine());
// (-b +- Sqrt(b*b - 4*a*c))/2
disc=b*b - 4*a*c;
x1 = (-b + Math.Sqrt(disc))/2*a;
x2 = (-b - Math.Sqrt(disc))/2*a;
Console.WriteLine("x1 = {0}\nx2 = {1}", x1, x2);
Console.ReadLine();
}
}
A négyzetgyökvonás a valós számok halmazán negatív számokra nem értelmezhető.
Vizsgáld meg a diszkrimináns előjelét, és ha negatív, akkor írd ki, hogy nincsenek valós gyökök! Ha ismered a komplex számokat, akkor kiszámíthatod külön a valós és külön a képzetes részüket. Mivel konjugáltak, ezért például x1-ben tárolhatod a valós részt, és x2-ben a képzetes rész abszolútértékét.
Egyébként pedig alkalmazhatod közvetlenül a megoldóképletet.
Teszem hozzá, hogy ha a = 0, akkor nem másodfokú az egyenlet.
És jól mondja, nem jó a megoldóképlet, nézz körül a precedencia témában, vagy próbáld meg leírni a megoldóképletet nem törtjelöléssel, hanem osztással (:).
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!