Thema: Delphi Zahlen symmetrisch

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#22

Re: Zahlen symmetrisch

  Alt 28. Mär 2008, 10:53
Der 2. Ansatz ist auf jeden Fall richtiger, wenn auch umständlich gelöst. Versuch es mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var eins, zwei, drei, vier, fuenf: Integer;
begin
  //Du solltest hier auf jeden Fall eine Fehlerbehandlung einbauen
  eins:=StrToInt(edit1.text);
  zwei:=StrToInt(edit2.text);
  drei:=StrToInt(edit3.text);
  vier:=StrToInt(edit4.Text);
  fuenf:=StrToInt(edit5.Text);
  //sprechende Bezeichner wären auch nicht schlecht ;)
  Label2.Visible := (eins = fuenf) and (zwei = vier);
  Label3.Visible := not Label2.Visible;
{
  If (eins = fuenf) and (zwei = vier) then begin
    Label3.Visible:=StrToBool('False');
    Label2.Visible:=StrToBool('True');
  end
else
  begin
    Label2.Visible:=StrToBool('False');
    Label3.Visible:=StrToBool('True');
  end;}

end;
Und zum Einsetzen von Funktionen solltest Du Dir die Einsteiger-Tutorials in diesem und anderen Foren mal ansehen. Ein kleines Beispiel:
Delphi-Quellcode:
function IsSymmetricNumber(const i: Cardinal): Boolean;
begin
  Result := IntToStr(i) = ReverseString(IntToStr(i));
end;

procedure TForm1.Button1Click(Sender: TObject);
var eins, zwei, drei, vier, fuenf: Integer;
begin
  //Du solltest hier auf jeden Fall eine Fehlerbehandlung einbauen
  eins:=StrToInt(edit1.text) * 10000;
  zwei:=StrToInt(edit2.text) * 1000;
  drei:=StrToInt(edit3.text) * 100;
  vier:=StrToInt(edit4.Text) * 10;
  fuenf:=StrToInt(edit5.Text);
  if IsSymmetricNumber(eins + zwei + drei + vier + fuenf) then
    ShowMessage('Palindrom')
  else
    ShowMessage('Kein Palindrom');
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat