diff options
Diffstat (limited to 'tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook')
-rw-r--r-- | tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook | 1056 |
1 files changed, 185 insertions, 871 deletions
diff --git a/tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook b/tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook index 5e459b562f1..85ac1908ab7 100644 --- a/tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook +++ b/tde-i18n-en_GB/docs/tdeedu/kturtle/programming-reference.docbook @@ -1,602 +1,269 @@ <chapter id="reference"> -<title ->&kturtle;'s &logo; Programming Reference</title> +<title>&kturtle;'s &logo; Programming Reference</title> <sect1 id="commands"> -<title ->Commands</title> -<para ->Using commands you tell the turtle or &kturtle; to do something. Some commands need input, some give output. In this section we explain all the commands that can be used in &kturtle;.</para> +<title>Commands</title> +<para>Using commands you tell the turtle or &kturtle; to do something. Some commands need input, some give output. In this section we explain all the commands that can be used in &kturtle;.</para> <sect2 id="moving-the-turtle"> -<title ->Moving the turtle</title> -<para ->There are several commands to move the turtle over the screen.</para> +<title>Moving the turtle</title> +<para>There are several commands to move the turtle over the screen.</para> <variablelist> <anchor id="forward"/> <varlistentry> - <term ->forward</term> - <listitem -><para -><screen ->forward X</screen> -<userinput ->forward</userinput -> moves the turtle forward by the amount of X pixels. When the pen is down the turtle will leave a trail. <userinput ->forward</userinput -> can be abbreviated to <userinput ->fw</userinput -></para -></listitem> + <term>forward</term> + <listitem><para><screen>forward X</screen> +<userinput>forward</userinput> moves the turtle forward by the amount of X pixels. When the pen is down the turtle will leave a trail. <userinput>forward</userinput> can be abbreviated to <userinput>fw</userinput></para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="backward"/> <varlistentry> - <term ->backward</term> - <listitem -><para -><screen ->backward X</screen> -<userinput ->backward</userinput -> moves the turtle backward by the amount of X pixels. When the pen is down the turtle will leave a trail. <userinput ->backward</userinput -> can be abbreviated to <userinput ->bw</userinput ->.</para -></listitem> + <term>backward</term> + <listitem><para><screen>backward X</screen> +<userinput>backward</userinput> moves the turtle backward by the amount of X pixels. When the pen is down the turtle will leave a trail. <userinput>backward</userinput> can be abbreviated to <userinput>bw</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="turnleft"/> <varlistentry> - <term ->turnleft</term> - <listitem -><para -><screen ->turnleft X</screen> -<userinput ->turnleft</userinput -> commands the turtle to turn an amount of X degrees to the left. <userinput ->turnleft</userinput -> can be abbreviated to <userinput ->tl</userinput ->.</para -></listitem> + <term>turnleft</term> + <listitem><para><screen>turnleft X</screen> +<userinput>turnleft</userinput> commands the turtle to turn an amount of X degrees to the left. <userinput>turnleft</userinput> can be abbreviated to <userinput>tl</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="turnright"/> <varlistentry> - <term ->turnright</term> - <listitem -><para -><screen ->turnright X</screen> -<userinput ->turnright</userinput ->the turtle to turn an amount of X degrees to the right. <userinput ->turnright</userinput -> can be abbreviated to <userinput ->tr</userinput ->.</para -></listitem> + <term>turnright</term> + <listitem><para><screen>turnright X</screen> +<userinput>turnright</userinput>the turtle to turn an amount of X degrees to the right. <userinput>turnright</userinput> can be abbreviated to <userinput>tr</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="direction"/> <varlistentry> - <term ->direction</term> - <listitem -><para -><screen ->direction X</screen> -<userinput ->direction</userinput -> set the turtle's direction to an amount of X degrees counting from zero, and thus is not relative to the turtle's previous direction. <userinput ->direction</userinput -> can be abbreviated to <userinput ->dir</userinput ->.</para -></listitem> + <term>direction</term> + <listitem><para><screen>direction X</screen> +<userinput>direction</userinput> set the turtle's direction to an amount of X degrees counting from zero, and thus is not relative to the turtle's previous direction. <userinput>direction</userinput> can be abbreviated to <userinput>dir</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="center"/> <varlistentry> - <term ->centre</term> - <listitem -><para -><screen ->centre</screen> -<userinput ->centre</userinput -> moves the turtle to the centre on the canvas.</para -></listitem> + <term>centre</term> + <listitem><para><screen>centre</screen> +<userinput>centre</userinput> moves the turtle to the centre on the canvas.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="go"/> <varlistentry> - <term ->go</term> - <listitem -><para -><screen ->go X,Y</screen> -<userinput ->go</userinput -> commands the turtle to go to a certain place on the canvas. This place is X <glossterm linkend="pixels" ->pixels</glossterm -> from the left of the canvas, and Y <glossterm linkend="pixels" ->pixels</glossterm -> form the top of the canvas. Note that using the <userinput ->go</userinput -> command the turtle will not draw a line.</para -></listitem> + <term>go</term> + <listitem><para><screen>go X,Y</screen> +<userinput>go</userinput> commands the turtle to go to a certain place on the canvas. This place is X <glossterm linkend="pixels">pixels</glossterm> from the left of the canvas, and Y <glossterm linkend="pixels">pixels</glossterm> form the top of the canvas. Note that using the <userinput>go</userinput> command the turtle will not draw a line.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="gox"/> <varlistentry> - <term ->gox</term> - <listitem -><para -><screen ->gox X</screen> -<userinput ->gox</userinput -> using this command the turtle will move to X <glossterm linkend="pixels" ->pixels</glossterm -> from the left of the canvas whilst staying at the same height.</para -></listitem> + <term>gox</term> + <listitem><para><screen>gox X</screen> +<userinput>gox</userinput> using this command the turtle will move to X <glossterm linkend="pixels">pixels</glossterm> from the left of the canvas whilst staying at the same height.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="goy"/> <varlistentry> - <term ->goy</term> - <listitem -><para -><screen ->goy Y</screen> -<userinput ->gox</userinput -> using this command the turtle will move to Y <glossterm linkend="pixels" ->pixels</glossterm -> from the top of the canvas whilst staying at the same distance from the left border of the canvas.</para -></listitem> + <term>goy</term> + <listitem><para><screen>goy Y</screen> +<userinput>gox</userinput> using this command the turtle will move to Y <glossterm linkend="pixels">pixels</glossterm> from the top of the canvas whilst staying at the same distance from the left border of the canvas.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="pen"> -<title ->The turtle has a pen</title> -<para ->The turtle has a pen that draws a line when the turtle moves. There are a few commands to control the pen. In this section we explain these commands.</para> +<title>The turtle has a pen</title> +<para>The turtle has a pen that draws a line when the turtle moves. There are a few commands to control the pen. In this section we explain these commands.</para> <variablelist> <anchor id="penup"/> <varlistentry> - <term ->penup</term> - <listitem -><para -><screen ->penup</screen> -<userinput ->penup</userinput -> lifts the pen from the canvas. When the pen is <quote ->up</quote -> no line will be drawn when the turtle moves. See also <userinput ->pendown</userinput ->. <userinput ->penup</userinput -> can be abbreviated to <userinput ->pu</userinput ->.</para -></listitem> + <term>penup</term> + <listitem><para><screen>penup</screen> +<userinput>penup</userinput> lifts the pen from the canvas. When the pen is <quote>up</quote> no line will be drawn when the turtle moves. See also <userinput>pendown</userinput>. <userinput>penup</userinput> can be abbreviated to <userinput>pu</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="pendown"/> <varlistentry> - <term ->pendown</term> - <listitem -><para -><screen ->pendown</screen> -<userinput ->pendown</userinput -> presses the pen down on the canvas. When the pen is press <quote ->down</quote -> on the canvas a line will be drawn when the turtle moves. See also <userinput ->penup</userinput ->.<userinput ->pendown</userinput -> can be abbreviated to <userinput ->pd</userinput ->.</para -></listitem> + <term>pendown</term> + <listitem><para><screen>pendown</screen> +<userinput>pendown</userinput> presses the pen down on the canvas. When the pen is press <quote>down</quote> on the canvas a line will be drawn when the turtle moves. See also <userinput>penup</userinput>.<userinput>pendown</userinput> can be abbreviated to <userinput>pd</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="penwidth"/> <varlistentry> - <term ->penwidth</term> - <listitem -><para -><screen ->penwidth X</screen> -<userinput ->penwidth</userinput -> sets the width of the pen (the line width) to an amount of X <glossterm linkend="pixels" ->pixels</glossterm ->. <userinput ->penwidth</userinput -> can be abbreviated to <userinput ->pw</userinput ->.</para -></listitem> + <term>penwidth</term> + <listitem><para><screen>penwidth X</screen> +<userinput>penwidth</userinput> sets the width of the pen (the line width) to an amount of X <glossterm linkend="pixels">pixels</glossterm>. <userinput>penwidth</userinput> can be abbreviated to <userinput>pw</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="pencolor"/> <varlistentry> - <term ->pencolour</term> - <listitem -><para -><screen ->pencolour R,G,B</screen> -<userinput ->pencolor</userinput -> sets the color of the pen. <userinput ->pencolor</userinput -> takes an <glossterm linkend="rgb" ->RGB combination</glossterm -> as input. <userinput ->pencolor</userinput -> can be abbreviated to <userinput ->pc</userinput ->.</para -></listitem> + <term>pencolour</term> + <listitem><para><screen>pencolour R,G,B</screen> +<userinput>pencolor</userinput> sets the color of the pen. <userinput>pencolor</userinput> takes an <glossterm linkend="rgb">RGB combination</glossterm> as input. <userinput>pencolor</userinput> can be abbreviated to <userinput>pc</userinput>.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="canvas"> -<title ->Commands to control the canvas</title> -<para ->There are several commands to control the canvas.</para> +<title>Commands to control the canvas</title> +<para>There are several commands to control the canvas.</para> <variablelist> <anchor id="canvassize"/> <varlistentry> - <term ->canvassize</term> - <listitem -><para -><screen ->canvassize X,Y</screen> -With the <userinput ->canvassize</userinput -> command you can set the size of the canvas. It takes X and Y as input, where X is the new canvas width in <glossterm linkend="pixels" ->pixels</glossterm ->, and Y is the new height of the canvas in <glossterm linkend="pixels" ->pixels</glossterm ->. <userinput ->canvassize</userinput -> can be abbreviated to <userinput ->cs</userinput ->.</para -></listitem> + <term>canvassize</term> + <listitem><para><screen>canvassize X,Y</screen> +With the <userinput>canvassize</userinput> command you can set the size of the canvas. It takes X and Y as input, where X is the new canvas width in <glossterm linkend="pixels">pixels</glossterm>, and Y is the new height of the canvas in <glossterm linkend="pixels">pixels</glossterm>. <userinput>canvassize</userinput> can be abbreviated to <userinput>cs</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="canvascolor"/> <varlistentry> - <term ->canvascolour</term> - <listitem -><para -><screen ->canvascolour R,G,B</screen> -<userinput ->canvascolor</userinput -> set the color of the canvas. <userinput ->canvascolor</userinput -> takes an <glossterm linkend="rgb" ->RGB combination</glossterm -> as input. <userinput ->canvascolor</userinput -> can be abbreviated to <userinput ->cc</userinput ->.</para -></listitem> + <term>canvascolour</term> + <listitem><para><screen>canvascolour R,G,B</screen> +<userinput>canvascolor</userinput> set the color of the canvas. <userinput>canvascolor</userinput> takes an <glossterm linkend="rgb">RGB combination</glossterm> as input. <userinput>canvascolor</userinput> can be abbreviated to <userinput>cc</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="wrapon"/> <varlistentry> - <term ->wrapon</term> - <listitem -><para -><screen ->wrapon</screen> -With the <userinput ->wrapon</userinput -> command you can set <glossterm linkend="wrapping" ->wrapping</glossterm -> <quote ->on</quote -> for the canvas. Please see the glossary if you want to know what <glossterm linkend="wrapping" ->wrapping</glossterm -> is.</para -></listitem> + <term>wrapon</term> + <listitem><para><screen>wrapon</screen> +With the <userinput>wrapon</userinput> command you can set <glossterm linkend="wrapping">wrapping</glossterm> <quote>on</quote> for the canvas. Please see the glossary if you want to know what <glossterm linkend="wrapping">wrapping</glossterm> is.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="wrapoff"/> <varlistentry> - <term ->wrapoff</term> - <listitem -><para -><screen ->wrapoff</screen> -With the <userinput ->wrapoff</userinput -> command you can set <glossterm linkend="wrapping" ->wrapping</glossterm -> <quote ->off</quote -> for the canvas: this means the turtle can move off the canvas and can get <quote ->lost</quote ->. Please see the glossary if you want to know what <glossterm linkend="wrapping" ->wrapping</glossterm -> is.</para -></listitem> + <term>wrapoff</term> + <listitem><para><screen>wrapoff</screen> +With the <userinput>wrapoff</userinput> command you can set <glossterm linkend="wrapping">wrapping</glossterm> <quote>off</quote> for the canvas: this means the turtle can move off the canvas and can get <quote>lost</quote>. Please see the glossary if you want to know what <glossterm linkend="wrapping">wrapping</glossterm> is.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="clean"> -<title ->Commands to clean up</title> -<para ->There are two commands to clean up the canvas after you have made a mess.</para> +<title>Commands to clean up</title> +<para>There are two commands to clean up the canvas after you have made a mess.</para> <variablelist> <anchor id="clear"/> <varlistentry> - <term ->clear</term> - <listitem -><para -><screen ->clear</screen> -With <userinput ->clear</userinput -> you can clean all drawings from the canvas. All other things remain: the position and angle of the turtle, the canvascolor, the visibility of the turtle, and the canvas size. <userinput ->clear</userinput -> can be abbreviated to <userinput ->ccl</userinput ->.</para -></listitem> + <term>clear</term> + <listitem><para><screen>clear</screen> +With <userinput>clear</userinput> you can clean all drawings from the canvas. All other things remain: the position and angle of the turtle, the canvascolor, the visibility of the turtle, and the canvas size. <userinput>clear</userinput> can be abbreviated to <userinput>ccl</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="reset"/> <varlistentry> - <term ->reset</term> - <listitem -><para -><screen ->reset</screen> -<userinput ->reset</userinput -> cleans much more thoroughly than the <userinput ->clear</userinput -> command. After a <userinput ->reset</userinput -> command everything is like is was when you had just started &kturtle;. The turtle is positioned at the middle of the screen, the canvas color is white, and the turtle draws a black line on the canvas.</para -></listitem> + <term>reset</term> + <listitem><para><screen>reset</screen> +<userinput>reset</userinput> cleans much more thoroughly than the <userinput>clear</userinput> command. After a <userinput>reset</userinput> command everything is like is was when you had just started &kturtle;. The turtle is positioned at the middle of the screen, the canvas color is white, and the turtle draws a black line on the canvas.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="sprites"> -<title ->The turtle is a sprite</title> -<para ->Many people do not know what sprites are, so here a short explanation: sprites are small pictures that can be moved around the screen. (for more info see the glossary on <glossterm linkend="sprites" ->sprites</glossterm ->). So the turtle is a sprite.</para> -<para ->Next you will find a full overview on all commands to work with sprites.</para> -<para ->[The current version of &kturtle; does not yet support the use of sprites other than the turtle. With future versions you will be able to change the turtle into something of your own design]</para> +<title>The turtle is a sprite</title> +<para>Many people do not know what sprites are, so here a short explanation: sprites are small pictures that can be moved around the screen. (for more info see the glossary on <glossterm linkend="sprites">sprites</glossterm>). So the turtle is a sprite.</para> +<para>Next you will find a full overview on all commands to work with sprites.</para> +<para>[The current version of &kturtle; does not yet support the use of sprites other than the turtle. With future versions you will be able to change the turtle into something of your own design]</para> <variablelist> <anchor id="show"/> <varlistentry> - <term ->show</term> - <listitem -><para -><screen ->show</screen> -<userinput ->show</userinput -> makes the turtle visible again after it has been hidden.<userinput ->show</userinput -> can be abbreviated to <userinput ->ss</userinput ->.</para -></listitem> + <term>show</term> + <listitem><para><screen>show</screen> +<userinput>show</userinput> makes the turtle visible again after it has been hidden.<userinput>show</userinput> can be abbreviated to <userinput>ss</userinput>.</para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="hide"/> <varlistentry> - <term ->hide</term> - <listitem -><para -><screen ->hide</screen> -<userinput ->hide</userinput -> hides the turtle. This can be used if the turtle does not fit in your drawing.<userinput ->hide</userinput -> can be abbreviated to <userinput ->sh</userinput ->.</para -></listitem> + <term>hide</term> + <listitem><para><screen>hide</screen> +<userinput>hide</userinput> hides the turtle. This can be used if the turtle does not fit in your drawing.<userinput>hide</userinput> can be abbreviated to <userinput>sh</userinput>.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="writing"> -<title ->Can the turtles write text?</title> -<para ->The answer is: <quote ->yes</quote ->. The turtle can write: it writes just about everything you command it to.</para> +<title>Can the turtles write text?</title> +<para>The answer is: <quote>yes</quote>. The turtle can write: it writes just about everything you command it to.</para> <variablelist> <anchor id="print"/> <varlistentry> - <term ->print</term> - <listitem -><para -><screen ->print X</screen> -The <userinput ->print</userinput -> command is used to command the turtle to write something on the canvas. <userinput ->print</userinput -> takes numbers and strings as input. You can <userinput ->print</userinput -> various numbers and strings using the <quote ->+</quote -> symbol. See here a small example: <screen ->year = 2004 + <term>print</term> + <listitem><para><screen>print X</screen> +The <userinput>print</userinput> command is used to command the turtle to write something on the canvas. <userinput>print</userinput> takes numbers and strings as input. You can <userinput>print</userinput> various numbers and strings using the <quote>+</quote> symbol. See here a small example: <screen>year = 2004 author = "Cies" print "KTurtle was made in " + year + " by " + author </screen> - </para -></listitem> + </para></listitem> </varlistentry> </variablelist> <variablelist> <anchor id="fontsize"/> <varlistentry> - <term ->fontsize</term> - <listitem -><para -><screen ->fontsize X</screen> -<userinput ->fontsize</userinput -> sets the size of the font that is used by <userinput ->print</userinput ->. <userinput ->fontsize</userinput -> takes one input which should be a number. The size is set in <glossterm linkend="pixels" ->pixels</glossterm ->.</para -></listitem> + <term>fontsize</term> + <listitem><para><screen>fontsize X</screen> +<userinput>fontsize</userinput> sets the size of the font that is used by <userinput>print</userinput>. <userinput>fontsize</userinput> takes one input which should be a number. The size is set in <glossterm linkend="pixels">pixels</glossterm>.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="dice"> -<title ->A command that rolls a dice for you</title> -<para ->There is one command that rolls a dice for you</para> +<title>A command that rolls a dice for you</title> +<para>There is one command that rolls a dice for you</para> <variablelist> <anchor id="random"/> <varlistentry> - <term ->random</term> - <listitem -><para -><screen ->random X,Y</screen> -<userinput ->random</userinput -> is a command that takes input and gives output. As input are required two numbers, the first (X) sets the minimum output, the second (Y) sets the maximum. The output is a randomly chosen number that is equal or greater then the minimum and equal or smaller than the maximum. Here a small example: <screen> + <term>random</term> + <listitem><para><screen>random X,Y</screen> +<userinput>random</userinput> is a command that takes input and gives output. As input are required two numbers, the first (X) sets the minimum output, the second (Y) sets the maximum. The output is a randomly chosen number that is equal or greater then the minimum and equal or smaller than the maximum. Here a small example: <screen> repeat 500 [ x = random 1,20 forward x turnleft 10 - x ] -</screen -> Using the <userinput ->random</userinput -> command you can add a bit of chaos to your program.</para -></listitem> +</screen> Using the <userinput>random</userinput> command you can add a bit of chaos to your program.</para></listitem> </varlistentry> </variablelist> </sect2> </sect1> <sect1 id="containers"> -<title ->Containers</title> -<para ->Containers are letters or words that can be used by the programmer to store a number or a text. Containers that contain a number are called <link linkend="variables" ->variables</link ->, containers that can contain text are called <link linkend="strings" ->strings</link ->.</para> +<title>Containers</title> +<para>Containers are letters or words that can be used by the programmer to store a number or a text. Containers that contain a number are called <link linkend="variables">variables</link>, containers that can contain text are called <link linkend="strings">strings</link>.</para> -<para ->Containers that are not used yet are 0 by default. An example: <screen> +<para>Containers that are not used yet are 0 by default. An example: <screen> print N -</screen -> This will print a 0. </para> +</screen> This will print a 0. </para> <sect2 id="variables"> -<title ->Variables: number containers</title> -<para ->Let us start with an example: <screen> +<title>Variables: number containers</title> +<para>Let us start with an example: <screen> x = 3 print x -</screen -> In the first line the letter <userinput ->x</userinput -> made into a variable (number container). As you see the value of the variable <userinput ->x</userinput -> is set to 3. On the second line the value is printed.</para> -<para ->Note that if we wanted to print an <quote ->x</quote -> that we should have written <screen ->print "x" +</screen> In the first line the letter <userinput>x</userinput> made into a variable (number container). As you see the value of the variable <userinput>x</userinput> is set to 3. On the second line the value is printed.</para> +<para>Note that if we wanted to print an <quote>x</quote> that we should have written <screen>print "x" </screen> </para> -<para ->That was easy, now a bit harder example: <screen> +<para>That was easy, now a bit harder example: <screen> A = 2004 B = 25 AB = A + B @@ -609,296 +276,105 @@ print "" + A + " plus " + B backward 30 # the next command prints "1979" print A - B -</screen -> In the first two lines the variables <userinput ->A</userinput -> and <userinput ->B</userinput -> are set to 2004 and 25. On the third line the variable <userinput ->AB</userinput -> is set to <userinput ->A + B</userinput ->, which is 2029. The rest of the example consists of 3 <userinput ->print</userinput -> commands with <userinput ->backward 30</userinput -> in between. The <userinput ->backward 30</userinput -> is there to make sure every output is on a new line. In this example you also see that variables can be used in <link linkend="math" ->mathematical calculations</link ->.</para> +</screen> In the first two lines the variables <userinput>A</userinput> and <userinput>B</userinput> are set to 2004 and 25. On the third line the variable <userinput>AB</userinput> is set to <userinput>A + B</userinput>, which is 2029. The rest of the example consists of 3 <userinput>print</userinput> commands with <userinput>backward 30</userinput> in between. The <userinput>backward 30</userinput> is there to make sure every output is on a new line. In this example you also see that variables can be used in <link linkend="math">mathematical calculations</link>.</para> </sect2> <sect2 id="strings"> -<title ->Strings: text containers</title> -<para ->Strings are a lot like variables. The biggest difference is that strings cannot be used in <link linkend="math" ->mathematical calculations</link -> and <link linkend="questions" ->questions</link ->. An example of the use of strings: <screen> +<title>Strings: text containers</title> +<para>Strings are a lot like variables. The biggest difference is that strings cannot be used in <link linkend="math">mathematical calculations</link> and <link linkend="questions">questions</link>. An example of the use of strings: <screen> x = "Hello " name = inputwindow "Please enter your name..." print x + name + ", how are you?" -</screen -> On the first line the string <userinput ->x</userinput -> is set to <quote ->Hello </quote ->. On the second line the string <userinput ->name</userinput -> is set to the output of the <userinput ->inputwindow</userinput -> command. On the third line the program prints a composition of three strings on the canvas.</para> -<para ->This program ask you to enter your name. When you, for instance, enter the name <quote ->Paul</quote ->, the program prints <quote ->Hello Paul, how are you?</quote ->. Please note that the plus (+) is the only math symbol that you can use with strings.</para> +</screen> On the first line the string <userinput>x</userinput> is set to <quote>Hello </quote>. On the second line the string <userinput>name</userinput> is set to the output of the <userinput>inputwindow</userinput> command. On the third line the program prints a composition of three strings on the canvas.</para> +<para>This program ask you to enter your name. When you, for instance, enter the name <quote>Paul</quote>, the program prints <quote>Hello Paul, how are you?</quote>. Please note that the plus (+) is the only math symbol that you can use with strings.</para> </sect2> </sect1> <sect1 id="math"> -<title ->Can the Turtle do maths?</title> -<para ->Yes, &kturtle; will do your math. You can add (+), substract (-), multiply (*), and divide (/). Here is an example in which we use all of them: <screen> +<title>Can the Turtle do maths?</title> +<para>Yes, &kturtle; will do your math. You can add (+), substract (-), multiply (*), and divide (/). Here is an example in which we use all of them: <screen> a = 20 - 5 b = 15 * 2 c = 30 / 30 d = 1 + 1 print "a: "+a+", b: "+b+", c: "+c+", d: "+d -</screen -> Do you know what value a, b, c and d have?</para> -<para ->If you just want a simple calculation to be done you can do something like this: <screen ->print 2004-12 -</screen -></para> -<para ->Now an example with brackets: <screen> +</screen> Do you know what value a, b, c and d have?</para> +<para>If you just want a simple calculation to be done you can do something like this: <screen>print 2004-12 +</screen></para> +<para>Now an example with brackets: <screen> print ( ( 20 - 5 ) * 2 / 30 ) + 1 -</screen -> The expressions inside brackets will be calculated first. In this example, 20-5 will be calculated, then multiplied by 2, divided by 30, and then 1 is added (giving 2).</para> +</screen> The expressions inside brackets will be calculated first. In this example, 20-5 will be calculated, then multiplied by 2, divided by 30, and then 1 is added (giving 2).</para> </sect1> <sect1 id="questions"> -<title ->Asking questions, getting answers...</title> -<para -><link linkend="if" -><userinput ->if</userinput -></link -> and <link linkend="while" -><userinput ->while</userinput -></link -> are <link linkend="controlling-execution" ->execution controllers</link -> that we will discuss in the next section. In this section we use the <userinput ->if</userinput -> command to explain questions.</para> -<para ->A simple example of questions: <screen> +<title>Asking questions, getting answers...</title> +<para><link linkend="if"><userinput>if</userinput></link> and <link linkend="while"><userinput>while</userinput></link> are <link linkend="controlling-execution">execution controllers</link> that we will discuss in the next section. In this section we use the <userinput>if</userinput> command to explain questions.</para> +<para>A simple example of questions: <screen> x = 6 if x > 5 [ print "hello" ] -</screen -> In this example the question is the <userinput ->x > 5</userinput -> part. If the answer to this question is <quote ->true</quote -> the code between the brackets will be executed. Questions are an important part of programming and often used together with <link linkend="controlling-execution" ->execution controllers</link ->, like <link linkend="if" -><userinput ->if</userinput -></link ->. All numbers and <link linkend="variables" ->variables</link -> (number containers) can be compared to each other with questions.</para> -<para ->Here are all possible questions: <table> -<title ->Types of questions</title> +</screen> In this example the question is the <userinput>x > 5</userinput> part. If the answer to this question is <quote>true</quote> the code between the brackets will be executed. Questions are an important part of programming and often used together with <link linkend="controlling-execution">execution controllers</link>, like <link linkend="if"><userinput>if</userinput></link>. All numbers and <link linkend="variables">variables</link> (number containers) can be compared to each other with questions.</para> +<para>Here are all possible questions: <table> +<title>Types of questions</title> <tgroup cols="3"> <tbody> <row> -<entry -><userinput ->a == b</userinput -></entry> -<entry ->equals</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> equals <userinput ->b</userinput -></entry> +<entry><userinput>a == b</userinput></entry> +<entry>equals</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> equals <userinput>b</userinput></entry> </row> <row> -<entry -><userinput ->a != b</userinput -></entry> -<entry ->not-equal</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> does not equal <userinput ->b</userinput -></entry> +<entry><userinput>a != b</userinput></entry> +<entry>not-equal</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> does not equal <userinput>b</userinput></entry> </row> <row> -<entry -><userinput ->a > b</userinput -></entry> -<entry ->greater than</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> is greater than <userinput ->b</userinput -></entry> +<entry><userinput>a > b</userinput></entry> +<entry>greater than</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> is greater than <userinput>b</userinput></entry> </row> <row> -<entry -><userinput ->a < b</userinput -></entry> -<entry ->smaller than</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> is smaller than <userinput ->b</userinput -></entry> +<entry><userinput>a < b</userinput></entry> +<entry>smaller than</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> is smaller than <userinput>b</userinput></entry> </row> <row> -<entry -><userinput ->a >= b</userinput -></entry> -<entry ->greater than or equals</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> is greater than or equals <userinput ->b</userinput -></entry> +<entry><userinput>a >= b</userinput></entry> +<entry>greater than or equals</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> is greater than or equals <userinput>b</userinput></entry> </row> <row> -<entry -><userinput ->a <= b</userinput -></entry> -<entry ->smaller than or equals</entry> -<entry ->answer is <quote ->true</quote -> if <userinput ->a</userinput -> is smaller than or equals <userinput ->b</userinput -></entry> +<entry><userinput>a <= b</userinput></entry> +<entry>smaller than or equals</entry> +<entry>answer is <quote>true</quote> if <userinput>a</userinput> is smaller than or equals <userinput>b</userinput></entry> </row> </tbody> </tgroup> </table> </para> -<para ->Questions can also be glued to each other with <quote ->question glue</quote ->, this way a few questions can become one big question. <screen> +<para>Questions can also be glued to each other with <quote>question glue</quote>, this way a few questions can become one big question. <screen> a = 1 b = 5 if a < 5 and b == 5 [ print "hello" ] -</screen -> <anchor id="question-glue"/>In this example the glue-word <userinput ->and</userinput -> is used to glue 2 questions (<userinput ->a < 5</userinput ->, <userinput ->b == 5</userinput ->) together. If one side of the <userinput ->and</userinput -> would answer <quote ->false</quote -> the whole question would answer <quote ->false</quote ->, because with the glue-word <userinput ->and</userinput -> both sides need to be <quote ->true</quote -> in order to answer <quote ->true</quote ->.</para> -<para -><userinput ->and</userinput -> is not the only glue-word there are two others. They are all in the next table: <table> -<title ->Question glue-words</title> +</screen> <anchor id="question-glue"/>In this example the glue-word <userinput>and</userinput> is used to glue 2 questions (<userinput>a < 5</userinput>, <userinput>b == 5</userinput>) together. If one side of the <userinput>and</userinput> would answer <quote>false</quote> the whole question would answer <quote>false</quote>, because with the glue-word <userinput>and</userinput> both sides need to be <quote>true</quote> in order to answer <quote>true</quote>.</para> +<para><userinput>and</userinput> is not the only glue-word there are two others. They are all in the next table: <table> +<title>Question glue-words</title> <tgroup cols="2"> <tbody> <row> -<entry -><userinput ->and</userinput -></entry> -<entry ->both sides need to be <quote ->true</quote -> in order to answer <quote ->true</quote -></entry> +<entry><userinput>and</userinput></entry> +<entry>both sides need to be <quote>true</quote> in order to answer <quote>true</quote></entry> </row> <row> -<entry -><userinput ->or</userinput -></entry> -<entry ->if one of the sides is <quote ->true</quote -> the answer is <quote ->true</quote -></entry> +<entry><userinput>or</userinput></entry> +<entry>if one of the sides is <quote>true</quote> the answer is <quote>true</quote></entry> </row> <row> -<entry -><userinput ->not</userinput -></entry> -<entry ->only if both of the sides are <quote ->false</quote -> the answer is <quote ->false</quote -></entry> +<entry><userinput>not</userinput></entry> +<entry>only if both of the sides are <quote>false</quote> the answer is <quote>false</quote></entry> </row> </tbody> </tgroup> @@ -907,232 +383,100 @@ if a < 5 and b == 5 [ </sect1> <sect1 id="controlling-execution"> -<title ->Controlling execution</title> -<para ->The execution controllers enable you — as their name implies — to control execution.</para> +<title>Controlling execution</title> +<para>The execution controllers enable you — as their name implies — to control execution.</para> <sect2 id="easy"> -<title ->Have the turtle wait</title> -<para ->If you have done some programming in &kturtle; you have might noticed that the turtle can be very quick at drawing. This command makes the turtle wait for a given amount of time.</para> +<title>Have the turtle wait</title> +<para>If you have done some programming in &kturtle; you have might noticed that the turtle can be very quick at drawing. This command makes the turtle wait for a given amount of time.</para> <variablelist> <anchor id="wait"/> <varlistentry> - <term ->wait</term> - <listitem -><para -><screen ->wait X</screen> -<userinput ->wait</userinput -> makes the turtle wait for X seconds. <screen> + <term>wait</term> + <listitem><para><screen>wait X</screen> +<userinput>wait</userinput> makes the turtle wait for X seconds. <screen> repeat 36 [ forward 5 turnright 10 wait 0.5 ] -</screen -> This code draws a circle, but the turtle will wait half a second after each step. This gives the impression of a slow-moving turtle.</para -></listitem> +</screen> This code draws a circle, but the turtle will wait half a second after each step. This gives the impression of a slow-moving turtle.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="execute-if"> -<title ->Execute "if"</title> -<para -></para> +<title>Execute "if"</title> +<para></para> <variablelist> <anchor id="if"/> <varlistentry> - <term ->if</term> - <listitem -><para -><screen ->if <link linkend="questions" ->question</link -> [ ... ]</screen> -The code that is placed between the brackets will only be executed <userinput ->if</userinput -> the answer to the <link linkend="questions" ->question</link -> is <quote ->true</quote ->. Please read for more information on <link linkend="questions" ->questions</link -> in the <link linkend="questions" ->question section</link ->. <screen> + <term>if</term> + <listitem><para><screen>if <link linkend="questions">question</link> [ ... ]</screen> +The code that is placed between the brackets will only be executed <userinput>if</userinput> the answer to the <link linkend="questions">question</link> is <quote>true</quote>. Please read for more information on <link linkend="questions">questions</link> in the <link linkend="questions">question section</link>. <screen> x = 6 if x > 5 [ print "x is greater than five!" ] -</screen -> On the first line <userinput ->x</userinput -> is set to 6. On the second line the <link linkend="questions" ->question</link -> <userinput ->x > 5</userinput -> is asked. Since the answer to this question is <quote ->true</quote -> the execution controller <userinput ->if</userinput -> will allow the code between the brackets to be executed</para -></listitem> +</screen> On the first line <userinput>x</userinput> is set to 6. On the second line the <link linkend="questions">question</link> <userinput>x > 5</userinput> is asked. Since the answer to this question is <quote>true</quote> the execution controller <userinput>if</userinput> will allow the code between the brackets to be executed</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="execute-while"> -<title ->Execute "while"</title> -<para -></para> +<title>Execute "while"</title> +<para></para> <variablelist> <anchor id="while"/> <varlistentry> - <term ->while</term> - <listitem -><para -><screen ->while <link linkend="questions" ->question</link -> [ ... ]</screen> -The execution controller <userinput ->while</userinput -> is a lot like <link linkend="if" -><userinput ->if</userinput -></link ->. The difference is that <userinput ->while</userinput -> keeps repeating the code between the brackets till the answer to the <link linkend="questions" ->question</link -> is <quote ->false</quote ->. <screen> + <term>while</term> + <listitem><para><screen>while <link linkend="questions">question</link> [ ... ]</screen> +The execution controller <userinput>while</userinput> is a lot like <link linkend="if"><userinput>if</userinput></link>. The difference is that <userinput>while</userinput> keeps repeating the code between the brackets till the answer to the <link linkend="questions">question</link> is <quote>false</quote>. <screen> x = 1 while x < 5 [ forward 10 wait 1 x = x + 1 ] -</screen -> On the first line <userinput ->x</userinput -> is set to 1. On the second line the <link linkend="questions" ->question</link -> <userinput ->x < 5</userinput -> is asked. Since the answer to this question is <quote ->true</quote -> the execution controller <userinput ->while</userinput -> starts executing the code between the brackets till the answer to the <link linkend="questions" ->question</link -> is <quote ->false</quote ->. In this case the code between the brackets will be executed 4 times, because every time the fifth line is executed <userinput ->x</userinput -> increases by 1..</para -></listitem> +</screen> On the first line <userinput>x</userinput> is set to 1. On the second line the <link linkend="questions">question</link> <userinput>x < 5</userinput> is asked. Since the answer to this question is <quote>true</quote> the execution controller <userinput>while</userinput> starts executing the code between the brackets till the answer to the <link linkend="questions">question</link> is <quote>false</quote>. In this case the code between the brackets will be executed 4 times, because every time the fifth line is executed <userinput>x</userinput> increases by 1..</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="if-else"> -<title ->If not, in other words: "else"</title> -<para -></para> +<title>If not, in other words: "else"</title> +<para></para> <variablelist> <anchor id="else"/> <varlistentry> - <term ->else</term> - <listitem -><para -><screen ->if question [ ... ] else [ ... ]</screen> -<userinput ->else</userinput -> can be used in addition to the execution controller <link linkend="if" -><userinput ->if</userinput -></link ->. The code between the brackets after <userinput ->else</userinput -> is only executed if the answer to the <link linkend="questions" ->question</link -> that is asked is <quote ->false</quote ->. <screen> + <term>else</term> + <listitem><para><screen>if question [ ... ] else [ ... ]</screen> +<userinput>else</userinput> can be used in addition to the execution controller <link linkend="if"><userinput>if</userinput></link>. The code between the brackets after <userinput>else</userinput> is only executed if the answer to the <link linkend="questions">question</link> that is asked is <quote>false</quote>. <screen> x = 4 if x > 5 [ print "x is greater than five!" ] else [ print "x is smaller than six!" ] -</screen -> The <link linkend="questions" ->question</link -> asks if <userinput ->x</userinput -> is greater than 5. Since <userinput ->x</userinput -> is set to 4 on the first line the answer to the question is <quote ->false</quote ->. This means the code between the brackets after <userinput ->else</userinput -> gets executed.</para -></listitem> +</screen> The <link linkend="questions">question</link> asks if <userinput>x</userinput> is greater than 5. Since <userinput>x</userinput> is set to 4 on the first line the answer to the question is <quote>false</quote>. This means the code between the brackets after <userinput>else</userinput> gets executed.</para></listitem> </varlistentry> </variablelist> </sect2> <sect2 id="for-loop"> -<title ->The "for" loop</title> -<para -></para> +<title>The "for" loop</title> +<para></para> <variablelist> <anchor id="for"/> <varlistentry> - <term ->for</term> - <listitem -><para -><screen ->for <userinput ->start point</userinput -> to <userinput ->end point</userinput -> [ ... ]</screen> -The <userinput ->for</userinput -> loop is a <quote ->counting loop</quote ->, &ie; it keeps count for you. <screen> + <term>for</term> + <listitem><para><screen>for <userinput>start point</userinput> to <userinput>end point</userinput> [ ... ]</screen> +The <userinput>for</userinput> loop is a <quote>counting loop</quote>, &ie; it keeps count for you. <screen> for x = 1 to 10 [ print x * 7 forward 15 ] -</screen -> Every time the code between the brackets is executed the <userinput ->x</userinput -> is increased by 1, till <userinput ->x</userinput -> reaches the value of 10. The code between the brackets prints the <userinput ->x</userinput -> multiplied by 7. After this program finishes its execution you will see the times table of 7 on the canvas.</para -></listitem> +</screen> Every time the code between the brackets is executed the <userinput>x</userinput> is increased by 1, till <userinput>x</userinput> reaches the value of 10. The code between the brackets prints the <userinput>x</userinput> multiplied by 7. After this program finishes its execution you will see the times table of 7 on the canvas.</para></listitem> </varlistentry> </variablelist> </sect2> @@ -1141,37 +485,15 @@ for x = 1 to 10 [ <sect1 id="learn"> -<title ->Create your own commands</title> -<para -><userinput ->learn</userinput -> is a very special command, because it is used to create your own commands. The command you create can take <glossterm linkend="input-output" ->input</glossterm -> and return <glossterm linkend="input-output" ->output</glossterm ->. Let us take a look at how a new command is created: <screen> +<title>Create your own commands</title> +<para><userinput>learn</userinput> is a very special command, because it is used to create your own commands. The command you create can take <glossterm linkend="input-output">input</glossterm> and return <glossterm linkend="input-output">output</glossterm>. Let us take a look at how a new command is created: <screen> learn circle (x) [ repeat 36 [ forward x turnleft 10 ] ] -</screen -> The new command is called <userinput ->circle</userinput ->. <userinput ->circle</userinput -> takes one <glossterm linkend="input-output" ->input</glossterm ->, a number, to set the size of the circle. <userinput ->circle</userinput -> returns no <glossterm linkend="input-output" ->output</glossterm ->. The <userinput ->circle</userinput -> command can now be used like a normal command in the rest of the code. See this example: <screen ->learn circle (x) [ +</screen> The new command is called <userinput>circle</userinput>. <userinput>circle</userinput> takes one <glossterm linkend="input-output">input</glossterm>, a number, to set the size of the circle. <userinput>circle</userinput> returns no <glossterm linkend="input-output">output</glossterm>. The <userinput>circle</userinput> command can now be used like a normal command in the rest of the code. See this example: <screen>learn circle (x) [ repeat 36 [ forward x turnleft 10 @@ -1185,8 +507,7 @@ learn circle (x) [ circle(50) </screen> </para> -<para ->In the next example a command with a return value is created. <screen> +<para>In the next example a command with a return value is created. <screen> reset learn multiplyBySelf (n) [ @@ -1196,14 +517,7 @@ learn multiplyBySelf (n) [ ] i = inputwindow "Please enter a number and press OK" print i + " multiplied by itself is: " + multiplyBySelf (i) -</screen -> In this example a new command called <userinput ->multiplyBySelf</userinput -> is created. The input of this command is multiplied by it self and then returned, using the <anchor id="return"/><userinput ->return</userinput -> command. The <userinput ->return</userinput -> command is the way to output a value from a function you have created. </para> +</screen> In this example a new command called <userinput>multiplyBySelf</userinput> is created. The input of this command is multiplied by it self and then returned, using the <anchor id="return"/><userinput>return</userinput> command. The <userinput>return</userinput> command is the way to output a value from a function you have created. </para> </sect1> </chapter> |