Hilfe beim Programmieren eines Programmes

  • VB6

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Hilfe beim Programmieren eines Programmes

    Erstmal ein recht herzliches hallo an ALLE.
    Bin heut auf euer Forum gestoßen, mit dem Hintergrund das ich BWL studieren und aktuell Grundlagen der Systementwicklung belegen muss.

    Habe auch schon ein bisschen rumgestöbert und viele Interessante Sachen entdeckt. Leider ändert das nichts an der Tatsache, dass ich sehr wenig Ahnung vom Programmieren mit VB habe.

    Unser Prof. will dann mal so nebenbei von uns ein Programm programmiert haben :) Und da hört es dann auch schon wieder bei mir auf.

    Vielleicht könnt ihr mir dabei helfen. Denke jemand der sich auskennt, hat das kleine Programm in weniger als 10Min fertig.

    Problem:


    Man erstelle ein Programm, das es erlaubt, das Minimum von n Zahlen zi zu berechnen.
    Zur Bearbeitung gehören:

    1. Kurze verbale Beschreibung der Funktion des Programms für den Benutzer (Bedienungsanleitung, aus der Spezifikation zu entwickeln)
    2. Zustandsübergangsdiagramm
    3. Entwurf (als Struktogramm)
    4. VB-Projekt (Project- und Form-Datei)
    Alle Bearbeitungsteile sind elektronisch als eine *.zip-Datei abzugeben (d.h. als Datei zur Übung in Moodle einzustellen).

    Am Übungstag sind die Entwürfe und das Programm vom Dozenten testieren zu lassen. Ohne Testat ist keine Abgabe moeglich! Bereiten Sie vor dem Übungtag die Aufgabe durch Erstellung der Entwürfe vor und bringen Sie diese mit!

    Spezifikation

    Bedienoberfläche



    Funktionsspezifikation

    Name : Minimum berechnen
    Eingabe: Anzahl n (As Integer), Wertebereich n > 0
    Zahlen zi (As Single)
    Ausgabe: bisher gelesene Anzahl (As Integer)
    Minimum min (As Single)
    Purpose (möglichst exakte Beschreibung des funktionalen Zusammenhangs):
    Es wird das Minimum min von n Zahlen zi nach der Formel
    if zi < min then min = zi
    else min unverändert
    berechnet.
    Das Ergebnis (das Minimum) der bisher gelesenen Zahlen wird als fortlaufend als Dezimalzahl ausgegeben.
    Solange kein zulässiges n eingegeben wurde, darf nichts berechnet werden.
    Während der Rechnung darf kein neues n akzeptiert werden, jedoch beim Anwählen einer neuen Berechnung.
    Beenden der laufenden Berechnung und Start einer neuen Berechnung soll jederzeit möglich sein.
    Exceptions: Ausnahme-/Fehlerbehandlung
    Die Eingabe von n <= 0 ist abzulehnen, ein neues n ist anzufordern.

    Anleitung:
    Das Programm besitzt 3 Zustände:
    - im Startzustand wird die Eingabe der Anzahl n erwartet. Das Programm bleibt in diesem Zustand, bis ein gültiges n
    eingegeben wurde. Zahlen zi können noch nicht eingegeben werden. Der Button "Neue Berechnung" ist frei.
    - im Eingabezustand werden die n Zahlen zi erwartet und bearbeitet, bis n Zahlen eingegeben wurden oder der Button "Neue Berechnung" angeklickt wurde. Das Ergebnis wird ausgegeben, es könnte ein neues n eingegeben werden.
    - der Endezustand wird erreicht, wenn alle n Zahlen eingegeben sind.
    Zeichnen Sie das zugehörige Zustands-Übergangs-Diagramm und beschreiben Sie, wie Sie die Zustände im Programm führen wollen (Zustandsvariable oder Enable der Steuerelemente)


    Es wäre echt richtig nett wenn mir jemand dabei helfen könnte. Danke
    Suchst du nur jemanden, der dir hilft bzw es dir programmiert? Oder willst du VB lernen und hast eine konkrete VB-Frage bzw kommst an einer bestimmten Stelle nicht weiter? Bei letzterem brauchen wir schon Fehlermeldungen, Codeschnipsel, Befehle etc, mit denen du Probleme hast und eine detailiertere Problembeschreiben, nicht wie in deinem Fall eine detailierte Aufgabenstellung deines Prof.
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Das Problem ist, dass ich selbst noch nicht VB habe. Das Programm aber in absehbarer Zeit fertig sein müsste.
    Bin schon dabei es mir zu organisieren. Weiß jedoch nicht ob das dann mit der Zeit hinkommt. Sicherlich habe ich großes Interesse daran VB zu lernen. Es wird nicht das letzte Programm sein was unser Prof uns zum programmieren gibt.
    Wenn ich dann VB habe, dann werde ich mich auch selber ransetzen und es versuchen zu programmieren und dann sicherlich auch des öfteren hier unterwegs sein um typ und lösungen zu erfragen.
    Ich für meinen Teil will dir das Programm nicht kostenlos einfach mal so schreiben.
    Ich denke auch nicht, dass du hier jemanden finden wirst.

    Also besorg dir erstmal VB, setz dich ran und wenn du dann ein konkretes Problem hast, wende dich an uns :)


    mfG Andy
    hallo nochmal.
    also ich habe mich jetzt mal rangesetzt und ein bisschen probiert.

    folgendes habe ich bereits gemacht.

    Visual Basic-Quellcode

    1. Private z_gelesen As Integer
    2. Private min As Single
    3. Private z As Single
    4. Private n As Integer
    5. Private Sub cmd_anzahl_Click()
    6. If IsNumeric(txt_anzahl.Text) = True Then
    7. If (txt_anzahl.Text) > 0 Then
    8. n = txt_anzahl.Text
    9. txt_anzahl.Enabled = False
    10. Else
    11. MsgBox "Bitte geben Sie eine ganze Zahl ein"
    12. End If
    13. Else
    14. MsgBox "Bitte geben Sie eine ganze Zahl ein"
    15. End If
    16. End Sub


    jetzt weiß ich aber nicht sorecht weiter.

    1) wie kann ich es machen, dass man in dem ersten eingabefeld auch keine Kommazahlen eingeben kann?

    2) Wenn man auf neue Berechnung klickt sollten alle Speicher wieder leer sein und in den Feldern sollte auch nichts mehr stehen und eine neue Berechnung sollte zu beginnen sein.

    wie bekomme ich das hin?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „s-dino“ ()

    1.) mach dir doch einfach eine Reset funktion und mach alles leer oder auf 0

    Visual Basic-Quellcode

    1. Private Function ResetMask()
    2. me.Feld1.Text = ""
    3. me.Feld2.Text = ""
    4. me.Feld3.Text = ""
    5. n = 0
    6. min = 0
    7. z_gelesen = 0
    8. z = 0
    9. End Function


    2.) da die Felder integer sind, wird doch meines Wissens eh alles nach dem komma weggelassen, wie du es komplett unterbinden kannst weis ich allerdings nicht.

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

    danke, das mit der Resetfunktion hat schonmal super geklappt.:-)

    wie kann ich denn die Zahl ich ich als z eingebe in einen Speicher packen sodass das Textfeld wieder leer wird und ich eine weitere Zahl eingeben kann?
    und das programm dann die z's jeweils vergleicht und das kleinere wieder in einem anderen Textfeld ausgibt?
    Original von s-dino
    1) wie kann ich es machen, dass man in dem ersten eingabefeld auch keine Kommazahlen eingeben kann?


    wie wärs hiermit:

    Visual Basic-Quellcode

    1. Private Sub Textfeld_Change()
    2. If Textfeld.text = "" Then Exit Sub
    3. If Mid(Textfeld.text, Len(Textfeld.text), 1) = "," Then
    4. Textfeld.text = Mid(Textfeld.text, 1, (Len(Textfeld.text) - 1))
    5. Textfeld.SelStart = Len(Textfeld.text)
    6. End If
    7. End Sub


    damit wird dies automatisch unterbunden, denk daran den namen textfeld dem wirklichen namen anzupassen ;)

    was ist eigentlich mit dem ermitteln des minimums gemeint? könntest du mal ein beispiel posten. thx
    Danke hat geklappt :)

    Also der Hintergrund des Programms ist wie schon erwähnt eine Minimumberechnung.

    Oben die Grafik zeigt ja 3 Textfelder.

    in dem ersten Textfeld soll die Anzahl der Zahlen eingeben werden von denen das Minimum ausgegeben werden soll.

    Im Textfeld 2 sollen dann nacheinander genauso viele Zahlen eingegeben werden wie im Textfeld 1 angegeben. Zb. Textfeld 1 = 5, dann soll man im Textfeld 2 nacheinander 5 unterschiedliche Zahlen eingeben: zb. 1, 6, -9, 5, 7

    Im Textfeld 3 soll dann immer die Zahl die am kleinsten von den Zahlen ist ausgegeben werden. bei meinem Zahlenbeispiel wäre es dann nach der ersten Eingabe die 1(weil es ja noch keine andere Zahl gibt) nach der zweiten Eingabe wäre es immernoch die 1(weil die 1 ja kleiner als die 6 ist) dann wenn man die -9 eingibt wäre es die -9(weil diese dann wiederum kleiner als die 1 ist)

    frag mich bitte nich was das für ein Sinn hat. Die Aufgabenstellung haben wir so von unserem Dozenten bekommen :)

    Visual Basic-Quellcode

    1. Private z_zaehler As Single
    2. Private min As Single
    3. Private z As Single
    4. Private n As Single
    5. Private Sub cmd_anzahl_Click()
    6. txt_eingabe.Enabled = True
    7. If IsNumeric(txt_anzahl.Text) = True Then
    8. If (txt_anzahl.Text) > 0 Then
    9. n = txt_anzahl.Text
    10. txt_anzahl.Enabled = False
    11. cmd_eingabe.Enabled = True
    12. cmd_anzahl.Enabled = False
    13. Else
    14. MsgBox "Bitte geben Sie eine ganze Zahl ein", vbDefaultButton1, Fehlermeldung
    15. End If
    16. Else
    17. MsgBox "Bitte geben Sie eine ganze Zahl ein"
    18. End If
    19. End Sub
    20. Private Sub cmd_ausgabe_Click()
    21. cmd_anzahl.Enabled = True
    22. cmd_eingabe.Enabled = True
    23. Me.txt_anzahl = ""
    24. Me.txt_ausgabe = ""
    25. Me.txt_eingabe = ""
    26. n = 0
    27. z = 0
    28. z_zaehler = 0
    29. min = 0
    30. txt_anzahl.Enabled = True
    31. cmd_eingabe.Enabled = False
    32. txt_anzahl.Enabled = True
    33. txt_eingabe.Enabled = False
    34. txt_ausgabe.Enabled = False
    35. End Sub
    36. Private Sub cmd_eingabe_Click()
    37. If IsNumeric(txt_eingabe.Text) = True Then
    38. If n > 0 Then
    39. n = n - 1
    40. z_zaehler = z_zaehler + 1
    41. min = txt_eingabe.Text
    42. If min < txt_eingabe.Text Or z_zaehler = 1 Then
    43. txt_ausgabe = min
    44. Else
    45. End If
    46. lbl_ausgabe.Caption = "Minimum von " & z_zaehler & " Zahlen"
    47. cmd_eingabe.Caption = "Bitte noch " & n & " Zahl/en eingebe"
    48. txt_eingabe.Text = ""
    49. If n = 0 Then
    50. cmd_eingabe.Enabled = False
    51. End If
    52. End If
    53. Else
    54. MsgBox "Bitte geben Sie eine Ganze Zahl ein"
    55. End If
    56. End Sub
    57. Private Sub Form_Load()
    58. cmd_eingabe.Enabled = False
    59. txt_anzahl.Enabled = True
    60. txt_eingabe.Enabled = False
    61. txt_ausgabe.Enabled = False
    62. End Sub
    63. Private Sub txt_anzahl_Change()
    64. If txt_anzahl.Text = "" Then Exit Sub
    65. If Mid(txt_anzahl.Text, Len(txt_anzahl.Text), 1) = "," Then
    66. txt_anzahl.Text = Mid(txt_anzahl.Text, 1, (Len(txt_anzahl.Text) - 1))
    67. txt_anzahl.SelStart = Len(txt_anzahl.Text)
    68. End If
    69. End Sub


    also soweit ist das programm fertig. nur warum vergleicht er die zahlen irgendwie nicht. es klappt nur das er die zahl aus dem zweiten textfeld in das dritte übernimmt. aber wenn ich dann eine kleinere eingeben..ersetzt er diese nicht.