<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [

  <!ENTITY kappname "&rocs;">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Ukrainian "INCLUDE"
> 
]>
<book lang="&language;">

<bookinfo>
<title
>Підручник з &rocs;</title>
<authorgroup>
<author
><personname
> <firstname
>Tomaz</firstname
> <surname
>Canabrava</surname
> </personname
> <email
>tomaz.canabrava@gmail.com</email
> </author>
<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2009</year>
<holder
>Tomaz Canabrava</holder>
</copyright>
<legalnotice
>&FDLNotice;</legalnotice>

<date
>5 листопада 2009 року</date>
<releaseinfo
>1.0</releaseinfo>

<abstract>
<para
>&rocs; — інструмент перегляду графів, створений для KDE. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>математика</keyword>
<keyword
>математика</keyword>
<keyword
>графи</keyword>
<keyword
>вузол</keyword>
<keyword
>ребро</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Вступ</title>
<para
>&rocs; створено як комплексне середовище розробки для теорії графів, яке допоможе викладачам демонструвати алгоритми теорії графів, а студентам зрозуміти ці алгоритми.</para>

<para
>У &rocs; передбачено модуль роботи зі скриптами, створений за допомогою Qt Script, за допомогою якого можна керувати накресленим графом зі скрипту. Зміни, внесені скриптом, буде негайно показано на кресленні графу.</para>
</chapter>

<chapter id="using-rocs">
<title
>Користування &rocs;</title>
<para
>Інтерфейс користувача програми поділено на дві частини: </para
> 

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


<sect1 id="rocs-features">
<title
>Загальні параметри &rocs;</title>
<para
>На лівій бічній панелі буде наведено параметри кожного з відкритих графів. Всі ці параметри є загальними для окремого графу, їх можна змінити для окремих вузлів та ребер за допомогою діалогових вікон «Властивості вузла» та «Властивості ребра».</para>
<itemizedlist>
<listitem
><para>
<guilabel
>Назва графу</guilabel>
</para
></listitem>
<listitem
><para
><guilabel
>Колір вузла</guilabel
> для нових вузлів. Змінити колір вузлів для всіх поточних вузлів можна натисканням кнопки <guilabel
>Всі</guilabel
>. </para
></listitem>
<listitem
><para>
<guilabel
>Колір ребра</guilabel>
</para
></listitem>
</itemizedlist>
<para
>У останньому рядку параметрів буде наведено кнопки перемикання:</para>
<itemizedlist>
<listitem
><para
><guilabel
>Показувати назви у:</guilabel
> <guilabel
>Вузлах</guilabel
> або <guilabel
>Ребрах</guilabel
>. </para
></listitem>
<listitem
><para
><guilabel
>Показувати значення у:</guilabel
> <guilabel
>Вузлах</guilabel
> або <guilabel
>Ребрах</guilabel
>. </para
></listitem>
<!--listitem
><para>
<guilabel
>Graph is oriented</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Graph is Automate</guilabel>
</para
></listitem-->
</itemizedlist>
</sect1>

<sect1 id="rocs-toolbars">
<title
>Панелі інструментів &rocs;</title>
<para
>Передбачено також дві панелі інструментів, розташованих у верхній частині вікна. На головній панелі передбачено такі кнопки інструментів:</para>
<itemizedlist>
<listitem
><para
><guilabel
>Пересунути вузол</guilabel
>: пересунути вузол полотном креслення.</para
></listitem>
<listitem
><para
><guilabel
>Додати вузол</guilabel
>: створити вузол на полотні у точці, на яку буде наведено вказівник миші під час клацання лівою кнопкою миші.</para
></listitem>
<listitem
><para
><guilabel
>Додати ребро</guilabel
>: створити нове ребро між двома вузлами.</para
></listitem>
<listitem
><para
><guilabel
>Позначити</guilabel
>: позначити елементи клацанням на них.</para
></listitem>
<listitem
><para
><guilabel
>Вилучити</guilabel
>: вилучити елементи клацанням на них.</para
></listitem>
<listitem
><para
>Цими інструментами вирівнювання можна скористатися для впорядкування позначених вузлів.</para
></listitem>
</itemizedlist>

<para
>Наведення вказівника миші на вузол або ребро з наступним клацанням правою кнопкою миші відкриє діалогове вікно властивостей відповідного елемента.</para>
<para
>На панелі компонування програми розташовано різноманітні кнопки зміни компонування.</para>

<para
>Щоб вирівняти вузли, позначте їх за допомогою інструменту <guiicon
>Позначити</guiicon
>: накресліть рамку навколо елементів, які слід позначити, а потім оберіть потрібне вам компонування. </para>
</sect1>
</chapter>

<chapter id="scripting-rocs">
<title
>Робота зі скриптами у &rocs;</title>
<para
>Після появи графу на екрані ви зможете розпочати створення скрипту для цього графу. Скрипт слід записувати синтаксичними конструкціями Javascript. Скрипт має працювати з об’єктами Graph, Node та Edge.</para>

<sect1 id="script-graph">
<title
>Граф</title>
<programlisting
>array list_nodes();
     array list_edges();
     node add_node(name);
     edge add_edge(from, to);
     node node_byname(QString&amp; name);
     node begin_node();
     array end_nodes();
</programlisting
> 
<para
>Змінні графів, які можна змінювати:</para>
<programlisting
>bool directed
     bool automate
     string name
     string nodeDefaultColor // у HEXA
     string edgeDefaultColor  // у HEXA 
</programlisting>
</sect1>

<sect1 id="script-nodes">
<title
>Вузли</title>
<programlisting
>array adj_nodes();
     array adj_edges();
     array  input_edges();
     array output_edges();
     array loop_edges();
     array connected_edges(Node *n);
     void self_remove();
</programlisting
> 
<para
>Змінні вузлів:</para>
<programlisting
>double x
    double y
    double width
    string value
    string name
    string color  // in HEXA
    bool begin
    bool end
</programlisting>
</sect1>

<sect1 id="script-edges">
<title
>Ребра</title>
<programlisting
>string color ( em hexa )
    string value
    string name
    double width
    string style ( dot, dash, dash dot, solid )

    node start();
    node  end();

    void self_remove();
</programlisting
> 
</sect1>

<sect1 id="script-example">
<title
>Приклад</title>
<para
>Ось простий приклад скрипту, який встановлює кольори перших чотирьох вузлів на першому графі.</para>
<programlisting
>/* Простий приклад, який встановлює кольори перших чотирьох вузлів першого 
графу: */
 
var colours = new Array("red", "green", "blue", "yellow");

/* graphs — це масив графів, доступ до окремого графу можна отримувати за його індексом 
у масиві або за його назвою, отже, якщо назвою першого графу є Untitled0, можна скористатися 
такими командами  */
var list1= graphs[0].list_nodes(); //  перша форма.
var list2=Untitled0.list_nodes();              // друга форма
 
 for ( var i = 0; i &lt; colours.length; i++){
        if (i 
> list2.length) break;
        list2[i].color = colours[i]
 }
</programlisting>
</sect1>

</chapter>

<chapter id="commands">
<title
>Довідка щодо команд</title>

<sect1 id="rocs-mainwindow">
<title
>Меню і клавіатурні скорочення</title>

<sect2>
<title
>Меню <guimenu
>Файл</guimenu
></title>
<variablelist>
<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>Q</keycap
></keycombo
> </shortcut
> <guimenu
>Файл</guimenu
> <guimenuitem
>Вийти</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Завершити роботу</action
> &rocs;.</para
></listitem>
</varlistentry>
</variablelist>

</sect2>


<sect2>
<title
>Меню <guimenu
>Параметри</guimenu
></title>

<variablelist>
<varlistentry>
<term
><menuchoice
><guimenu
>Параметри</guimenu
> <guisubmenu
>Показані панелі</guisubmenu
> </menuchoice
></term>
<listitem
><para
><action
>Перемкнути</action
> видимість <guimenuitem
>Головної</guimenuitem
> панелі та панелі <guimenuitem
>Компонування</guimenuitem
>.</para
></listitem>
</varlistentry>


<varlistentry>
<term
><menuchoice
><guimenu
>Параметри</guimenu
> <guimenuitem
>Показати смужку стану</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Увімкнути або вимкнути</action
> показ смужки стану.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Параметри</guimenu
> <guimenuitem
>Налаштувати скорочення...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Відкрити</action
> звичайне діалогове вікно параметрів &kde;, за допомогою якого ви зможете налаштувати клавіатурні скорочення для різних дій. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Параметри</guimenu
> <guimenuitem
>Налаштувати пенали...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Налаштувати</action
> елементи, які ви бажаєте бачити на головній панелі інструментів. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2>
<title
>Меню <guimenu
>Довідка</guimenu
></title>
&help.menu.documentation; </sect2>
</sect1>
</chapter>


<chapter id="credits">

<title
>Подяки і ліцензія</title>

<para
>&rocs; </para>
<para
>Авторські права на програму належать Tomaz Canabrava tcanabrava at kde dot org, ©2009 </para>

<para
>Авторські права на документацію до програми належать &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; та Tomaz Canabrava tcanabrava at kde dot org, ©2009 </para>

<para
>Переклад українською: Юрій Чорноіван <email
>yurchor@ukr.net</email
></para
> 
&underFDL; &underGPL; </chapter>

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

<sect1 id="getting-rocs">
<title
>Як отримати &rocs;</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:
-->
