none
Problem beim Thema Definition RRS feed

  • Frage

  • Hallo.

    auf dem Weg zur Programmierung des folgeneden programms (das eig. am ende den ggT) berechnen soll bin ich schon sehr früh auf ein problem gestoßen:

    Module Module1

        Sub Main()
            Console.WriteLine("Willkommen zur ggT-Berchnung")
            Console.WriteLine("Bitte geben sie einen Wert an!")
            Dim a As Integer = Convert.ToInt16(Console.ReadLine)
            Console.WriteLine("Und bitte noch einen weiteren anderen!")
            Dim b As Integer = Convert.ToInt16(Console.ReadLine)
            Dim x As Integer
            Dim y As Integer

            If a > b Then
                a = x
                b = y
            ElseIf a < b Then
                a = y
                b = x
           End If
           

            Console.WriteLine("Der größere Wert ist " + x.ToString)
            Console.WriteLine("Der kleinere Wert ist " + y.ToString)
            Console.ReadLine()

        End Sub

    End Module




    was ich hiermit wollte war die sortierung der werte a und b nach größe, der größere wert soll x und der kleinere y heissen . kann mir einer helfen, sagen was schief gelaufen ist,  warum visual basic die neue definition von x und y nicht akzeptiert wenn man das programm debuggt sondern für x und y einfach 0 einsetzt, und mir die richtige lösung zeigen? vielen dank,
    Jakob F.
    Dienstag, 7. April 2009 14:37

Antworten

  • Hallo Jakob,

    Du möchtest gerne den Variablen x und y die vom <Benutzer abgefragten Werte der Variablen a und b zuweisen. Tatsächlich machst Du aber genau das Gegenteil. Denn was links vom Gleichheitszeichen steht erhält bei einer solchen Zuweisung den Wert zugewiesen, der rechts vom Gleichheitszeichen steht (oder sich aus Berechnungen oder sonstigen Funktionalitäten auf der rechten Seite des Gleichheitszeichens ergibt). Richtig wäre in Deinem Fall also (einfach immer nur rechte und linke Seite der Gleichheitszeichen ausgetauscht):

            If a > b Then
                x = a
                y = b
            ElseIf a < b Then
                y = a
                x = b
           End If

    Hilft Dir das - insbesondere bezüglich des Verständnisses von Variablen und Zuweisungen?
    Dienstag, 7. April 2009 18:20