Visual Basic Primzahlberechner?

...komplette Frage anzeigen

1 Antwort

Arbeitet ihr immer noch mit Visual Basic 6?

Ansonsten ist

IsPrimeNumber = True
Exit Function

eigentlich immer überflüssig bis unübersichtlich. Ich würde folgendes nehmen:

Return True

(Das macht beides in einem Schritt und ist auch die Syntax, die in anderen Programmiersprachen üblich ist.)

In

For i = 1 to 100

ist i die "Zählvariable" oder "Schleifenvariable", die in diesem Fall alle Werte von 1 bis 100 durchläuft.

Schreib mal folgendes.

For i = 1 to 3
    MsgBox "Der Wert von i ist " + i.ToString()
Next 'i = 1 to 3

Übrigens, Code kannst du hier als solchen formatieren, indem du vor jede Zeile vier zusätzliche Leerzeichen eingibst.

Ich vermute mal, der Code sollte ungefähr so aussehen:

For Counter = 1 To Number - 1 Step 2     'Eine Schleife von
     If Number Mod Counter = 0 Then      '1 bis zur angegebenen
        If Counter <> 1 Then             'Zahl - 1 durchlaufen, 
            IsPrimeNumber = False        'wobei jede 2. Zahl aus- 
            Exit Function                'gelassen wird, da die 
        End If                           'Teilbarkeit durch 2 bereits 
    End If                               'geprüft wurde. Wird ein 
Next Counter                             'Teiler <> 1 gefunden, ist 
IsPrimeNumber = True                     'die Zahl keine Primzahl. 

Du kannst natürlich auch in einer Sub Werte zurückgeben. Setz das Schlüsselwort ByRef vor den Variablennamen, dann weiß der Compiler, dass du diese Variable ggf. verändern willst.

Aber Funktionen sind üblicher und meist auch übersichtlicher.

Der Unterschied zwischen Sub und Function in (Visual) Basic ist, dass eine Funktion immer genau einen Rückgabewert hat. (Du kannst im Prinzip auch ein veränderliches Argument in einer Funktion nehmen, aber das macht die Sache nur unübersichtlicher.)

Eine eingebaute Funktion kannst du z. B. so aufrufen (hier die Quadratwurzelfunktion):

w = Sqr(x)

Ebenso mit selbstgeschriebenen Funktionen.

(So weit für jetzt ...)

Was möchtest Du wissen?