Eigenes Programm zum Wurzelziehen

MeeriMomo

Mitglied
Hallo,
Ich brauche eure Hilfe.

Ich muss als Hausaufgabe für Informatik ein Programm mit Gui schreiben, welches Die 1. Wurzel der eingegebenen Zahl zieht. und das in Visual Basic. Wir nutzen iner Schule und Ich Zuhause Microsoft Visual Studio 2008
Vorgaben sind: Textbox, Label, Button.
Ich wollte Die textbox zum eingeben der Zahl den Button zum Berechnen und das Label als Ausgabe der Wurzel.
Doch ich bekomme als ausgabe nur eine (0).

Mein btn_wurzelziehen Button code:
Code:
    Private Sub btn_wurzelziehen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_wurzelziehen.Click
        Dim Zahl As Double = txt_zahl.Text
        Dim Ergebnis As Double
        Dim Temp As Double
        Dim Tempklein As Double
        Dim Tempmittel As Double
        Dim Tempgroß As Double
        Tempgroß = Zahl / 2
        Tempklein = 0
        While Temp = Zahl
            Tempmittel = (Tempgroß + Tempklein) / 2
            Temp = Tempmittel * Tempmittel
            If Temp <= Zahl Then
                Tempklein = Tempmittel
            Else
                Tempgroß = Tempmittel
            End If
        End While
        Ergebnis = Tempmittel
        lbl_ergebnis.Text = Ergebnis

    End Sub
Das Label heißt lbl_ergebnis
Die Textbox heiß txt_zahl
Der Button heißt btn_wurzelziehen

Bitte helft mir?

MeeriMomo
 

Chumper

Erfahrenes Mitglied
wie wäre es denn mit sqr() und sqrt()?

B2T: "Temp" ist nicht definiert... deswegen gibs auch keine Whileschleife...
 

MeeriMomo

Mitglied
wie wäre es denn mit sqr() und sqrt()?

Weil wir die Funktion selber schreiben sollen, darum geht es ja primär in der Aufgabe

B2T: "Temp" ist nicht definiert... deswegen gibs auch keine Whileschleife...
Habe jetzt den Inhalt der While Schleife kopiert und davor gesetzt, jetzt bekomme ich zumindest ein Ergebnis, aber ein Falsches z.B. bei 9 müsste ja 3 rauskommen, es kommt aber 2,25 als ergebnis raus.

Woran kann das liegen?

p.s. Mein jetztieger Code
Code:
Private Sub btn_wurzelziehen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_wurzelziehen.Click
        Dim Zahl As Double = txt_zahl.Text
        Dim Ergebnis As Double
        Dim Temp As Double
        Dim Tempklein As Double
        Dim Tempmittel As Double
        Dim Tempgroß As Double
        Tempgroß = Zahl / 2
        Tempklein = 0

        Tempmittel = (Tempgroß + Tempklein) / 2
        Temp = Tempmittel * Tempmittel
        If Temp <= Zahl Then
            Tempklein = Tempmittel
        Else
            Tempgroß = Tempmittel
        End If

        While Temp = Zahl
            Tempmittel = (Tempgroß + Tempklein) / 2
            Temp = Tempmittel * Tempmittel
            If Temp <= Zahl Then
                Tempklein = Tempmittel
            Else
                Tempgroß = Tempmittel
            End If
        End While
        Ergebnis = Tempmittel
        lbl_ergebnis.Text = Ergebnis

    End Sub
 

Chumper

Erfahrenes Mitglied
Du musst nur "Temp" definieren und die Bedingung für die Whileschleife ändern.
Und zwar auf: "While Temp != Zahl"
 

MeeriMomo

Mitglied
Habe jetzt Temp definiert und die While Bedingung geändert,
doch ich bekomme bei der While Bedingung immer die Fehler Meldung "Bezeichner erwartet"

MeeriMomo
 

Chumper

Erfahrenes Mitglied
Du hast die Funktion doch geschrieben.
Du sagst doch, dass das Quadrat von "Tempmittel" "Temp" zugewiesen werden soll.
Dann prüfst du, ob "Temp" = "Zahl" ist.
Demzufolge muss mMn die Schleife solange durchlaufen werden, wie "Temp" <> "Zahl" ist.

€dit: Der Kopf der Whileschleife definiert nicht den Zeitpunkt, an dem die Schleife abgebrochen wird, sondern an dem sie fortgesetzt wird.
 
Zuletzt bearbeitet: