en to de translation catalogue (36 entries)

note: type: Resume-text
en: Program a progressive deceleration in order to avoid the mines right behind the goal.
de: Kriegen Sie den Bremsweg unter Kontrolle.

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

note: type: Plain text
en: Reach the finishing pad (25m in front of you) as fast as possible, using the instruction <code>motor( , )</code>. You will have to slow down progressively at the end of the move, otherwise the bot will get blown up on the <a object|mine>mines</a>.
de: Erreichen Sie die Zielfläche (25m vor Ihnen) so schnell Sie können, indem Sie die Anweisung <code><a cbot|motor>motor</a>( , )</code> benutzen. Sie werden die Geschwindigkeit langsam reduzieren müssen, bevor Sie das Ziel erreichen, denn sonst werden Sie durch die <a object|mine>Minen</a> in die Luft gejagt.

note: type: Plain text
en: You could very well write no more than <c/><a cbot|move>move</a>(25);<n/>, this would work perfectly well. However, the aim of this exercise is to learn how to use the instruction <code><a cbot|motor>motor</a></code>.
de: Sie können die Übung bestehen indem Sie einfach nur <c/><a cbot|move>move</a>(25);<n/> benutzen, was perfekt funktionieren würde. Das Ziel dieser Übung besteht aber darin, den Gebrauch der Anweisung <code><a cbot|motor>motor</a></code> kennen zu lernen.

note: type: Plain text
en: This instruction asks for two values:
de: Diese Anweisung erwartet zwei Werte:

note: type: Bullet: '1)'
en: The speed of the left-hand motor.
de: Die Geschwindigkeit des linken Motors.

note: type: Bullet: '2)'
en: The speed of the right-hand motor.
de: Die Geschwindigkeit des rechten Motors.

note: type: Source code
en: <c/>	motor( left, right );
de: <c/>	<a cbot|motor>motor</a>( links, rechts );

note: type: Plain text
en: The values must range between -1 and 1:
de: Die Werte müssen zwischen -1 und 1 liegen:

note: type: Bullet: '-'
en: 1 = full throttle backward
de: 1 = Volle Kraft zurück

note: type: Plain text
en:  0 = stop
     1 = full throttle forward
de:  0 = Stopp
     1 = Volle Kraft voraus

note: type: Plain text
en: For example, <c/>motor(0.5, 0.5);<n/> will move the motor forward with half-speed, until new instructions are given to the motors.
de: Zum Beispiel bewegt <c/><a cbot|motor>motor</a>(0.5, 0.5);<n/> den Roboter mit halber Geschwindigkeit vorwärts bis den Motoren andere Befehle erteilt werden.

note: type: Plain text
en: With the instruction <c/>motor(0.5, 0.6);<n/>, the bot will move forward with half-speed, turning at the same time slightly to the left: the right-hand motor moves a little faster (<code>0.6</code>) than the left-hand motor (<code>0.5</code>).
de: Die Anweisung <c/><a cbot|motor>motor</a>(0.5, 0.6);<n/> lässt den Roboter mit halber Geschwindigkeit vorwärts fahren, wobei er eine leichte Linkskurve nimmt: der rechte Motor dreht sich ein wenig schneller (<code>0.6</code>) als der linke Motor (<code>0.5</code>).

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

note: type: Plain text
en: In order to move forward for exactly 25 meters and not more, you must move full speed during the first 23 meters, then reduce the speed of the motors progressively during the last two meters.
    The <a cbot|var>variable</a> <a cbot|object>position</a> gives you at any moment the current position of the bot, and the instruction <c/><a cbot|dist>distance</a>( , );<n/> returns the distance between two points. The best way to know where you are consists in saving the current position before the start into a <a cbot|var>variable</a>, for example a variable called <code>start</code>. Then you can calculate the distance between the starting position and your current position with <code>distance(position, start)</code>.
de: Um genau 25 Meter vorwärts zu fahren, fahren Sie die ersten 23 Meter mit Höchstgeschwindigkeit und reduzieren Sie die Geschwindigkeit auf den letzten 2 Metern kontinuierlich auf 0.
    Die <a cbot|var>Variable</a> <a cbot|object>position</a> gibt Ihnen jederzeit die aktuelle Position des Roboters an und die Anweisung <c/><a cbot|dist>distance</a>( , );<n/> gibt den Abstand zwischen zwei Punkten zurück. Die beste Möglichkeit, in Erfahrung zu bringen, wo Sie sind, besteht darin, bevor Sie losfahren die momentane Position in einer <a cbot|var>Variable</a> zu speichern, zum Beispiel in einer Variable namens <code>start</code>. Sie können dann den Abstand zwischen dieser Startposition und Ihrer aktuellen Position mit <code>distance(position, start)</code> berechnen.

note: type: \b; header
en: The program
de: Das Programm

note: type: Bullet: '1)'
en: declare the variables
de: Deklarieren Sie die Variablen

note: type: Source code
en: <c/>	point start;
    	float len;
de: <c/>	<a cbot|type>point</a> start;
    	<a cbot|type>float</a> length;

note: type: Bullet: '2)'
en: save the starting position
de: Speichern Sie die Startposition

note: type: Bullet: '3)'
en: start full throttle :
de: Starten Sie mit Höchstgeschwindigkeit :

note: type: Source code
en: <c/>	motor(1, 1);
de: <c/>	<a cbot|motor>motor</a>(1, 1);

note: type: Bullet: '4)'
en: Perform an infinite <code><a cbot|while>while</a></code> loop:
de: Führen Sie eine endlose <code><a cbot|while>while</a></code>-Schleife aus:

note: type: Source code
en: <c/>	while ( true )
    	{
    		len = distance(position, start);
    		if ( len > 25-2 )
    		{
    			motor( less than before ! );
    		}
    	}
de: <c/>	<a cbot|while>while</a> ( <a cbot|true>true</a> )
    	{
    		length = <a cbot|dist>distance</a>(position, start);
    		<a cbot|if>if</a> ( length > 25-2 )
    		{
    			<a cbot|motor>motor</a>( weniger als vorher ! );
    		}
    	}

note: type: Plain text
en: As long as the distance between the start and the current position is smaller than 23m, the instruction in braces after the <code><a cbot|if>if</a></code> instruction will not be executed, so the motors keep their maximum speed as they were told by the <c/><a cbot|motor>motor</a>(1,1);<n/> instruction.
de: Solange der Abstand zwischen der Start- und der aktuellen Position kleiner als 23m ist, werden die Anweisungen in den geschweiften Klammern nach der <code><a cbot|if>if</a></code>-Anweisung nicht ausgeführt, sodass die Motoren ihre Maximalgeschwindigkeit beibehalten, was ihnen durch die <c/><a cbot|motor>motor</a>(1,1);<n/>-Anweisung befohlen wurde.

note: type: Plain text
en: In order to slow down progressively, the speed of the motors must be proportional to the remaining distance:
de: Um kontinuierlich abzubremsen müssen die Motoreinstellungen proportional zur verbleibenden Distanz sein:

note: type: Bullet: 'o'
en: <code>2.0</code> meters left -> speed = <code>1.00</code> (maximum)
de: noch <code>2.0</code> Meter -> Geschw. = <code>1.00</code> (Maximum)

note: type: Bullet: 'o'
en: <code>1.5</code> meters left -> speed = <code>0.75</code>
de: noch <code>1.5</code> Meter -> Geschw. = <code>0.75</code>

note: type: Bullet: 'o'
en: <code>1.0</code> meter left  -> speed = <code>0.50</code>
de: noch <code>1.0</code> Meter -> Geschw. = <code>0.50</code>

note: type: Bullet: 'o'
en: <code>0.5</code> meter left  -> speed = <code>0.25</code>
de: noch <code>0.5</code> Meter -> Geschw. = <code>0.25</code>

note: type: Bullet: 'o'
en: <code>0.0</code> meter left  -> speed = <code>0.00</code> (stop)
de: noch <code>0.0</code> Meter -> Geschw. = <code>0.00</code> (Halt)

note: type: Plain text
en: You can use the following <a cbot|expr>expression</a> <code>(25-len)/2</code> in order to calculate the value for the speed instruction that must be given to the motors.
de: Sie können folgenden <a cbot|expr>Ausdruck</a> verwenden: <code>(25-length)/2</code>, um den Wert für die Geschwindigkeit zu berechnen, den Sie den Motoren zuweisen müssen.

note: type: Plain text
en: It is now up to you to put everything together and to test the program.
de: Es ist jetzt Ihre Aufgabe, alles zusammenzusetzen und das Programm zu testen.

note: type: \b; header
en: Remark
de: Hinweis

note: type: Plain text
en: You can use values greater than 1 for the instruction <c/><a cbot|motor>motor</a>();<n/>, but the bot will not move any faster.
de: Sie können Werte größer als 1 für die <c/><a cbot|motor>motor</a>();<n/>-Anweisung verwenden, aber der Roboter wird dadurch nicht schneller.

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>.
