<?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 % 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
>jncp@netcabo.pt</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
</authorgroup>

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

<legalnotice
>&FDLNotice;</legalnotice>


<date
>2008-08-22</date>
<releaseinfo
>0.8 (&kde; 4.1.2</releaseinfo>

<abstract>
<para
>O &kalgebra; é uma calculadora matemática baseada na linguagem de formatação MathML. Nos dias de hoje, consegue fazer operações simples de MathML (aritméticas e lógicas) e consegue representar gráficos em 2D e 3D. Não é propriamente necessário saber MathML para usar o &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
>O &kalgebra; é uma calculador gráfica baseada em MathML. Ainda que fosse inicialmente orientada para MathML, pode ser agora usada por toda a gente que tenha pequenos conhecimentos matemáticos.</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
>A janela principal do &kalgebra; consiste numa página de <guilabel
>Consola</guilabel
>, uma página <guilabel
>Gráfico 2D</guilabel
> e outra <guilabel
>Gráfico 3D</guilabel
>, assim como ainda uma página de <guilabel
>Dicionário</guilabel
>. Por baixo destas páginas, irá ver um campo de texto onde poderá escrever as suas funções ou fazer os seus cálculos. </para>

</chapter>

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

<para
>Se quiser compreender como funciona, a melhor coisa a fazer é saber que os dados introduzidos são convertidos para MathML, se bem que não é necessário perceber de MathML. A sintaxe baseia-se no senso comum, pelo que não deverá ser difícil de compreender; foi também usada como referência a sintaxe do 'maxima' e do 'maple', pelo que se assemelha também à destes.</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. É a forma de definir a variável limitada de uma função.</para
></listitem>
<listitem
><para
>x=a..b : Isto é usado quando é necessário definir um intervalo [variável + limite-superior + limite-inferior). Isto significa que o 'x' vai de 'a' a '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
>? : Definição de condições. Esta é a forma de definir operações condicionais no &kalgebra;. Se introduzir a condição antes do '?', será usada apenas se for verdadeira; se encontrar um '?' sem qualquer condição, irá entrar na última instância. Por exemplo: condição { eq(x,0) ? 0, eq(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>
</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
>A consola do &kalgebra; é útil como calculadora. Aí terá uma lista das variáveis declaradas. Se fizer duplo-click nelas, irá ver uma janela que lhe permite alterar o valor da mesma (é apenas uma forma de enganar o registo). Sempre que introduzir uma expressão o valor da variável 'ans' será alterado para o último resultado.</para>

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

<para
>Opções do menu:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>N</keycap
></keycombo
></shortcut
> <guimenuitem
>Novo</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Limpa o registo.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>L</keycap
></keycombo
></shortcut
> <guimenuitem
>Carregar um Programa</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Executa as instruções de forma sequencial a partir de um ficheiro. É bom se quiser definir algumas bibliotecas ou outros casos semelhantes.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>G</keycap
></keycombo
></shortcut
> <guimenuitem
>Gravar o Programa</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Grava as instruções que escreveu desde o início da sessão.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
></shortcut
> <guimenuitem
>Gravar o Registo</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Grava o registo num ficheiro, adicionando os resultado e tudo.</para
></listitem>
</varlistentry>

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

</variablelist>

</chapter>

<chapter id="two-D-graphs">
<title
>Gráficos 2D</title>
<para
>Para adicionar um novo gráfico 2D ao &kalgebra;, o que tem a fazer é ir à página de <guilabel
>Gráficos 2D</guilabel
> e carregar no botão para <guilabel
>Adicionar</guilabel
> a função nova. Depois, ficará activo o campo de texto onde poderá escrever a sua função.</para>

<sect1 id="two-D-syntax">
<title
>Sintaxe</title>
<para
>Se quiser usar uma função típica f(x), não é necessário defini-la; mas se quiser uma função f(y) ou uma função polar, terá de adicionar o 'y' e o 'q' como variáveis-fronteira.</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(7q)</para
></listitem>
<listitem
><para
>q=0..100->q</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.</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>

</sect1>

</chapter>

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

<para
>Para desenhar um Gráfico 3D com o &kalgebra;, terá de ir à página de <guilabel
>Gráficos 3D</guilabel
>, onde irá ver um campo de texto que será usado para introduzir os seus dados. De momento, o &kalgebra; só suporta funções que se ajustem a f(x,y), definindo neste caso o Z.</para>

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

</chapter>

<chapter id="dictionary">
<title
>Dicionário</title>

<para
>O dicionário é uma colecção de todas as operações disponíveis no &kalgebra;. Pode ser útil para verificar para que serve uma dada operação e para saber quantos parâmetros uma função necessita.</para>

</chapter>


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

<itemizedlist>
<listitem
><para
>Programa com 'copyright' 2005-2007 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
>jncp@netcabo.pt</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:
-->
