Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: while-Schleife funktioniert nicht

  Alt 11. Nov 2007, 18:25
Hallo,

die Initialisierung von K gehört unbedingt in die Prüfroutine, sonst werden nach Eingabe eines falschen Ausdrucks folgende richtige Ausdrücke als falsch erkannt.

Die Prüfroutine trennst du besser von der Benutzerschnittstelle:

Delphi-Quellcode:
uses
  StrUtils;

function ValidExpression(const s: string): Boolean;
var
  i, k: Integer;
begin
  k := 0;
  for i := 1 to Length(s) do
    case s[i] of
      '(': Inc(k);
      ')': Dec(k);
    end;
  Result := k = 0;
end;

procedure TDemoForm.CheckButtonClick(Sender: TObject);
begin
  ShowMessage(IfThen(ValidExpression(TermEdit.Text), 'okay', 'rats'));
end;
Vielen Dank, dass wir an deinen Problemen teilhaben dürfen.

Grüße vom marabu
  Mit Zitat antworten Zitat