Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 971a3706a7676677c8b7bbdffc0c4b9b > files > 212

sagemath-doc-ru-5.9-9.fc18.noarch.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Получение помощи &mdash; Sage Tutorial in Russian v5.9</title>
    
    <link rel="stylesheet" href="_static/sage.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '5.9',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="_static/translations.js"></script>
    <link rel="shortcut icon" href="_static/favicon.ico"/>
    <link rel="top" title="Sage Tutorial in Russian v5.9" href="index.html" />
    <link rel="up" title="Тур по Sage" href="tour.html" />
    <link rel="next" title="Базовая алгебра и вычисления" href="tour_algebra.html" />
    <link rel="prev" title="Присваивание, сравнение и арифметика" href="tour_assignment.html" />
    <link rel="icon" href="_static/sageicon.png" type="image/x-icon" />

  </head>
  <body>
    <div class="related">
      <h3>Просмотр</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="Словарь-указатель"
             accesskey="I">словарь</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >модули</a> |</li>
        <li class="right" >
          <a href="tour_algebra.html" title="Базовая алгебра и вычисления"
             accesskey="N">следующий</a> |</li>
        <li class="right" >
          <a href="tour_assignment.html" title="Присваивание, сравнение и арифметика"
             accesskey="P">предыдущий</a> |</li>
  
    
      <a href="../index.html"><img src="_static/sagelogo.png" style="vertical-align: middle" title="Sage Logo"></a>
    
  
  
        <li><a href="index.html">Sage Tutorial in Russian v5.9</a> &raquo;</li>

          <li><a href="tour.html" accesskey="U">Тур по Sage</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="chapter-help">
<span id="id1"></span><h1>Получение помощи<a class="headerlink" href="#chapter-help" title="Ссылка на этот заголовок">¶</a></h1>
<p>В Sage есть исчерпывающая встроенная документация, к которой можно
получить доступ, напечатав имя функции или константы с последующим
вопросительным знаком:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: tan?</span>
<span class="go">Type:        &lt;class &#39;sage.calculus.calculus.Function_tan&#39;&gt;</span>
<span class="go">Definition:  tan( [noargspec] )</span>
<span class="go">Docstring:</span>

<span class="go">    The tangent function</span>

<span class="go">    EXAMPLES:</span>
<span class="go">        sage: tan(pi)</span>
<span class="go">        0</span>
<span class="go">        sage: tan(3.1415)</span>
<span class="go">        -0.0000926535900581913</span>
<span class="go">        sage: tan(3.1415/4)</span>
<span class="go">        0.999953674278156</span>
<span class="go">        sage: tan(pi/4)</span>
<span class="go">        1</span>
<span class="go">        sage: tan(1/2)</span>
<span class="go">        tan(1/2)</span>
<span class="go">        sage: RR(tan(1/2))</span>
<span class="go">        0.546302489843790</span>
<span class="go">sage: log2?</span>
<span class="go">Type:        &lt;class &#39;sage.functions.constants.Log2&#39;&gt;</span>
<span class="go">Definition:  log2( [noargspec] )</span>
<span class="go">Docstring:</span>

<span class="go">    The natural logarithm of the real number 2.</span>

<span class="go">    EXAMPLES:</span>
<span class="go">        sage: log2</span>
<span class="go">        log2</span>
<span class="go">        sage: float(log2)</span>
<span class="go">        0.69314718055994529</span>
<span class="go">        sage: RR(log2)</span>
<span class="go">        0.693147180559945</span>
<span class="go">        sage: R = RealField(200); R</span>
<span class="go">        Real Field with 200 bits of precision</span>
<span class="go">        sage: R(log2)</span>
<span class="go">        0.69314718055994530941723212145817656807550013436025525412068</span>
<span class="go">        sage: l = (1-log2)/(1+log2); l</span>
<span class="go">        (1 - log(2))/(log(2) + 1)</span>
<span class="go">        sage: R(l)</span>
<span class="go">        0.18123221829928249948761381864650311423330609774776013488056</span>
<span class="go">        sage: maxima(log2)</span>
<span class="go">        log(2)</span>
<span class="go">        sage: maxima(log2).float()</span>
<span class="go">        .6931471805599453</span>
<span class="go">        sage: gp(log2)</span>
<span class="go">        0.6931471805599453094172321215             # 32-bit</span>
<span class="go">        0.69314718055994530941723212145817656807   # 64-bit</span>
<span class="go">sage: sudoku?</span>
<span class="go">File:        sage/local/lib/python2.5/site-packages/sage/games/sudoku.py</span>
<span class="go">Type:        &lt;type &#39;function&#39;&gt;</span>
<span class="go">Definition:  sudoku(A)</span>
<span class="go">Docstring:</span>

<span class="go">    Solve the 9x9 Sudoku puzzle defined by the matrix A.</span>

