Erklärung vom Mod Operator benötigt

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ViktorS.

    Erklärung vom Mod Operator benötigt

    Hallo,

    ich habe ein Programm programmiert, welches alle Primzahlen anzeigen kann, dazu habe ich allerdings einen QUellcode in Google gesucht und gefunden.
    Nun möchte ich diesen Quellcode in C++ nachprogrammieren, dazu will ich aber jeden Schritt verstehen.
    Mein Problem ist jetzt allerdings, dass ich die Funktion von Mod nicht verstehe:

    VB.NET-Quellcode

    1. Private Function IsPrimeNumber(ByVal Number As Long) As Boolean
    2. Dim Counter As Long
    3. If Number Mod 2 = 0 Or Number = 1 Then 'Wenn die angegebene Zahl
    4. If Number <> 2 Then 'durch 2 teilbar ist (jedoch
    5. IsPrimeNumber = False 'ungleich 2) oder gleich 1 ist,
    6. Exit Function 'ist es keinesfalls eine Primzahl
    7. End If
    8. End If
    9. For Counter = 1 To Number - 1 Step 2 'Eine Schleife von
    10. If Number Mod Counter = 0 Then '1 bis zur angegebenen
    11. If Counter <> 1 Then 'Zahl - 1 durchlaufen,
    12. IsPrimeNumber = False 'wobei jede 2. Zahl aus-
    13. Exit Function 'gelassen wird, da die
    14. End If 'Teilbarkeit durch 2 bereits
    15. End If 'geprüft wurde. Wird ein
    16. Next Counter 'Teiler <> 1 gefunden, ist
    17. 'die Zahl keine Primzahl.
    18. IsPrimeNumber = True
    19. End Function


    was geschieht alles unter dem Befehl Mod und wie kann ich diesen in rechnerischer Weise sonst noch darstellen?

    Die selbe Frage stelle ich mir bei dem Operator Step auch.

    Mod (Zeile 4, 12)
    Step (Zeile 11)
    Mod oder Modulo ist eine Mathematische Funktion die den Rest wiedergibt:

    Also Beispiel 4 mod 2 ist 0 da 4 / 2 = 2 Rest 0 Ist

    5 mod 2 ist 1 da 5/2 = 2 Rest 1 ist.

    Also, wenn Zahl1 MOD Zahl2 = 0 ist, bedeuted es, das Zahl1 ganzzahlig durch Zahl2 teilbar ist.

    5/2 wäre ja 2,5 (in reellen Zahlen oder gebrochenrationalen Zahlen), aber in Ganzen Zahle (oder Natürlichen Zahlen eben nicht teilbar)
    Diese Rechnung mit Rest lernte man früher anfangs in der Grundschule.

    Ein ganz einfacher pseudocode für den Algorithmus wäre

    Zahl1 = 98
    Zahl2 = 5

    DO
    Zahl1 = Zahl1-Zahl2
    While Zahl1 >= Zahl2
    Output Zahl1

    Ausgabe wäre dann 3


    Step ist die Schrittweise der Zählschleife.
    Standard mässig ist diese +1
    in c++ schreibt man zB

    for(int c = 1; c < 10; c++)

    diese entspräche step +1 in vb

    oder

    for(int c = 1; c < 10; c =c + 2)
    step ist nun +2, alternativ kann man auch c+=2 schreiben


    gruss mono
    Das ist meine Signatur und sie wird wunderbar sein!