Hallo Zusammen,
wir müssen vom Studium aus einen Rechentrainer programmieren, welcher zufällig Aufgaben zu den vier Grundrechenarten (+, - , • , ÷) stellt.
Was Python angeht bin ich ein absoluter Anfänger. Den Rechentrainer habe ich so gut wie fertig programmiert und er läuft auch schon.
Nur habe ich folgendes Problem. Die Zahlen für die Rechenaufgaben werden immer zufällig ausgewählt (hier benutze ich random.randint(0,20)).
Bei der Division ist aber die Bedingung, dass nur 'saubere' Zahlen rauskommen, d.h. Zahlen die auch tatsächlich durcheinander teilbar sind.
Gibt es eine Möglichkeit, eine Bedingung bzw. einen Befehl einzubauen, dass im Falle einer Division nur durcheinander teilbare Zahlen zufällig ausgewählt werden ?
Eine weitere Frage wäre noch, ob es einen Befehl gibt, dass wenn eine bestimmter Fall eintritt das Programm in der While-Schleife wieder auf einen bestimmten Punkt zurück Springt ? Bei der Subtraktion sollen nämlich die Null und negative Zahlen nicht als Ergebnis vorkommen. Meine Idee war den Trainer so zu programmieren, dass falls die Zahl2 größer oder gleich Zahl1 ist, die beiden Zahlen neu belegt werden, so lange bis Zahl1 größer als Zahl2 ist und erst dann eine Aufgabe gestellt wird.
Ich hoffe es ist relativ verständlich, obwohl ich ein aufgeschmissener Anfänger bin
Vielen Dank im voraus für Lösungsvorschläge
Rechentrainer programmieren
Wenn du nur ganze Zahlen vom Ergebnis her willst, dann erzeuge doch einfach das Ergebnis per Zufall. Und stelle als Aufgabe das Ergebnis der Multiplikation.
Und eine while Schleife ist schon das Mittel der Wahl. Nur das du nicht “zurück springst”. Sondern einfach so lange darin verbleibst, bis deine Bedingung erfüllt ist.
Und eine while Schleife ist schon das Mittel der Wahl. Nur das du nicht “zurück springst”. Sondern einfach so lange darin verbleibst, bis deine Bedingung erfüllt ist.
- __blackjack__
- User
- Beiträge: 13103
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@stretization: Bei der Subtraktion kannst Du doch auch ohne Wiederholungen gleich passende Werte erstellen. Zum Beispiel in dem Du die Werte einfach sortierst, so dass der Grössere der Beiden immer der erste Operand ist.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 6
- Registriert: Freitag 19. April 2019, 19:47
Stimmt, das kann ich tatsächlich so machen! Alles klar, vielen Dank__deets__ hat geschrieben: ↑Freitag 19. April 2019, 20:25 Wenn du nur ganze Zahlen vom Ergebnis her willst, dann erzeuge doch einfach das Ergebnis per Zufall. Und stelle als Aufgabe das Ergebnis der Multiplikation.
Und eine while Schleife ist schon das Mittel der Wahl. Nur das du nicht “zurück springst”. Sondern einfach so lange darin verbleibst, bis deine Bedingung erfüllt ist.
-
- User
- Beiträge: 6
- Registriert: Freitag 19. April 2019, 19:47
Ja das habe ich schon versucht, nur ist eben das Problem, dass es nur solange funktioniert bis die beiden Zufallswerte zufällig gleich groß sind. Dann bringt auch sortieren nichts mehr und das Ergebnis ist 0, was aber nicht sein soll weil die 0 als Eingabe durch den Anwender das Ende der Schleife bedeutet.__blackjack__ hat geschrieben: ↑Freitag 19. April 2019, 21:10 @stretization: Bei der Subtraktion kannst Du doch auch ohne Wiederholungen gleich passende Werte erstellen. Zum Beispiel in dem Du die Werte einfach sortierst, so dass der Grössere der Beiden immer der erste Operand ist.
Dann hast du zwei Möglichkeiten: entweder wie schon erwähnt bis zur Erfüllung der Randbedingungen per while weiter Ergebnisse rechnen.
Oder in diesem recht seltenen Fall einfach 1 auf einen der Summanden addieren.
Oder in diesem recht seltenen Fall einfach 1 auf einen der Summanden addieren.