Laden...

Forenbeiträge von EDU Ingesamt 4 Beiträge

04.12.2006 - 20:52 Uhr

Hallo Talla,

vielen Dank für die Antwort. Diese bringt mich meiner Lösung auf jedenfall ein großen stück näher.

04.12.2006 - 20:14 Uhr

Ach so, er führt das Programm schon aus, nur wo eigentlich stehen sollte x1 = 5 also die erste Nullstelle schreibt er x1 = n. def.

Aber das Programm wird ja ausgeführt somit gibt er mir keinen Zeilenfehler an.

04.12.2006 - 20:05 Uhr

Hallo herbivore,

tut mir leid dass ich so ungeschickt poste (bin halt recht "unerfahren").

der Fehler müsste hier irgendwo sein

aber genau weiß ich das ja auch nicht, sonst hätte ich den blöden fehler schon behoben. Kann es sein, dass die Zahlen die aus der Wurzel kommen einfach zu lang sind für die Zahl im double Format?


else
              
                if (diskriminante == 0)
                
                {
                    x = -db / 2 * da;

                    Console.WriteLine("Es gibt nur eine Lösung welche da lautet: x= " + x);
                }
                else
                {
                    if (diskriminante > 0) ;
                    {
                        x1 = (-db - Math.Sqrt(db * db - 4 * da * dc)) / 2 * da;
                        x2 = (-db + Math.Sqrt(db * db - 4 * da * dc)) / 2 * da;

                        Console.WriteLine("Die beiden Lösungen lauten: x1= " + x1 + " x2= " + x2);
                    }

                    if (diskriminante < 0)
                    {
                        double Re;
                        double Im;
                        Im = Math.Sqrt(db * db - 4 * da * dc) / 2 * da;
                        Re = -db / (2 * da);
                        Console.WriteLine("Es gibt zwei konjugiert komplexe Lösungen:");
                        Console.WriteLine("{0,10:F3} +-j {1,10:F3}", Re, Im);

                        

                    }
                }
            Console.ReadLine();
        }
      
    }
}

04.12.2006 - 19:33 Uhr

Hallo zusammen,

mit C# kenne ich mich sogut wie garnicht aus.

An der FH sollten wir ein Programm mit C# schreiben, welches die Nullstellen einer Quadratischen Funktion berechnet. Allerdings bekomme ich immer eine Fehlermeldung sobald er in den Bereich kommt in welchem die Diskriminante zu berücksichtigen ist. Da gibt er mir als Ergebnis immer n. def. an.

Für Eure Hilfe danke ich euch jetzt schonmal.

Freundliche Grüße

EDU

Hier mal der gesamte Text.


using System;


namespace Funktion
{
    class Program
    {
        static void Main()
        {
            string a;
            string b;
            string c;
            double x1;
            double x2;
            double diskriminante=0;
            double x=0;

            Console.WriteLine("Bitte geben Sie den Wert für a ein:");
            a = Console.ReadLine();
            double da;
            da = Convert.ToDouble(a);

            Console.WriteLine("Bitte geben Sie den Wert für b ein:");
            b = Console.ReadLine();
            double db;
            db = Convert.ToDouble(b);

            Console.WriteLine("Bitte geben Sie den Wert für c ein:");
            c = Console.ReadLine();
            double dc;
            dc = Convert.ToDouble(c);

            diskriminante = Math.Sqrt(db * db - 4 * da * dc);

            if (da == 0)
            {
                if (db == 0)
                {
                    if (dc == 0)

                        Console.WriteLine("Jedes X ist eine Lösung");

                    else

                        Console.WriteLine("Es gibt keine Lösung");
                }

                else
                    x = -dc / db;

                Console.WriteLine("Es gibt nur eine Lösung welche da lautet: x= " + x);
            }

            else
               
                if (diskriminante == 0)
                
                {
                    x = -db / 2 * da;

                    Console.WriteLine("Es gibt nur eine Lösung welche da lautet: x= " + x);
                }
                else
                {
                    if (diskriminante > 0) ;
                    {
                        x1 = (-db - Math.Sqrt(db * db - 4 * da * dc)) / 2 * da;
                        x2 = (-db + Math.Sqrt(db * db - 4 * da * dc)) / 2 * da;

                        Console.WriteLine("Die beiden Lösungen lauten: x1= " + x1 + " x2= " + x2);
                    }

                    if (diskriminante < 0)
                    {
                        double Re;
                        double Im;
                        Im = Math.Sqrt(db * db - 4 * da * dc) / 2 * da;
                        Re = -db / (2 * da);
                        Console.WriteLine("Es gibt zwei konjugiert komplexe Lösungen:");
                        Console.WriteLine("{0,10:F3} +-j {1,10:F3}", Re, Im);

                        

                    }
                }
            Console.ReadLine();
        }
       
    }
}