Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unendlich einfügen [HILFE] (https://www.delphipraxis.net/146195-unendlich-einfuegen-%5Bhilfe%5D.html)

Noris 15. Jan 2010 10:05


Unendlich einfügen [HILFE]
 
Hallo,
ich habe mal eine Frage...

ICh würde gerne and dieser Stelle:


Delphi-Quellcode:
begin
  Verbrauch := ZaehlerNeu - ZaehlerAlt;
  case (Verbrauch) of
       1..3  : PreisJeWoche := 210;
      3..50  : PreisJeWoche := 0.06;  
  end; (* case verbrauch *)
statt der 50 ein Unendlich machen, wie müsste ich das schreiben :?:

Bitte schreibt auch noch dazu was ich evtl. noch in uses schreiben muss etc.


Mit vielen Grüßen

Noris

DeddyH 15. Jan 2010 10:09

Re: Unendlich einfügen [HILFE]
 
Irgendwie scheint die Logik nicht zu stimmen. Zeig doch einmal genau, was wann ausgeführt werden soll. IMO müsste man es so formulieren, dass Dein "unendlich" in den else-Zweig kommt.

Noris 15. Jan 2010 10:10

Re: Unendlich einfügen [HILFE]
 
Ups...
Hatte vergessen das else + Zeile wegzumachen.

DeddyH 15. Jan 2010 10:14

Re: Unendlich einfügen [HILFE]
 
Ich würde das in etwa so formulieren:
Delphi-Quellcode:
Verbrauch := ZaehlerNeu - ZaehlerAlt;
if Verbrauch > 0 then
  case (Verbrauch) of
       1..3: PreisJeWoche := 210;
       else PreisJeWoche := 0.06;  
  end; (* case verbrauch *)

Sherlock 15. Jan 2010 10:15

Re: Unendlich einfügen [HILFE]
 
Was für ein Typ ist Verbrauch? Wenns ein Integer ist, dann setzte halt MaxInt an Stelle von 50. Oder auch
High(DatenTypvonVerbrauch)

Sherlock

tkone 15. Jan 2010 10:22

Re: Unendlich einfügen [HILFE]
 
würde auch auf die else variante gehen.

Noris 15. Jan 2010 10:23

Re: Unendlich einfügen [HILFE]
 
Ne ist ein real Wert.

Hat mit der Variante von DeddyH problemlos geklappt.

Trotzdem vielen Dank für die Aufmerksamkeit udn die HIlfe!

himitsu 15. Jan 2010 10:46

Re: Unendlich einfügen [HILFE]
 
Delphi-Quellcode:
case ZaehlerNeu - ZaehlerAlt of
  1..3      : PreisJeWoche := 210;
  4..MaxInt : PreisJeWoche := 0.06;
  else       PreisJeWoche := 0; // oder irgendwie anders, bzw. eine Exception werfen
end;
so oder so ... der Wert sollte besser nicht undefiniert sein

Uwe Raabe 15. Jan 2010 11:52

Re: Unendlich einfügen [HILFE]
 
[quote="himitsu"]
Delphi-Quellcode:
  1..3      : PreisJeWoche := 210;
  3..MaxInt : PreisJeWoche := 0.06;
Das ist aber für 3 sehr wohl undefiniert!

Ralf Kaiser 15. Jan 2010 11:52

Re: Unendlich einfügen [HILFE]
 
Delphi-Quellcode:
case ZaehlerNeu - ZaehlerAlt of
  1..3      : PreisJeWoche := 210;
  3..MaxInt : PreisJeWoche := 0.06;
  else       PreisJeWoche := 0; // oder irgendwie anders, bzw. eine Exception werfen
end;
Nur so nebenbei: Welchen Wert hat dann "PreisJeWoche" wenn "ZaehlerNeu - ZaehlerAlt" genau gleich 3 ist? 210 oder 0.06?

DeddyH 15. Jan 2010 11:52

Re: Unendlich einfügen [HILFE]
 
Zitat:

Zitat von Noris
Ne ist ein real Wert.

case funktioniert mit nicht-ordinalen Datentypen? Seit wann denn das? :shock:

Medium 15. Jan 2010 11:53

Re: Unendlich einfügen [HILFE]
 
Das wollt ich auch grad mal so fragen :)

himitsu 15. Jan 2010 12:16

Re: Unendlich einfügen [HILFE]
 
Zitat:

Zitat von DeddyH
case funktioniert mit nicht-ordinalen Datentypen? Seit wann denn das? :shock:

seit 2091?

nee, Fließkomma <> Ordinal

und wegen der 3 ... tja, blödes Copy&Paste des TE-Codes

Namenloser 15. Jan 2010 13:10

Re: Unendlich einfügen [HILFE]
 
Nur der Vollständigkeit halber: Mit der Funktion Delphi-Referenz durchsuchenIsInfinite aus der Unit Math kann man prüfen, ob ein Gleitkommawert "unendlich" ist.

himitsu 15. Jan 2010 13:27

Re: Unendlich einfügen [HILFE]
 
Zitat:

Zitat von NamenLozer
Nur der Vollständigkeit halber: Mit der Funktion Delphi-Referenz durchsuchenIsInfinite aus der Unit Math kann man prüfen, ob ein Gleitkommawert "unendlich" ist.

Und die Konstanten dafür wären Delphi-Referenz durchsuchenInfinity und Delphi-Referenz durchsuchenNegInfinity.

Namenloser 15. Jan 2010 13:30

Re: Unendlich einfügen [HILFE]
 
Zitat:

Zitat von himitsu
Und die Konstanten dafür wären Delphi-Referenz durchsuchenInfinity und Delphi-Referenz durchsuchenNegInfinity.

Wobei man die zur Überprüfung nicht nutzen sollte:
Zitat:

Note: Only use Infinity in assignments : use IsInfinite.

himitsu 15. Jan 2010 13:34

Re: Unendlich einfügen [HILFE]
 
Zitat:

Zitat von NamenLozer
Wobei man die zur Überprüfung nicht nutzen sollte:

Aber um eine Variable erstmal auf Unendlich zu stellen, sind die schon praktisch,
damit man dann auch was zum Prüfen (IsInfinite) hat. :angel:

Medium 15. Jan 2010 14:36

Re: Unendlich einfügen [HILFE]
 
Der Hinweis ist dennoch sehr wichtig, da für diverse NaNs und Infinities mehrere hundert bis tausend (je nach konkretem typ) Werte reserviert sind, so dass es bei einem direkten Vergleich mit diesen Konstanten schon Lotto ähnlich wird :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz