AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Taschenrechner Ausgabe

Ein Thema von safak67 · begonnen am 5. Jun 2009 · letzter Beitrag vom 8. Jun 2009
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#30

Re: Taschenrechner Ausgabe

  Alt 8. Jun 2009, 09:48
danke blup habe es gelesen.. eine letzte frage habe ich noch.. kann mir einer ausführlich erklären am besten kommentieren was hier gemacht wird...
Delphi-Quellcode:
{ermittelt aus einer Reihe von Operatoren den,
der am weitesten Rechts im Term auftaucht}
 
function FindOperator(const ATerm, AOperatoren: string;
  out AOp: Char; out APos: Integer): Boolean;
var
  i, iPos: Integer;
  Op: Char;
begin
  AOp := #0;
  APos := 0;
  Result := False;
  for i := 1 to Length(AOperatoren) do
  begin
    Op := AOperatoren[i];
    iPos := APos;
    repeat
      iPos := PosEx(Op, ATerm, iPos + 1);
      if iPos > APos then
      begin
        AOp := Op;
        APos := iPos;
        Result := True;
      end;
    until (iPos = 0);
  end;
end;

function BerechneTerm(ATerm: string): Double;
const
  OperatorLevel: array[0..1] of string = ('+-', '*/');
var
  Op: Char;
  i, iPos: Integer;
  Value1, Value2: Double;
begin
  for i := Low(OperatorLevel) to High(OperatorLevel) do
  begin
    if FindOperator(ATerm, OperatorLevel[i], Op, iPos) then
    begin
      Value1 := BerechneTerm(Copy(ATerm, 1, iPos - 1));
      Value2 := BerechneTerm(Copy(ATerm, iPos + 1, Length(ATerm)));
      case Op of
        '+': Result := Value1 + Value2;
        '-': Result := Value1 - Value2;
        '*': Result := Value1 * Value2;
        '/': Result := Value1 / Value2;
      else
        raise Exception.Create(Format('undefinierter Operator ''%s''', [Op]));
      end;
      Exit;
    end;
  end;
  Result := StrToFloat(ATerm);
end;
 
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:15 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