<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&kalgebra;">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Galician  "INCLUDE">
]>

<book lang="&language;">

<bookinfo>
<title
>Manual do &kalgebra;</title>

<authorgroup>
<author
><firstname
>Aleix</firstname
> <surname
>Pol</surname
> <affiliation
> <address
>&Aleix.Pol.mail;</address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Xosé</firstname
><surname
>Calvo</surname
><affiliation
><address
><email
></email
></address
></affiliation
><contrib
>Tradutor do proxecto Trasno</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2007</year>
<holder
>&Aleix.Pol;</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>


<date
>2009-11-8</date>
<releaseinfo
>0.9 (&kde; 4.4.0)</releaseinfo>

<abstract>
<para
>&kalgebra; is a mathematical calculator based on content markup MathML language. Nowadays it is capable to make simple MathML operations (arithmetic and logical) and to representate 2D and 3D graphs. It is actually not necessary to know MathML to use &kalgebra;. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>gráficos</keyword>
<keyword
>matemáticas</keyword>
<keyword
>2D</keyword>
<keyword
>3D</keyword>
<keyword
>mathML</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction"
> 
<title
>Introdución</title
> 
<para
>&kalgebra; is a MathML-based graph calculator. Although it was initially MathML oriented it can now be used by everyone with little mathematic knowledge.</para
> 

<screenshot>
<screeninfo
>Velaquí unha captura da xanela principal do &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-main-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Xanela principal do &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>

<para
>&kalgebra; main window consists in a <guilabel
>Console</guilabel
> tab, a <guilabel
>2D Graph</guilabel
> tab, a <guilabel
>3D Graph</guilabel
> tab and a <guilabel
>Dictionary</guilabel
> tab. Below these tabs you will find an input field to type your functions or do your calculations. </para>

</chapter>

<chapter id="syntax">
<title
>Sintaxe</title>

<para
>If we want to understand how it works, the best thing we can do is to realize that our input is being converted into MathML although it is not necessary to know MathML. I have based the syntax basically on common sense, it should not be hard for anyone, I’ve looked closely to maxima and maple’s syntax so they look very similar.</para>
<para
>Eis unha listaxe dos operadores dispoñíbeis de momento:</para>
<itemizedlist>
<listitem
><para
>+ - * / : Suma, resta, multiplicación e división.</para
> </listitem>
<listitem
><para
>^, **: Potencias; pódense empregar os dous. Tamén é posíbel empregar os caracteres unicode ² . As potencias son tamén unha maneira de facer raíces; pódense facer así: a**(1/b)</para
></listitem>
<listitem
><para
>-&gt; : lambda. It’s the way to specify the bounded variable in a function.</para
></listitem>
<listitem
><para
>x=a..b : This is used when we need to delimitate a range (bounded variable+uplimit+downlimit). This means that x goes from a to b.</para
></listitem>
<listitem
><para
>() : Emprégase para especificar unha prioridade maior.</para
></listitem>
<listitem
><para
>abc(paráms) : Funcións. Cando o analizador atopa unha función, comproba se abc é un operador. Se o é, trátase como operador; se non o é, trátase como función do usuario.</para
></listitem>
<listitem
><para
>:= : Definición. Emprégase para definir un valor variábel. Pódense facer cousas como x:=3, x:=y, estando y definido ou non ou perímetro:=r->2*pi*r. </para
></listitem>
<listitem
><para
>? : Piecewise condition definition. Piecewise is the way we can define conditional operations in &kalgebra;. If we introduce the condition before the '?' it will use this condition only if it is true, if it finds a '?' without any condition, it will enter in the last instance. Example: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } </para
></listitem>
<listitem
><para
>{} : Contedor de MathML. Pódese empregar para definir un contedor. É útil especialmente para traballar con segmentos. </para
></listitem>
<listitem
><para
>= &gt; &gt;= &lt; &lt;= : Comparadores de valor para igual que, maior que, maior ou igual que, menor que e menor ou igual que, respectivamente</para
></listitem>
</itemizedlist>
<para
>E agora poderíaseme preguntar que por que se debe preocupar o usuario por MathML? É fácil. Con isto, podemos traballar con funcións como cos(), sin() e outras funcións trigonométricas, sum() ou product(). Non importa de que tipo sexan. Podemos empregar plus(), times() e todo o que teña un operador. As funcións lóxicas tamén están incorporadas, polo que podemos facer cousas como or(1,0,0,0,0). </para>

</chapter>

<chapter id="using-console">
<title
>Uso da consola</title>
<para
>&kalgebra;'s console is useful as a calculator. There you have a list of the declared variables. By double clicking on them you will see a dialog that lets you change their values (just a way to trick the log). Every time you enter an expression, the "ans" variable value will be changed to the last result.</para>

<para
>Exemplos:</para>
<itemizedlist>
<listitem
><para
>sin(pi)</para
></listitem>
<listitem
><para
>k:=33</para
></listitem>
<listitem
><para
>sum(k*x : x=0..10)</para
></listitem>
<listitem
><para
>f:=p->p*k</para
></listitem>
<listitem
><para
>f(pi)</para
></listitem>
</itemizedlist>

<para
>Menu options:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>N</keycap
></keycombo
></shortcut
> <guimenuitem
>New</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Flushes the log.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>L</keycap
></keycombo
></shortcut
> <guimenuitem
>Load Script</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Executes the instructions in a file sequentially. Nice if you want to define some libraries or resume some previous work.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>G</keycap
></keycombo
></shortcut
> <guimenuitem
>Save Script</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Garda as instrucións que se escribisen desde que comezou a sesión para podelas reutilizar. Xera ficheiros de texto, polo que debería ser doado argallar neles con calquera editor de texto, como Kate.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
></shortcut
> <guimenuitem
>Save Log</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Saves the log with all results into an HTML file to be able to print or publish.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
></shortcut
> <guimenuitem
>Quit</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Apaga o programa.</para
></listitem>
</varlistentry>

