![]() |
Verschachtelte For Anweisung
Halle Leute,
ich muss eine Facharbeit für den Informatikunterricht schrieben und es gehtum Cäsar Chiffren. In dem Programm befindet sich eine StringGrid, mit zwei Spalten. In der oberen ist das richtige Alphabeth und in der unteren das verschobene. Darunter ist ein UpDown-Button, mit dem dazugehörigen Edit-Feld. In dem Edit Feld kann ich dann mit Werten von 1-25 die Verschiebung einstellen. Der Quelltext zum Verschieben siht so aus:
Delphi-Quellcode:
Ich geb zu der Quelltext sieht kompliziert aus. Wenn ich das Programm Compilieren will, meckert Delphi, und lässt die for-Schleife "for s:=91 to 65 do" einfach weg. Falls dieses Programm wenn Delphi nicht mecker würde richtig wäre, sagt mir bitte bescheid, und sagt mir, wie ich den meckerservice abstellen kann. Ansonsten natürlich was ich falsch gemcaht habe.
procedure TForm1.FormCreate(Sender: TObject);
var i:integer; begin for i:=0 to 26 do begin CaesarStringGrid.Cells[i,0]:=chr(65+i); CaesarStringGrid.Cells[i,1]:=chr(65+i); end; end; procedure TForm1.UpDownClick(Sender: TObject; Button: TUDBtnType); var VStr:String; VInt, i, r, s, b:Integer; begin VStr:=VerschiebewertEdit.TExt; VInt:=StrToInt(VStr); for i:=0 to 25 do begin r:=65+i+VInt; if r>=90 then begin for b:=0 to 25 do begin for s:=91 to 65 do begin CaesarStringGrid.Cells[s,1]:=chr(b+VInt); end; end; end else begin CaesarStringGrid.Cells[i,1]:=chr(r); end; end; end; mfg Derzohan |
Re: Verschachtelte For Anweisung
Wenn man von 91 bis 65 aufwärts Zählen will, dann geht das nicht, darum läßt Delphi dieses weg, da diese Schleife nicht benötigt wird.
Du mußt also Rückwärts zählen :zwinker:
Delphi-Quellcode:
for s:=91 downto 65 do
|
Re: Verschachtelte For Anweisung
Ich habe deinen Quelltext noch nicht genau studiert, aber die Zeile
Zitat:
Delphi-Quellcode:
[Edit] Zu spät [/Edit] :)
for s:=91 downto 65 do
|
Re: Verschachtelte For Anweisung
Zitat:
Gruß Erich |
Re: Verschachtelte For Anweisung
Hallo,
Zitat:
Bis bald Chemiker |
Re: Verschachtelte For Anweisung
Zitat:
Quasi:
Delphi-Quellcode:
MfG
var
i : Integer; stop : Boolean; begin i := 91; stop := false; while not stop do begin // Do Foo if i = 65 then stop := true else Inc(i, Sgn(65 - 91)); end; end; Fabian |
Re: Verschachtelte For Anweisung
Zitat:
Sonst müßtest du z.B. bei sowas (s = String) die Schleife immer mit einem IF absichern, da 1 to 0 ja sonst enorme Probleme bereiten würde.
Delphi-Quellcode:
also to immer nur hoch
For i := 1 to Length(s) do
und downto runtern |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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