<span class="go">    EXAMPLE:</span>
<span class="go">        sage: A = matrix(ZZ,9,[5,0,0, 0,8,0, 0,4,9, 0,0,0, 5,0,0,</span>
<span class="go">    0,3,0, 0,6,7, 3,0,0, 0,0,1, 1,5,0, 0,0,0, 0,0,0, 0,0,0, 2,0,8, 0,0,0,</span>
<span class="go">    0,0,0, 0,0,0, 0,1,8, 7,0,0, 0,0,4, 1,5,0,   0,3,0, 0,0,2,</span>
<span class="go">    0,0,0, 4,9,0, 0,5,0, 0,0,3])</span>
<span class="go">        sage: A</span>
<span class="go">        [5 0 0 0 8 0 0 4 9]</span>
<span class="go">        [0 0 0 5 0 0 0 3 0]</span>
<span class="go">        [0 6 7 3 0 0 0 0 1]</span>
<span class="go">        [1 5 0 0 0 0 0 0 0]</span>
<span class="go">        [0 0 0 2 0 8 0 0 0]</span>
<span class="go">        [0 0 0 0 0 0 0 1 8]</span>
<span class="go">        [7 0 0 0 0 4 1 5 0]</span>
<span class="go">        [0 3 0 0 0 2 0 0 0]</span>
<span class="go">        [4 9 0 0 5 0 0 0 3]</span>
<span class="go">        sage: sudoku(A)</span>
<span class="go">        [5 1 3 6 8 7 2 4 9]</span>
<span class="go">        [8 4 9 5 2 1 6 3 7]</span>
<span class="go">        [2 6 7 3 4 9 5 8 1]</span>
<span class="go">        [1 5 8 4 6 3 9 7 2]</span>
<span class="go">        [9 7 4 2 1 8 3 6 5]</span>
<span class="go">        [3 2 6 7 9 5 4 1 8]</span>
<span class="go">        [7 8 2 9 3 4 1 5 6]</span>
<span class="go">        [6 3 5 1 7 2 8 9 4]</span>
<span class="go">        [4 9 1 8 5 6 7 2 3]</span>
</pre></div>
</div>
<p>Sage также предоставляет возможность &#8216;Автозавершения&#8217;: напечатайте
несколько первых букв названия функции и нажмите <tt class="docutils literal"><span class="pre">TAB</span></tt>. Например,
если напечатать <tt class="docutils literal"><span class="pre">ta</span></tt> и нажать <tt class="docutils literal"><span class="pre">TAB</span></tt>, Sage выведет <tt class="docutils literal"><span class="pre">tachyon,</span> <span class="pre">tan,</span>
<span class="pre">tanh,</span> <span class="pre">taylor</span></tt>. Данная функция является хорошим способом поиска имен
функций или других конструкций в Sage.</p>
</div>
<div class="section" id="section-functions">
<span id="id2"></span><h1>Функции, отступы и счетчики<a class="headerlink" href="#section-functions" title="Ссылка на этот заголовок">¶</a></h1>
<p>Для того, чтобы определить функцию в Sage, используйте команду <tt class="docutils literal"><span class="pre">def</span></tt>
и двоеточие после списка имен переменных:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: def is_even(n):</span>
<span class="gp">... </span>      <span class="k">return</span> <span class="n">n</span><span class="o">%</span><span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span>
<span class="gp">...</span>
<span class="go">sage: is_even(2)</span>
<span class="go">True</span>
<span class="go">sage: is_even(3)</span>
<span class="go">False</span>
</pre></div>
</div>
<p>Заметка: В зависимости от версии учебного пособия на второй строке
этого примера можно увидеть <tt class="docutils literal"><span class="pre">...</span></tt>. Не печатайте их, так как они служат
лишь для того, чтобы показать отступы в коде.</p>
<p>Не определяйте типов аргументов. Можно определить несколько видов ввода,
аргументы которых могут иметь значения по умолчанию. Например, функция в
следующем примере использует <tt class="docutils literal"><span class="pre">divisor=2</span></tt>, если <tt class="docutils literal"><span class="pre">divisor</span></tt> не задан.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: def is_divisible_by(number, divisor=2):</span>
<span class="gp">... </span>      <span class="k">return</span> <span class="n">number</span><span class="o">%</span><span class="n">divisor</span> <span class="o">==</span> <span class="mi">0</span>
<span class="go">sage: is_divisible_by(6,2)</span>
<span class="go">True</span>
<span class="go">sage: is_divisible_by(6)</span>
<span class="go">True</span>
<span class="go">sage: is_divisible_by(6, 5)</span>
<span class="go">False</span>
</pre></div>
</div>
<p>Также можно задавать вводные данные в явном виде при вызове функции. Если
задавать параметры явно, то порядок не важен:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: is_divisible_by(6, divisor=5)</span>
<span class="go">False</span>
<span class="go">sage: is_divisible_by(divisor=2, number=6)</span>
<span class="go">True</span>
</pre></div>
</div>
<p>В Python блоки кода не отделяются фигурными скобками или другими
обозначениями, как в других языках. Вместо этого используются отступы.
Например, следующее выдаст синтаксическую ошибку, так как перед <tt class="docutils literal"><span class="pre">return</span></tt>
нет такого же количества отступов, как в предыдущих строках.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: def even(n):</span>
<span class="gp">... </span>      <span class="n">v</span> <span class="o">=</span> <span class="p">[]</span>
<span class="gp">... </span>      <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="p">):</span>
<span class="gp">... </span>          <span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="gp">... </span>              <span class="n">v</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="gp">... </span>     <span class="k">return</span> <span class="n">v</span>
<span class="go">Syntax Error:</span>
<span class="go">       return v</span>
</pre></div>
</div>
<p>Если добавить отступы, функция будет работать:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: def even(n):</span>
<span class="gp">... </span>      <span class="n">v</span> <span class="o">=</span> <span class="p">[]</span>
<span class="gp">... </span>      <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="p">):</span>
<span class="gp">... </span>          <span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="gp">... </span>              <span class="n">v</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="gp">... </span>      <span class="k">return</span> <span class="n">v</span>
<span class="go">sage: even(10)</span>
<span class="go">[4, 6, 8]</span>
</pre></div>
</div>
<p>Точки с запятой не нужны на концах строк. Можно расположить несколько
утверждений на одной строке, отделенных точками с запятой:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: a = 5; b = a + 3; c = b^2; c</span>
<span class="go">64</span>
</pre></div>
</div>
<p>Если требуется расположить строку кода на нескольких строках, используйте <tt class="docutils literal"><span class="pre">\</span></tt>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: 2 + \</span>
<span class="gp">... </span>     <span class="mi">3</span>
<span class="go">5</span>
</pre></div>
</div>
<p>В Sage счетчики производят итерации по интервалу целых чисел. Например,
первая строчка в примере означает то же самое, что <tt class="docutils literal"><span class="pre">for(i=0;</span> <span class="pre">i&lt;3;</span> <span class="pre">i++)</span></tt>
в C++ или Java:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: for i in range(3):</span>
<span class="gp">... </span>      <span class="k">print</span> <span class="n">i</span>
<span class="go">0</span>
<span class="go">1</span>
<span class="go">2</span>
</pre></div>
</div>
<p>Первая строчка в следующем примере эквивалентна <tt class="docutils literal"><span class="pre">for(i=2;i&lt;5;i++)</span></tt>.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: for i in range(2,5):</span>
<span class="gp">... </span>      <span class="k">print</span> <span class="n">i</span>
<span class="go">2</span>
<span class="go">3</span>
<span class="go">4</span>
</pre></div>
</div>
<p>Третий аргумент задает шаг. Следующее эквивалентно <tt class="docutils literal"><span class="pre">for(i=1;i&lt;6;i+=2)</span></tt>.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: for i in range(1,6,2):</span>
<span class="gp">... </span>      <span class="k">print</span> <span class="n">i</span>
<span class="go">1</span>
<span class="go">3</span>
<span class="go">5</span>
</pre></div>
</div>
<p>Часто требуется создать таблицу для вывода чисел, посчитанных в Sage.
Легкий способ — использовать форматирование строк. Ниже создается таблица
с тремя столбцами шириной 6, содержащая таблицу квадратов и кубов:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: for i in range(5):</span>
<span class="gp">... </span>      <span class="k">print</span> <span class="s">&#39;</span><span class="si">%6s</span><span class="s"> </span><span class="si">%6s</span><span class="s"> </span><span class="si">%6s</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="o">^</span><span class="mi">2</span><span class="p">,</span> <span class="n">i</span><span class="o">^</span><span class="mi">3</span><span class="p">)</span>
<span class="go">     0      0      0</span>
<span class="go">     1      1      1</span>
<span class="go">     2      4      8</span>
<span class="go">     3      9     27</span>
<span class="go">     4     16     64</span>
</pre></div>
</div>
<p>Самым базовым типом данных в Sage является список — набор различных
объектов. Например, команда <tt class="docutils literal"><span class="pre">range</span></tt> создаст список:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: range(2,10)</span>
<span class="go">[2, 3, 4, 5, 6, 7, 8, 9]</span>
</pre></div>
</div>
<p>Далее показан пример более сложного списка:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: v = [1, &quot;hello&quot;, 2/3, sin(x^3)]</span>
<span class="go">sage: v</span>
<span class="go">[1, &#39;hello&#39;, 2/3, sin(x^3)]</span>
</pre></div>
</div>
<p>Индексы в списке начинаются с нуля, как во многих языках программирования.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: v[0]</span>
<span class="go">1</span>
<span class="go">sage: v[3]</span>
<span class="go">sin(x^3)</span>
</pre></div>
</div>
<p>Используйте <tt class="docutils literal"><span class="pre">len(v)</span></tt> для того, чтобы получить длину <tt class="docutils literal"><span class="pre">v</span></tt>; <tt class="docutils literal"><span class="pre">v.append(obj)</span></tt>
для того, чтобы добавить новый объект к концу <tt class="docutils literal"><span class="pre">v</span></tt>, и <tt class="docutils literal"><span class="pre">del</span> <span class="pre">v[i]</span></tt>, чтобы
удалить <img class="math" src="_images/math/34857b3ba74ce5cd8607f3ebd23e9015908ada71.png" alt="i"/>-й элемент из <tt class="docutils literal"><span class="pre">v</span></tt>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: len(v)</span>
<span class="go">4</span>
<span class="go">sage: v.append(1.5)</span>
<span class="go">sage: v</span>
<span class="go">[1, &#39;hello&#39;, 2/3, sin(x^3), 1.50000000000000]</span>
<span class="go">sage: del v[1]</span>
<span class="go">sage: v</span>
<span class="go">[1, 2/3, sin(x^3), 1.50000000000000]</span>
</pre></div>
</div>
<p>Другой очень важный тип данных — словарь (или ассоциативный массив).
Он работает, как список, но может быть индексирован почти любым объектом
(индексы должны быть неизменимыми):</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: d = {&#39;hi&#39;:-2,  3/8:pi,   e:pi}</span>
<span class="go">sage: d[&#39;hi&#39;]</span>
<span class="go">-2</span>
<span class="go">sage: d[e]</span>
<span class="go">pi</span>
</pre></div>
</div>
<p>Также можно определить новый тип данных с использованием классов.
Инкапсулирование математических объектов в классах — это мощная техника,
которая может помочь упростить и организовать программы в Sage. Ниже
показан пример класса, который состоит из списка положительных чётных
целых чисел до <em>n</em>; он получен из встроенного типа <tt class="docutils literal"><span class="pre">list</span></tt>.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: class Evens(list):</span>
<span class="gp">... </span>      <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
<span class="gp">... </span>          <span class="bp">self</span><span class="o">.</span><span class="n">n</span> <span class="o">=</span> <span class="n">n</span>
<span class="gp">... </span>          <span class="nb">list</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
<span class="gp">... </span>      <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span>          <span class="k">return</span> <span class="s">&quot;Even positive numbers up to n.&quot;</span>
</pre></div>
</div>
<p>Метод <tt class="docutils literal"><span class="pre">__init__</span></tt> вызывается для инициализации объекта при его
создании; метод <tt class="docutils literal"><span class="pre">__repr__</span></tt> выведет все объекты. Конструктор списка
вызывается во второй строчке метода <tt class="docutils literal"><span class="pre">__init__</span></tt>. Объект класса <tt class="docutils literal"><span class="pre">Evens</span></tt>
создается в следующем виде:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: e = Evens(10)</span>
<span class="go">sage: e</span>
<span class="go">Even positive numbers up to n.</span>
</pre></div>
</div>
<p>Заметьте, что <tt class="docutils literal"><span class="pre">e</span></tt> выводится с помощью метода <tt class="docutils literal"><span class="pre">__repr__</span></tt>, который был
задан нами. Для просмотра списка чисел используйте функцию <tt class="docutils literal"><span class="pre">list</span></tt>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: list(e)</span>
<span class="go">[2, 4, 6, 8, 10]</span>
</pre></div>
</div>
<p>Можно обратиться к атрибуту <tt class="docutils literal"><span class="pre">n</span></tt> или использовать <tt class="docutils literal"><span class="pre">e</span></tt> как список.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="go">sage: e.n</span>
<span class="go">10</span>
<span class="go">sage: e[2]</span>
<span class="go">6</span>
</pre></div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="index.html">Содержание</a></h3>
            <ul>
<li><a class="reference internal" href="#">Получение помощи</a></li>
<li><a class="reference internal" href="#section-functions">Функции, отступы и счетчики</a></li>
</ul>

            <h4>Предыдущий раздел</h4>
            <p class="topless"><a href="tour_assignment.html"
                                  title="предыдущая глава">Присваивание, сравнение и арифметика</a></p>
            <h4>Следующий раздел</h4>
            <p class="topless"><a href="tour_algebra.html"
                                  title="следующая глава">Базовая алгебра и вычисления</a></p>
            <h3>На этой странице</h3>
            <ul class="this-page-menu">
              <li><a href="_sources/tour_help.txt"
                     rel="nofollow">Показать исходный текст</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Быстрый поиск</h3>
              <form class="search" action="search.html" method="get">
                <input type="text" name="q" size="18" />
                <!-- The shading of the "Go" button should be consistent -->
                <!-- with the colour of the header and footer. See the file -->
                <!-- doc/common/themes/sage/theme.conf for colours used by -->
                <!-- the Sage theme. -->
                <input type="submit" style="background-color: #B8B9F6" value="Искать" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Введите слова для поиска или имя модуля, класса или функции.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Просмотр</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="Словарь-указатель"
             >словарь</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >модули</a> |</li>
        <li class="right" >
          <a href="tour_algebra.html" title="Базовая алгебра и вычисления"
             >следующий</a> |</li>
        <li class="right" >
          <a href="tour_assignment.html" title="Присваивание, сравнение и арифметика"
             >предыдущий</a> |</li>
  
    
      <a href="../index.html"><img src="_static/sagelogo.png" style="vertical-align: middle" title="Sage Logo"></a>
    
  
  
        <li><a href="index.html">Sage Tutorial in Russian v5.9</a> &raquo;</li>

          <li><a href="tour.html" >Тур по Sage</a> &raquo;</li> 
      </ul>
    </div>
    
    <div class="footer">
        &copy; Copyright 2005--2011, The Sage Development Team.
      При создании использован <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
    <script type="text/javascript">
/*global jQuery, window */
/* Sphinx sidebar toggle.  Putting this code at the end of the body
 * enables the toggle for the live, static, and offline docs.  Note:
 * sage.misc.html.math_parse() eats jQuery's dollar-sign shortcut. */
var jq = jQuery;  
jq(document).ready(function () {
    var bar, bod, bg, fg, key, tog, wid_old, wid_new, resize, get_state, set_state;
    bod = jq('div.bodywrapper');
    bar = jq('div.sphinxsidebar');
    tog = jq('<div class="sphinxsidebartoggle"></div>');
    
    /* Delayed resize helper.  Not perfect but good enough. */
    resize = function () {
        setTimeout(function () {
            tog.height(bod.height());
        }, 100);
    };
    jq(window).resize(function () {
        resize();
    });
    
    /* Setup and add the toggle. See Sphinx v0.5.1 default.css. */
    fg = jq('div.sphinxsidebar p a').css('color') || 'rgb(152, 219, 204)';
    bg = jq('div.document').css('background-color') || 'rgb(28, 78, 99)';
    wid_old = '230px';
    wid_new = '5px';
    tog.css('background-color', bg)
        .css('border-width', '0px')
        .css('border-right', wid_new + ' ridge ' + bg)
        .css('cursor', 'pointer')
        .css('position', 'absolute')
        .css('left', '-' + wid_new)
        .css('top', '0px')
        .css('width', wid_new);
    bod.css('position', 'relative');
    bod.prepend(tog);
    resize();
    
    /* Cookie helpers. */
    key = 'sphinxsidebar=';
    set_state = function (s) {
        var date = new Date();
        /* Expiry in 7 days. */
        date.setTime(date.getTime() + (7 * 24 * 3600 * 1000));
        document.cookie = key + encodeURIComponent(s) + '; expires=' +
            date.toUTCString() + '; path=/';
    };
    get_state = function () {
        var i, c, crumbs = document.cookie.split(';');
        for (i = 0; i < crumbs.length; i += 1) {
            c = crumbs[i].replace(/^\s+/, '');
            if (c.indexOf(key) === 0) {
                return decodeURIComponent(c.substring(key.length, c.length));
            }
        }
        return null;
    };
    
    /* Event handlers. */
    tog.mouseover(function (ev) {
        tog.css('border-right-color', fg);
    }).mouseout(function (ev) {
        tog.css('border-right-color', bg);
    }).click(function (ev) {
        if (bod.hasClass('wide')) {
            bod.removeClass('wide');
            bod.css('margin-left', wid_old);
            bar.css('width', wid_old);
            bar.show();
            set_state('visible');
        } else {
            set_state('hidden');
            bar.hide();
            bar.css('width', '0px');
            bod.css('margin-left', wid_new);
            bod.addClass('wide');
        }
        resize();
    });
    
    /* Hide the normally visible sidebar? */
    if (get_state() === 'hidden') {
        tog.trigger('click');
    } else {
        set_state('visible');
    }
});
    </script>
  </body>
</html>