Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 27.10.2004, 15:09 Titel: XXL-Zahlen |
|
|
So Leute, ich hab jetzt auch mal eine Frage:
Ich bin dabei, ein Programm zu schreiben, welches mir Quadratwurzeln ausrechnet (Intervallhalbierung), das ist kein Problem. Aber ihr wisst ja dass z.B. die Quadratwurzel aus 2 eine irrationale Zahl ist, also rechnet mein Prog (fast) unendlich weiter... Allerdings ist nach 15 Ziffern Feierabend (größeren Datentyp für Zahlen gibts ja nicht).
Und nun möchte ich alles so umbauen, dass die Zahlen nicht in Zahlen-Variablen, sondern als Strings abgespeichert sind, und dass jegliche Rechenoperation nur mit Strings erfolgt. Dann könnte man ja eine Genauigkeit von 32766 Ziffern + Komma erreichen.
Allerdings sind meine ersten Versuche gescheitert , und ich hoffe, dass ihr mir irgendwie helfen könnt
dankeschön _________________
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 27.10.2004, 16:48 Titel: |
|
|
Try this: Taschenrechener für Große Zahlen: Ergebnisse _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 27.10.2004, 19:48 Titel: |
|
|
Dankesehr, ich werd sehen in wie fern das für mich "brauchbar" ist _________________
|
|
Nach oben |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 29.10.2004, 13:01 Titel: |
|
|
Wenn du dir die Programme auch vom Wettbewerb anschaust, dann siehst du, dass es keine so gute Idee ist mit Strings zu rechnen. Nimm lieber gleich Arrays, damit rechnet es sich viel schneller. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2509 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 29.10.2004, 23:00 Titel: |
|
|
In einer Programmiersprache wie ADA, C++ oder Java würde man eine spezielle Klasse für hochgenaue Arithmetik schreiben, wofür man auch gleich "+", "-", "*" usw. überladen könnte - Dinge, die alle in QB nicht möglich sind.
Ich würde für das besagte Array oder String ein TYPE sonst definieren und mit SUB-Prozeduren arbeiten. Bei Strings wären sogar FUNCTIONS möglich.
Ansonsten ist in der Regel Dezimaldarstellung auch nicht ganz das Optimum, was die Performance betrifft. In einer Spezialanwendung hatte ich es früher einmal so gelöst, dass ich 16-Bit-Integer verwendet habe, diesen zum Rechnen aber jeweils auf LONG umgewandelt habe (z.B. zwei Zahlen multipliziert) und das Ergebnis auf CVI/CVL/MKI$/MKL$-Basis wieder zerteilt habe und bei den jeweiligen Elementen im Array aufaddiert habe. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 30.10.2004, 10:38 Titel: |
|
|
Das mit einem Type wäre natürlich naheliegend, nur leider scheint es nicht möglich zu sein ein Array in einem Type aufzunehmen.
Bei der Array-Variante muß man daher alle Informationen mit ins Array aufnehmen wie Vorzeichen und Position des Dezimalpunktes. |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 30.10.2004, 11:12 Titel: |
|
|
Zitat: |
In einer Programmiersprache wie ADA, C++ oder Java würde man eine spezielle Klasse für hochgenaue Arithmetik schreiben, wofür man auch gleich "+", "-", "*" usw. überladen könnte - Dinge, die alle in QB nicht möglich sind.
|
Ne, man würde ne fertige runterladen. |
|
Nach oben |
|
|
|