cf540441f16cc9695831168c24df7fce1415294c
[scilab.git] / scilab / modules / core / help / pt_BR / 2_control_flow / for.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) 2018 - 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:ns5="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="for" xml:lang="pt">
21     <refnamediv>
22         <refname>for</refname>
23         <refpurpose>palavra-chave de linguagem para laços ("loops") (significa
24             "para...")
25         </refpurpose>
26     </refnamediv>
27     <refsection>
28         <title>Descrição</title>
29         <para>
30             Usado para definir laços ("loops"). sua sintaxe é: <literal> for
31                 variável=expressão ,instrução, ... ,instrução,end
32             </literal>
33         </para>
34         <para>
35             <literal> for variável= expressão do instrução, ...
36                 ,instrução,end
37             </literal>
38         </para>
39         <para>
40             Se <literal>expressão</literal> é uma matriz ou um vetor linha,
41             <literal>variável</literal> toma como valores os valores de cada coluna da
42             matriz.
43         </para>
44         <para>
45             Um caso particular utiliza o operador <link linkend="colon">colon</link> para criar vetores linhas regularmente
46             espaçados, e remonta a formas de laço "for" tradicionais : <literal>for
47                 variable=n1:step:n2, ...,end
48             </literal>
49         </para>
50         <para>
51             Se <literal>expressão </literal>é uma lista,
52             <literal>variável</literal> toma como valores as entradas sucessivas da
53             lista.
54         </para>
55         <para>Aviso: o número de caracteres usados para definir o corpo de
56             qualquer instrução condicional (if, while, for ou select/case) deve ser
57             limitado a 16k.
58         </para>
59     </refsection>
60     <refsection>
61         <title>Exemplos</title>
62         <para>Lacetes iterativos comum :</para>
63         <programlisting role="example"><![CDATA[
64 // laços "for" tradicionais
65 >>>>>>> 58f750d5cbc... * Bug 12198 (+NRT): 'break case..while' & clear no longer overloadable as in end=1
66 n=5;
67 for i = 1:n
68     for j = 1:n
69         a(i,j) = 1/(i+j-1);
70     end;
71 end
72 for j = 2:n-1
73     a(j,j) = j;
74 end;
75 a
76  ]]></programlisting>
77         <para>Laço "decrescente" :</para>
78         <programlisting role="example"><![CDATA[
79 for j = 4:-1:1
80     j
81 end
82  ]]></programlisting>
83         <para>Laço implícito sobre as colunas de uma linha ou de uma matriz :</para>
84         <programlisting role="example"><![CDATA[
85 M = [1 2 ; 3 4 ; 5 6]'
86 for  c = M, c, end
87  ]]></programlisting>
88     <screen><![CDATA[
89 -> M = [1 2 ; 3 4 ; 5 6]'
90  M  =
91    1.   3.   5.
92    2.   4.   6.
93
94 --> for  c = M, c, end
95  c  =
96    1.
97    2.
98
99  c  =
100    3.
101    4.
102 =======
103 for j= 4:-1:1
104     disp(j);
105 end // laço decrescente
106
107 //laço em colunas de matrizes
108 for  e=eye(3,3), e, end
109 for v=a, write(6,v), end
110 for j=1:n, v=a(:,j), write(6,v), end
111
112 //laço em listas de entradas
113 for l=list(1,2,'example'); l, end
114 >>>>>>> 58f750d5cbc... * Bug 12198 (+NRT): 'break case..while' & clear no longer overloadable as in end=1
115
116  c  =
117    5.
118    6.
119 ]]></screen>
120         <programlisting role="example"><![CDATA[
121 for v = a, write(%io(2),v), end
122 for j = 1:n, v = a(:,j), write(%io(2),v), end
123  ]]></programlisting>
124         <para>Laço em listas de entradas :</para>
125         <programlisting role="example"><![CDATA[
126 for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end
127  ]]></programlisting>
128     <screen><![CDATA[
129 --> for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end
130  l  =
131    1.   2.
132    3.   4.
133
134  l  =
135             2   3
136    1 +3z +3z  +z
137
138  l  =
139  example
140
141  l  =
142   F T
143 ]]></screen>
144     </refsection>
145     <refsection role="see also">
146         <title>Ver Também</title>
147         <simplelist type="inline">
148             <member>
149                 <link linkend="while">while</link>
150             </member>
151             <member>
152                 <link linkend="end">end</link>
153             </member>
154             <member>
155                 <link linkend="do">do</link>
156             </member>
157         </simplelist>
158     </refsection>
159     <refsection role="history">
160         <title>Histórico</title>
161         <revhistory>
162             <revision>
163                 <revnumber>6.0.0</revnumber>
164                 <revdescription>
165                     The for <literal>expression</literal> can now be a vector of graphic handles.
166                     <literal>for</literal> is now protected:
167                     Assignments like <literal>for=1</literal> are no longer possible.
168                 </revdescription>
169             </revision>
170         </revhistory>
171     </refsection>
172 </refentry>