![]() |
Mulitplikation/Division eines Arrays zeichenweise
habe 2 char arrays mit N zeichen und möchte diese jetzt zeichenweise dividieren und multiplizieren, allerdings hab ich nicht den schimmer einer ahnung wie ich das anstell
sprich ich bräuchte eine schritt für schritt anleitung in pseudocode wärs ned schlecht ;) pong |
Welche Sprache?? Java, C++, C#, etc etc etc.
Hellsehen kann keiner! |
Zitat:
|
char multiplizieren und dividieren wird nicht überall gehen, da dies zeichen sind. In Java geht´s weil jeder char ein int analogon hat.
Allgemein: Code:
|
Zitat:
ich glaub ich hab mich ein bissl unverständlich ausgedrückt, sorry (aber danke für die antwort tarjan) in jedem element des arrays steht genau eine ziffer drinnen und es soll auch nicht mehr beinhalten |
Hmm, ganz vorstellen was du da wirklich machen willst kann ich mir immer noch nicht.
Jedenfalls, wennst zwei Arrays hast, die Schleife so laufen lassen dass du halt jedes Elemnt mal durchläufst. Wenn du das Kreuzprodukt haben willst (als jedes Element des einen Arrays mit jeden Element des anderen verknüpfen) brauchst du eine Doppelschleife. |
Zitat:
Schleife siehe posting von Tarjan - je nachdem was du brauchst. |
2 arrays
jedes stellt eine n lange zahl dar in jedem element eines arrays steht eine ziffer diese 2 arrays möchte ich miteinander multiplizieren und dividieren die ausgabe erfolgt in ein 3tes array |
Also:
array1[0-2]="123" und array2[0-2]="987" (array1[0]="1"; array1[1]="2"; ....) und du willst 123 * 987 und 123 / 987 rechnen - right? |
Wenn du das als ganze Zahl rechnen willst kommen aber die Überträge noch erschwernde hinzu. Da musst wirklich das händische multiplizieren und dividieren nachbilden.
|
Dafür gibt es ja 64bit Prozessoren, damit die Bitnibblerei bald ein Ende hat. FPUs haben auch nur eine begrenzte Anzahl an Ziffern in der Mantisse.
|
Zitat:
|
Zitat:
|
Division:
Wenn er ZWEI superlange Zahlen als ASCII Code char Arrays hat, muß er eben die eine so oft addieren in ein eigenes char Array (mit Übertrag) bis diese entstehende Summe zu groß für den Dividenden (das ist die erste Zahl) wird. Sooft die Zahl2 aufaddiert wurde, ergibt das Ergebnis dieses Teils der Division. Die Differenz aus Zahl1Teil - Ergebnis1Teil * Zahl2 wird der verbleibenden Zahl1 vorangestellt und das gleiche Spiel beginnt von neuem. Ergebnis1Teil wird im Array3 (=Endergebnisarray) gespeichert. |
Rechenschieber Aufgabe, Flattersatz, könnts' nicht mehr dividieren ? :D
|
also ich komm nimma mit
Zitat:
|
Der Taschenrechner macht aber ähnliches auf elektronischem Weg ...
Außerdem gibt es auch Vorlesungen wie "Algorithmen und Datenstrukturen" und so weiter, da nützt einem ein Taschenrechner wenig, wenn Verständnis gefragt ist. |
Zitat:
Und ich glaub nicht, dass die meisten hier ein Informatikstudium hinter sich haben... ;) |
Schon, aber die Volksschule :lol: (dividieren per Hand)
|
Zitat:
Sicher kann man das, nur fang ich damit beim Programmieren nix an - oder doch? Oder wie oder was.... :verwirrt: |
Wennst von Hand weg dividieren kannst, dann kannst es auch nachprogrammieren.
Und genau das hat kikater oben beschrieben. |
Du musst von links nach rechts die große Zahl durchackern, die Schreibstellen, die bereits dividiert wurden, kommen weg, bleibt eine kleinere große Zahl über, die - um links die Differenz aus der Teilzahl und dem Vielfachen des Divisors erweitert - weiter dividiert wird. Eben solange bis der Divisor größer ist als der Restdividend oder ein paar Nachkommastellen noch weiter, jedenfalls unter Erweiterung des verbleibenden Dividenden um jeweils eine Zehnerpotenz.
|
Zitat:
|
Zitat:
|
ok habts mich überzeugt.... :)
|
So ähnlich funktionierte auch die Softwareemulation der x87 FPU des i386 SX, glaub ich. Der SX Prozessor hatte keine Fließkommaeinheit in der CPU integriert.
|
kann mir bitte jemand das mutliplizieren per hand vieliecht noch mal erklären, bitte
@LLR eigentlihc will ich 89123048120349812093481024821401948120*71289571208 9489238ß141923749812379821749124 nehmen und nicht einfach 3 stellige zahlen ;) |
Wenn ein scharfes s dabei ist, steig ich aus ;)
|
Zitat:
|
Ich würde sagen, von rechts nach links durchmultiplizieren und die Teilprodukte um ihrer Stelle gerecht verschoben addieren. COBOL in fast Reinkultur :D oder etwa nicht ...
|
Zitat:
ps: danke an alle, ich habs jetzt so halbwegs zambracht |
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag