en to fr translation catalogue (25 entries)

note: type: Title-text
en: A function
fr: Une fonction

note: type: Resume-text
en: Create a function in order to make your program shorter.
fr: Créer une fonction pour déplacer un robot.

note: type: ScriptName-text
en: Move
fr: Déplace

note: type: \b; header
en: Exercise
fr: Exercice

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.
fr: Programmez le <a object|bottr>robot</a> pour qu'il trouve toutes les <a object|waypoint>croix bleues</a> posées au sol. Le trajet à effectuer est composé de deux carrés. Le premier mesure 15 mètres de côté, et le deuxième 25 mètres.

note: type: \b; header
en: General principle
fr: Idée générale

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/>
fr: Pour résoudre ce problème, il est intéressant de créer une <a cbot|function>fonction</a> qui déplace le robot le long d'un carré. La fonction principale devient alors très simple:

note: type: Source code
en: extern void object::Function1( )
    {
    	Square(15);
    	Square(25);
    }
fr: extern void object::Déplacer( )
    {
    	Carré(15);
    	Carré(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:
fr: Évidemment, à ce stade, la fonction <code>Carré</code> n'existe pas encore. Pour la créer, vous devrez écrire des instructions hors du <a cbot|bloc>bloc</a>, tout à la fin du programme. La structure du programme devient:

note: type: Source code
en: extern void object::Function1( )
    {
    	<n/>main function ...<code>
    }
    
    void object::Square(float length)
    {
    	</code>new function ...<c/>
    }
fr: extern void object::Déplacer( )
    {
    	<n/>fonction principale ...<code>
    }
    
    void object::Carré(float length)
    {
    	</code>nouvelle fonction ...<c/>
    }

note: type: Plain text
en: Let us look in detail at the different elements of the declaration of the function <code>Square</code>:
fr: Examinons en détail la déclaration de cette fonction <code>Carré</code>:

note: type: Plain text
en: <code><a cbot|void>void</a></code>
    This means that this function will return no value.
fr: <code><a cbot|void>void</a></code>
    Ceci indique que la fonction ne retourne aucune valeur.

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.
fr: <code><a cbot|object>object</a>::</code>
    Permet d'accéder aux caractéristiques du robot, telles que <code>pos</code>, <code>angle</code>, etc. Dans cet exercice, cette déclaration est facultative, car on n'accède pas à ces variables.

note: type: Plain text
en: <code>Square (  )</code>
    This is the name of the function. You can call it Square, or any other name.
fr: <code>Carré (  )</code>
    Nom de la fonction. Vous pouvez choisir le nom qui vous plaît le mieux.

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>.
fr: <code><a cbot|float>float</a> length</code>
    Paramètre que reçoit la fonction. A l'intérieur de la fonction, <code>length</code> prendra une première fois la valeur 15 et une deuxième fois la valeur 25.

note: type: Plain text
en: Here is in detail what will happen when the program is executed:
fr: Le flux du programme se déroule ainsi:

note: type: Bullet: '-'
en: First the main function <code>Function</code> will be executed.
fr: On exécute la fonction principale <code>Déplace</code> depuis le début.

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>.
fr: Lorsqu'on rencontre <code>Carré(15)</code>, on suit la flèche rouge pour entrer une première fois dans la fonction <code>Carré</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.
fr: Lorsque la fonction <code>Carré</code> est terminée, on revient dans <code>Déplace</code> selon la flèche orange.

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.
fr: On continue <code>Déplace</code>, qui contient alors <code>Carré(25)</code>. On suit donc la flèche bleue pour entrer une deuxième fois dans <code>Carré</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.
fr: Lorsque <code>Carré</code> est terminé, on revient dans <code>Déplace</code> en suivant la flèche bleu clair.

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.
fr: L'intérieur de la fonction <code>Carré</code> utilise les instructions <code><a cbot|move>move</a></code> et <code><a cbot|turn>turn</a></code>. L'utilisation d'une boucle <code><a cbot|for>for</a></code> répétée 4 fois allège l'écriture, mais n'est pas indispensable.

note: type: Source code
en: void object::Square(float length)
    {
    	for ( int i=0 ; i<4 ; i=i+1 )
    	{
    		move(length);
    		turn(90);
    	}
    }
fr: void object::Carré(float length)
    {
    	for ( int i=0 ; i<4 ; i=i+1 )
    	{
    		move(length);
    		turn(90);
    	}
    }

note: type: \t; header
en: See also
fr: Voir aussi

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
fr: <a tdraw1>Exercice précédent</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>.
