AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Division durch Null mit unterschiedlichen Ergebnissen
Thema durchsuchen
Ansicht
Themen-Optionen

Division durch Null mit unterschiedlichen Ergebnissen

Ein Thema von messie · begonnen am 2. Aug 2010 · letzter Beitrag vom 4. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 12:14
Delphi-Version: 2009
Moin,

ich beschäftige mich gerade mit MadExcept und wollte einen Programmabsturz erzeugen. Am schönsten ist eine Division durch Null, dachte ich.
Delphi-Quellcode:
var
  i : integer;
{$R *.res}

begin
  ShowMessage(FloatToStr(i/0));
  Application.ProcessMessages;
  Application.Initialize;
Wenn ich ein neues Projekt baue, funzt das super, bei dem Zielprojekt aus Delphi 6 bekomme ich "INF" für Infinite gemeldet.

Wovon hängt es denn ab, wie eine Division durch Null behandelt wird?

Danke, Messie
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#2

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 12:27
Das hängt davon ab, wie der mathematische (Co)Prozessor eingestellt ist.

hier steht Näheres datzu (und irgendwo in der OH sollte auch noch was geschrieben sein)
https://forums.codegear.com/thread.j...ssageID=163649
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Aug 2010 um 13:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 13:19
Moin,
das "Problem" ist, dass eine Gleitkommazahl durch 0 geteilt werden "kann" (siehe NaN auf der Wikipedia).

Du sollest einfach IntToStr nutzen. Und dann eventuell dann mit "div" teilen.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 13:29
Division durch Null???

Seit wann ist denn das möglich?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 13:37
Division durch Null???

Seit wann ist denn das möglich?
Seitdem es DirectX gibt

Der Wert "INF" zeigt ja auch das es keine "richtige" Zahl ist. Aber im Bereich DirectX/Spiele ist ein "INF" performanter als hier immer mit try/except zu arbeiten oder jedesmal eine Abfrage auf Null zu haben. Ob nun bei einem Ego-Shooter das 4 Pixel auf der Nase von oben etwas Dunkler/Heller ist, ist wohl egal.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 13:45
Das hängt davon ab, wie der mathematische (Co)Prozessor eingestellt ist.

hier steht Näheres datzu (und irgendwo in der OH sollte auch noch was geschrieben sein)
https://forums.codegear.com/thread.j...ssageID=163649
Jau danke!

Da wird wohl irgendeine Komponente während ihrer Initialisierung am CoPro rumgedreht haben, die im neuen und nackten Projekt nicht drin ist. Interessant.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 14:09
Division durch Null???

Seit wann ist denn das möglich?
Seitdem ich da Anführungszeichen hinsetze!!!

Ich habe das Verhalten nicht hier getestet, aber in der Wikipedia steht ja warum es "möglich" ist.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 14:23
Division durch Null???

Seit wann ist denn das möglich?
zum einen ist es wohl möglich (wenn meine historischen Mathe-Kenntnisse mich nicht täuschen). Ob es/sie sinnvoll ist steht auf einem anderen Blatt,
und wenn ich mich nicht irre ging es darum einen Fehler zu provozieren, und das sollte man damit hinbekommen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#9

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 14:36
Es ist, allgemein, nicht möglich. Es ist aber in manchen Fällen möglich der Operation ein Ergebnis anzudichten, welches in dem Zusammenhang sinnvoll ist - egal ob nun mathematisch oder systematisch. X/0 hat praktisch kein "natürliches" Ergebnis, sondern nur ein "definiertes" - wenn man es explizit so angibt, was bei der x87 FPU möglich ist.

Noch spannender ist das bei 0/0
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Division durch Null mit unterschiedlichen Ergebnissen

  Alt 2. Aug 2010, 15:49
Noch spannender ist das bei 0/0
Das Ergebnis gab einmal INF und einmal NAN.

Habe auch einen Verdächtigen ausgemacht: TeeChart Pro benutzt OpenGL für bestimmte Funktionen. Da ist der Befehl Set8087CW jedenfalls drin.

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:40 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