en to de translation catalogue (25 entries)

note: type: Title-text
en: A function
de: Eine Funktion

note: type: Resume-text
en: Create a function in order to make your program shorter.
de: Definieren Sie eine neue Funktion, um das Programm kürzer zu machen.

note: type: ScriptName-text
en: Move
de: Funktion1

note: type: \b; header
en: Exercise
de: Übung

note: type: Plain text
en: The <a object|bottr>bot</a> must pass over all the <a object|waypoint>blue crosses</a> on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters.
de: Der <a object|bottr>Roboter</a> soll alle <a object|waypoint>blauen Kreuze</a> auf dem Boden passieren. Der Weg, der genommen werden muss, besteht aus zwei Quadraten. Das erste misst 15 Meter, das zweite 25 Meter.

note: type: \b; header
en: General principle
de: Vorgehensweise

note: type: Plain text
en: In order to solve this problem, the most efficient solution consists in creating a <a cbot|function>function</a> that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:<c/>
de: Der effizienteste Weg, dieses Problem zu lösen, besteht darin, eine <a cbot|function>Funktion</a> zu erzeugen, die den Roboter anweist, ein Quadrat mit einer bestimmten Kantenlänge zu fahren. Das Hauptprogramm wird dann ziemlich einfach:

note: type: Source code
en: extern void object::Function1( )
    {
    	Square(15);
    	Square(25);
    }
de: extern void object::Funktion1( )
    {
    	Square(15);
    	Square(25);
    }

note: type: Plain text
en: You still have to define the function called <code>Square</code>. In order to do this, you will have to write some instructions outside the <a cbot|bloc>block</a> that until now was the frame of each one of your programs. At the very end of the program, after the last closing brace, we will define the function <code>Square</code>. The program will take the following shape:
de: Sie müssen immer noch die Funktion namens <code>Square</code> definieren. Um dies zu tun, müssen Sie einige Anweisungen außerhalb des <a cbot|bloc>Blocks</a> schreiben, der bis jetzt immer den Rahmen aller Ihrer Programme gebildet hat. Ganz am Ende des Programmes, hinter der letzten schließenden Klammer werden wir die Funktion <code>Square</code> definieren. Das Programm nimmt folgende Form an:

note: type: Source code
en: extern void object::Function1( )
    {
    	<n/>main function ...<code>
    }
    
    void object::Square(float length)
    {
    	</code>new function ...<c/>
    }
de: extern void object::Funktion1( )
    {
    	<n/>Haupt-Funktion ...<code>
    }
    
    void object::Square(<a cbot|type>float</a> length)
    {
    	</code>neue Funktion ...<c/>
    }

note: type: Plain text
en: Let us look in detail at the different elements of the declaration of the function <code>Square</code>:
de: Nehmen wir einmal die verschiedenen Elemente der Deklaration der Funktion <code>Square</code> unter die Lupe:

note: type: Plain text
en: <code><a cbot|void>void</a></code>
    This means that this function will return no value.
de: <code><a cbot|void>void</a></code>
    Dies bedeutet, dass die Funktion kein Ergebnis zurückliefert.

note: type: Plain text
en: <code><a cbot|object>object</a>::</code>
    When you write this in front of the function name, you can have access in the function to all the characteristics of the bot, such as <code>position</code>, <code>orientation</code>, etc. In this exercise, this element is not compulsory, as we will not need the characteristics of the bot in the function.
de: <code><a cbot|object>object</a>::</code>
    Wenn Sie dies vor den Namen der Funktion schreiben, dann haben Sie innerhalb der Funktion Zugriff auf alle Eigenschaften des Roboters wie zum Beispiel <code><a cbot|object>position</a></code>, <code><a cbot|object>orientation</a></code>, usw. In dieser Übung ist dieses Element nicht zwingend notwendig, da wir diese Eigenschaften des Roboters nicht benötigen werden.

note: type: Plain text
en: <code>Square (  )</code>
    This is the name of the function. You can call it Square, or any other name.
