Cześć!
Za zadanie mam napisać program który oblicza deltę równania kwadratowego za pomocą funkcji
double Delta(double a, double b, double c)
to akurat mam, również za pomocą funkcji oblicza ile równanie ma pierwiastków int IlePierwiastkow(double delta)
. Do ma wyświetlać cały zapis funkcji kwadratowe, czyli np jeżeli b=0 wyświetla tylko 4x^2 -1. (przy a=0 nie jest funkcją kwadratową), do tego przy 1 ma nie wyświetlać jedynki z przodu tylko samego x, jeśli nie podam wartości c, to bez c itp. można do tego napisać pewnie z 15-20 ifów ale myślę że da się to jakoś zrobić szybciej bez rozstrząsania każdego przypadku z osobna. Do tego wyświetla:
obliczoną deltę *to mam*
wyświetla informację o liczbie pierwiastków <-brak
wyświetla obliczone pierwiastki <- to mam, jednak gdy pierwiastek jest podwójny wyświetla mi go dwa razy a powinno jeden, gdy pierwiastków nie ma wyświetla się NaN
obsługuje wyjątki <- dołączyłem to, jednak nie wiem czy jest to obsługa wszystkich wyjątków o jakie może chodzić.
Zamieszczam program (tyle ile udało mi się zrobić z moimi umiejętnościami):
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Zad4
{
class Program
{
static double Delta(double a, double b, double c)
{
return Convert.ToDouble(b * b - 4 * a * c);
}
static void Main(string[] args)
{
double a, b, c, d, x1, x2;
try
{
Console.WriteLine("Podaj parametr a: ");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Podaj parametr b: ");
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Podaj parametr c: ");
c = Convert.ToDouble(Console.ReadLine());
if (Convert.ToDouble(a) == 0)
{
Console.WriteLine("To nie jest funkcja kwadratowa!");
}
x1 = -b + Math.Sqrt(b * b - 4 * a * c) / 2 * a;
x2 = -b + Math.Sqrt(b * b - 4 * a * c) / 2 * a;
Console.WriteLine("Pierwiastki wynoszą: " + x1 + x2);
Console.WriteLine("Wynik to: {0:G17}", Delta(Convert.ToDouble(a), Convert.ToDouble(b), Convert.ToDouble(c)));
}
catch (DivideByZeroException f)
{
Console.WriteLine(f.Message);
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
}
catch (Exception de)
{
Console.WriteLine(de.Message);
}
Console.ReadLine();
}
}
}