# FOR-Schleife Strukturierter Text



## joern_85 (21 Juli 2013)

Hallo ich habe mal eine Frage zur FOR-Schleife.

Habe mehrere Variablen die eigentlich gleich heißen bis auf die hintere Nummer. Diesen Variablen will ich in einer IF Anweisung einen Wert zuweisen. Damit ich nicht alle Variablen schreiben muss, habe ich mir gedacht das über eine FOR-Schleife zu realisieren.

Mein Ansatz:



> FOR x:=1 TO 9 BY 1
> DO Beispiel_0x:=TRUE;
> END_FOR;



So ist es leider nicht möglich.
Kann mir jemand vielleicht sagen wie ich das lösen könnte. Das Alle Variablen Beispiel_01, Beispiel_02...bis Beispiel_09 Auf TRUE gesetzt werden.


----------



## Matze001 (21 Juli 2013)

Versuche die Variablen in ein Array zu legen.

Dieses kannst du dann indirekt adressieren.

Grüße

Marcel


----------



## joern_85 (21 Juli 2013)

Danke für die schnelle Antwort.

Habe es jetzt so geschrieben (habe eigentlich noch nie so richtig mit Arrays gearbeitet)

Code:



> PROGRAMM BEISPIEL
> VAR
> 
> Beispeil    :ARRAY[1..9] OF BOOL;
> ...



Beim Kompilieren gibt es keinen Fehler, ob es dann das macht was ich will kann ich erst morgen gucken, da ich zu hause nicht in den online Modus komme.


----------



## Matze001 (21 Juli 2013)

Sieht gut aus!

Grüße

Marcel


----------



## joern_85 (21 Juli 2013)

Kann ich denn dann in der Visualisierung einfach durch die Eingabe beispielsweise

Beispiel[2]

auf die Variable zugreifen so das dann quasi über eine Taste nur Beispiel[2] getoggelt wird oder hat das dann Auswirkungen auf das gesamte Array?


----------



## Matze001 (21 Juli 2013)

Ja auch das klappt!

Grüße

Marcel


----------



## joern_85 (21 Juli 2013)

Besten Dank.


----------



## joern_85 (23 Juli 2013)

Hallo vielleicht kann mir nochmal jemand helfen bei der FOR-Schleife.

Warum kommt bei dem angegebenen Code eine endlos Schleife??



> PROGRAM TEST
> VAR
> i:INT;
> a:INT;
> ...


----------



## Larry Laffer (23 Juli 2013)

tut es nicht ... da mußt du wo anders ein Problem haben ...

Gruß
Larry


----------



## joern_85 (23 Juli 2013)

Hmm ok, 
Ich habe nichts anderes in meinem Programm stehen, habe das nur zum testen der FOR Schleife gemacht.

Wenn ich im Online Modus auf Start klicke, sieht es so als würde er die FOR Schleife immer wieder wiederholen.




Wenn ich auf Single Cycle klicke läuft sie wohl nur einmal durch.




Oder muss ich dann den Code so an passen das die FOR Schleife nur einmal aufgerufen wird


----------



## Larry Laffer (23 Juli 2013)

Ja ... natürlich ... dein Code ist so geschrieben, dass er in jedem neuen Programm-Zyklus der CPU immer wieder aufs Neue durchlaufen wird.
Willst du das nicht dann mußt du da wohl noch etwas drum herum programmieren, was z.B. dafür sorgt, dass das nur bei einem bestimmten Ereignis (Zustand von z.B. einer Variablen) stattfindet - ggf. Flanken berücksichtigen ...

Gruß
Larry


----------

