Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

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

Re: Code optimieren

  Alt 18. Aug 2006, 20:17
@everybody vor mir: so langsam sollte doch bekannt sein, dass case nur bei ordinalen Typen funktioniert... -.-

Delphi-Quellcode:
function RoundÖhm(aValue : Double) : Double;
const
  RoundValues : Array[0..2, 0..1] of Double = ((33000, 27000), (25000, 22000),
        (22000, 18000)); // jeweils Maximum des Bereichs und Wert, auf den
        // gerundet werden soll
        // hab mich mal auf drei Angaben beschränkt
var
  i: Integer;
begin
  if (aValue > RoundValues[0, 0]) then
    raise Exception.Create('Lebensgefährlich!')
  else
  begin
    for i := 1 to Length(RoundValues) - 1 do
      if (aValue > RoundValues[i, 0]) then
      begin
        Result := RoundValues[i - 1, 1];
        Exit;
      end;
    Result := RoundValues[High(RoundValues), 1];
  end;
end;

function ÖhmToStr(aValue : Double) : string;
begin
  if (aValue > 1000) then
    Result := Format('%f KOhm', [aValue / 1000])
  else
    Result := Format('%f Ohm', [aValue])
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat