<?xml version="1.0" encoding="UTF-8"?>
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="dot" xml:lang="ru">
    <refnamediv>
        <refname>точка</refname>
        <refpurpose>(.) символ точка</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Синтаксис</title>
        <synopsis>
            123.33

            a.*b
            a .*. b

            %pi * (%e + ..
            %i)

            cd ..
            dir ..
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Описание</title>
        <variablelist>
            <varlistentry>
                <term>.</term>
                <listitem>
                    <para>
                        Точка используется для обозначения десятичной запятой для чисел: 3.25 и
                        0.001
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>.&lt;оператор&gt;</term>
                <listitem>
                    <para>
                        используется в сочетании с другими символами операторов (<literal>*/ \ ^ '</literal>)
                        для формирования других операторов. Операторы поэлементного умножения, деления и
                        возведения в степень и транспонирования получаются с помощью
                        <literal> .*, ./, .\, .^ </literal>; транспонирование без комплексного сопряжения
                        получается с помощью <literal>.'</literal> . Например,  <literal>C = A ./ B</literal>
                        является матрицей с элементами <literal>c(i,j) = a(i,j)/b(i,j)</literal>. Произведение
                        Кронекера обозначается <literal>.*.</literal> . Заметьте, что когда точка стоит
                        сразу после числа, то она всегда является частью числа, так что <literal>2.*x</literal>
                        вычисляется как <literal>2.0*x</literal>, а <literal>2 .*x</literal> вычисляется как
                        <literal>(2).*x</literal>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>..</term>
                <listitem>
                    <para>
                        Обозначение продолжения. Две или более точек в конце строки
                        (или с последующим комментарием) приводит к тому, что следующая
                        строка будет продолжением.
                    </para>
                    <para>
                        Строки продолжения обрабатываются предпроцессором, который строит длинную логическую
                        линию из последовательности строк продолжения. Так что обозначения продолжения
                        могут использоваться для разрезания строки во многих местах.
                    </para>
                    <para>
                        Следующая функция <literal>foo</literal>:
                    </para>
                    <programlisting role=""><![CDATA[
function foo()
    plot2d()
    xtitle(["Общий заголовок"; "Он может быть многострочным и достаточно длинным"], ..
            "Это название оси X", "Название оси Y")
endfunction
 ]]></programlisting>
                    <para>эквивалентна:</para>
                    <programlisting role=""><![CDATA[
function foo()
    plot2d()

    xtitle(["Общий заголовок"; "Он может быть многострочным и достаточно длинным"],  "Это название оси X", "Название оси Y")
endfunction
 ]]></programlisting>
                    <para>
                        Логическая строка, сформированная физической строкой №3 и физической строкой №4,
                        построена так, как если бы она была полностью написана на физической строке №4, а
                        физическая строка №3 была бы пустой. Так сделано для того, чтобы обозначения
                        конкатенации можно было помещать куда угодно внутри выражения.
                        <note>
                            Разница между логическими и физическими строками важна, когда идёт редактирование (scinotes, edit) и в сообщениях об ошибках (<function>whereami</function>), когда номер строки указывается или отображается.
                        </note>
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>параметр ".."</term>
                <listitem>
                    <para>
                        Когда функции используются способом, ориентированным на рабочее окно, <literal>..</literal> рассматривается не как знак продолжения, а как обычный аргумент. Наиболее общее использование - это <literal>cd ..</literal>, <literal>dir ..</literal>
                        или <literal>ls ..</literal> вместо <literal>cd("..")</literal> и т. д.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Примеры</title>
        <programlisting role="example"><![CDATA[
//десятичная запятая
1.345

//используется как часть оператора
x=[1 2 3];x.^2 .*x // требуется пробел между 2 и точкой

// При записи строк матрицы на разных строчках ".." можно использовать, но не обязательно
N = [   ..
    63.    89.    3.   ..
    91.    56.    22.  ..
    15.    64.    40.  ..
    ]
// Можно просто вставлять (или копировать/вставлять из/в рабоче окно или сценарий),
// без добавления ".." вручную в конце строки
N = [
    63.    89.    3.
    91.    56.    22.
    15.    64.    40.
    ]

// Внутри очень длинных инструкций, таких как создание объекта пользовательского интерфейса, где необходимо
// установить много свойств,знаки продолжения являются почти обязательными и позволяют писать и устанавливать
// одно свойство на строчку в удобочитаемом виде. Одиночная огромная строчка может не соответствовать
// стилю написания кода в Scilab:
fig = figure("figure_name", "FIGURE", ..
             "dockable",    "off", ..
             "axes_size",   [990,670], ..
             "infobar_visible", "off", ..
             "toolbar",     "none", ..
             "menubar_visible", "on", ..
             "menubar",     "none", ..
             "default_axes","off", ..
             "layout",      "border", ..
             "background",  color(244,244,244), ..
             "tag",         "figure_1", ..
             "visible",     "on");

// Вызовы, ориентированные на рабочее окно с аргументом ".."
d = pwd(); cd SCI/contrib
cd ..   // заменяет cd("..") и ничего не ожидает на следующей строчке
cd(d)   // переход назад в вашу рабочую директорию

// Это выражение больше не будет работать в Scilab 6
a = "здесь я начинаю очень длинную строку...  //но не в настроении продолжать
     - а здесь продолжаю"
// Теперь эта строка является корректным выражением
a = "здесь я начинаю очень длинную строку"+...  //но не в настроении продолжать
"    - а здесь продолжаю"
// Это выражение в Scilab 6 более не разрешено: скалярное число должно быть написано в одной строчке
y = 12..
45
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Смотрите также</title>
        <simplelist type="inline">
            <member>
                <link linkend="star">звёздочка</link>
            </member>
            <member>
                <link linkend="hat">крышечка</link>
            </member>
            <member>
                <link linkend="slash">слэш</link>
            </member>
            <member>
                <link linkend="backslash">обратный слэш</link>
            </member>
            <member>
                <link linkend="whereami">whereami</link>
            </member>
            <member>
                <link linkend="edit">edit</link>
            </member>
        </simplelist>
    </refsection>
    <refsection>
        <title>История</title>
        <revhistory>
            <revision>
                <revnumber>6.0.0</revnumber>
                <revremark>
                    <para>
                        Больше нельзя разрезать скалярные числа.
                    </para>
                    <para>
                        Чтобы разрезать одиночную строку, необходимо использовать операторы "+..".
                    </para>
                    <para>
                        В вызовах, ориентированных на рабочее окно, <literal>myfun ..</literal> больше не ожидает продолжения на следующей строчке.
                    </para>
                </revremark>
            </revision>
        </revhistory>
    </refsection>
</refentry>
