<?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 % Ukrainian "INCLUDE">
]>

<book id="kalgebra" lang="&language;">

<bookinfo>
<title
>Підручник з &kalgebra;</title>

<authorgroup>
<author
><firstname
>Aleix</firstname
> <surname
>Pol</surname
> <affiliation
> <address
>&Aleix.Pol.mail;</address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> 
</authorgroup>

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

<legalnotice
>&FDLNotice;</legalnotice>


<date
>27 листопада 2011 року</date>
<releaseinfo
>0.11 (&kde; 4.8)</releaseinfo>

<abstract>
<para
>&kalgebra; — програма, яка може замінити вам калькулятор з можливістю побудови графіків. У програмі передбачено числові, логічні, символічні та аналітичні можливості, за допомогою яких ви зможете виконувати обчислення за формулами у консолі або будувати результати у форматі плоских кривих або просторових графіків. &kalgebra; засновано на мові математичної розмітки (Mathematical Markup Language і MathML). Втім, для користування &kalgebra; знати MathML не потрібно. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>графіка</keyword>
<keyword
>математика</keyword>
<keyword
>2D</keyword>
<keyword
>3D</keyword>
<keyword
>mathML</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Вступ</title>

<para
>У &kalgebra; передбачено численні можливості, за допомогою яких користувач здатен виконувати будь-які обчислення та будувати за результатами графіки. Певний час програму було зорієнтовано лише на розвиток і використання можливостей MathML. Поточною ж версією може користуватися будь-хто з мінімальними знаннями математики для розв’язування простих та складних задач. </para>

<para
>Серед можливостей програми: </para>


<itemizedlist>
<listitem
><para
>консоль користувача для пришвидшення та спрощення обчислення за математичними формулами; </para
></listitem>
<listitem
><para
>можливість створення скриптів для виконання послідовних обчислень; </para
></listitem>
<listitem
><para
>можливості мови програмування, зокрема визначення функцій та автодоповнення синтаксичних конструкцій; </para
></listitem>
<listitem
><para
>можливості числення, зокрема диференціювання, векторне числення та обробка списків; </para
></listitem>
<listitem
><para
>креслення графіків функцій з інтерактивним курсором для пошуку коренів та виконання інших аналітичних дійґ; </para
></listitem>
<listitem
><para
>креслення просторових поверхонь з метою візуалізації тривимірних даних. </para
></listitem>
<listitem
><para
>вбудований словник операцій та операторів з довідковими можливостями щодо багатьох функцій, якими можна скористатися у програмі; </para
></listitem>
</itemizedlist>

<para
>На цьому зображенні ви бачите головне вікно &kalgebra;: </para>

<screenshot>
<screeninfo
>На цьому зображенні ви бачите головне вікно &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-main-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Головне вікно &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>

<para
>Після запуску користувачем сеансу &kalgebra; буде відкрито одне головне вікно, що складається з вкладки <guilabel
>Консолі</guilabel
>, вкладки двовимірних (плоских) графіків, вкладки тривимірних (просторових) графіків і вкладки <guilabel
>Словника</guilabel
>. Під цими вкладками знаходиться поле для введення ваших функцій і виконання обчислень та поле для показу результатів. </para>

<para
>Керувати сеансом можна за допомогою пунктів меню <guilabel
>Сеанс</guilabel
>:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>N</keycap
></keycombo
></shortcut
> <guimenu
>Сеанс</guimenu
><guimenuitem
>Створити</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Відкрити нове вікно &kalgebra;.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
></shortcut
> <guimenu
>Сеанс</guimenu
><guimenuitem
>Вийти</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Завершує роботу програми.</para
></listitem>
</varlistentry>

</variablelist>

</chapter>

<chapter id="syntax">
<title
>Синтаксис</title>
<para
>У &kalgebra; використовується інтуїтивно зрозумілий алгебраїчний синтаксис для функцій, визначених користувачем, подібний до використаного у більшості сучасних графічних калькуляторів. У цьому розділі наведено основні вбудовані оператори &kalgebra;. Синтаксичні конструкції автор &kalgebra; створив на основі синтаксичних конструкцій <ulink url="http://maxima.sourceforge.net/"
>Maxima</ulink
> та <ulink url="http://www.maplesoft.com/products/maple/"
>maple</ulink
> для користувачів, які можуть бути обізнані з цими програмами. </para>

<para
>Для тих, хто цікавиться внутрішніми механізмами роботи &kalgebra;: введені користувачем вирази перетворюються на вирази мовою MathML сервером обробки. Початкове розуміння можливостей, що підтримуються MathML, виходить далеко за межі визначення внутрішніх можливостей &kalgebra;. </para>

<para
>Ось список доступних у цій версії дій:</para>
<itemizedlist>
<listitem
><para
>+ - * / : Додавання, віднімання, множення і ділення.</para
> </listitem>
<listitem
><para
>^, **: Піднесення до степеня, можна використовувати обидва позначення. Також можна використовувати символи unicode ². Степені також використовуються для позначення коренів, це можна зробити за допомогою формули на зразок: a**(1/b)</para
></listitem>
<listitem
><para
>-&gt; : лямбда. За допомогою цього виразу можна вказати одну або декілька вільних змінних, які буде пов’язано у функцію. Наприклад, у виразі <userinput
>length:=(x,y)->(x*x+y*y)^0.5</userinput
>, лямбда-оператор використовується для позначення того, що x і y буде пов’язано під час обчислення функції довжини. </para
></listitem>
<listitem
><para
>x=a..b : Ця конструкція використовується, якщо ми змінюємо діапазон зміни змінної (обмежена зміна+обмеження згори+обмеження знизу). Це означає, що x пробігає значення від a до b.</para
></listitem>
<listitem
><para
>() : Дужки використовуються для зазначення вищого пріоритету обчислень.</para
></listitem>
<listitem
><para
>abc(параметри) : Функції. Коли обробник знаходить функцію, він перевіряє чи є abc оператором. Якщо це так, дії з ним буде виконано як з оператором, якщо ні — обробник поводитиметься з ним як з функцією.</para
></listitem>
<listitem
><para
>:= : Визначення. Використовується для встановлення значення змінної. Ви можете писати x:=3, x:=y у випадках визначеності або невизначеності y, або perimeter:=r->2*pi*r. </para
></listitem>
<listitem
><para
>? : Визначення кускової умови. Кускові умови — це спосіб визначення умовних розгалужень у &kalgebra;. Інакше кажучи, це спосіб визначення послідовності умов if, elseif, else. Якщо вказати умову перед знаком «?», значення буде використано, лише якщо умова справджується, якщо обробник знайде «?» без жодної умови, буде використано залишок після попередніх умов. Приклади: кускова функція { x=0 ? 0, x=1 ? x+1, ? x**2 } </para
></listitem>
<listitem
><para
>{ } : Контейнер MathML. Його можна використовувати для визначення контейнера. Головним чином корисний для роботи з кусковими виразами. </para
></listitem>
<listitem
><para
>= &gt; &gt;= &lt; &lt;= : порівняння значень (рівність, більше, більше або дорівнює, менше та менше або дорівнює, відповідно)</para
></listitem>
</itemizedlist>

<para
>Читач тепер може зауважити, а навіщо взагалі згадувати про MathML? Дуже просто. За його допомогою можна виконувати операції на зразок cos(), sin(), будь-які інші тригонометричні функції, sum() або product(). Характер самої функції не є важливим. Можна використовувати plus(), times() і будь-які інші функції, яким відповідає певний оператор. Також реалізовано булівські функції, отже, можна виконувати операції на зразок or(1,0,0,0,0).</para>

</chapter>

<chapter id="using-console">
<title
>Користування консоллю</title>
<para
>Консоль &kalgebra; — корисний калькулятор з додатковими можливостями. Користувач може вводити вирази для обчислення у режимах <guimenu
>Обчислення</guimenu
> та <guimenu
>Визначення значення</guimenu
>, залежно від вибраного у меню <guimenu
>Консоль</guimenu
> варіанта. </para>

<para
>Окрім показу введених користувачем рівнянь та результатів обчислень, на панелі консолі буде показано всі оголошені змінні (праворуч). Подвійним клацанням на пункті змінної можна буде викликати діалогове вікно, за допомогою якого ви зможете змінити значення змінної (якщо треба підкоригувати проміжні результати). </para>

<para
>Змінна «ans» є особливою. Кожного разу після введення виразу для обчислень значення «ans» замінюватиметься останнім результатом. </para>

<para
>Нижче наведено приклад функцій, які можна ввести до поля введення панелі консолі:</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
>Нижче наведено знімок панелі консолі після введення наведених вище прикладів виразів: </para>
<screenshot>
<screeninfo
>Знімок вікна консолі &kalgebra; з прикладами виразів</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-console-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Вікно консолі &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>


<para
>Користувач може керувати послідовністю обчислень за допомогою пунктів меню <guimenu
>Консоль</guimenu
>:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>L</keycap
></keycombo
></shortcut
> <guimenu
>Консоль</guimenu
><guimenuitem
>Завантажити скрипт</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Послідовно виконує інструкції з файла. Корисне для визначення деяких бібліотек або відновлення попередніх сеансів.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>G</keycap
></keycombo
></shortcut
> <guimenu
>Консоль</guimenu
><guimenuitem
>Зберегти скрипт</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Зберігає інструкції, які ви ввели з часу початку сеансу для подальшого повторного використання. Створює текстові файли, які буде просто виправити, за допомогою, наприклад, Kate.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
></shortcut
> <guimenu
>Консоль</guimenu
><guimenuitem
>Експортувати журнал</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Зберігає журнал з результатами та іншою інформацією до файла &HTML;, який можна надрукувати або оприлюднити у мережі.</para
></listitem>
</varlistentry>

</variablelist>

</chapter>

<chapter id="two-D-graphs">
<title
>Двовимірні графіки</title>
<para
>Щоб додати новий двовимірний графік у &kalgebra;, вам просто слід перейти до вкладки <guilabel
>Двовимірні графіки</guilabel
> і натиснути кнопку <guilabel
>Додати</guilabel
>, щоб додати нову функцію. Після цього фокус буде передано у поле для введення тексту, де ви зможете вказати вашу функцію.</para>

<sect1 id="two-D-syntax">
<title
>Синтаксис</title>
<para
>Якщо ви бажаєте використовувати звичайну функцію f(x), не потрібно окремо задавати її, але, якщо ви бажаєте визначити, скажімо, f(y) або функцію у полярних координатах, вам слід додати y-&gt; і q-&gt; як обмежені змінні.</para>

<para
>Приклади:</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
>Якщо ви ввели функцію, натисніть кнопку <guibutton
>Гаразд</guibutton
>, щоб побачити графік у головному вікні.</para>

</sect1>

<sect1 id="two-D-features">
<title
>Можливості</title>
<para
>Можна накреслити декілька графіків на одному малюнку. Просто скористайтеся кнопкою <guilabel
>Додати</guilabel
>, коли ви знаходитеся у режимі списку. Для кожного з графіків ви можете встановити його колір.</para>

<para
>Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Також ви можете вибрати область, утримуючи ліву кнопку миші, коли ви відпустите кнопку, область буде збільшено до розмірів області перегляду. Пересунути область перегляду можна за допомогою клавіш зі стрілочками.</para>

<para
>На вкладці <guilabel
>Список</guilabel
> ви можете викликати наведенням вказівника на назву функції з наступним клацанням правою кнопкою миші контекстне меню, за допомогою якого можна сховати або вилучити функцію.</para>

<para
>У меню <guimenu
>Двовимірний графік</guimenu
> ви знайдете такі пункти:</para>
<itemizedlist>
<listitem
><para
>Показати або сховати сітку</para
></listitem>
<listitem
><para
>Зберігати співвідношення розмірів під час зміни масштабу</para
></listitem>
<listitem
><para
>Збільшити (<keycombo action="simul"
>&Ctrl; <keycap
>+</keycap
></keycombo
>) і зменшити (<keycombo action="simul"
>&Ctrl; <keycap
>-</keycap
></keycombo
>)</para
></listitem>
<listitem
><para
>Зберегти (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) графік у файлі зображення</para
></listitem>
<listitem
><para
>Оновити перегляд до початкового масштабу</para
></listitem>
<listitem
><para
>Вибрати роздільну здатність для графіків</para
></listitem>
</itemizedlist>


<para
>Нижче наведено знімок вікна, на якому вказівник користувача розташовано у позиції найправішого кореня функції sin(1/x). Для креслення графіка використано дуже малий масштаб, оскільки функція осцилює у околі початку координат. Також показано можливості інтерактивного курсора: у відповідь на наведення вказівника на точку графіка програма показує значення координат x та y у нижньому лівому куті екрана. Також на графіку показано інтерактивну лінію дотичної. </para>

<screenshot>
<screeninfo
>На цьому зображенні ви бачите вікно плоского графіка &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-2dgraph-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Вікно плоских графіків &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>


</sect1>

</chapter>

<chapter id="three-D-graphs">
<title
>Тривимірні графіки</title>

<para
>Щоб накреслити тривимірний графік за допомогою &kalgebra;, вам слід перейти до вкладки <guilabel
>Тривимірні графіки</guilabel
>, там внизу ви побачите поле для вводу, куди і слід ввести вашу функцію. Z поки що визначати не можна, у цій версії &kalgebra; підтримується лише явне задання поверхонь у вигляді залежності від x і y, наприклад (x,y)->x*y, де z=x*y. </para>

<para
>Приклади:</para>
<itemizedlist>
<listitem
><para
>sin(x)*sin(y)</para
></listitem>
<listitem
><para
>x/y</para
></listitem>
</itemizedlist>

<para
>Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Натисніть і утримуйте ліву кнопку миші, а потім пересуньте вказівник миші, щоб повернути графік.</para>

<para
>За допомогою клавіш зі стрілочками ліворуч і праворуч можна обертати графік навколо осі z, за допомогою клавіш зі стрілочками вгору і вниз можна обертати графік навколо горизонтальної осі перегляду.</para>

<para
>У меню <guimenu
>Тривимірний графік</guimenu
> ви знайдете такі пункти:</para>
<itemizedlist>
<listitem
><para
>Пункт вмикання та вимикання прозорості</para
></listitem>
<listitem
><para
>Зберегти (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>) графік у файлі зображення</para
></listitem>
<listitem
><para
>Пункт відновлення початкового масштабу</para
></listitem>
<listitem
><para
>У меню просторового графіка передбачено можливості малювати графік точками, лініями або суцільною поверхнею.</para
></listitem>
</itemizedlist>

<para
>Нижче наведено знімок так званої поверхні «Сомбреро». Поверхню показано з використанням лінійчастого стилю просторових графіків. </para>

<screenshot>
<screeninfo
>На цьому зображенні ви бачите вікно просторового графіка &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-3dgraph-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Вікно просторових графіків &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>

</chapter>

<chapter id="dictionary">
<title
>Словник</title>

<para
>Словник є збіркою всіх доступних дій &kalgebra;. За його допомогою можна знайти визначення всіх операцій та параметрів, які слід вказати для виконання дій. Він корисним для ознайомлення з багатьма можливостями &kalgebra;. </para>

 <para
>Нижче наведено знімок вікна з прикладом пошуку функції косинуса у словнику &kalgebra;. </para>

<screenshot>
<screeninfo
>На цьому зображенні ви бачите вікно словника &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-dictionary-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Вікно словника &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>


</chapter>

&commands;

<chapter id="credits">
<title
>Подяки і ліцензія</title>

<itemizedlist>
<listitem
><para
>Авторські права на програму належать &Aleix.Pol;, ©2005-2009</para>
</listitem>
</itemizedlist>

<para
>Авторські права на документацію до програми належать &Aleix.Pol; &Aleix.Pol.mail;, ©2007 </para>

<para
>Юрій Чорноіван <email
>yurchor@ukr.net</email
></para
> 
&underFDL; &underGPL; </chapter>


<appendix id="installation">
<title
>Встановлення</title>

<sect1 id="getting-kapptemplate">
<title
>Як отримати &kalgebra;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Збирання і встановлення</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:
-->
