Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function für Vorzeichen? (https://www.delphipraxis.net/76719-function-fuer-vorzeichen.html)

Cöster 8. Sep 2006 17:25


Function für Vorzeichen?
 
Hi!

Gibt's ne Funktion, der man einen Real übergibt und die dann 1 zurückgibt, wenn die Zahl positiv ist, und -1, wenn sie negativ ist?

Dass man einfach schreiben kann

Delphi-Quellcode:
a := Vorzeichen(b)*5;
Bisher mach ich das so:

Delphi-Quellcode:
a := Abs(b)/b*5;
Aber das ist sicherlich nicht die eleganteste Art.

3_of_8 8. Sep 2006 17:27

Re: Function für Vorzeichen?
 
Dafür gibts die Funktion Delphi-Referenz durchsuchenSign()

Luckie 8. Sep 2006 17:28

Re: Function für Vorzeichen?
 
Delphi-Quellcode:
function IsPositive(Value: Integer): Boolean;
begin
  result := Value > 0;
end;

Cöster 8. Sep 2006 18:02

Re: Function für Vorzeichen?
 
@ 3_of_8:
Kann es sein, dass es sign auf delphi 5 noch nicht gibt?

@ Luckie:
Ich brauch nicht ne Funktion, die mir sagt, ob die Zahl positiv ist, sondern eine, die mir das Vorzeichen zurückliefert (also 1 oder -1). Sonst könnte ich ja auch ne If-Abfrage machen.

JasonDX 8. Sep 2006 18:05

Re: Function für Vorzeichen?
 
Wenns ein einfacher Term sein soll:
Delphi-Quellcode:
ord(value >= 0) * 2 - 1
Im Fall einfach in eine Funktion schmeissen ;)

greetz
Mike

[Edit] >= statt > , dann gehts auch mit 0...

3_of_8 8. Sep 2006 18:06

Re: Function für Vorzeichen?
 
Einfach Math importieren.

@Jason: Das geht nicht, wenn du ne 0 reinbekommst.

himitsu 8. Sep 2006 18:08

Re: Function für Vorzeichen?
 
also ich weiß nicht, was du hast?

Delphi-Quellcode:
If X >= 0 Then Positiv Else Negativ;
[add]
PS: das sagt mein Delphi :zwinker:
Delphi-Quellcode:
// Unit Math
function Sign(const AValue: Integer): TValueSign;
begin
  Result := ZeroValue;
  if AValue < 0 then
    Result := NegativeValue
  else if AValue > 0 then
    Result := PositiveValue;
end;

3_of_8 8. Sep 2006 18:12

Re: Function für Vorzeichen?
 
Ich hätt das jetzt so gelöst:

Delphi-Quellcode:
function Sign(const AValue: Integer): Integer;
asm
cmp eax, 0
ja @positive
cdq
mov eax, edx
ret
@positive:
mov eax, 1
end;

Klaus01 8. Sep 2006 18:27

Re: Function für Vorzeichen?
 
Delphi-Quellcode:
function Vorzeichen(Value: Integer): Char;
begin
  result:='+';
  if (Value < 0) then
    result:='-';
end;

3_of_8 8. Sep 2006 18:31

Re: Function für Vorzeichen?
 
So hat er das nicht gemeint. Er wollte eine Integer-Wert. Außerdem hast du eine unnötige Zuweisung drin und die 0 hat kein Vorzeichen, auch kein positives. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 1 von 6  1 23     Letzte »    

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 by Thomas Breitkreuz