# O Manual do &kalgebra;

## Introdução

&kalgebra; is a MathML-based graph calculator. Although it was initially MathML oriented it can now be used by everyone with little mathematic knowledge.

Aqui está uma imagem da janela principal do &kalgebra; Janela principal do &kalgebra;

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

Common menu options for Console tab, the 2D Graph tab, and 3D Graph tab:

&Ctrl; N Sessão Novo

- Abre uma nova janela do &kalgebra;.

&Ctrl; Q Sessão Sair

- Termina o programa.

## Sintaxe

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.

Será agora apresentada uma lista dos operadores suportados por agora:

- + - * / : Soma, subtracção, multiplicação e divisão.

- ^, **: 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)

- -> : lambda. It’s the way to specify the bounded variable in a function.

- 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.

- () : É usado para aumentar a precedência.

- 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.

- := : 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.

- ? : 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 }

- { } : Contentor de MathML. Pode ser usado para definir um contentor. É principalmente útil para lidar com as definições de operações condicionais.

- = > >= < <= : Comparações dos valores para 'igual', 'maior', 'maior ou igual', 'menor' ou 'menor ou igual', respectivamente

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)'.

## Usar a Consola

&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.

Exemplos:

- sin(pi)

- k:=33

- sum(k*x : x=0..10)

- f:=p->p*k

- f(pi)

Menu options:

&Ctrl; L Consola Carregar um Programa

- Executes the instructions in a file sequentially. Nice if you want to define some libraries or resume some previous work.

&Ctrl; G Consola Gravar o Programa

- 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.

&Ctrl; S Consola Exportar o Registo

- Saves the log with all results into an HTML file to be able to print or publish.

## Gráficos 2D

To add a new 2D graph on &kalgebra;, what you have to do is to go to the 2D Graph tab and click in the Add tab to add the new function. Then your focus will go to an input text box where you can type your function.

### Sintaxe

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.

Exemplos:

- sin(x)

- x²

- y->sin(y)

- q->3*sin(7*q)

- t->vector{sin t, t**2}

Se tiver introduzido a função, carregue no botão OK para mostrar o gráfico na janela principal.

### Características

Poderá ter vários gráfico na mesma janela. Basta usar o botão Adicionar quando estiver no modo de Lista. Poderá atribuir a cada gráfico a sua própria cor.

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.

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

No menu do Gráfico 2D, poderá encontrar estas opções:

- Mostrar ou esconder a grelha

- Manter as proporções ao ampliar

- Ampliar (&Ctrl; +) e reduzir (&Ctrl; -)

- Gravar (&Ctrl; S) o gráfico como um ficheiro de imagem

- Repor a janela com o nível de ampliação original

- Seleccionar uma resolução para os gráficos

## Gráficos 3D

To draw a 3D Graph with &kalgebra; you will have to go to the 3D Graph 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.

Exemplos:

- sin(x)*sin(y)

- x/y

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.

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.

No menu Gráfico 3D, poderá encontrar estas opções:

- Enable or disable transparency

- Gravar (&Ctrl; S) o gráfico como um ficheiro de imagem

- Repor a janela com o nível de ampliação original

- Draw the graphs with dots, lines or solid

## Dicionário

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.

&commands;

## Créditos e Licença

- Programa com 'copyright' 2005-2009 de &Aleix.Pol;

Documentação com 'copyright' 2007 de &Aleix.Pol; &Aleix.Pol.mail;

Tradução de José Nuno Pires zepires@gmail.com

&underFDL; &underGPL;

## Instalação

### Como obter o &kalgebra;

&install.intro.documentation;

### Compilação e instalação

&install.compile.documentation;
&documentation.index;