ApCoCoA-1:Examples Tutorial De Loops

From ApCoCoAWiki
Revision as of 20:01, 17 July 2008 by StK (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Schleifen und Irrwege

Ein nicht wegzudenkendes Programmiermittel sind Schleifen und If-Abfragen. Deshalb wollen wir uns dieser hier kurz annehmen.


For-Schleife

 For I:=1 To 10 Do
   Befehle
 EndFor;

Hier werden die Anweisungen, welche sich in Befehle verbergen 10 Mal ausgeführt. Der For-Befehl besteht aus den Teilen For, To, Do und EndFor;, es bedarf also nur eines Semikolons am Ende von EndFor um den Befehl zu beenden. Die Erhöhung des Zählers I wird automatisch mit jedem durchlauf durchgeführt.


ForEach-Schleife

Sei L:=1..10; eine Liste.

 ForEach T In L Do
   Befehle
 EndForEach;

Für jedes Element der Liste L wird also ein Schleifendurchlauf ausgeführt, in dem die in Befehle enthaltenen Anweisungen abgearbeitet werden. Diese Variante der For-Schleife besteht aus den Teilen ForEach, In, Do und EndForEach;.


While-Schleife

 While logische Bedingung Do
   Befehle
 EndWhile;

Solange die logische Beingung den Wert TRUE liefert, wird diese Schleife durchlaufen. Die Schleife wird gestoppt, wenn die logische Beingung FALSE ergibt. Die üblichen Bedingungen sind N=5 (gleich --- Vorsicht: hier kein : verwenden), <= (kleiner gleich), < (kleiner), <> (ungleich), >= (größer gleich) und > (größer).

 I:=1;
 While I<11 Do
   Befehle
   I:=I+1;
 EndFor;

ist das Pendant zu obiger For-Schleife.

Warnung: Achten Sie darauf, dass Ihre While-Schleife irgendwann terminiert!


If-Abfrage

 If logische Bedingung Then
   Befehle
 EndIf;}

Die in Befehle enthaltenen Anweisungen werden genau dann ein Mal ausgeführt, wenn die logische Bedingung TRUE liefert.


If-Verzweigung

 If logische Bedingung Then
   Befehle1
 Else;
   Befehle2
 EndIf;

Die Anweisungen in Befehle1 werden nur dann ausgeführt, wenn die logische Bedingung TRUE liefert, ansonsten werden die in Befehle2 enthaltenen Anweisungen ausgeführt.


Beispiel: Absolutbetrag

Auch wenn eine Funktion wie der Absolutbetrag in CoCoA schon längst implementiert ist (Abs(N)), so wollen wir diese doch noch ein Mal selbst bauen, um erste Erfahrungen mit Verzweigungsbefehlen zu sammeln:

 Define AbsValue(Num)
   If Num<0 Then
     Return -Num;
   Else
     Return Num; 
   EndIf;
 EndDefine;

Bsp AbsValue.png



Weiter geht's im Kapitel Lineare Gleichungssysteme.