<?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 commands SYSTEM "commands.docbook">
  
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE">
]>

<book lang="&language;">

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

<authorgroup>
<author
><firstname
>Aleix</firstname
> <surname
>Pol</surname
> <affiliation
> <address
>&Aleix.Pol.mail;</address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>zepires@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
</authorgroup>

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

<legalnotice
>&FDLNotice;</legalnotice>


<date
>2010-09-22</date>
<releaseinfo
>0.10 (&kde; 4.5)</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áfico</keyword>
<keyword
>matemática</keyword>
<keyword
>2D</keyword>
<keyword
>3D</keyword>
<keyword
>mathML</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction"
> 
<title
>Introdução</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
>Aqui está uma imagem da janela principal do &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-main-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Janela 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>

<para
>Common menu options for <guilabel
>Console</guilabel
> tab, the <guilabel
>2D Graph</guilabel
> tab, and <guilabel
>3D Graph</guilabel
> tab:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>N</keycap
></keycombo
></shortcut
> <guimenu
>Sessão</guimenu
><guimenuitem
>Novo</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Abre uma nova janela do &kalgebra;.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
></shortcut
> <guimenu
>Sessão</guimenu
><guimenuitem
>Sair</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Termina o programa.</para
></listitem>
</varlistentry>

</variablelist>

</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
>Será agora apresentada uma lista dos operadores suportados por agora:</para>
<itemizedlist>
<listitem
><para
>+ - * / : Soma, subtracção, multiplicação e divisão.</para
> </listitem>
<listitem
><para
>^, **: Potência - poderá ser usado qualquer um deles. Também é possível usar os caracteres Unicode ². As potências também são uma forma de calcular raizes, como pode ser feito em 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
>() : É usado para aumentar a precedência.</para
></listitem>
<listitem
><para
>abc(parâmetros) : Funções. Quando o processador encontrar uma função, verifica se o 'abc' é um operador. Se for, será tratado como tal; se não for, será tratado como uma função do utilizador.</para
></listitem>
<listitem
><para
>:= : Definição. É usada para definir o valor de uma variável. Poderá fazer coisas do tipo x:=3, x:=y, sendo que o 'y' possa estar definido ou não, ou ainda perimetro:=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
>{ } : Contentor de MathML. Pode ser usado para definir um contentor. É principalmente útil para lidar com as definições de operações condicionais. </para
></listitem>
<listitem
><para
>= &gt; &gt;= &lt; &lt;= : Comparações dos valores para 'igual', 'maior', 'maior ou igual', 'menor' ou 'menor ou igual', respectivamente</para
></listitem>
</itemizedlist>
<para
>Agora poderá perguntar: para que interessa então o MathML? É simples: com ele, poderá usar funções como a cos(), sin(), outras funções trigonométricas, o sum() ou o product(). Não interessa o seu tipo. Poderá usar o plus(), times() e tudo o que tiver o seu operador. As funções booleanas estão também implementadas, pelo que poderá fazer algo do género 'or(1,0,0,0,0)'.</para>

</chapter>

<chapter id="using-console">
<title
>Usar a 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
>L</keycap
></keycombo
></shortcut
> <guimenu
>Consola</guimenu
><guimenuitem
>Carregar um Programa</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
><guimenu
>Consola</guimenu
><guimenuitem
>Gravar o Programa</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Grava as instruções que escreveu desde o início da sessão, para as poder reutilizar. Gera ficheiros de texto, de modo a serem fáceis de alterar com qualquer editor de texto, como o Kate.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
></shortcut
><guimenu
>Consola</guimenu
><guimenuitem
>Exportar o Registo</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>

</variablelist>

</chapter>

<chapter id="two-D-graphs">
<title
>Gráficos 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
>Se tiver introduzido a função, carregue no botão <guibutton
>OK</guibutton
> para mostrar o gráfico na janela principal.</para>

</sect1>

<sect1 id="two-D-features">
<title
>Características</title>
<para
>Poderá ter vários gráfico na mesma janela. Basta usar o botão <guilabel
>Adicionar</guilabel
> quando estiver no modo de Lista. Poderá atribuir a cada gráfico a sua própria cor.</para>

<para
>A janela poderá ser ampliada e movida com o rato. Se usar o rato, poderá ampliar e reduzir a mesma. Poderá também seleccionar uma área com o botão esquerdo do rato, ficando apenas esta área ampliada. Mova a vista com as teclas dos cursores.</para>

<para
>Na página da <guilabel
>Lista</guilabel
>, poderá abrir um menu de contexto com o  &RMB;, ao carregar numa função, para a esconder ou remover.</para>

<para
>No menu do <guimenu
>Gráfico 2D</guimenu
>, poderá encontrar estas opções:</para>
<itemizedlist>
<listitem
><para
>Mostrar ou esconder a grelha</para
></listitem>
<listitem
><para
>Manter as proporções ao ampliar</para
></listitem>
<listitem
><para
>Ampliar (<keycombo action="simul"
>&Ctrl; <keycap
>+</keycap
></keycombo
>) e reduzir (<keycombo action="simul"
>&Ctrl; <keycap
>-</keycap
></keycombo
>)</para
></listitem>
<listitem
><para
>Gravar (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) o gráfico como um ficheiro de imagem</para
></listitem>
<listitem
><para
>Repor a janela com o nível de ampliação original</para
></listitem>
<listitem
><para
>Seleccionar uma resolução para os gráficos</para
></listitem>
</itemizedlist>
</sect1>

</chapter>

<chapter id="three-D-graphs">
<title
>Gráficos 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 janela poderá ser ampliada e movida com o rato. Se usar o rato, poderá ampliar e reduzir a mesma. Mantenha o &LMB; carregado e mova o rato para rodar o gráfico.</para>

<para
>As teclas de cursores para a esquerda e direita rodam o gráfico em torno do eixo dos Z, enquanto os cursores para cima e baixo rodam-no em torno do eixo horizontal.</para>

<para
>No menu <guimenu
>Gráfico 3D</guimenu
>, poderá encontrar estas opções:</para>
<itemizedlist>
<listitem
><para
>Enable or disable transparency</para
></listitem>
<listitem
><para
>Gravar (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) o gráfico como um ficheiro de imagem</para
></listitem>
<listitem
><para
>Repor a janela com o nível de ampliação original</para
></listitem>
<listitem
><para
>Draw the graphs with dots, lines or solid</para
></listitem>
</itemizedlist>


</chapter>

<chapter id="dictionary">
<title
>Dicionário</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>

&commands;

<chapter id="credits">
<title
>Créditos e Licença</title>

<itemizedlist>
<listitem
><para
>Programa com 'copyright' 2005-2009 de &Aleix.Pol;</para>
</listitem>
</itemizedlist>

<para
>Documentação com 'copyright' 2007 de &Aleix.Pol; &Aleix.Pol.mail; </para>

<para
>Tradução de José Nuno Pires <email
>zepires@gmail.com</email
></para
> 
&underFDL; &underGPL; </chapter>


<appendix id="installation">
<title
>Instalação</title>

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

<sect1 id="compilation">
<title
>Compilação e instalação</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:
-->
