Загрузка данных


<mxfile host="app.diagrams.net">
  <diagram name="Array-Task2-Var10" id="arr-task2-v10">
    <mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <!-- ========================================== -->
        <!-- ЛЕВАЯ ЧАСТЬ: ОСНОВНАЯ ПРОГРАММА (main)     -->
        <!-- ========================================== -->

        <!-- НАЧАЛО main -->
        <mxCell id="m_start" value="начало" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="180" y="40" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- ЦИКЛ ВВОДА -->
        <mxCell id="m_loop_in" value="i := 0..9, 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="170" y="110" width="160" height="45" as="geometry" />
        </mxCell>

        <mxCell id="m_in_elem" value="вв. A[i]" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="180" y="190" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- ЦИКЛ ВЫВОДА A -->
        <mxCell id="m_loop_out" value="i := 0..9, 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="170" y="280" width="160" height="45" as="geometry" />
        </mxCell>

        <mxCell id="m_out_elem" value="выв. A[i]" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="180" y="360" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- ВЫЗОВ ФУНКЦИИ (Предопределенный процесс) -->
        <mxCell id="m_call" value="P := multNegative(A, 10)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="150" y="450" width="200" height="45" as="geometry" />
        </mxCell>

        <!-- ВЫВОД РЕЗУЛЬТАТА P -->
        <mxCell id="m_out_p" value="выв. P" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="180" y="530" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- КОНЕЦ main -->
        <mxCell id="m_end" value="конец" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="180" y="605" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- СВЯЗИ main -->
        <mxCell id="me1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_start" target="m_loop_in">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="me2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_loop_in" target="m_in_elem">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="me3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.25;strokeWidth=1.2;" edge="1" parent="1" source="m_in_elem" target="m_loop_in">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="120" y="210" />
              <mxPoint x="120" y="121" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="me4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_loop_in" target="m_loop_out">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="365" y="133" />
              <mxPoint x="365" y="255" />
              <mxPoint x="250" y="255" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="me5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_loop_out" target="m_out_elem">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="me6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.25;strokeWidth=1.2;" edge="1" parent="1" source="m_out_elem" target="m_loop_out">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="120" y="380" />
              <mxPoint x="120" y="291" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="me7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_loop_out" target="m_call">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="365" y="303" />
              <mxPoint x="365" y="425" />
              <mxPoint x="250" y="425" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="me8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_call" target="m_out_p">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="me9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="m_out_p" target="m_end">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>


        <!-- ========================================== -->
        <!-- ПРАВАЯ ЧАСТЬ: ПОДПРОГРАММА multNegative    -->
        <!-- ========================================== -->

        <!-- НАЧАЛО ФУНКЦИИ -->
        <mxCell id="f_start" value="multNegative(A, N)" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="640" y="40" width="170" height="40" as="geometry" />
        </mxCell>

        <!-- ИНИЦИАЛИЗАЦИЯ P := 1 -->
        <mxCell id="f_init" value="P := 1" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="655" y="115" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- ЦИКЛ ПО МАССИВУ -->
        <mxCell id="f_loop" value="i := 0..N-1, 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="645" y="190" width="160" height="45" as="geometry" />
        </mxCell>

        <!-- УСЛОВИЕ A[i] < 0 -->
        <mxCell id="f_cond" value="A[i] &lt; 0" style="rhombus;whiteSpace=wrap;html=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="650" y="275" width="150" height="60" as="geometry" />
        </mxCell>

        <!-- ДЕЙСТВИЕ P := P * A[i] -->
        <mxCell id="f_mult" value="P := P * A[i]" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="655" y="375" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- ТОЧКА СЛИЯНИЯ ВЕТВЕЙ (внутри цикла) -->
        <mxCell id="f_merge" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="722" y="455" width="6" height="6" as="geometry" />
        </mxCell>

        <!-- ВОЗВРАТ ИЗ ФУНКЦИИ -->
        <mxCell id="f_ret" value="возврат P" style="rounded=1;whiteSpace=wrap;html=1;arcSize=50;strokeWidth=1.5;" vertex="1" parent="1">
          <mxGeometry x="840" y="530" width="140" height="40" as="geometry" />
        </mxCell>

        <!-- СВЯЗИ multNegative -->
        <mxCell id="fe1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_start" target="f_init">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="fe2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_init" target="f_loop">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="fe3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_loop" target="f_cond">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- Условие ДА (вниз к умножению) -->
        <mxCell id="fe4" value="да" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_cond" target="f_mult">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="fe5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_mult" target="f_merge">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- Условие НЕТ (вправо в обход умножения в точку слияния) -->
        <mxCell id="fe6" value="нет" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=1;exitY=0.5;entryX=1;entryY=0.5;strokeWidth=1.2;" edge="1" parent="1" source="f_cond" target="f_merge">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="825" y="305" />
              <mxPoint x="825" y="458" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- Петля возврата цикла слева -->
        <mxCell id="fe7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.25;strokeWidth=1.2;" edge="1" parent="1" source="f_merge" target="f_loop">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="590" y="458" />
              <mxPoint x="590" y="201" />
            </Array>
          </mxGeometry>
        </mxCell>

        <!-- Выход из цикла f_loop направо вниз к блоку "возврат P" -->
        <mxCell id="fe8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;strokeWidth=1.2;" edge="1" parent="1" source="f_loop" target="f_ret">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="910" y="213" />
            </Array>
          </mxGeometry>
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>