[doc] mv data_structures/types => core/types
[scilab.git] / scilab / modules / core / help / ru_RU / types / type.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) INRIA
5  * Copyright (C) 2017 - Samuel GOUGEON
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
9  * This file is hereby licensed under the terms of the GNU GPL v2.0,
10  * pursuant to article 5.3.4 of the CeCILL v.2.1.
11  * This file was originally licensed under the terms of the CeCILL v2.1,
12  * and continues to be available under such terms.
13  * For more information, see the COPYING file which you should have received
14  * along with this program.
15  *
16  -->
17 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
18     xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
19     xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
20     xml:lang="ru" xml:id="type">
21     <refnamediv>
22         <refname>type</refname>
23         <refpurpose>возвращает тип переменной</refpurpose>
24     </refnamediv>
25     <refsynopsisdiv>
26         <title>Синтаксис</title>
27         <synopsis>i = type(x)</synopsis>
28     </refsynopsisdiv>
29     <refsection>
30         <title>Аргументы</title>
31         <variablelist>
32             <varlistentry>
33                 <term>x</term>
34                 <listitem>
35                     <para>объект Scilab'а.</para>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>i</term>
40                 <listitem>
41                     <para>целое число.</para>
42                 </listitem>
43             </varlistentry>
44         </variablelist>
45     </refsection>
46     <refsection>
47         <title>Описание</title>
48         <para>
49             <code>type(x)</code> возвращает целое число, которое равно типу <varname>x</varname>:
50         </para>
51         <variablelist>
52             <varlistentry>
53                 <term>1</term>
54                 <listitem>
55                     матрица вещественных или комплексных значений удвоенной точности (double).
56                 </listitem>
57             </varlistentry>
58             <varlistentry>
59                 <term>2</term>
60                 <listitem>
61                     матрица <link linkend="poly">полиномов</link>.
62                 </listitem>
63             </varlistentry>
64             <varlistentry>
65                 <term>4</term>
66                 <listitem>
67                     матрица <link linkend="matrices">логических</link> значений.
68                 </listitem>
69             </varlistentry>
70             <varlistentry>
71                 <term>5</term>
72                 <listitem>
73                     <link linkend="sparse">разрежённая</link> матрица.
74                 </listitem>
75             </varlistentry>
76             <varlistentry>
77                 <term>6</term>
78                 <listitem>
79                     <link linkend="sparse">разрежённая</link> матрица логических значений.
80                 </listitem>
81             </varlistentry>
82             <varlistentry>
83                 <term>7</term>
84                 <listitem>
85                     разрежённая матрица Matlab'а.
86                 </listitem>
87             </varlistentry>
88             <varlistentry>
89                 <term>8</term>
90                 <listitem>
91                     матрица <link linkend="int8">целочисленных</link> значений, хранимых в 1
92                     (<literal>int8</literal>), 2 (<literal>int16</literal>) ,
93                     4 (<literal>int32</literal>) или 8 (<literal>int64</literal>) байтах.
94                 </listitem>
95             </varlistentry>
96             <varlistentry>
97                 <term>9</term>
98                 <listitem>
99                     матрица <link linkend="graphics_entities">графических дескрипторов</link>.
100                 </listitem>
101             </varlistentry>
102             <varlistentry>
103                 <term>10</term>
104                 <listitem>
105                     матрица <link linkend="strings">символьных строк</link>.
106                 </listitem>
107             </varlistentry>
108             <varlistentry>
109                 <term>13</term>
110                 <listitem>
111                     компилированная <link linkend="function">функция</link> (Scilab code).
112                 </listitem>
113             </varlistentry>
114             <varlistentry>
115                 <term>14</term>
116                 <listitem>
117                     <link linkend="library">библиотека</link> функций.
118                 </listitem>
119             </varlistentry>
120             <varlistentry>
121                 <term>15</term>
122                 <listitem>
123                     список (<link linkend="list">list</link>).
124                 </listitem>
125             </varlistentry>
126             <varlistentry>
127                 <term>16</term>
128                 <listitem>
129                     типизированный список (<link linkend="tlist">tlist</link>).
130                 </listitem>
131             </varlistentry>
132             <varlistentry>
133                 <term>17</term>
134                 <listitem>
135                     матричноориентированный типизированный список (<link linkend="mlist">mlist</link>).
136                 </listitem>
137             </varlistentry>
138             <varlistentry>
139                 <term>128</term>
140                 <listitem>
141                     идентификатор блока Xcos, результата <link linkend="lufact">lufact</link>() и т. д.
142                 </listitem>
143             </varlistentry>
144             <varlistentry>
145                 <term>129</term>
146                 <listitem>
147                     размер неявного многочлена, используемый для индексации.
148                 </listitem>
149             </varlistentry>
150             <varlistentry>
151                 <term>130</term>
152                 <listitem>
153                     встроенная функция Scilab'а, называемая также <emphasis role="italic">шлюзом</emphasis> (код C, C++ или Fortran).
154                 </listitem>
155             </varlistentry>
156             <varlistentry>
157                 <term>0</term>
158                 <listitem>
159                     Неопределённый компонент  простого списка. Такой компонент может быть в качестве
160                     опущенного входного аргумента при вызове Scilab-функции, как, например, в <literal>foo(a,,b)</literal>:
161                     внутри функции отсутствующий аргумент определён, но он нулевого типа. Определение
162                     <literal>L=list(%pi,,%i,,,%z)</literal> создаёт <literal>L(2)</literal> типа 0, и т.д.
163                     Для этих объектов <code>isdef()</code> возвращает <literal>%T</literal>, но
164                     их нулевой тип может быть проверен с помощью <literal>type()</literal>.
165                 </listitem>
166             </varlistentry>
167         </variablelist>
168         <refsect2>
169             <title>Примечания</title>
170             <para>
171                Некоторые данные могут быть сохранены в настраиваемых контейнерах, определённых как
172                типовые списки типа 16 (tlist) или 17 (матрично-ориентированный типизированный список
173                mlist). Это также и случай для встроенных типов, как например (<emphasis role="italic">рациональные числа</emphasis>),
174                (<emphasis role="italic">структуры</emphasis>), пространство состояний
175                <emphasis role="italic">state-space</emphasis>, интерактивные деревья
176                (<emphasis role="italic">uitree</emphasis>), и т.д., для которых
177                <literal>type(..)</literal> вернёт 16 или 17. Нужно использовать <link linkend="typeof">typeof</link>
178                для получения более детальной информации об их действительном (под)типе.
179             </para>
180             <para>
181                 <emphasis role="bold">Преобразование типов в смешанных операциях</emphasis>:
182             </para>
183             <para>
184                 Когда бинарный оператор (например, умножение) или n-арный итерационный оператор
185                 (например, конкатенация) применяется межжду двумя операндами различных, но совместных
186                 типов, обычно тип одного из двух неявно конвертируется, а другой операнд устанавливает
187                 тип результата к своему собственному типу.
188                 <para>
189                     Примеры с <link linkend="brackets">конкатенацией</link> :
190                     <code>[%t, 3.124]</code>, <code>[int8(5), 3.124]</code>, и т.д.
191                 </para>
192                 <para>
193                   Для конкатенации, сложения, вычитания, умножения, деления и возведения в степень
194                   иерархия между типами операндов следующая
195                 (читай "A &lt; B": B устанавливает свой тип для A) :
196                 <simplelist>
197                     <member>
198                         логическое &lt; (десятичное значение, комплекснозначное)
199                     </member>
200                     <member>
201                         <warning>
202                             (десятичное число, комплекснозначное число) &lt; кодированное целое.
203                         </warning>
204                     </member>
205                     <member>
206                         полиномиальное значение (вещественное | комплексное) &lt; рациональное
207                         значение (вещественное | комплексное)
208                     </member>
209                 </simplelist>
210                 </para>
211             </para>
212         </refsect2>
213     </refsection>
214     <refsection>
215         <title>Примеры</title>
216         <programlisting role="example"><![CDATA[
217 // Выберите строки, щелкните их правой кнопкой мыши и выберите «Execute ..», чтобы запустить их
218 L = list(%pi,,"abc");
219 type(L(2))                  // неопределённый компонент списка
220
221 type(42)                    // десятичные числа
222 type(%nan)
223 type(%inf)
224
225 type(1+%i)                  // комплекснные числа
226
227 s = sparse([1,2;4,5;3,10],[1,2,3]);
228 type(s)                     // разрежённые десятичные или комплексные числа
229
230 type(%t)                    // логические значения
231
232 type(s>2)                   // разрежённые логические значения
233
234 g = int8([1 -120 127 312]); // кодированные целые числа
235 type(g)
236 type(1.23 * int8(4))
237
238 type(1-%z+%z^2)             // полиномиальные значения
239
240 type(gdf())                 // указатели на графические окна
241
242 type("foo")                 // текстовые значения
243
244 deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']);
245 type(mymacro)               // функции Scilab
246
247 type(disp)                  // Встроенные фукнции
248
249 l = list(1,["a" "b"]);      // простые списки
250 type(l)
251
252 e = tlist(["listtype","field1","field2"], [], []);
253 type(e)                     // типизированный список
254
255 h = mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
256 type(h)                     // типизированный матрично-ориентированный список
257
258 clear s, s.r = %pi          // структуры
259 type(s)
260
261 c = {%t %pi %i %z "abc" s}  // cell-массивы
262 type(c)
263
264 r = [%z/(1-%z) (1-%z)/%z^2]
265 type(r)                     // рациональные дроби
266 ]]></programlisting>
267     </refsection>
268     <refsection role="see also">
269         <title>Смотрите также</title>
270         <simplelist type="inline">
271             <member>
272                 <link linkend="typeof">typeof</link>
273             </member>
274             <member>
275                 <link linkend="inttype">inttype</link>
276             </member>
277             <member>
278                 <link linkend="isreal">isreal</link>
279             </member>
280             <member>
281                 <link linkend="brackets">квадратные скобки</link>
282             </member>
283             <member>
284                 <link linkend="overloading">перегрузка</link>
285             </member>
286             <member>
287                 <link linkend="poly">poly</link>
288             </member>
289             <member>
290                 <link linkend="rational">rational</link>
291             </member>
292             <member>
293                 <link linkend="tlist">tlist</link>
294             </member>
295             <member>
296                 <link linkend="mlist">mlist</link>
297             </member>
298         </simplelist>
299     </refsection>
300     <refsection role="history">
301         <title>История</title>
302         <revhistory>
303             <revision>
304                 <revnumber>6.0</revnumber>
305                 <revdescription>
306                   Тип 11 был удалён. Он использовался для некомпилировнных Scilab-функций.
307                 </revdescription>
308             </revision>
309         </revhistory>
310     </refsection>
311 </refentry>
312