Hilfe

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    hallo ich soll ein Programm in Visual Basic schreiben, welches die Primzahlen zwischen 2 und 100 ausgibt. Verwenden Sie dazu nicht das Sieb des Eratosthenes. Das Iterieren über diesen Zahlenbereich und das Überprüfen, ob eine Primzahl vorliegt, soll in den fünf Schleifen-Varianten abgebildet werden (For, Do While … Loop, Do … Loop While, Do Until … Loop, Do … Loop Until). Der Nutzer soll per Button entscheiden können, welche Variante ausgeführt werden
    kann jemand mir dabei helfen :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „yazan“ ()

    Als erstes solltest Du damit beginnen, Dir die Boardregeln durchzulesen. Hier liegen nämlich ein paar Probleme vor:
    a) Beiträge im Forum müssen immer einen aussagekräftigen Titel haben.
    Ein Titel wie "Bitte helft mir!" oder "Ich komme nicht weiter" ist absolut nichtssagend und erschwert anderen
    Usern die Zuordnung des Beitrages (um welches Thema es geht). Beispiel für einen guten Titel:
    "[VB 2008] Wie rufe ich ein anderes Formular auf?".
    Zusätze wie "Dringend, "Wichtig" usw. sind nicht erlaubt.

    Der Titel "Hilfe" ist nichtssagend. Jeder, der hier einen Thread erstellt, braucht in irgend einer Form Hilfe. Dazu kommt, dass Du im Startpost von "Visual Basic" schreibst, Du für den Thread aber das Label "C++/CLI" gewählt hast. Das verwirrt noch mehr.

    Im Forum wird gern gesehen, wenn der Fragesteller Eigeninitiative zeigt. Wir könnten Dir theoretisch schon Deine Hausaufgaben machen, aber das ist ja nicht Sinn der Sache. Erstens lernst Du nichts dabei und zweitens wäre das gewissermaßen Betrug.
    Hier stellen sich die üblichen Fragen:
    Was hast Du schon probiert? (Wenn die Antwort hier "noch nichts" ist, dann warum?) Du hast ja in der Aufgabenstellung einige schöne Schlüsselwörter genannt. Hast Du mal probiert, diese zu verwenden?
    Wo gibt es konkret Probleme?
    Welche Dinge verstehst Du nicht?
    Welche Art von Projekt machst Du? Die drei häufigsten sind "Windows Forms Projekt", "Windows Presentation Foundation Projekt" (kurz WPF) und "Konsolenanwendung". Ich tippe hier mal auf Windows Forms, da Du "Button" erwähnt hast und ich mir kaum vorstellen kann, dass ihr mit WPF arbeitet.
    Gibt es Lernmaterial von der Schule, das Dir helfen kann?
    Und eine Frage, die häufig nicht so einfach zu beantworten ist: Was weißt Du schon? (Hier hilft es, die erste Frage zu beantworten, da wir daraus gut schließen können, was Du verstehst und was nicht.) Zum Beispiel würde ich erwarten, dass euch der Lehrer gesagt/gezeigt hat, dass man im Windows Forms Designer einen Button von der Toolbar auf die Form ziehen kann und dann mit einem Doppelklick darauf eine Methode generieren lassen kann, die ausgeführt wird, wenn man dann auf den Button klickt.

    Vorweg schiebe ich auch gleich diese Links:
    [Forum] Wie füge ich Quellcode korrekt im Forum ein?
    Böses aus VB6/VB2003 - und die richtigen VB.NET-Alternativen
    Visual Studio - Empfohlene Einstellungen
    Es ist nämlich immer das gleiche Spiel. Visual Basic kommt mit ungünstigen Voreinstellungen, die es Einsteigern erschwert, die Sprache richtig zu lernen. Die Lehrer wissen das meistens selbst nicht (oder sind zu faul sich das Wissen anzueignen) und lehren es falsch weiter.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Ja mit ein wenig Peudo-Code;

    VB.NET-Quellcode

    1. 'pseudo code
    2. 'Dim primzahlen As New HashSet(Of Integer)
    3. 'for i von 2 bis 100
    4. ''for j von 2 bis i
    5. ''wenn Math.Floor(i geteilt durch j) = Math.Ceiling(i / j) dann
    6. ''primzahl gefunden!
    7. ''primzahlen.Add(j)
    8. ''mit Exit For schleife (j) verlassen
    9. ''ende wenn
    10. ''ende schleife(j)
    11. 'ende schleife(i)
    12. For k = 0 To primzahlen.Count - 1
    13. Debug.WriteLine(primzahlen(i))
    14. Next
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    was kompliziertes..frag mich aber nicht wieso die "2" da mit bei ist!!

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Dim factors As New List(Of Integer)
    5. For i = 1 To 100
    6. factors = PrimeFactor(i)
    7. If factors.Count = 1 Then
    8. 'Debug.WriteLine(factors(0))
    9. ListBox1.Items.Add(factors(0))
    10. End If
    11. Next
    12. End Sub
    13. Public Shared Function PrimeFactor(number As Integer) As List(Of Integer)
    14. Dim factors As New List(Of Integer)()
    15. While number Mod 2 = 0
    16. factors.Add(2)
    17. number \= 2
    18. End While
    19. For i As Integer = 3 To CInt(Math.Sqrt(number)) Step 2
    20. While number Mod i = 0
    21. factors.Add(i)
    22. number \= i
    23. End While
    24. Next
    25. If number > 2 Then
    26. factors.Add(number)
    27. End If
    28. Return factors
    29. End Function
    30. End Class

    Morrison schrieb:

    frag mich aber nicht wieso die "2" da mit bei ist!!


    Weil die 2 eine Primzahl ist.

    Im Code Zeile 18 hast du sie selbst hinzugefügt, bringt deine Bedingung in Zeile 27 auch nichts.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    Willkommen im Forum.
    Die Problembeschreibung

    yazan schrieb:

    Hilfe
    hat bei mir nix mit Primzahlen zu tun, wie @Niko Ortner schon sagte.
    Anhand der von Dir vorgetragenen Problematik gehe ich davon aus, dass Du das Sieb des Eratosthenes beherrschst und nur wissen willst, wie Du dies in die n Schleifen packen sollst.
    Ist diese Annahme korrekt?
    Ich Frage nur deshalb, weil wir gern helfen, aber keine Hausaufgaben machen, und lernen können wir für Dich auch nicht.
    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!
    ja grnau und ich meinte nicht daß ihr für mich lernen sollt :)
    Dim izahl As Integer = CInt(NumericUpDown1.Value)
    Dim iTeiler As Integer = 2
    Dim maxTeiler As Integer = CInt(Math.Sqrt(izahl))
    Dim isprim As Boolean = True
    Do Until (iTeiler >= izahl OrElse Not isprim)
    Do While (iTeiler < izahl AndAlso isprim)
    If izahl Mod iTeiler = 0 Then
    isprim = False
    End If
    was soll dann als nächstes kommen um der benutzer entscheiden zu können
    »mein problem war mit diesen teil , daß Der Nutzer per Button entscheiden können soll, welche Variante ausgeführt werden soll
    ubd dachte ihr musst nur die ganze frage lesen damit ihr mir helfen können«

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „yazan“ (Heute, 12:59)

    Den Startpost zu editieren und damit den Threadverlauf ad absurdum zu führen, ist weder sinnvoll noch erlaubt! Jetzt weiß man überhaupt nicht mehr, worum es geht, v.a. da der Threadtitel immer noch murks ist.

    yazan schrieb:

    was soll dann als nächstes kommen um der benutzer entscheiden zu können
    Lies Dir bitte den Satz nochmal durch und überlege, was er aussagen soll. Man darf mich gern als Sprachnazi bezeichnen, aber wer Hilfe braucht, sollte danach auch korrekt fragen können.
    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.
    Hier waren mir zu viele Verstöße gegen Boardregeln und die Aufmachung der Postings des TE waren auch grenzwertig, daher schließe ich das Thema.

    @yazan Bei weiteren Fragen erstelle einen vernünftigen und regelkonformen Thread. Du hast dafür nun genug Hinweise bekommen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum