AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

If not XY in [...] mit reellen Typen

Ein Thema von engine · begonnen am 23. Mai 2005 · letzter Beitrag vom 30. Mai 2005
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 00:03
Wandelt die Typen in integer etc. um und fertig. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 21:14
Das mit dem 'if r in [...]' klappt nicht unbedingt, weil ein Set nur Bytes (0..255) enthalten kann, jedenfalls bei D6.
Ein 'Case' würde gehen, ist aber unschön.
Bleibt noch die Funktion. Das finde ich am Elegantesten, weil man hier nicht nur auf Gleichheit abfragen kann (sollte man bei reelen Typen sowieso nicht, alter Hut).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#13

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 21:56
zu 0.Josef:

Da gibts die nette Funktion Delphi-Referenz durchsuchenIsEqual, der man zwei Werte übergibt, und die dann true zurückgibt, wenn sich die beiden Werte kaum unterscheiden.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
engine

Registriert seit: 6. Mär 2005
73 Beiträge
 
#14

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 22:01
Zitat von alzaimar:
Das mit dem 'if r in [...]' klappt nicht unbedingt, weil ein Set nur Bytes (0..255) enthalten kann, jedenfalls bei D6.
Nicht nur bei D6...
Eine Funktion wird wohl die einzige Möglichkeit bleiben. Jedoch bleibt noch das Problem
mit dem Vergleichen. In meinem speziellen Fall sind keine +/- Abweichungen möglich.
Das bedeutet das ein Wert von 10.4999999999999.... (10.5) herausgefiltert werden muss.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#15

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 22:10
Hast du meinen Post gesehen? Alternativ geht auch Delphi-Referenz durchsuchenisZero;

Versuch mal
Delphi-Quellcode:
 
uses Math;

if IsZero(15-14.999999999999999999999) then showmessage('Hallo Welt');
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
engine

Registriert seit: 6. Mär 2005
73 Beiträge
 
#16

Re: If not XY in [...] mit reellen Typen

  Alt 24. Mai 2005, 22:28
Ja, zu spät...

Mit "IsZero" kann man eine Funktion bauen.
Hab ich gerade schon ausprobiert.

Super!
  Mit Zitat antworten Zitat
engine

Registriert seit: 6. Mär 2005
73 Beiträge
 
#17

Re: If not XY in [...] mit reellen Typen

  Alt 30. Mai 2005, 21:54
So, für alle die auch eine Funktion zum Vergleichen einer Reellen Zahl mit einer Werte-Liste benötigen; hier die Lösung...

Delphi-Quellcode:
function IfFloatIn(w : extended; a : array of extended; Tol: extended): boolean;
var
  i : integer;

begin
  result := true;
  for i := 0 to high(a) do
    if SameValue(w, a[i], Tol) then exit;
  result := false;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Radius : extended;

begin
  Radius := StrToFloat(Edit1.Text);
  if IfFloatIn(Radius,[10.5, 11.7, 17.8],0)
    then Label1.Caption := 'true'
    else Label1.Caption := 'false';
end;
Mit "Tol" kann eine Toleranz angegeben werden, innerhalb sich der Wert befinden darf.


Danke an alle, die sich an diesem Tread beteiligt haben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:36 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