GGT und KGV in VB Form

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von SleeperSimulant.

    GGT und KGV in VB Form

    Guten Abend liebes Form

    Ich brauche mal bitte eure Hilfe. Ich habe schon selbst rumprobiert doch die Programmierung gemäss meiner Vorstellung will einfach nicht funktionieren und ich würde sehr gerne von euch sehen, wenn Ihr Zeit und Lust habt, wie ihr das lösen würdet, damit dies gemäss meiner Vorstellung vom Design/Aufbau funktionieren würde. Ich habe ein Foto meines Form Designs hochgeladen und will endlich einfach verstehen wie man das Programmieren muss, damit dies funktioniert..

    Ich bedanke mich vielmals im Voraus und wünsche einen schönen Abend!

    Sleeper

    (P.S ich hoffe, ich bin im richtigen Formusabteil und habe nicht in einer falschen Rubrik meine Anfrage gepostet)
    Bilder
    • FormDesign.png

      69,2 kB, 1.196×944, 181 mal angesehen
    Wie soll es denn Funktionieren, bzw. was soll passieren? Was bedeutet GGT und KGV?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    Was bedeutet GGT und KGV
    Größter gemeinsamer Teiler und kleinstes gemeinsames Vielfaches.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Realitiv straight forward, du musst nur mit Events arbeiten.
    In dem TextChanged Event der beiden TextBoxen setzt du je eine Variable auf den jetzigen Wert der Textbox (bitte mit Integerumwandlung, Kartoffeln haben keinen ggT).
    Im RadioButton Changed Event setzt du den Wert eines Flags (ein Boolean), der beschreibt ob GGT oder KGV.
    Im Button Pressed Event berechnest du und schreibst in die dritte TextBox.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Hallo. Erstmals danke vielmals für die Antworten! Ich habe es so probiert mit diesem Design:

    Public Class Form1
    Private Sub btnggt_Click(sender As Object, e As EventArgs) Handles btnggt.Click
    Dim X As Integer = txtn1.Text
    Dim Y As Integer = txtn2.Text
    Dim T As Integer
    Do While (Y <> 0)
    T = Y
    Y = X Mod Y
    X = T
    Loop

    lblergebis.Text = X
    End Sub

    Private Sub btnkgv_Click(sender As Object, e As EventArgs) Handles btnkgv.Click
    Dim X As Integer = txtn1.Text
    Dim Y As Integer = txtn2.Text
    Dim T As Integer

    If X > Y Then
    T = X
    X = Y
    Y = T
    End If
    T = Y
    Do
    If Y Mod X = 0 Then Exit Do
    Y = X + T
    Loop
    lblergebis.Text = Y
    End Sub
    End Class

    GGT hat funktioniert aber KGV nicht. Und ich würde gerne auch den kgv hinkriegen + halt dies mit meiner ersten Grafik.
    Kann mir da jemand den Code zeigen dafür? Das wäre absolut genial und so kann ich auch perfekt lernen.

    Vielen Dank wieder im Voraus!
    Bilder
    • zweitesdesign.png

      57,39 kB, 1.208×878, 118 mal angesehen

    SleeperSimulant schrieb:

    ich würde gerne auch den kgv hinkriegen


    Dann geht es dir also um den Algorithmus.
    Hier ist ein relativ übersichtlicher:
    de.wikibooks.org/wiki/Algorith…al_Basic_for_Applications
    Ist zwar VBA, aber ganz einfach auf VB.Net zu bringen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @SleeperSimulant Dann fang an und beschreibe mal den Algorithmus für den KGV, dann machen wir gemeinsam den Code draus. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe ja oben schon was gepostet, wie ich kgv an sich lösen wollte. Das problem ist, das dann nichts passiert und das Programm nicht reagiert

    Private Sub btnkgv_Click(sender As Object, e As EventArgs) Handles btnkgv.Click
    Dim X As Integer = txtn1.Text
    Dim Y As Integer = txtn2.Text
    Dim T As Integer

    If X > Y Then
    T = X
    X = Y
    Y = T
    End If
    T = Y
    Do
    If Y Mod X = 0 Then Exit Do
    Y = X + T
    Loop
    lblergebis.Text = Y
    End Sub
    End Class

    Was mache ich falsch? GGT hat wie gesagt funktioniert. Tue mich aber mit dem kgv leider schwer...und nochmals danke.
    1. Bitte CodeTags verwenden.
    2. Option Strict On nicht vergessen, denn bereits die 2. Zeile Dim X As Integer = txtn1.Text sollte so nicht sein.
    3. Y = X + T ist eine Formel, deren Ergebnis immer konstant bleibt, da X und T vor Beginn der Do-Schleife festgelegt wurden und somit Y immer gleich bleibt. Gedanklich meintest Du wohl eher:

    VB.NET-Quellcode

    1. Do
    2. If Y Mod X = 0 Then Exit Do
    3. Y += T
    4. Loop

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,

    Könnten Sie mir das bitte Anhand eines Beispiel erläutern? (Ich bin wie gesagt noch am lernen und will es verstehen). Es geht ja darum, 2 Textfelder, 3 Buttons (ggt, kgv, exit) und ein Label andem der Output kommt. Wie ist also hier Ihre Erläuterung mit Option Strict on und " denn bereits die 2. Zeile Dim X As Integer = txtn1.Text sollte so nicht sein" gemeint?

    Danke vielmals!
    1. Wir sind hier alle bei "Du". Du weißt ja auch nicht, wie alt wir sind. Einige hier sind vielleicht gerade mal 13 und haben schon > 1000 Beiträge.
    2. Visual Studio - Empfohlene Einstellungen - da ist alles beschrieben. Wenn Du Dim X As Integer = txtn1.Text schreibst, dann weist Du einen Text einer Ganzzahl zu. Spätestens dann, wenn RodFromGermany seine leckeren Rouladen mit Klöße in Deine TextBox schreibt, wird klar, dass Dein Programm abstürzt - weil es nicht prüft, ob der TextBox-Inhalt sinnvoll ist. Du verlässt Dich auf eine automatische Umwandlung von Text in Zahl. Und das ist die Ursache nicht weniger Probleme.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Also erstmals an alle, vielen Dank. Nun funktioniert ggt und kgv :)! Die letzte Frage ist, das wenn ich 2 RadioButtons mit "ggt" und "kgv" habe und den Button "berechnen" und dann halt "ggt" anwähle, muss ja der ggt berechnet werden. Wie muss das umgesetzt werden im Code? Ich habe ehrlich gesagt auch nicht richtig eine Bildliche vorstellung davon, wie ich das umsetzen muss (wie gesagt, bin neu in dieser Welt aber fleissig am lernen).

    Danke vielmals! Tolles Forum :)
    Unter der Voraussetzung, dass die RadioButtons RbtnGgt und RbtnKgv heißen:

    VB.NET-Quellcode

    1. If RbtnGgt.Checked Then
    2. BerechneGGT() 'hier eben Dein GGT-Funktionsaufruf
    3. ElseIf RbtnKgv.Checked Then
    4. BerechneKGV() 'hier eben Dein KGV-Funktionsaufruf
    5. EndIf

    Solange es nur 2 Radiobuttons gibt, kann man statt ElseIf RbtnKgv.Checked Then auch nur Else schreiben. Aber dann darf kein weiterer Radiobutton mehr dazukommen, da das kgV sonst immer berechnet wird, wenn nicht RbtnGgt angewählt ist. Aber das ist ja bestimmt klar.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.