de: <code>Square (  )</code>
    Dies ist der Name der Funktion. Sie können sie "Square" nennen, oder auch ganz anders.

note: type: Plain text
en: <code><a cbot|float>float</a> length</code>
    Here you define the parameters that the function will get when it is called. The first time the function is actually called with <code>Square(15)</code>, the variable <code>length</code> will contain the value <code>15</code>. The second time, <code>length</code> will contain <code>25</code>.
de: <code><a cbot|float>float</a> length</code>
    Hier definieren Sie die Parameter, die die Funktion erhält, wenn sie aufgerufen wird. Wenn die Funktion das erste mal mit <code>Square(15)</code> wirklich aufgerufen wird, enthält die Variable <code>length</code> den Wert <code>15</code>. Beim zweiten Mal enthält <code>length</code> den Wert <code>25</code>.

note: type: Plain text
en: Here is in detail what will happen when the program is executed:
de: Im Detail passiert folgendes, wenn das Programm ausgeführt wird:

note: type: Bullet: '-'
en: First the main function <code>Function</code> will be executed.
de: Zuerst wird die Hauptfunktion <code>Funktion1</code> ausgeführt.

note: type: Bullet: '-'
en: At the line <code>Square(15)</code>, the program will follow the red arrow and enter the function <code>Square</code> a first time, <code>length</code> containing <code>15</code>.
de: In der Zeile <code>Square(15)</code> folgt das Programm dem roten Pfeil und beginnt erstmalig mit der Ausführung der Funktion <code>Square</code>; <code>length</code> enthält dabei <code>15</code>.

note: type: Bullet: '-'
en: At the end of the function <code>Square</code>, the program follows the orange arrow and comes back to the main function.
de: Am Ende der Funktion <code>Square</code> folgt das Programm dem orangen Pfeil und kehrt so zur Hauptfunktion zurück.

note: type: Bullet: '-'
en: At the line <code>Square(25)</code>, the program will follow the blue arrow and enter the function <code>Square</code> a second time.
de: In der Zeile <code>Square(25)</code> folgt das Programm dem blauen Pfeil und beginnt zum zweiten Mal mit der Ausführung der Funktion <code>Square</code>.

note: type: Bullet: '-'
en: At the end of the function <code>Square</code>, the program follows the light blue arrow and comes back to the main function.
de: Am Ende der Funktion <code>Square</code> folgt das Programm dem orangen Pfeil und kehrt so zur Hauptfunktion zurück.

note: type: Plain text
en: In the function <code>Square</code>, use the instructions <code><a cbot|move>move</a></code> and <code><a cbot|turn>turn</a></code>. In order to make it shorter, you can use a <code><a cbot|for>for</a></code> loop, that will repeat the instructions <code><a cbot|move>move</a></code> and <code><a cbot|turn>turn</a></code> 4 times; however, this is not compulsory.
de: Benutzen Sie in der Funktion <code>Square</code> die Anweisungen <code><a cbot|move>move</a></code> und <code><a cbot|turn>turn</a></code>. Um sie kürzer zu gestalten, können Sie eine <code><a cbot|for>for</a></code>-Schleife benutzen, welche die Anweisungen <code><a cbot|move>move</a></code> und <code><a cbot|turn>turn</a></code> jeweils 4 mal ausführt; aber auch das ist nicht zwingend notwendig.

note: type: Source code
en: void object::Square(float length)
    {
    	for ( int i=0 ; i<4 ; i=i+1 )
    	{
    		move(length);
    		turn(90);
    	}
    }
de: void object::Square(<a cbot|type>float</a> length)
    {
    	<a cbot|for>for</a> ( int i=0 ; i<4 ; i=i+1 )
    	{
    		<a cbot|move>move</a>(length);
    		<a cbot|turn>turn</a>(90);
    	}
    }

note: type: \t; header
en: See also
de: Siehe auch

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
de: Die <a cbot>CBOT-Sprache</a>, die <a cbot|type>Variablentypen</a> und die <a cbot|category>Kategorien</a>.
