[doc] mv data_structures/types => core/types
[scilab.git] / scilab / modules / core / help / pt_BR / 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:ns4="http://www.w3.org/1999/xhtml"
19     xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
20     xmlns:scilab="http://www.scilab.org" xml:id="type" xml:lang="pt">
21     <refnamediv>
22         <refname>type</refname>
23         <refpurpose>tipo de variável</refpurpose>
24     </refnamediv>
25     <refsynopsisdiv>
26         <title> Seqüência de Chamamento </title>
27         <synopsis>[i]=type(x)</synopsis>
28     </refsynopsisdiv>
29     <refsection>
30         <title>Parâmetros</title>
31         <variablelist>
32             <varlistentry>
33                 <term>x</term>
34                 <listitem>
35                     <para>objeto Scilab</para>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>i</term>
40                 <listitem>
41                     <para>inteiro</para>
42                 </listitem>
43             </varlistentry>
44         </variablelist>
45     </refsection>
46     <refsection>
47         <title>Descrição</title>
48         <para>
49             <literal>type(x)</literal>retorna um inteiro que indica o tipo de
50             <literal>x </literal>como segue:
51         </para>
52         <para> 1 : uma matriz constante de reais ou complexos;</para>
53         <para> 2 : uma matriz de polinômios;</para>
54         <para> 4 : uma matriz de valores booleanos;</para>
55         <para> 5 : uma matriz esparsa;</para>
56         <para> 6 : uma matriz de valores booleanos esparsa;</para>
57         <para> 7 : uma matriz esparsa do Matlab.</para>
58         <para> 8 : uma matriz de inteiros armazenados em 1, 2, 4 ou 8 bytes;</para>
59         <para> 9 : uma matriz de manipuladores gráficos;</para>
60         <para> 10 : uma matriz de strings;</para>
61         <para> 13 : uma função compilada (código Scilab);</para>
62         <para> 14 : uma biblioteca de funções;</para>
63         <para> 15 : uma lista;</para>
64         <para> 16 : uma lista com tipo ("typed list" ou "tlist");</para>
65         <para> 17 : uma lista com tipo orientada matricialmente (mlist);</para>
66         <para>
67             128 : um ponteiro (identificador) para um bloco Xcos, para um resultado de
68              <link linkend="lufact">lufact</link>(), etc.
69         </para>
70         <para>129 : polinômio de tamanho implícito, usado para indexação.</para>
71         <para>130 : intrínseco do Scilab (código C ou Fortran).</para>
72         <para>0 :
73             An undefined component of a simple list. Such a component may be met as
74             an omitted input argument when calling Scilab function like in
75             <literal>foo(a,,b)</literal>: From within the function, the missing
76             argument is defined but is of null type. Defining
77             <literal>L=list(%pi,,%i,,,%z)</literal> creates L(2) of type 0; etc.
78             For these objects, <code>isdef()</code> returns <literal>%T</literal>,
79             but their null type can be tested with <literal>type()</literal>
80         </para>
81         <refsect2>
82             <title>Remarks</title>
83             <para>
84                 Some data may be stored in custom containers defined as typed lists of type 16
85                 (tlist) or 17 (matrix-oriented typed mlist). This is also the case for embedded
86                 types like (<emphasis role="italic">rationals</emphasis>), structures
87                 (<emphasis role="italic">struct</emphasis>),
88                 <emphasis role="italic">state-space</emphasis>, interactive trees
89                 (<emphasis role="italic">uitree</emphasis>), etc, for which
90                 <literal>type(..)</literal> will return 16 or 17. One will use
91                 <link linkend="typeof">typeof</link> to get more information about their actual
92                 (sub)type.
93             </para>
94             <para>
95                 <emphasis role="bold">Type conversion in mixed operations</emphasis>:
96             </para>
97             <para>
98                 When a binary operator (like the multiplication) or an n-ary iterated one
99                 (like the concatenation) is applied beween two operands of distinct but
100                 compatible types, usually the type of one of both is implicitely converted,
101                 and the other operand sets the type of the result to its own type.
102                 <para>
103                     Examples with the <link linkend="brackets">concatenation</link> :
104                     <literal>[%t, 3.124]</literal>, <literal>[int8(5), 3.124]</literal>, etc.
105                 </para>
106                 <para>
107                 For the concatenation, addition, substraction, multiplication, division,
108                 and the power operation, the hierarchy between operands types is as follows
109                 (read "A &lt; B": B imposes its type to A) :
110                 <simplelist>
111                     <member>
112                         boolean &lt; (decimal number, complex encoded number)
113                     </member>
114                     <member>
115                         <warning>
116                             (decimal number, complex-encoded number) &lt; encoded integer.
117                         </warning>
118                     </member>
119                     <member>
120                         polynomial (real | complex) &lt; rational (real | complex)
121                     </member>
122                 </simplelist>
123                 </para>
124             </para>
125         </refsect2>
126     </refsection>
127     <refsection>
128         <title>Examples</title>
129         <programlisting role="example"><![CDATA[
130 // (Select some lines, right-click and choose "Execute.." to run the selection)
131 L = list(%pi,,"abc");
132 type(L(2))                  // undefined component of a list
133
134 type(42)                    // decimal numbers
135 type(%nan)
136 type(%inf)
137
138 type(1+%i)                  // complex numbers
139
140 s = sparse([1,2;4,5;3,10],[1,2,3]);
141 type(s)                     // sparse-encoded decimal or complex numbers
142
143 type(%t)                    // booleans
144
145 type(s>2)                   // sparse-encoded booleans
146
147 g = int8([1 -120 127 312]); // encoded integers
148 type(g)
149 type(1.23 * int8(4))
150
151 type(1-%z+%z^2)             // polynomials
152
153 type(gdf())                 // graphic handles
154
155 type("foo")                 // texts
156
157 deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']);
158 type(mymacro)               // Scilab functions
159
160 type(disp)                  // Built-in functions
161
162 l = list(1,["a" "b"]);      // simple lists
163 type(l)
164
165 e = tlist(["listtype","field1","field2"], [], []);
166 type(e)                     // Typed list
167
168 h = mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
169 type(h)                     // Typed matrix-oriented list
170
171 clear s, s.r = %pi          // structures
172 type(s)
173
174 c = {%t %pi %i %z "abc" s}  // cells
175 type(c)
176
177 r = [%z/(1-%z) (1-%z)/%z^2]
178 type(r)                     // rational fractions
179 ]]></programlisting>
180     </refsection>
181     <refsection>
182         <title> Ver Também </title>
183         <simplelist type="inline">
184             <member>
185                 <link linkend="typeof">typeof</link>
186             </member>
187             <member>
188                 <link linkend="inttype">inttype</link>
189             </member>
190             <member>
191                 <link linkend="isreal">isreal</link>
192             </member>
193             <member>
194                 <link linkend="brackets">brackets</link>
195             </member>
196             <member>
197                 <link linkend="overloading">overloading</link>
198             </member>
199             <member>
200                 <link linkend="poly">poly</link>
201             </member>
202             <member>
203                 <link linkend="rational">rational</link>
204             </member>
205             <member>
206                 <link linkend="tlist">tlist</link>
207             </member>
208             <member>
209                 <link linkend="mlist">mlist</link>
210             </member>
211         </simplelist>
212     </refsection>
213     <refsection role="history">
214         <title>Histórico</title>
215         <revhistory>
216             <revision>
217                 <revnumber>6.0</revnumber>
218                 <revdescription>
219                   The type 11 is removed. It was used for uncompiled Scilab functions.
220                 </revdescription>
221             </revision>
222         </revhistory>
223     </refsection>
224 </refentry>