</variablelist>

</chapter>

<chapter id="two-D-graphs">
<title
>Gráficas 2D</title>
<para
>To add a new 2D graph on &kalgebra;, what you have to do is to go to the <guilabel
>2D Graph</guilabel
> tab and click in the <guilabel
>Add</guilabel
> tab to add the new function. Then your focus will go to an input text box where you can type your function.</para>

<sect1 id="two-D-syntax">
<title
>Sintaxe</title>
<para
>If you want to use a typical f(x) function it is not necessary to specify it, but if you want a f(y) or a polar function, you will have to add y-> and q-> as the bounded variables.</para>

<para
>Exemplos:</para>
<itemizedlist>
<listitem
><para
>sin(x)</para
></listitem>
<listitem
><para
>x²</para
></listitem>
<listitem
><para
>y->sin(y)</para
></listitem>
<listitem
><para
>q->3*sin(7*q)</para
></listitem>
<listitem
><para
>t->vector{sin t, t**2}</para
></listitem>
</itemizedlist>
<para
>Unha vez introducida a función, hai que premer o botón <guibutton
>Aceptar</guibutton
> para mostrar a gráfica na xanela principal.</para>

</sect1>

<sect1 id="two-D-features">
<title
>Características</title>
<para
>Pódense colocar varias gráficas na mesma vista. Só hai que empregar o botón <guilabel
>Engadir</guilabel
> no modo Lista. Pódeselle asignar a súa propia cor a cada gráfica.</para>

<para
>A vista pódese ampliar e mover co rato. Coa rodiña pódese achegar e alonxar. Tamén se pode seleccionar unha área co botón esquerdo do rato e esta área amplíase. A vista móvese coas teclas das frechas.</para>

<para
>Na lapela <guilabel
>Lista</guilabel
> pódese abrir un menú de contexto co &RMB; sobre unha función e acochala ou eliminala.</para>

<para
>No menú <guimenu
>Gráfica 2D</guimenu
> hai estas opcións:</para>
<itemizedlist>
<listitem
><para
>Mostrar ou acochar a grade</para
></listitem>
<listitem
><para
>Manter as proporcións durante a ampliación</para
></listitem>
<listitem
><para
>Achegar (<keycombo action="simul"
>&Ctrl; <keycap
>+</keycap
></keycombo
>) e afastar (<keycombo action="simul"
>&Ctrl; <keycap
>-</keycap
></keycombo
>)</para
></listitem>
<listitem
><para
>Gardar (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) a gráfica como un ficheiro de imaxe</para
></listitem>
<listitem
><para
>Restaurar a vista á ampliación orixinal</para
></listitem>
<listitem
><para
>Seleccionar unha resolución para as gráficas</para
></listitem>
</itemizedlist>
</sect1>

</chapter>

<chapter id="three-D-graphs">
<title
>Gráficas 3D</title>

<para
>To draw a 3D Graph with &kalgebra; you will have to go to the <guilabel
>3D Graph</guilabel
> tab and you will see an input field at the bottom where you will type your function. Z can not be defined yet, for the moment &kalgebra; only supports implicit 3d graphs dependent only on the x and y, such as (x,y)->x*y, where z=x*y.</para>

<para
>Exemplos:</para>
<itemizedlist>
<listitem
><para
>sin(x)*sin(y)</para
></listitem>
<listitem
><para
>x/y</para
></listitem>
</itemizedlist>

<para
>A vista pódese ampliar e mover co rato. Coa rodiña pódese achegar e alonxar. Mantén o &LMB; e move o rato para xirar a gráfica.</para>

<para
>As frechas esquerda e dereita xiran a gráfica arredor do eixo z; as frechas para riba e para baixo rotan arredor do eixo horizontal da vista.</para>

<para
>No menú <guimenu
>Gráficas 3D</guimenu
> atópanse estas opcións:</para>
<itemizedlist>
<listitem
><para
>Enable or disable transparency</para
></listitem>
<listitem
><para
>Gardar (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) a gráfica como un ficheiro de imaxe</para
></listitem>
<listitem
><para
>Restaurar a vista á ampliación orixinal</para
></listitem>
<listitem
><para
>Draw the graphs with dots, lines or solid</para
></listitem>
</itemizedlist>


</chapter>

<chapter id="dictionary">
<title
>Dicionario</title>

<para
>The dictionary is a collection of all &kalgebra; available operations. It can be useful to check in the dictionary what is an operation useful for and to know how many parameters does a function stand for.</para>

</chapter>


<chapter id="credits">
<title
>Créditos e licenza</title>

<itemizedlist>
<listitem
><para
>Copyright do programa 2005-2009 &Aleix.Pol;</para>
</listitem>
</itemizedlist>

<para
>Copyright da documentación 2007 &Aleix.Pol; &Aleix.Pol.mail; </para>

<para
>Tradución da documentación: Xosé Calvo - http://trasno.net/</para
> 
&underFDL; &underGPL; </chapter>


<appendix id="installation">
<title
>Instalación</title>

<sect1 id="getting-kapptemplate">
<title
>Como obter o &kalgebra;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Compilación e instalación</title>
&install.compile.documentation; </sect1>

</appendix>
&documentation.index; 
</book>

<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->
