File: functions.xml

package info (click to toggle)
scilab 5.2.2-9
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 334,832 kB
  • ctags: 52,586
  • sloc: xml: 526,945; ansic: 223,590; fortran: 163,080; java: 56,934; cpp: 33,840; tcl: 27,936; sh: 20,397; makefile: 9,908; ml: 9,451; perl: 1,323; cs: 614; lisp: 30
file content (189 lines) | stat: -rw-r--r-- 6,567 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) ????-2008 - INRIA
 *
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
 * are also available at
 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 *
 -->
<refentry version="5.0-subset Scilab" xml:id="functions" xml:lang="en"
          xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:svg="http://www.w3.org/2000/svg"
          xmlns:ns4="http://www.w3.org/1999/xhtml"
          xmlns:mml="http://www.w3.org/1998/Math/MathML"
          xmlns:db="http://docbook.org/ns/docbook">
  <info>
    <pubdate>$LastChangedDate$</pubdate>
  </info>

  <refnamediv>
    <refname>functions</refname>

    <refpurpose>procedimentos Scilab e objetos Scilab</refpurpose>
  </refnamediv>

  <refsection>
    <title>Descrio</title>

    <para>Funes so procedimentos Scilab ("macro", "funo" e "procedure"
    possuem o mesmo significado).</para>
  </refsection>

  <refsection>
    <title>Definio de Funo</title>

    <para>Geralmente, elas so definidas em arquivos com um edito e carregadas
    no Scilab atravs da funo <link linkend="exec">exec</link> ou atravs de
    uma biblioteca (ver <link linkend="lib">lib</link> ou <link
    linkend="genlib">genlib</link>). Mas tambm podem ser definidas on-line
    (ver <link linkend="deff">deff</link> ou <link
    linkend="function">function</link>. Uma funo  definida por dois
    componentes:</para>

    <itemizedlist>
      <listitem>
        <para>uma parte "definio de sintaxe" como segue:</para>

        <programlisting role = ""><![CDATA[ 
function [y1,...,yn]=foo(x1,...,xm)
function [y1,...,yn,varargout]=foo(x1,...,xm,varargin) 
 ]]></programlisting>
</listitem>

      <listitem>
        <para>uma seqncia de instrues Scilab.</para>
      </listitem>
    </itemizedlist>

    <para>A linha de "definio de sintaxe" fornece a sintaxe de chamamento
    "completa" para esta funo. As variveis <literal>yi</literal> so
    variveis de sada calculadas em funo das variveis de entrada
    <literal>xi</literal> e variveis existentes no Scilab quando a funo 
    executada.</para>
  </refsection>

  <refsection>
    <title>Chamada de Funo</title>

    <itemizedlist>
      <listitem>
        <para>A sintaxe de chamamento de funo usual 
        <literal>[y1,...,yn]=foo(x1,...,xm)</literal>. Listas de argumentos de
        entrada ou sada mais curtos que as da definio podem ser usadas. Em
        tais casos, apenas as primeiras variveis da esquerda para direita so
        usadas ou definidas.</para>

        <para>A funo <link linkend="argn">argn</link> pode ser utilizada
        para se o nmero total real de argumentos de chamada.</para>
      </listitem>

      <listitem>
        <para> possvel definir funes com nmero mximo indeterminado de
        argumentos de entrada ou sada. Isto pode ser feito utilizando-se as
        palavras-chave <link linkend="varargin">varargin</link> e <link
        linkend="varargout">varargout</link> keywords. Veja os links para
        detalhes.</para>
      </listitem>

      <listitem>
        <para>Tambm  possvel utilizar "argumentos nomeados" para
        especificar argumentos de entrada: suponha que a funo <literal>fun1
        seja</literal> definida como <literal>function
        y1=fun1(x1,x2,x3)</literal> , ento pode ser chamada com uma sintaxe
        como <literal>y=fun1(x1=33,x3=[1 2 3])</literal>. Dentro de
        <literal>fun1</literal> x2 ser indefinida.</para>

        <para>Tambm pode ser chamada com sintaxe como
        <literal>y=fun1(x1=33,y='foo')</literal>. Em tal caso, a varivel
        <literal>y</literal> estar disponvel no contexto da funo
        <literal>fun1</literal>. Note que o nmero mximo de argumentos deve
        ser menor que ou igual ao nmero de argumentos de entrada fornais
        utilizados na parte de sintaxe da funo.</para>

        <para> possvel buscar por variveis definidas atravs da funo
        <link linkend="exists">exists</link>.</para>
      </listitem>

      <listitem>
        <para>Quando uma funo no possui argumento de lado esquerdo e 
        chamada apenas com argumentos strings, a sintaxe de chamamento pode
        ser simplificada:</para>

        <programlisting role = ""><![CDATA[ 
fun('a','toto','a string') 
 ]]></programlisting>

        <para>is equivalent to:</para>

        <programlisting role = ""><![CDATA[ 
fun a toto 'a string'
 ]]></programlisting>
      </listitem>
    </itemizedlist>
  </refsection>

  <refsection>
    <title>Miscelnea</title>

    <para>Funes Scilab so objetos (com nmeros de tipo 13 ou 11). Elas
    podem ser manipuladas (construdas, salvas, carregadas, passadas como
    argumentos,..) como outros tipos de variveis.</para>

    <para>Colees de funes podem ser reunidas em bibliotecas. Funes que
    comeam pelo sinal <literal>%</literal> (ex: <literal>%foo</literal>) so
    geralmente utilizadas para operaes de sobrecarga (ver <link
    linkend="overloading">overloading</link> ) ou so funes para novos tipos
    de dados.</para>
  </refsection>

  <refsection>
    <title>Exemplos</title>

    <programlisting role="example"><![CDATA[ 
//definio inline (ver function)
function [x,y]=myfct(a,b)
  x=a+b
  y=a-b
endfunction

[x,y]=myfct(3,2)

//definio inline (ver deff)
deff('[x,y]=myfct(a,b)',['x=a+b';
                         'y=a-b'])
// definio em um arquivo ASCI (ver exec)
exec SCI/modules/elementary_functions/macros/asinh.sci;
 ]]></programlisting>
  </refsection>

  <refsection>
    <title>Ver Tambm</title>

    <simplelist type="inline">
      <member><link linkend="function">function</link></member>

      <member><link linkend="deff">deff</link></member>

      <member><link linkend="exec">exec</link></member>

      <member><link linkend="comp">comp</link></member>

      <member><link linkend="lib">lib</link></member>

      <member><link linkend="getd">getd</link></member>

      <member><link linkend="genlib">genlib</link></member>

      <member><link linkend="exists">exists</link></member>

      <member><link linkend="varargin">varargin</link></member>

      <member><link linkend="varargout">varargout</link></member>
    </simplelist>
  </refsection>
</refentry>