Hejka,
Piszę program i zgubiłam się w pętli , użytkownik na zadane pytanie powinien odpowiedzieć t/n
t- zakończ program
n- wznowienie od nowa
Po uruchomieniu mojego kodu, "t" nie działa, konsola reaguje tak samo, jak "n". Dodatkowo pętla działa podwójnie.
Pomocy, jak to zmienić?
using System;
class Program
{
public static double a, b, c, ile_wynosi_delta, x1, x2;
public static void wprowadz()
{
Console.WriteLine("Podaj współczynniki równania kwadratowego \n");
a = 0;
b = 0;
c = 0;
Console.Write("a: ");
for (bool sprawdź = double.TryParse(Console.ReadLine(), out a); !sprawdź || a == 0; sprawdź = double.TryParse(Console.ReadLine(), out a))
{
if (sprawdź)
Console.WriteLine("Błąd! Aby funkcja była kwadratowa współczynnik musi być różny od 0!");
else
Console.WriteLine("Dopuszczalne są tylko liczby!");
}
Console.Write("b: ");
while (!double.TryParse(Console.ReadLine(), out b))
Console.WriteLine("Dopuszczalne są tylko liczby!");
Console.Write("c: ");
while (!double.TryParse(Console.ReadLine(), out c))
Console.WriteLine("Dopuszczalne są tylko liczby!");
}
public static double delta(double a, double b, double c)
{
ile_wynosi_delta = (b * b) - 4 * a * c;
Console.WriteLine("Delta wynosi: " + ile_wynosi_delta + " \n");
return ile_wynosi_delta;
}
public static void x()
{
if (ile_wynosi_delta == 0)
{
x1 = x2 = -b / (2 * a);
Console.WriteLine("Dla delty równej 0: \nx1 i x2 wynoszą: " + x1);
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
else if (ile_wynosi_delta > 0)
{
x1 = (-b - Math.Sqrt(ile_wynosi_delta)) / (2 * a);
x2 = (-b + Math.Sqrt(ile_wynosi_delta)) / (2 * a);
Console.WriteLine("Dla delty większej niż 0:\nx1 = " + x1 + " \nx2 = " + x2);
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
}
public static void ix()
{
double Re, Im;
if (ile_wynosi_delta < 0)
{
Re = (-b / (2 * a));
Im = (Math.Sqrt(-ile_wynosi_delta)) / (2 * a);
Console.WriteLine("Pierwiastki zespolone: ");
Console.WriteLine("" + Re + "-" + Im + "i");
Console.WriteLine("" + Re + "+" + Im + "i");
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
}
static void Main(string[] args)
{
wprowadz();
Console.WriteLine(a + " " + b + " " + c);
delta(a, b, c);
x();
ix();
Char t;
do
{
Console.WriteLine("Czy chcesz zakończyć program? !! Naciśnij (T/N) :-");
t = Convert.ToChar(Console.ReadLine());
} while (t.Equals(Char.Parse("N")));
Console.WriteLine("Podaj współczynniki równania kwadratowego \n");
a = 0;
b = 0;
c = 0;
Console.Write("a: ");
for (bool sprawdź = double.TryParse(Console.ReadLine(), out a); !sprawdź || a == 0; sprawdź = double.TryParse(Console.ReadLine(), out a))
{
if (sprawdź)
Console.WriteLine("Błąd! Aby funkcja była kwadratowa współczynnik musi być różny od 0!");
else
Console.WriteLine("Dopuszczalne są tylko liczby!");
}
Console.Write("b: ");
while (!double.TryParse(Console.ReadLine(), out b))
Console.WriteLine("Dopuszczalne są tylko liczby!");
Console.Write("c: ");
while (!double.TryParse(Console.ReadLine(), out c))
Console.WriteLine("Dopuszczalne są tylko liczby!");
ile_wynosi_delta = (b * b) - 4 * a * c;
Console.WriteLine("Delta wynosi: " + ile_wynosi_delta + " \n");
{
if (ile_wynosi_delta == 0)
{
x1 = x2 = -b / (2 * a);
Console.WriteLine("Dla delty równej 0: \nx1 i x2 wynoszą: " + x1);
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
else if (ile_wynosi_delta > 0)
{
x1 = (-b - Math.Sqrt(ile_wynosi_delta)) / (2 * a);
x2 = (-b + Math.Sqrt(ile_wynosi_delta)) / (2 * a);
Console.WriteLine("Dla delty większej niż 0:\nx1 = " + x1 + " \nx2 = " + x2);
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
}
{
double Re, Im;
if (ile_wynosi_delta < 0)
{
Re = (-b / (2 * a));
Im = (Math.Sqrt(-ile_wynosi_delta)) / (2 * a);
Console.WriteLine("Pierwiastki zespolone: ");
Console.WriteLine("" + Re + "-" + Im + "i");
Console.WriteLine("" + Re + "+" + Im + "i");
Console.WriteLine("Wzór funkcji kwadratowej: " + a + "x^2 + " + b + "x + " + c);
}
{
wprowadz();
Console.WriteLine(a + " " + b + " " + c);
delta(a, b, c);
x();
ix();
System.Environment.Exit(1);
}
}
}