Wurzelberechnung c#

hi ich war mal dabei mir ein Programm zu berechnung der Quadratishen Gleichung in c# zu schreiben, hänge aber jetzt an der Wurzelberechnung =(
habe schon alles versucht auch gegoogled aber hat nichts gebracht
Code:
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double a, b, c;
            string x;
            double Wurzel;
            Wurzel = Math.Sqrt(2);
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = Convert.ToDouble(textBox3.Text);

            x = -b / a / 2 + Wurzel((b * b) / (a * a) / 4 - c / a);
            x = -b / a / 2 - Wurzel((b * b) / (a * a) / 4 - c / a);

            textBox4.Text = Convert.ToString(x);
        }
    }
}

so siehts bei mir aus:
Fehlermeldungen:
2 mal die gleiche :

"Wurzel" ist eine "Variable" wird aber wie eine "Methode" verwendet

kann mir da jemand weiterhelfen

danke schonmal im vorraus

Gruß Schnauf
 
Fraglicher code teil:
Code:
            Wurzel = Math.Sqrt(2);
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = Convert.ToDouble(textBox3.Text);

            x = -b / a / 2 + Wurzel((b * b) / (a * a) / 4 - c / a);
            x = -b / a / 2 - Wurzel((b * b) / (a * a) / 4 - c / a);
Ohne wirklich C# zu können:

Wurzel((b * b) funktioniert nicht, weil Wurzel keine Funktion ist - weiter oben weist du der Variablen Wurzel soagr einen Wert zu.

SOllte es nicht eher...

x = -b / a / 2 + Math.Sqrt((b * b) / (a * a) / 4 - c / a);
x = -b / a / 2 - Math.Sqrt((b * b) / (a * a) / 4 - c / a);
...heissen?
 
ne geht auch net

dann kommt die fehlermeldung
eine implizite Kovertierung von double in string ist nich möglich

aber trotzdem danke für den versuch
 
Original von Schnauf
ne geht auch net

dann kommt die fehlermeldung
eine implizite Kovertierung von double in string ist nich möglich

aber trotzdem danke für den versuch
Ja du musst logischerweise auch das Ergebnis deiner Berechnung in einen double schreiben...
Code:
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double a, b, c,x1,x2;

            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = Convert.ToDouble(textBox3.Text);

            x1 = -b / a / 2 + Math.Sqrt(((b * b) / (a * a) / 4 - c / a);
            x2 = -b / a / 2 - Math.Sqrt(((b * b) / (a * a) / 4 - c / a);

            textBox4.Text = Convert.ToString(x1);  //ausgabe von x1
        }
    }
}
aber alles vorbeten kann ich dir jetzt auch nicht... lies doch einfach die Fehlermeldung :/
 
Ich kann die Logik des Codes im Moment nicht überprüfen, aber Nicht Def kommt z.B. raus, wenn die Diskriminante (Term unter der Wurzel) kleiner als Null ist - Negative Zahlen haben kein Resultat wenn man die Wurzel zieht. Jedenalls nicht in den Zahlenräumen in denen du dich aufhälst.

Trifft dies also ein, hat deine Gleichung keine Lösungen.

Aber deine Lösungsformel stimmt nicht. Eher so:

Code:
x1 = (-b + sqrt(b^2 - 4*a*c))/(2*a)
x2 = (-b - sqrt(b^2 - 4*a*c))/(2*a)

Du must schon selber etwas probieren ;)
 
ok ich versuch noch bisschen aber deine jetztige lösung bring das gleiche ergebnis
hab aber noch bisschen was umgestellt
Code:
private void button1_Click(object sender, EventArgs e)
        {
            double a, b, c, x1, x2;
            string sx1, sx2;
           
            
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = Convert.ToDouble(textBox3.Text);

            x1 = (-b + Math.Sqrt((b * b) - 4 * a * c)) / (2 * a);
            x2 = (-b - Math.Sqrt((b * b) - 4 * a * c)) / (2 * a);


            sx1 = Convert.ToString(x1);
            sx2 = Convert.ToString(x2);

            textBox4.Text = Convert.ToString(sx1);
        }
 
