Thema: Delphi cäsar 1,2,3

Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#2

Re: cäsar 1,2,3

  Alt 6. Mai 2009, 21:30
Hallo,

überleg dir mal was z nach deinen ganzen If-Anweisungen für einen Wert hat.

Du startest mit z = 1.

In der ersten If-Anweisung wird z = 2.
In der zweiten If-Anweisung wird, wenn z = 2 ist, z um 1 auf 3 erhöht.
In der dritten If-Anweisung wird bei z = 3, z auf 1 gesetzt.

Im nächsten Durchlauf der Schleife hat z am Anfang wieder eine 1.

Mit anderen Worten, vor den If-Anweisungen und nach den If-Anweisungen hat
z immer 1.

Du solltest die If-Anweisungen mit else verknüpfen, oder noch besser mit case.

Delphi-Quellcode:
z:=1;
for i := 1 to length(text) do
begin
a:= ord(text[i]);
a:=a+z;
case z of
  1,2: inc(z); //bei 1 oder 2 um eins erhöhen
  3 : z := 1; //bei 3 z auf eins setzen
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat