<?xml version="1.0"?>
<flowgorithm fileversion="2.11">
    <attributes>
        <attribute name="name" value=""/>
        <attribute name="authors" value="fox"/>
        <attribute name="about" value=""/>
        <attribute name="saved" value="2020-01-10 08:57:28 odp."/>
        <attribute name="created" value="Zm94O1VLMzE4UFI7MjAxOS0xMi0zMDsxMTowNDoyMyBkb3AuOzIyOTY="/>
        <attribute name="edited" value="Zm94O1VLMzE4UFI7MjAyMC0wMS0xMDswODo1NzoyOCBvZHAuOzM5OzI0NzA="/>
    </attributes>
    <function name="Main" type="None" variable="">
        <parameters/>
        <body>
            <declare name="kod" type="Integer" array="False" size=""/>
            <declare name="a" type="Integer" array="False" size=""/>
            <declare name="b" type="Integer" array="False" size=""/>
            <declare name="c" type="Real" array="False" size=""/>
            <assign variable="kod" expression="ZadejKodOperaceGrafika()"/>
            <assign variable="a" expression="ZadejCislo(&quot;A&quot;)"/>
            <assign variable="b" expression="ZadejCislo(&quot;B&quot;)"/>
            <if expression="kod == 1">
                <then>
                    <comment text="Podprogram (funkce) pro se&#269;ten&#237; 2 zadan&#253;ch &#269;&#237;sel. Podprogram m&#225; 2 vstupy - hodnota ulo&#382;en&#225; v prom&#283;nn&#233; 'a' (p&#345;edstavuje skute&#269;n&#253; parametr) se nakop&#237;ruje do form&#225;ln&#237;ho parametru 'aa', hodnota 'b' se nakop&#237;ruje do parametru 'bb'. Hodnota sou&#269;tu ulo&#382;en&#225; v lok&#225;ln&#237; prom&#283;nn&#233; 'cc' je v&#253;stupem funkce. V&#253;stupn&#237; hodnota funkce je po ukon&#269;en&#237; funkce ulo&#382;ena do prom&#283;nn&#233; 'c'."/>
                    <assign variable="c" expression="SectiParametry(a,b)"/>
                </then>
                <else>
                    <if expression="kod == 2">
                        <then>
                            <comment text="Podprogram (funkce) rozd&#237;lu zadan&#253;ch &#269;&#237;sel"/>
                            <assign variable="c" expression="OdectiParametry(a,b)"/>
                        </then>
                        <else>
                            <if expression="kod == 3">
                                <then>
                                    <comment text="Podprogram (funkce) n&#225;soben&#237; zadan&#253;ch &#269;&#237;sel"/>
                                    <assign variable="c" expression="NasobParametry(a,b)"/>
                                </then>
                                <else>
                                    <if expression="kod == 4">
                                        <then>
                                            <comment text="Podprogram (funkce) pod&#237;lu zadan&#253;ch &#269;&#237;sel"/>
                                            <assign variable="c" expression="VydelParametry(a,b)"/>
                                        </then>
                                        <else/>
                                    </if>
                                </else>
                            </if>
                        </else>
                    </if>
                </else>
            </if>
            <comment text="Podprogram (procedura) pro v&#253;pis textu a hodnoty v&#253;sledku"/>
            <call expression="ZobrazVysledek(c)"/>
            <comment text="Ukon&#269;en&#237; hlavn&#237;ho programu"/>
        </body>
    </function>
    <function name="NasobParametry" type="Real" variable="cc">
        <parameters>
            <parameter name="aa" type="Integer" array="False"/>
            <parameter name="bb" type="Integer" array="False"/>
        </parameters>
        <body>
            <comment text="Deklarace lok&#225;ln&#237; prom&#283;nn&#233; 'cc' ... slou&#382;&#237; pro ulo&#382;en&#237; hodnoty n&#225;sobku na&#269;ten&#253;ch hodnot p&#345;edan&#253;ch z hlavn&#237;ho programu ulo&#382;en&#253;ch do form&#225;ln&#237;ch parametr&#367; 'aa' a 'bb'"/>
            <declare name="cc" type="Real" array="False" size=""/>
            <comment text="Proveden&#237; n&#225;soben&#237; hodnot ulo&#382;en&#253;ch v form&#225;ln&#237;ch parametrech funkce a ulo&#382;en&#237; do lok&#225;ln&#237; prom&#283;nn&#233; 'cc'"/>
            <assign variable="cc" expression="aa * bb"/>
            <comment text="Hodnota v 'cc' je v&#253;stupem funkce"/>
        </body>
    </function>
    <function name="OdectiParametry" type="Real" variable="cc">
        <parameters>
            <parameter name="aa" type="Integer" array="False"/>
            <parameter name="bb" type="Integer" array="False"/>
        </parameters>
        <body>
            <comment text="Deklarace lok&#225;ln&#237; prom&#283;nn&#233; 'cc' ... slou&#382;&#237; pro ulo&#382;en&#237; hodnoty rozd&#237;lu na&#269;ten&#253;ch hodnot p&#345;edan&#253;ch z hlavn&#237;ho programu ulo&#382;en&#253;ch do form&#225;ln&#237;ch parametr&#367; 'aa' a 'bb'"/>
            <declare name="cc" type="Real" array="False" size=""/>
            <comment text="Proveden&#237; ode&#269;ten&#237; hodnot ulo&#382;en&#253;ch ve form&#225;ln&#237;ch parametrech funkce a ulo&#382;en&#237; do lok&#225;ln&#237; prom&#283;nn&#233; 'cc'"/>
            <assign variable="cc" expression="aa - bb"/>
            <comment text="Hodnota v 'cc' je v&#253;stupem funkce"/>
        </body>
    </function>
    <function name="SectiParametry" type="Real" variable="cc">
        <parameters>
            <parameter name="aa" type="Integer" array="False"/>
            <parameter name="bb" type="Integer" array="False"/>
        </parameters>
        <body>
            <comment text="Deklarace lok&#225;ln&#237; prom&#283;nn&#233; 'cc' ... slou&#382;&#237; pro ulo&#382;en&#237; hodnoty sou&#269;tu na&#269;ten&#253;ch hodnot p&#345;edan&#253;ch z hlavn&#237;ho programu ulo&#382;en&#253;ch do form&#225;ln&#237;ch parametr&#367; 'aa' a 'bb'"/>
            <declare name="cc" type="Real" array="False" size=""/>
            <comment text="Proveden&#237; sou&#269;tu hodnot ulo&#382;en&#253;ch ve form&#225;ln&#237;ch parametrech funkce a ulo&#382;en&#237; do lok&#225;ln&#237; prom&#283;nn&#233; 'cc'"/>
            <assign variable="cc" expression="aa+bb"/>
            <comment text="Hodnota v 'cc' je v&#253;stupem funkce "/>
        </body>
    </function>
    <function name="VydelParametry" type="Real" variable="cc">
        <parameters>
            <parameter name="aa" type="Integer" array="False"/>
            <parameter name="bb" type="Integer" array="False"/>
        </parameters>
        <body>
            <comment text="Deklarace lok&#225;ln&#237; prom&#283;nn&#233; 'cc' ... slou&#382;&#237; pro ulo&#382;en&#237; hodnoty pod&#237;lu na&#269;ten&#253;ch hodnot p&#345;edan&#253;ch z hlavn&#237;ho programu ulo&#382;en&#253;ch do form&#225;ln&#237;ch parametr&#367; 'aa' a 'bb'"/>
            <declare name="cc" type="Real" array="False" size=""/>
            <comment text="Test, zda nebyl na&#269;ten nulov&#253; jmenovatel"/>
            <while expression="bb == 0">
                <comment text="Pokud je jmenovatel nulov&#253; n&#225;sleduje zad&#225;n&#237; nov&#233;ho jmenovatele"/>
                <assign variable="bb" expression="ZadejCislo(&quot;nenulov&#233; B&quot;)"/>
            </while>
            <comment text="Proveden&#237; pod&#237;lu hodnot ulo&#382;en&#253;ch v form&#225;ln&#237;ch parametrech funkce a ulo&#382;en&#237; do lok&#225;ln&#237; prom&#283;nn&#233; 'cc'"/>
            <assign variable="cc" expression="aa / bb"/>
            <comment text="Hodnota v 'cc' je v&#253;stupem funkce"/>
        </body>
    </function>
    <function name="ZadejCislo" type="Integer" variable="xx">
        <parameters>
            <parameter name="nazevParametru" type="String" array="False"/>
        </parameters>
        <body>
            <declare name="xx" type="Integer" array="False" size=""/>
            <comment text="V&#253;pis definovan&#233;ho textu spolu s textem ulo&#382;en&#253;m v 'NazevParametru'"/>
            <output expression="&quot;Zadejte &quot; &amp; nazevParametru &amp; &quot;:&quot;" newline="True"/>
            <comment text="Na&#269;ten&#237; hodnoty do prom&#283;nn&#233; 'xx'"/>
            <input variable="xx"/>
            <comment text="P&#345;i&#345;azen&#237; hodnoty v 'xx' do v&#253;stupu funkce"/>
        </body>
    </function>
    <function name="ZadejKodOperaceGrafika" type="Integer" variable="kodOperace">
        <parameters/>
        <body>
            <comment text="Deklarace prom&#283;nn&#233;: 'kodOperace' ... &#269;&#237;seln&#253; k&#243;d aritmetick&#233; operace; 'vyzva' ... text v&#253;zvy k zad&#225;n&#237; k&#243;du operace; 'delkaVyzvy' ... po&#269;et znak&#367; ve v&#253;zv&#283;; 'grafika' ... znaky (hv&#283;zdi&#269;ka, tj. &quot;*&quot;) um&#237;st&#283;n&#233; v &#345;&#225;dce za sebou v d&#233;lce po&#269;tu znak&#367; v&#253;zvy; 'i' ... &#269;&#237;ta&#269;, tj. aktu&#225;ln&#237; index &quot;*&quot;, tj. po&#345;ad&#237; hv&#283;zdi&#269;ky v &#345;&#225;dku"/>
            <declare name="kodOperace" type="Integer" array="False" size=""/>
            <declare name="vyzva" type="String" array="False" size=""/>
            <declare name="delkaVyzvy" type="Integer" array="False" size=""/>
            <declare name="grafika" type="String" array="False" size=""/>
            <declare name="i" type="Integer" array="False" size=""/>
            <comment text="V&#253;zva k zad&#225;n&#237; k&#243;du &#269;&#237;seln&#233; operace"/>
            <assign variable="vyzva" expression="&quot;Zadejte k&#243;d operace (1 &#8230; s&#269;&#237;t&#225;n&#237;, 2 &#8230; ode&#269;&#237;t&#225;n&#237;, 3 &#8230; n&#225;soben&#237;, 4 &#8230; d&#283;len&#237;):&quot;"/>
            <comment text="Ulo&#382;en&#237; po&#269;tu znak&#367; ve v&#253;zv&#283; do prom&#283;nn&#233; 'delkaVyzvy'"/>
            <assign variable="delkaVyzvy" expression="Len(vyzva)"/>
            <comment text="Vymaz&#225;n&#237; v&#353;ech znak&#367; v grafice (p&#345;i&#345;azen&#237; pr&#225;zdn&#233;ho textu)"/>
            <assign variable="grafika" expression="&quot;&quot;"/>
            <comment text="Cyklus s krokem - p&#345;&#237;kaz uvnit&#345; cyklu prob&#283;hne tolikr&#225;t, kolik je znak&#367; ve v&#253;zv&#283;"/>
            <for variable="i" start="1" end="delkaVyzvy" direction="inc" step="1">
                <comment text="P&#345;ipojen&#237; znaku &quot;*&quot; k p&#345;edchoz&#237;m znak&#367;m um&#237;st&#283;n&#253;ch v grafika - vytvo&#345;en&#237; grafiky (hv&#283;zdi&#269;ek v &#345;&#225;dce)"/>
                <assign variable="grafika" expression="grafika &amp; &quot;*&quot;"/>
            </for>
            <do expression="(kodOperace &lt; 1) || (kodOperace &gt; 4)">
                <comment text="V&#253;pis textu pro u&#382;ivatele - spojen&#237; textu, tj. p&#345;ipojen&#237; grafiky + za&#345;&#225;dkov&#225;n&#237; (ToChar(10), tj. nov&#253; &#345;&#225;dek - znak v ASCII tabulce) + text v&#253;zvy pro u&#382;ivatele + za&#345;&#225;dkov&#225;n&#237; + grafika. "/>
                <output expression="grafika &amp; ToChar(10) &amp; vyzva &amp; ToChar(10) &amp; grafika" newline="True"/>
                <comment text="Na&#269;ten&#237; k&#243;du aritmetick&#233; operace"/>
                <input variable="kodOperace"/>
                <comment text="Testov&#225;n&#237; podm&#237;nky, pokud zadan&#253; k&#243;d operace je men&#353;&#237; ne&#382; 1 nebo v&#283;t&#353;&#237; ne&#382; 4, zad&#225;v&#225;n&#237; se znovu opakuje"/>
            </do>
            <comment text="Validn&#237; &#269;&#237;seln&#253; k&#243;d aritmetick&#233; operace je v&#253;stupem funkce "/>
        </body>
    </function>
    <function name="ZobrazVysledek" type="None" variable="">
        <parameters>
            <parameter name="cc" type="Real" array="False"/>
        </parameters>
        <body>
            <comment text="V&#253;pis textu a hodnoty v&#253;sledku ulo&#382;en&#233;ho ve form&#225;ln&#237;m parametru"/>
            <output expression="&quot;V&#253;sledek C: &quot; &amp; cc" newline="True"/>
            <comment text="Ukon&#269;en&#237; procedury (nen&#237; &#382;&#225;dn&#253; v&#253;stup do hlavn&#237;ho programu)"/>
        </body>
    </function>
</flowgorithm>