ist eine windows form anwendung
3 eingabefelder und 1 ausgabefeld
zahlen sind individuell einsetztbar eig egal welche das prog soll ja nur das richtige ergebnis ausspucken
^^
x = -b / a / 2 + / - wurzel (b? / a? / 4 - c / a)

Edit: (Gleichung ist nach x aufgelöst)

gleichung gegoogled
(es geht um die berechnung der Nullstellen)
 
ähm...

Normalerweise liegt die Quad. Gleichung ja in der allgemeinen Form vor:
x^2 - 12x + 35 = 0

Dann kann man die Lösungsformel direkt anwenden, um die Nullstellen und somit die Lösungswerte der zwei Lösungen zu erhalten. Ich habe kurz ein AHK Script erstellt, welches funktioniert:
Code:
ret := quad_solve(1,-12,35)		;//x^2 - 12x + 35 = 0
msgbox % ret
exitapp

quad_solve(a,b,c){


	x1 := (-b + sqrt(b ** 2 - 4*a*c))/(2*a)
	x2 := (-b - sqrt(b ** 2 - 4*a*c))/(2*a)
	return, "x1 = " x1 "`n" "x2 = " x2 
}
 
Original von Schnauf
ja das bringt mich aber auch nicht weiter
ich brauchs ja für c#
Ich habe das Gefühl du hast keine Ahnung von C# bez. Programmierung im Allgemeinen?

Du hast nichts davon, wenn du hier ne fix fertige Lösung bekommst.


btw:
x = -b / a / 2 + / - wurzel (b? / a? / 4 - c / a)
Soll das die Gleichung sein? Nach x Aufgelöst ist sowie so n Witz; Wie soll das bitteschön gehen? Du erhällst ja mehre Lösungen.

Hast du es mal mit meiner Gleichung versucht?
 
ja ich habe es mit deiner Gleichung versucht, aber damit klappt es nicht
und ja ich habe noch nicht viel ahnung vom proggen aber ich lerne es ja noch.
Ich kann ja als fast anfänger nicht alles wissen. Deshlab frag ich ja nach. Ist das verboten?

und zu meiner Gleichung es sollen ja 2 Lösungen werden deshalb hab ich ja auch x1 und x2. Bei ner quadratischen Gleichung kommen IMMER 2 Lösungen raus


Edit:
mein CODE jetzt
Code:
private void button1_Click(object sender, EventArgs e)
        {
            double a, b, c, x1, x2;
            string sx1, sx2;
           
            
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = Convert.ToDouble(textBox3.Text);

            x1 = (-b + Math.Sqrt((b * b) - 4 * a * c)) / (2 * a);
            x2 = (-b - Math.Sqrt((b * b) - 4 * a * c)) / (2 * a);

            sx1 = Convert.ToString(x1);
            sx2 = Convert.ToString(x2);

            textBox4.Text = Convert.ToString(sx1);
            textBox5.Text = Convert.ToString(sx2);
        }
 
Original von SchnaufBei ner quadratischen Gleichung kommen IMMER 2 Lösungen raus

Ich denke, du meinst die Nullstelle, weil Lösungen gibt es meistens weit mehr. Auch stimmt das nur, wenn die Diskriminante (d.h. das unter der Wurzel) > 0 ist. Wenn sie gleich 0 ist, gibt es eine, bei kleiner 0 garkeine Nullstellen.
 
ja mein ich sry wenn ich mich falsch ausgedrückt habe

Edit:

hab den Fehler gefunden

die einzelnen punkte (a und b) durften nicht positiv sein da sonst keine nullstelle herauskommen konnte

und ich frag mich die ganze zeit warum

habs mal per hand ausgerechnet
also

Danke 90nop und Avenger



CLOSED
 
Zurück
Oben