AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem bei der Divison in einem Taschenrechner!
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei der Divison in einem Taschenrechner!

Ein Thema von Zwock · begonnen am 14. Sep 2005 · letzter Beitrag vom 19. Sep 2005
Antwort Antwort
Seite 2 von 3     12 3      
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#11

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:27
float is eine Kommazahl. In float kannst du z.b. den wert 1.589727489 speichern oder pi oder sqrt(2) (wurzel 2). int ist eine natürliche Zahl. Int verwendest du z.B. um dir zu merken, in welchem Schuljahr du bist, wie viel Leben der Spieler noch hat oder wie oft der PC heute schon abgestürtzt ist (ich 6 ). Float verwendest du, um dir zu merken, wie viel mhz dein PC hat (z.B. 166.666) oder alle wie viel Sekunden der PC abstürtzt (z.B. 3539.294)
Michael Enßlin
  Mit Zitat antworten Zitat
Zwock

Registriert seit: 14. Sep 2005
Ort: Erlensee
20 Beiträge
 
#12

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:31
OkiDoki! Dann danke ich euch recht herzlich für eure Hilfe/Geduld mit mir!
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#13

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:31
Ergänzung:
DIV ist eine Ganzzahldivision, / eine normale.

Noch ein Hinweis: Bei Kommazahlen nimmt Delphi zwar als Trennzeichen das Komma an, wenn es im Code steht, muss aber ein Punkt verwendet werden:
Float := Eingabe * 15.23; Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#14

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:33
[OT]
Zitat von ichbins:
extended is viel, viel genauer als real (2,5 mal so genau)
So schlimm ist's nun auch wieder nicht . Extended hat etwa 1,3x so viele Nachkommastellen wie Real, ist also vernachlässigbar. Aber da AFAIK unter x86 immer in Extended-Genauigkeit gerechnet wird, sind die verschiedenen Typen sowieso gleich schnell, man kann also getrost Extended verwenden.
[/OT]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:36
Zitat von Khabarakh:
[OT]
Zitat von ichbins:
extended is viel, viel genauer als real (2,5 mal so genau)
So schlimm ist's nun auch wieder nicht . Extended hat etwa 1,3x so viele Nachkommastellen wie Real, ist also vernachlässigbar. Aber da AFAIK unter x86 immer in Extended-Genauigkeit gerechnet wird, sind die verschiedenen Typen sowieso gleich schnell, man kann also getrost Extended verwenden.
[/OT]
Dem ist nicht so
Link
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:54
was heisst denn dem is nich so?
ist es nicht egal, ob er jetzt 1,5 oder 15 Nanosekunden braucht um die Rechenoperation durchzuführen? und die 6 Byte zusätzlicher RAM machens auch nicht gerade aus, oder? wo ja der RAM eh von der Anwendung vorneherein verwendet wird, nämlich um nix zu speichern.
Michael Enßlin
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#17

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 17:58
Oh, jetzt fällt mir auch wieder ein, warum ich mich vor einem Jahr nach dem Lesen eines Posts für Double und gegen Extended entscheiden habe . Danach muss ich mir aber irgendwo den Falschglauben angelesen haben .
Dass es in .Net nun gar keinen Extended-Typ mehr gibt, spricht auch eher dagegen.

[add] @ichbins: Bei 1,3-facher Nachkommastellenanzahl, aber dreifacher Rechenzeit würde ich es mir bei rechenlastigen Anwendungen (wozu eine Taschenrechner eher nicht zählt) doch genauer überlegen. [/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#18

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 18:01
kann ich eigentlich auch einen eigenen extended-typ (z.B. mit 100 Byte größe) schreiben? oder noch besser dynamisch? wenn ich z.B. schnell pi auf 100.000 Stellen genau berechnen will, gibt auch extended den Geist auf...
Michael Enßlin
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#19

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 14. Sep 2005, 18:09
Natürlich, hier gibt es ein paar Infos. Das wird dann aber wahrscheinlich noch viel langsamer als Real48 werden . Benutzerdefinierte Operatoren wie in .NET wären auch nicht schlecht, aber es geht auch so ganz gut.

[add] Für unendlich viele Nachkommastellen kannst du dir Hagens DEC-Math-Units anschauen, die müssen irgendwo in der DP als Anhang sein. [/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Problem bei der Divison in einem Taschenrechner!

  Alt 15. Sep 2005, 04:27
Zitat von ichbins:
was heisst denn dem is nich so?
Dass was da steht

Zitat von ichbins:
ist es nicht egal, ob er jetzt 1,5 oder 15 Nanosekunden braucht um die Rechenoperation durchzuführen?
Es ist so lange egal wie man nur ein paar zig Operationen damit veranstanlten muss. Aber rate nun mal, warum auch die tollsten neusten Grafikkarten alle mit 32Bit Floats rechnen .

Zitat von ichbins:
und die 6 Byte zusätzlicher RAM machens auch nicht gerade aus, oder? wo ja der RAM eh von der Anwendung vorneherein verwendet wird, nämlich um nix zu speichern.
Da bist du mir eine Erklärung schuldig. Warum sollte Speicher für nix alloziert werden? Richtig ist, dass nicht immer alles sofort wieder an Windows freigegeben wird (mit Delphi Speichermanager), aber nichts anderes. Einzig mit dem Wort "Alignment" ließe ich mich hier noch breitschlagen . (Was aber bei einem packed array of [Typ] z.B. auch wieder rausfällt.)

Es kommt nunmal immer darauf an was man machen möchte, und welcher Aspekt einem wichtig ist. Ein generelles "das ist das einzig wahre" gibt es hier imho nicht. Speziell zum Thema Extended vs. Double: Der Tradeoff ist rein rechnerisch ziemlich mies. Du bekommst ca. 125% Genauigkeit für ca. 305% der Rechenzeit. In meinen Augen recht teuer.


Ich will hier nicht sagen, dass Extended nicht sogar geeignet wäre. Kommt auf die Zielsetzung an. Jedoch finde ich es wichtig so kleine Hintergründe zu wissen um bedächtiger mit den vorhandenen Ressourcen umgehen zu können, und damit man weiss wo im Zweifelsfall Optimierungspotential vorhanden ist. Ich finde nicht dass einem Anfänger mit barschen Totalaussagen "das beste", "das schnellste" geholfen ist, da diese je nach Umstand nicht mehr zutreffen. Gerade das ist imho die Kunst der Informatik: An der richtigen Stelle die genau passende Lösungsstrategie zu finden die zum Ziel führt. Und mit Schrotflinten nach Fliegen zu schießen ist in meinen Augen nicht passend . Das mag bei einem so kleinen Problem wie einem Taschenrechner völlig unnötig klingen, aber gerade bei Einsteiegern ist die Gefahr, dass ein solches Vorgehen auch in spätere größere Projekte geschleppt wird, groß (verständlicherweise). Von daher finde ich es wichtig von vorne herein auch für solche Spitzfindigkeiten zu sensibilisieren - nicht um jemanden zu ärgern, sondern um den Pool an Randwissen und den "Blick" für solche Dinge groß und offen zu halten. Mit "nehme ich immer" ist keinem wirklich geholfen (meistens).
Und wenn sich ein Einsteiger von so etwas zunächst erschlagen fühlt: Das legt sich mit der Zeit - das ist sicher Und damit sich das schnell legt, gibt es Foren wie uns


Ein kleiner OT-Beitrag vom
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz