Revision of Russian help page for resume function after commit 040712019dd358ba8f06b4...
[scilab.git] / scilab / modules / core / help / ru_RU / control_flow / for.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="for">
3     <refnamediv>
4         <refname>for</refname>
5         <refpurpose>ключевое слово для циклов</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>Последовательность вызова</title>
9         <synopsis>
10             for variable=expression 
11             instruction;
12             instruction;
13             ...
14             instruction;
15             end
16             
17             
18             for variable=expression do
19             instruction;
20             instruction;
21             ...
22             instruction;
23             end
24         </synopsis>
25     </refsynopsisdiv>
26     <refsection>
27         <title>Аргументы</title>
28         <variablelist>
29             <varlistentry>
30                 <term>variable</term>
31                 <listitem>
32                     <para>
33                         переменная, по которой ведётся цикл;
34                     </para>
35                 </listitem>
36             </varlistentry>
37             <varlistentry>
38                 <term>expression</term>
39                 <listitem>
40                     <para>
41                         выражение, описывающее закон изменения переменной <literal>variable</literal> 
42                         в заданных пределах; может быть вектором, матрицей, списком;
43                     </para>
44                 </listitem>
45             </varlistentry>
46             <varlistentry>
47                 <term>instruction</term>
48                 <listitem>
49                     <para>
50                         любые корректные инструкции Scilab.
51                     </para>
52                 </listitem>
53             </varlistentry>
54             <varlistentry>
55                 <term>do</term>
56                 <listitem>
57                     <para>
58                         ключевое слово, отделяющее блок определения переменной цикла <literal>variable</literal>
59                         от блока инструкций <literal>instruction</literal>
60                     </para>
61                 </listitem>
62             </varlistentry>
63         </variablelist>
64     </refsection>
65     <refsection>
66         <title>Описание</title>
67         <para>
68             Используется для организации циклов по заданной переменной <literal>variable</literal>. 
69             Изменение переменной цикла <literal>variable</literal> описывается выражением <literal>expression</literal>,
70             однако, в качестве <literal>expression</literal> может выступать вектор или матрица. В этом случае переменная 
71             <literal>variable</literal> последовательно от итерации к итерации принимает значения элементов 
72             вектора/матрицы от первого до последнего, столбец за столбцом.
73         </para>
74         <para>
75             Оператор двоеточие <link linkend="colon">colon</link> используется для создания вектор-столбцов с регулярным 
76             шагом между элементами и похож на традиционные циклы <literal>for</literal>:
77             <programlisting>
78                 for variable=n1:step:n2
79                 instruction;
80                 ...
81                 instruction;
82                 end
83             </programlisting>
84         </para>
85         <para>
86             Если <literal>expression</literal> является списком, то <literal>variable</literal> 
87             принимает значения списка одно за другим.
88         </para>
89         <para>
90             В соответствии с договорённостями по написанию кода  в Scilab рекомендуется:
91         </para>
92         <itemizedlist>
93             <listitem>
94                 <para>
95                     начинать новую инструкцию на новой строке;
96                 </para>
97             </listitem>
98             <listitem>
99                 <para>
100                     писать не более одной простой инструкции на одной строке;
101                 </para>
102             </listitem>
103             <listitem>
104                 <para>
105                     разбивать составные инструкции на множество строк.
106                 </para>
107             </listitem>
108         </itemizedlist>
109         <para>
110             Например, используйте:
111         </para>
112         <programlisting role=""><![CDATA[
113       for i = 1:5 
114         disp(i);
115       end
116 ]]></programlisting>
117         <para>
118             а не:
119         </para>
120         <programlisting role=""><![CDATA[
121       for i = 1:5 disp(i); end
122 ]]></programlisting>
123         <para>
124             Предупреждение: число символов, используемых для определения тела любой инструкции условия
125             (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
126             16К.
127         </para>
128     </refsection>
129     <refsection>
130         <title>Примеры</title>
131         <programlisting role="example"><![CDATA[ 
132 // "традиционный" для циклов
133 n=5;
134 for i = 1:n
135     for j = 1:n
136         a(i,j) = 1/(i+j-1);
137     end;
138 end
139 for j = 2:n-1
140     a(j,j) = j; 
141 end; 
142 a
143 // циклы с уменьшающейся переменной цикла
144 for j= 4:-1:1
145     disp(j);
146 end
147  
148 //цикл по столбцам матрицы
149 for  e=eye(3,3)
150     e
151 end  
152 for v=a
153   write(6,v)
154 end
155 for j=1:n
156   v=a(:,j)
157   write(6,v)
158 end 
159  
160 //цикл по элементам списка
161 for l=list(1,2,'example')
162    l
163 end 
164  
165  ]]></programlisting>
166     </refsection>
167     <refsection role="see also">
168         <title>Смотрите также</title>
169         <simplelist type="inline">
170             <member>
171                 <link linkend="while">while</link>
172             </member>
173             <member>
174                 <link linkend="end">end</link>
175             </member>
176             <member>
177                 <link linkend="do">do</link>
178             </member>
179         </simplelist>
180     </refsection>
181 </refentry>