<?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 % Brazilian-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
>Luiz Fernando</firstname
><surname
>Ranghetti</surname
><affiliation
><address
><email
>elchevive@opensuse.org</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
</authorgroup>

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

<legalnotice
>&FDLNotice;</legalnotice>


<date
>2009-01-28</date>
<releaseinfo
>0.8 (&kde; 4.2.0</releaseinfo>

<abstract>
<para
>O &kalgebra; é uma calculadora matemática baseada na linguagem de formatação MathML. Nos dias de hoje, ele 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, ele pode ser usado por todas as pessoas que tenham pequenos conhecimentos matemáticos.</para
> 

<screenshot>
<screeninfo
>Aqui está uma captura de tela 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 aba <guilabel
>Console</guilabel
>, uma aba <guilabel
>Gráfico 2D</guilabel
>, outra <guilabel
>Gráfico 3D</guilabel
> e ainda uma aba <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 quisermos compreender como ele funciona, a melhor coisa a fazer é saber que os dados introduzidos são convertidos para MathML, se bem que não é necessário conhecer o 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 a destes.</para>
<para
>Aqui está uma lista dos operadores disponíveis que temos até agora:</para>
<itemizedlist>
<listitem
><para
>+ - * / : Soma, subtração, multiplicação e divisão.</para
> </listitem>
<listitem
><para
>^, **: Potência, você poderá usar 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 especificar uma maior prioridade.</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 usuário.</para
></listitem>
<listitem
><para
>:= : Definição. É usada para definir o valor de uma variável. Você poderá fazer coisas do tipo x:=3, x:=y, sendo que o y pode ser definido ou não, ou ainda perímetro:=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
>{ } : Contenedor MathML. Pode ser usado para definir um contenedor. É 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 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
>Usando o console</title>
<para
>O console do &kalgebra; é útil como calculadora. Aí você terá uma lista das variáveis declaradas. Se fizer um duplo clique 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..10)</para
></listitem>
<listitem
><para
>f:=p->p*k</para
></listitem>
<listitem
><para
>f(pi)</para
></listitem>
</itemizedlist>

<para
>Opções de 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 log.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>L</keycap
></keycombo
></shortcut
> <guimenuitem
>Carregar script</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Executa as instruções de forma sequencial a partir de um arquivo. É 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
>Salvar script</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Salva 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
>Salvar log</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Salva o log com todos os resultados num arquivo.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
></shortcut
> <guimenuitem
>Sair</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Encerra 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 você tem a fazer é ir na aba <guilabel
>Gráficos 2D</guilabel
> e clicar na aba <guilabel
>Adicionar</guilabel
> para adicionar a nova função. Depois, o seu foco irá para um campo de texto onde você 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 especificá-la; mas se quiser uma função f(y) ou uma função polar, terá de adicionar y-> e q-> como variáveis de fronteira.</para>

<para
>Exemplos:</para>
<itemizedlist>
<listitem
><para
>sen(x)</para
></listitem>
<listitem
><para
>x²</para
></listitem>
<listitem
><para
>y->sen(y)</para
></listitem>
<listitem
><para
>q->3*sen(7*q)</para
></listitem>
<listitem
><para
>q=0..100->q</para
></listitem>
</itemizedlist>
<para
>Se você tiver digitado a função, clique no botão <guibutton
>OK</guibutton
> para mostrar o gráfico na janela principal.</para>

</sect1>

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

<para
>A janela poderá ser ampliada e movida com o mouse. Usando a roda do mouse você poderá ampliar e reduzir a mesma. Poderá também seleccionar uma área com o botão esquerdo do mouse, ficando apenas esta área ampliada. Mova a visão com as teclas de seta.</para>

<para
>Na aba <guilabel
>Lista</guilabel
>, você poderá abrir um menu de contexto com o  &RMB;, ao clicar numa função, para a esconder ou removê-la.</para>

<para
>No menu do <guimenu
>Gráfico 2D</guimenu
>, você poderá encontrar estas opções:</para>
<itemizedlist>
<listitem
><para
>Exibe ou oculta a grade.</para
></listitem>
<listitem
><para
>Manter a taxa de proporção ao expandir</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
>Salva (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) o gráfico como um arquivo de imagem</para
></listitem>
<listitem
><para
>Restaurar a janela com o nível de ampliação original</para
></listitem>
<listitem
><para
>Selecionar uma resolução para os gráficos</para
></listitem>
</itemizedlist>
</sect1>

</chapter>

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

<para
>Para desenhar um gráfico 3D com o &kalgebra;, você terá de ir na aba <guilabel
>Gráficos 3D</guilabel
>, onde irá ver um campo de texto na base que será usado para digitar a sua função. O Z ainda não pode ser definido; de momento, o &kalgebra; só suporta funções implícitas que dependam apenas de x e y, como por exemplo (x,y)->x*y, onde o z=x*y.</para>

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

<para
>A janela pode ser ampliada e movida com o mouse. Usando a roda do mouse você poderá ampliar e reduzir a mesma. Mantenha o &LMB; clicado e mova o mouse para rodar o gráfico.</para>

<para
>As teclas para a esquerda e direita rodam o gráfico em torno do eixo Z, enquanto as teclas para cima e baixo rodam em torno do eixo horizontal.</para>

<para
>No menu <guimenu
>Gráfico 3D</guimenu
>, você irá encontrar estas opções:</para>
<itemizedlist>
<listitem
><para
>Habilitar ou desabilitar a transparência</para
></listitem>
<listitem
><para
>Salva (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) o gráfico como um arquivo de imagem</para
></listitem>
<listitem
><para
>Restaurar a janela com o nível de ampliação original</para
></listitem>
<listitem
><para
>Desenhar os gráficos com pontos, linhas ou sólido</para
></listitem>
</itemizedlist>


</chapter>

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

<para
>O dicionário é uma coleção de todas as operações disponíveis no &kalgebra;. Ele 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
>Direitos autorais do programa, 2005-2007 &Aleix.Pol;</para>
</listitem>
</itemizedlist>

<para
>Direitos autorais da documentação 2007 &Aleix.Pol; &Aleix.Pol.mail; </para>

<para
>Tradução de Luiz Fernando Ranghetti <email
>elchevive@opensuse.org</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:
-->
