Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hallo Zusammen,
wir sind drei hilflose Studenten und brauchen Unterstützung für eine Aufgabe bezüglich Python.
Wir sollen mit Python die schriftliche Division (bekannt aus der Schule) programmieren.
Wir sind absolute Neulinge und sind kaum vertraut mit Python. Hilfeeeeeee.
@dullifulli: Dann solltet ihr euch als erstes mal mit Python vertraut machen, denn man kann nichts in Python programmieren, wenn man kein oder kaum Python kann. In der Python-Dokumentation ist ein Tutorial, das ihr durcharbeiten könnt.
Danach macht euch Gedanken wie das manuell mit Stift und Papier funktioniert und wie man das als Regeln für jemanden der das nicht kennt, formulieren könnte, so dass der eine Anleitung hat wie man schriftlich dividiert.
Und diese Anleitung müsst ihr dann für jemand sehr dummen (dem Rechner) in Python formulieren.
Wenn ihr dabei dann konkrete Probleme habt, also Code der nicht das tut was er soll, dann könnt ihr das hier zeigen. Also den Code, mit einer Beschreibung was der eurer Meinung nach machen soll, und einer Beschreibung was er stattdessen tut, und warum ihr nicht versteht das er das tut was er tut. Falls es eine Ausnahme gibt, bitte den kompletten Traceback 1:1 zeigen. Ansonsten beschreiben wie das Verhalten vom erwarteten Verhalten abweicht.
“Programming is partially an artform and, like artists, programmers will do it even if they don't get money.” — Linus Torvalds
Ich habe das für ganze, positive Zahlen gerade mal in JavaScript umgesetzt und war direkt überrascht wie simpel das ist: viewtopic.php?f=5&t=44756#p340897
“Programming is partially an artform and, like artists, programmers will do it even if they don't get money.” — Linus Torvalds
@Perlchamp: Naja, Modulo ist ja im Grunde auch Division, nur das man eben den Rest der Division als Ergebnis bekommt und nicht den Quotienten. Würde ich ein bisschen als ”Schummeln” ansehen diese Operation zu verwenden. Ich habe es in JavaScript ja komplett ohne Division gemacht und auch bei der Multiplikation nur mit einer Konstante gearbeitet was wenn man das schriftlich macht ja nicht wirklich multiplizieren ist, oder zumindest beschreibt man das in Worten anders in diesem Fall. Da sagt ja keiner „und dann multipliziert man die Zahl mit Zehn und addiert den Wert einer Ziffer“ sondern „man hängt eine Ziffer an die Zahl an“.
Wenn man den Schritt der ”kleinen” Division vom schriftlichen Dividieren nicht mit addieren und subtrahieren lösen möchte, dann kann man dort auch gleich die `divmod()`-Funktion verwenden, statt Division und Restbildung mit Modulo in zwei Schritten zu machen.
“Programming is partially an artform and, like artists, programmers will do it even if they don't get money.” — Linus Torvalds
Das ganze mal in 6510-Assembler für den C64. Die Begrenzung des Dividenten auf 127 Ziffern ist ein bisschen willkürlich, weil das eigentlich problemlos ohne grosse Code-Änderung auch mit bis zu 255 Ziffern gehen würde. Die Begrenzung des Divisors auf 4 Ziffern ist in der Begrenzung auf einen 16-Bit-Wert begründet, die ich wiederrum gewählt habe weil das BASIC-ROM praktischerweise eine Ausgaberoutine für 16-Bit-Werte hat die zur Ausgabe von Zeilennummern vom BASIC verwendet wird.