Thema Datum  Von Nutzer Rating
Antwort
23.04.2015 22:23:27 Sascha
NotSolved
23.04.2015 22:42:47 Gast68314
NotSolved
24.04.2015 03:26:50 Gast88433
NotSolved
Blau Primzahl erkennen
24.04.2015 09:57:44 Der Steuerfuzzi
Solved

Ansicht des Beitrags:
Von:
Der Steuerfuzzi
Datum:
24.04.2015 09:57:44
Views:
1252
Rating: Antwort:
 Nein
Thema:
Primzahl erkennen

Hallo,

Du solltest versuchen, Dir den Ablauf aufzuzeichnen. Und behalte Dir immer vor Augen, was das Ergebnis sein soll.

Hier soll geprüft werden, ob eine Zahl eine Primzahl ist. Das ist sie, wenn sie nur durch sich selbst teilbar ist. Das Prgramm soll nun testen, ob die Zahl durch irgendeine andere Zahl, die kleiner ist als sie selbst teilbar ist. Das hast Du schon in der Schleife und mit mod umgesetzt. Dein Fehler ist nun, dass Du nicht bei jedem Wert der Schleife darauf prüfst, ob die Zahl durch den Wert ohne Rest teilbar ist.

Außerdem kannst Du im Umkehrschluss sagen, wenn schon eine Teilbarkeit gegeben ist, brauchst Du die restlichen Werte nicht mehr prüfen. Dann wäre ein Ausstieg aus der Schleife oder der Prozedur sinnvoll.

Weiterhin soll die Sub (oder vielleicht doch Function) prüfen, ob eine Zahl prim ist oder nicht. Ich würde hier eine Variable vom Typ boolean wählen. Der Wert wird am Anfang der Prozedur auf wahr gestellt und wenn eine Zahl vorkommt, die als Teiler in Frage kommt wird er auf false gesetzt und die Schleife verlassen.

Verwende die While ... Wend-Bedingung gleichzeitig zum Beenden, wenn ein Wert gefunden wird, indem Du das Ergebnis in die Bedingung einbeziehst. 

Mein Vorschlag:

Private Sub cmdBerechnen_Click()
 
Dim intl As Integer
Dim intEingabe As Integer
Dim blnErgebnis As Boolean
Dim txtErgebnis As String

blnErgebnis = True
'intEingabe = Val(Me.txtEingabe.Value)
intEingabe = 102

intl = 2
While blnErgebnis And intl < intEingabe  'Solange die Ergebnisvariable WAHR ist, soll die Schleife ausgeführt werden
      If intEingabe Mod intl = 0 Then
         blnErgebnis = False
      End If
      intl = intl + 1
Wend
 
If blnErgebnis Then
txtErgebnis = intEingabe & " ist keine Primzahl!"
Else
txtErgebnis = intEingabe & " ist eine Primzahl!"
End If
End Sub

Gruß

Steuerfuzzi


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.04.2015 22:23:27 Sascha
NotSolved
23.04.2015 22:42:47 Gast68314
NotSolved
24.04.2015 03:26:50 Gast88433
NotSolved
Blau Primzahl erkennen
24.04.2015 09:57:44 Der Steuerfuzzi
Solved